builder-debug-utils
Advanced tools
@@ -0,1 +1,7 @@ | ||
## 2.2.1 | ||
- tinybugme 0.0.48 | ||
## 2.2.0 | ||
- Boatman | ||
## 2.1.2 | ||
@@ -2,0 +8,0 @@ - LegecyRemote htmlTop 注入 bugmeRRemote |
@@ -1,1 +0,1 @@ | ||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("path")),o=e(require("fs-extra")),a=e(require("os")),n=e(require("bent")),r=e(require("crypto")),s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function l(e,t){return e(t={exports:{}},t.exports),t.exports}var u=l((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Cube="Cube",e.Appx="Appx"}(t.ECompileTargetType||(t.ECompileTargetType={})),function(e){e.Remote="Remote",e.Remotex="Remotex",e.Preview="Preview",e.SimulatorWithTyro="SimulatorWithTyro"}(t.ECompileModeType||(t.ECompileModeType={}))}));i(u);u.ECompileTargetType,u.ECompileModeType;var d=l((function(e,o){Object.defineProperty(o,"__esModule",{value:!0}),o.default={assetsQueryJSON:"https://render.alipay.com/p/s/h5data/prod/h5config/builder-debug-h5data.json",injectCodePath:t.join(a.tmpdir(),"./builder_debug_output_v2"),assetsMapPath:t.join(__dirname,"../offline/assets_map"),readonlyAssetsMapPath:t.join(__dirname,"../readonly/assets_map"),logTag:"builder-debug-utils"}}));i(d);var c=l((function(e,t){var a=s&&s.__awaiter||function(e,t,o,a){return new(o||(o=Promise))((function(n,r){function s(e){try{l(a.next(e))}catch(e){r(e)}}function i(e){try{l(a.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(s,i)}l((a=a.apply(e,t||[])).next())}))},i=s&&s.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const l=i(n),u=i(o),c=i(r),p=i(d),f=l.default("json"),g=l.default("buffer");t.AssetsManager=class{updateOfflineAssetsIfExpried(){return a(this,void 0,void 0,(function*(){this.checkOfflineAssetsExpiration()?console.log(`[${p.default.logTag}] local assets are in the period of validity`):(console.log(`[${p.default.logTag}] local assets are outdated, start to download new debug assets`),yield this.updateOfflineAssets())}))}updateOfflineAssets(){return a(this,void 0,void 0,(function*(){if(this.updatingTask)return this.updatingTask;this.updatingTask=this.downloadAssetsMap();try{yield this.updatingTask,this.updatingTask=null}catch(e){throw this.updatingTask=null,e}}))}checkOfflineAssetsExpiration(){if(!u.default.existsSync(p.default.assetsMapPath))return!1;const e=new Date(parseInt(""+u.default.statSync(p.default.assetsMapPath).mtimeMs,10));return(new Date).toLocaleDateString()===e.toLocaleDateString()}downloadAssetsMap(){return a(this,void 0,void 0,(function*(){let e,t;try{e=yield f(p.default.assetsQueryJSON)}catch(e){throw new Error(`[${p.default.logTag}] network error`)}if(!e.url_v2||!e.integrity_v2)throw new Error(`[${p.default.logTag}] online config error`);try{const t=yield u.default.readFile(p.default.assetsMapPath);if(c.default.createHash("sha256").update(t).digest("base64")===e.integrity_v2)return void console.log(`[${p.default.logTag}] local assets are the same as online`);console.log(`[${p.default.logTag}] local assets are outdated, start to download`)}catch(e){}try{t=yield g(e.url_v2)}catch(e){throw new Error(`[${p.default.logTag}] download error`)}if(c.default.createHash("sha256").update(t).digest("base64")!==e.integrity_v2)throw new Error(`[${p.default.logTag}] failed to verify the online integrity`);yield u.default.writeFile(p.default.assetsMapPath,t),console.log(`[${p.default.logTag}] update local debug assets successfully`)}))}},t.getAssetsMapSync=function(){let e=u.default.readJSONSync(p.default.assetsMapPath,{throws:!1});return e||(console.log(`[${p.default.logTag}] offline assets_map file was damaged, fallback to readonly file`),e=u.default.readJSONSync(p.default.readonlyAssetsMapPath)),e},t.getAssetsMap=function(){return a(this,void 0,void 0,(function*(){let e;try{e=yield u.default.readJSON(p.default.assetsMapPath,{throws:!1})}catch(e){}return e||(console.log(`[${p.default.logTag}] offline assets_map file was damaged, fallback to readonly file`),e=yield u.default.readJSON(p.default.readonlyAssetsMapPath)),e}))}}));i(c);c.AssetsManager,c.getAssetsMapSync,c.getAssetsMap;var p=l((function(e,t){var o=s&&s.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=o(d);function n(...e){return e.join("\n")}t.composeAssetsByCompileMode=function(e,t){let o={};const{mode:r}=t||{};switch(r){case u.ECompileModeType.Preview:o=function(e,t){return{workerTop:e.bugmeWPreview,htmlTop:"<script>window.__BUGME_ENV__='preview';<\/script>"+e.bugmeRPreview}}(e);break;case u.ECompileModeType.Remote:o=function(e,t){return{htmlTop:e.bugmeRRemote}}(e);break;case u.ECompileModeType.Remotex:o=function(e,t){return t.compilePlugin?{workerTop:e.bugmeWRemote,pluginWorkerTop:e.tyroAgent,htmlTop:e.bugmeRRemote}:{workerTop:n(e.tyroAgent,e.bugmeWRemote),htmlTop:e.bugmeRRemote}}(e,t);break;case u.ECompileModeType.SimulatorWithTyro:o=function(e,t){const o="https://gw.alipayobjects.com/os/antfincdn/6PIsYVRjrS/bugmeR.js";return t.compilePlugin?{workerTop:e.bugmeWRemote,pluginWorkerTop:e.tyroAgent,htmlTop:`<script>window.__BUGME_ENV__='simulator';<\/script><script src="${o}"><\/script>`}:{workerTop:n(e.tyroAgent,e.bugmeWRemote),htmlTop:`<script>window.__BUGME_ENV__='simulator';<\/script><script src="${o}"><\/script>`}}(e,t);break;default:throw new Error(`[${a.default.logTag}] unknown compile mode: ${r}`)}return o}}));i(p);p.composeAssetsByCompileMode;var f=l((function(e,a){var n=s&&s.__awaiter||function(e,t,o,a){return new(o||(o=Promise))((function(n,r){function s(e){try{l(a.next(e))}catch(e){r(e)}}function i(e){try{l(a.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(s,i)}l((a=a.apply(e,t||[])).next())}))},r=s&&s.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0});const i=r(d);var l=u;let f;function g(e){const{target:t,mode:o}=e||{};if(!t||-1===Object.keys(u.ECompileTargetType).indexOf(t))throw new Error(`[${i.default.logTag}] invalid 'target' option: ${t}`);if(!o||-1===Object.keys(u.ECompileModeType).indexOf(o))throw new Error(`[${i.default.logTag}] invalid 'mode' option: ${o}`)}function y(e){return n(this,void 0,void 0,(function*(){g(e);const t=yield c.getAssetsMap();return p.composeAssetsByCompileMode(t,e)}))}function h(e){g(e);const t=c.getAssetsMapSync();return p.composeAssetsByCompileMode(t,e)}a.ECompileModeType=l.ECompileModeType,a.ECompileTargetType=l.ECompileTargetType,a.generateInjectCode=y,a.generateInjectCodeSync=h,a.generateInjectCodePath=function(e){return n(this,void 0,void 0,(function*(){const t=yield y(e);return yield o.writeJSON(i.default.injectCodePath,t),i.default.injectCodePath}))},a.generateInjectCodePathSync=function(e){const t=h(e);return o.writeJSONSync(i.default.injectCodePath,t),i.default.injectCodePath},a.updateInjectCodeAssets=function(){return n(this,void 0,void 0,(function*(){yield(f||(f=new c.AssetsManager),f).updateOfflineAssets()}))},a.setLocalAssetsPath=function(e){if(!t.isAbsolute(e))throw new Error(`[${i.default.logTag}] path must be absolute path`);i.default.assetsMapPath=e}})),g=i(f),y=f.ECompileModeType,h=f.ECompileTargetType,m=f.generateInjectCode,T=f.generateInjectCodeSync,w=f.generateInjectCodePath,_=f.generateInjectCodePathSync,v=f.updateInjectCodeAssets,M=f.setLocalAssetsPath;exports.ECompileModeType=y,exports.ECompileTargetType=h,exports.default=g,exports.generateInjectCode=m,exports.generateInjectCodePath=w,exports.generateInjectCodePathSync=_,exports.generateInjectCodeSync=T,exports.setLocalAssetsPath=M,exports.updateInjectCodeAssets=v; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("fs-extra"),t=require("os"),o=require("path"),a=require("bent"),n=require("crypto");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=r(e),s=r(t),l=r(o),d=r(a),u=r(n),c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function p(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f(e,t){return e(t={exports:{}},t.exports),t.exports}var m=f((function(e,t){var o,a;Object.defineProperty(t,"__esModule",{value:!0}),t.ECompileModeType=t.ECompileTargetType=void 0,(o=t.ECompileTargetType||(t.ECompileTargetType={})).Mini="Mini",o.Cube="Cube",(a=t.ECompileModeType||(t.ECompileModeType={})).Remote="Remote",a.Remotex="Remotex",a.Preview="Preview",a.SimulatorWithTyro="SimulatorWithTyro",a.RemoteBoatman="RemoteBoatman"}));p(m),m.ECompileModeType,m.ECompileTargetType;var g=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default={assetsQueryJSON:"https://render.alipay.com/p/s/h5data/prod/h5config/builder-debug-h5data.json",injectCodePath:l.default.join(s.default.tmpdir(),"./builder_debug_output_v2"),assetsMapPath:l.default.join(__dirname,"../offline/assets_map"),assetsMapReadOnlyPath:l.default.join(__dirname,"../readonly/assets_map"),logTag:"builder-debug-utils",boatmanPath:{[m.ECompileTargetType.Mini]:l.default.join(__dirname,"../offline/boatman_mini"),[m.ECompileTargetType.Cube]:l.default.join(__dirname,"../offline/boatman_mini")},boatmanReadOnlyPath:{[m.ECompileTargetType.Mini]:l.default.join(__dirname,"../readonly/boatman_mini"),[m.ECompileTargetType.Cube]:l.default.join(__dirname,"../readonly/boatman_mini")}}}));p(g);var y=f((function(e,t){var o=c&&c.__awaiter||function(e,t,o,a){return new(o||(o=Promise))((function(n,r){function i(e){try{l(a.next(e))}catch(e){r(e)}}function s(e){try{l(a.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(i,s)}l((a=a.apply(e,t||[])).next())}))},a=c&&c.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getGlobaleAssetsManager=t.getAssetsMap=t.getAssetsMapSync=void 0;const n=a(d.default),r=a(i.default),s=a(u.default),l=a(g),p=n.default("json"),f=n.default("buffer");class m{updateOfflineAssetsToday(){return o(this,void 0,void 0,(function*(){!function(e){return o(this,void 0,void 0,(function*(){try{const t=yield r.default.stat(e),o=new Date(parseInt(""+t.mtimeMs,10));return(new Date).toLocaleDateString()===o.toLocaleDateString()}catch(e){return!1}}))}(l.default.assetsMapPath)?(console.log(`[${l.default.logTag}] local assets are outdated, start to download new debug assets`),yield this.updateOfflineAssets()):console.log(`[${l.default.logTag}] local assets are in the period of validity`)}))}updateOfflineAssets(){return o(this,void 0,void 0,(function*(){if(this.updatingTask)return this.updatingTask;this.updatingTask=this.runUpdateTask();try{yield this.updatingTask,this.updatingTask=null}catch(e){throw this.updatingTask=null,e}}))}runUpdateTask(){return o(this,void 0,void 0,(function*(){yield Promise.all([this.updateLocalFile(l.default.assetsMapPath,"url_v2","integrity_v2"),this.updateLocalFile(l.default.boatmanPath.Mini,"url_boatman_mini","integrity_boatman_mini")])}))}updateLocalFile(e,t,a){return o(this,void 0,void 0,(function*(){const o=`[${l.default.logTag}] ${t}`;let n,i;try{n=yield p(l.default.assetsQueryJSON)}catch(e){throw new Error(`${o} network error ${e.message}`)}if(!n[t]||!n[a])throw new Error(o+" online config error");try{const t=yield r.default.readFile(e);if(s.default.createHash("sha256").update(t).digest("base64")===n[a])return void console.log(o+" local is up to date, stop updating")}catch(e){}console.log(o+" local is outdated, start to download");try{i=yield f(n[t])}catch(e){throw new Error(`${o} download error ${e.message}`)}if(s.default.createHash("sha256").update(i).digest("base64")!==n[a])throw new Error(`${o} ${a} is not verified`);yield r.default.writeFile(e,i),console.log(o+" update successfully")}))}}let y;t.getAssetsMapSync=function(){let e=r.default.readJSONSync(l.default.assetsMapPath,{throws:!1});return e||(console.log(`[${l.default.logTag}] offline assets_map file was damaged, fallback to readonly file`),e=r.default.readJSONSync(l.default.assetsMapReadOnlyPath)),e},t.getAssetsMap=function(){return o(this,void 0,void 0,(function*(){let e;try{e=yield r.default.readJSON(l.default.assetsMapPath,{throws:!1})}catch(e){}return e||(console.log(`[${l.default.logTag}] offline assets_map file was damaged, fallback to readonly file`),e=yield r.default.readJSON(l.default.assetsMapReadOnlyPath)),e}))},t.getGlobaleAssetsManager=function(){return y||(y=new m),y}}));p(y),y.getGlobaleAssetsManager,y.getAssetsMap,y.getAssetsMapSync;var h=f((function(e,t){var o=c&&c.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.composeAssetsByCompileMode=void 0;const a=o(g);function n(...e){return e.join("\n")}function r(e,t){return{workerTop:e.bugmeWPreview,htmlTop:"<script>window.__BUGME_ENV__='preview';<\/script>"+e.bugmeRPreview}}function i(e,t){return{htmlTop:e.bugmeRRemote}}function s(e,t){return t.compilePlugin?{workerTop:e.bugmeWRemote,pluginWorkerTop:e.tyroAgent,htmlTop:e.bugmeRRemote}:{workerTop:n(e.tyroAgent,e.bugmeWRemote),htmlTop:e.bugmeRRemote}}function l(e,t){const o="https://gw.alipayobjects.com/os/antfincdn/6PIsYVRjrS/bugmeR.js";return t.compilePlugin?{workerTop:e.bugmeWRemote,pluginWorkerTop:e.tyroAgent,htmlTop:`<script>window.__BUGME_ENV__='simulator';<\/script><script src="${o}"><\/script>`}:{workerTop:n(e.tyroAgent,e.bugmeWRemote),htmlTop:`<script>window.__BUGME_ENV__='simulator';<\/script><script src="${o}"><\/script>`}}function d(e,t){return{workerTop:e.bugmeWRemote,htmlTop:e.bugmeRRemote}}t.composeAssetsByCompileMode=function(e,t){let o;switch(t.mode){case m.ECompileModeType.Preview:o=r;break;case m.ECompileModeType.Remote:o=i;break;case m.ECompileModeType.Remotex:o=s;break;case m.ECompileModeType.RemoteBoatman:o=d;break;case m.ECompileModeType.SimulatorWithTyro:o=l;break;default:throw new Error(`[${a.default.logTag}] unknown compile mode: ${t.mode}`)}return o(e,t)}}));p(h),h.composeAssetsByCompileMode;var T=f((function(e,t){var o=c&&c.__awaiter||function(e,t,o,a){return new(o||(o=Promise))((function(n,r){function i(e){try{l(a.next(e))}catch(e){r(e)}}function s(e){try{l(a.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(i,s)}l((a=a.apply(e,t||[])).next())}))},a=c&&c.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getBoatmanBundlePathSync=t.getBoatmanBundlePath=t.updateInjectCodeAssets=t.generateInjectCodePathSync=t.generateInjectCodePath=t.generateInjectCodeSync=t.generateInjectCode=void 0;const n=a(i.default),r=a(g);var s=m;function l(e){const t=Object.assign({},e);if(!t.mode||-1===Object.keys(m.ECompileModeType).indexOf(t.mode))throw new Error(`[${r.default.logTag}] invalid 'mode' option: ${t.mode}`);return t.target&&-1!==Object.keys(m.ECompileTargetType).indexOf(t.target)||(t.target=m.ECompileTargetType.Mini),e}function d(e){return o(this,void 0,void 0,(function*(){e=l(e);const t=yield y.getAssetsMap();return h.composeAssetsByCompileMode(t,e)}))}function u(e){e=l(e);const t=y.getAssetsMapSync();return h.composeAssetsByCompileMode(t,e)}function p(e){const t=Object.assign({},e);return t.target&&-1!==Object.keys(m.ECompileTargetType).indexOf(t.target)||(t.target=m.ECompileTargetType.Mini),t}Object.defineProperty(t,"ECompileModeType",{enumerable:!0,get:function(){return s.ECompileModeType}}),Object.defineProperty(t,"ECompileTargetType",{enumerable:!0,get:function(){return s.ECompileTargetType}}),t.generateInjectCode=d,t.generateInjectCodeSync=u,t.generateInjectCodePath=function(e){return o(this,void 0,void 0,(function*(){const t=yield d(e);return yield n.default.writeJSON(r.default.injectCodePath,t),r.default.injectCodePath}))},t.generateInjectCodePathSync=function(e){const t=u(e);return n.default.writeJSONSync(r.default.injectCodePath,t),r.default.injectCodePath},t.updateInjectCodeAssets=function(e={}){return o(this,void 0,void 0,(function*(){e.cacheToday?yield y.getGlobaleAssetsManager().updateOfflineAssetsToday():yield y.getGlobaleAssetsManager().updateOfflineAssets()}))},t.getBoatmanBundlePath=function(e={}){return o(this,void 0,void 0,(function*(){const t=p(e);try{return yield n.default.access(r.default.boatmanPath[t.target],n.default.constants.R_OK),r.default.boatmanPath[t.target]}catch(e){return r.default.boatmanReadOnlyPath[t.target]}}))},t.getBoatmanBundlePathSync=function(e={}){const t=p(e);try{return n.default.accessSync(r.default.boatmanPath[t.target],n.default.constants.R_OK),r.default.boatmanPath[t.target]}catch(e){return r.default.boatmanReadOnlyPath[t.target]}}})),b=p(T),_=T.getBoatmanBundlePathSync,C=T.getBoatmanBundlePath,w=T.updateInjectCodeAssets,v=T.generateInjectCodePathSync,M=T.generateInjectCodePath,P=T.generateInjectCodeSync,j=T.generateInjectCode,E=T.ECompileModeType,O=T.ECompileTargetType;exports.ECompileModeType=E,exports.ECompileTargetType=O,exports.default=b,exports.generateInjectCode=j,exports.generateInjectCodePath=M,exports.generateInjectCodePathSync=v,exports.generateInjectCodeSync=P,exports.getBoatmanBundlePath=C,exports.getBoatmanBundlePathSync=_,exports.updateInjectCodeAssets=w; |
{ | ||
"name": "builder-debug-utils", | ||
"version": "2.1.2", | ||
"main": "dist/index.js", | ||
"files": [ | ||
"dist", | ||
"offline", | ||
"readonly" | ||
], | ||
"dependencies": { | ||
"bent": "^7.3.1", | ||
"fs-extra": "^9.0.0" | ||
} | ||
} | ||
"name": "builder-debug-utils", | ||
"version": "2.2.1", | ||
"main": "dist/index.js", | ||
"types": "lib/index.d.ts", | ||
"files": [ | ||
"dist", | ||
"lib", | ||
"offline", | ||
"readonly" | ||
], | ||
"scripts": { | ||
"build": "tsc -p ./tsconfig.json && yarn run build:dist", | ||
"build:dist": "rollup -c rollup.config.js", | ||
"watch": "tsc-watch -p ./tsconfig.json --onSuccess 'tnpm run build:dist'", | ||
"lint": "tslint --project ./tsconfig.json", | ||
"lint:fix": "tslint --fix --project ./tsconfig.json", | ||
"generate": "node scripts/generator.js" | ||
}, | ||
"tnpm": { | ||
"mode": "yarn", | ||
"lockfile": "enable" | ||
}, | ||
"devDependencies": { | ||
"@rollup/plugin-commonjs": "^11.1.0", | ||
"@types/bent": "^7.0.2", | ||
"@types/fs-extra": "^8.1.0", | ||
"@types/node": "^13.11.1", | ||
"rollup": "^2.10.3", | ||
"rollup-plugin-terser": "^5.3.0", | ||
"tsc-watch": "^4.2.9", | ||
"tslint": "^6.1.1", | ||
"typescript": "^3.8.3" | ||
}, | ||
"dependencies": { | ||
"bent": "^7.3.1", | ||
"fs-extra": "^9.0.0" | ||
}, | ||
"volans_build_asar": { | ||
"enable": true, | ||
"exclude": [ | ||
"offline/**" | ||
] | ||
} | ||
} |
@@ -5,4 +5,4 @@ ``` | ||
const debugUtils.generateInjectCodePath({ | ||
target: 'appx', | ||
mode: 'preview', | ||
target: 'Mini', | ||
mode: 'Preview', | ||
compilePlugin: false, | ||
@@ -15,7 +15,9 @@ }); // /Users/foo/bar | ||
/offline/assets_map - 用于存储构建脚本文本 | ||
$TMPDIR/builder_debug_output - 用于作为 tiny-cli injectCodePath 入参 | ||
$TMPDIR/builder_debug_output_v2 - 用于作为 tiny-cli injectCodePath 入参 | ||
### API | ||
- 检查更新 | ||
比较本地与服务端资源 sha256 是否相同,若不同更新本地资源 | ||
比较本地与服务端资源 sha256 是否相同,若不同更新本地资源 | ||
``` | ||
@@ -26,13 +28,31 @@ const injectCodePath = await updateInjectCodeAssets(); | ||
- 生成 injectCode | ||
``` | ||
await generateInjectCode(); | ||
await generateInjectCode({ | ||
mode: 'Remotex', | ||
}); | ||
generateInjectCodeSync(); | ||
generateInjectCodeSync({ | ||
mode: 'Remotex', | ||
}); | ||
``` | ||
- 生成 injectCodePath | ||
``` | ||
generateInjectCodePath(); | ||
await generateInjectCodePath({ | ||
mode: 'Remotex', | ||
}); | ||
awiat generateInjectCodePathSync() | ||
generateInjectCodePathSync({ | ||
mode: 'Remotex', | ||
}) | ||
``` | ||
- 获取 boatman 资源路径 | ||
``` | ||
await getBoatmanBundlePath(); | ||
getBoatmanBundlePathSync(); | ||
``` |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
1075814
64.25%30
400%788
2526.67%56
55.56%9
Infinity%7
250%