minidev
Version:
支付宝小程序开发 cli(minidev)提供了常用的支付宝系小程序开发指令,能够方便地在各类平台上快速进行小程序的开发、预览、上传等操作。
2 lines (1 loc) • 12.6 kB
JavaScript
"use strict";var e=require("fs-extra"),t=require("bent"),n=require("crypto"),o=require("os"),a=require("path"),r="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}var s,u,d,l={},c={};s=c,Object.defineProperty(s,"__esModule",{value:!0}),s.ECompileModeType=s.ECompileTargetType=void 0,(u=s.ECompileTargetType||(s.ECompileTargetType={})).Mini="Mini",u.Cube="Cube",(d=s.ECompileModeType||(s.ECompileModeType={})).Remote="Remote",d.Remotex="Remotex",d.RemotexLite="RemotexLite",d.Preview="Preview",d.RemoteBoatman="RemoteBoatman";var p={},f={},m={};Object.defineProperty(m,"__esModule",{value:!0}),m.libName=m.defaultConfig=void 0;const g=o,h=a,y=c;m.defaultConfig={assetsQueryUrl:"https://render.alipay.com/p/h5data/h5config_builder-debug-h5data.json",injectCodeTempPath:(0,h.join)((0,g.tmpdir)(),"./builder_debug_output_v2"),offlineDirectoryPath:(0,h.join)(__dirname,"../offline"),readonlyDirectoryPath:(0,h.join)(__dirname,"../readonly"),assetsMapFilename:"assets_map",boatmanFilename:{[y.ECompileTargetType.Mini]:"boatman_mini",[y.ECompileTargetType.Cube]:"boatman_cube"}},m.libName="builder-debug-utils";var b=r&&r.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(a,r){function i(e){try{u(o.next(e))}catch(e){r(e)}}function s(e){try{u(o.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}u((o=o.apply(e,t||[])).next())}))},C=r&&r.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.AssetsUpdater=void 0;const P=C(t),v=C(e),T=C(n),j=m,_=c,w=(0,P.default)("json"),M=(0,P.default)("buffer"),B=`[${j.libName}]`;f.AssetsUpdater=class{constructor(e){this.context=e}updateOfflineAssetsToday(){return b(this,void 0,void 0,(function*(){!function(e){return b(this,void 0,void 0,(function*(){try{const t=yield v.default.stat(e),n=new Date(parseInt(`${t.mtimeMs}`,10));return(new Date).toLocaleDateString()===n.toLocaleDateString()}catch(e){return!1}}))}(this.context.getAssetsMapFilePath())?(console.log(`${B} local assets are outdated, start to download new debug assets`),yield this.updateOfflineAssets()):console.log(`${B} local assets are in the period of validity`)}))}updateOfflineAssets(){return b(this,void 0,void 0,(function*(){if(this.updatingTask)return this.updatingTask;this.updatingTask=this.runUpdateTask();try{yield this.updatingTask,this.updatingTask=void 0}catch(e){throw this.updatingTask=void 0,e}}))}runUpdateTask(){return b(this,void 0,void 0,(function*(){let e;try{e=yield w(j.defaultConfig.assetsQueryUrl)}catch(e){throw new Error("Failed to request online config")}yield Promise.all([this.updateLocalFile(this.context.getAssetsMapFilePath(),e.url_v2,e.integrity_v2),this.updateLocalFile(this.context.getBoatmanFilePath(_.ECompileTargetType.Mini),e.url_boatman_mini,e.integrity_boatman_mini),this.updateLocalFile(this.context.getBoatmanFilePath(_.ECompileTargetType.Cube),e.url_boatman_cube,e.integrity_boatman_cube)])}))}updateLocalFile(e,t,n){return b(this,void 0,void 0,(function*(){if(!t||!n)return void console.error(`${B} Empty key in config`);try{const t=yield v.default.readFile(e);if(T.default.createHash("sha256").update(t).digest("base64")===n)return void console.log(`${B} Local is latested`)}catch(e){}let o;console.log(`${B} Start to update local`);try{o=yield M(t)}catch(e){return void console.error(`${B} Download error ${e.message}`)}if(T.default.createHash("sha256").update(o).digest("base64")!==n)throw new Error("Failed to verify");yield v.default.writeFile(e,o),console.log(`${B} Updated`)}))}};var O={};Object.defineProperty(O,"__esModule",{value:!0}),O.composeAssetsByCompileMode=void 0;const A=c,R=m;function S(...e){return e.join("\n")}function E(e,t){return t.target===A.ECompileTargetType.Cube?{}:{workerTop:e.bugmeWPreview,webTop:`window.__BUGME_ENV__='preview';${e.bugmeRPreview}`,htmlTop:`<script>window.__BUGME_ENV__='preview';${e.bugmeRPreview}<\/script>`}}function I(e){return`<script snapshot-delete="">${null!=e?e:""}<\/script>`}function x(e,t){return{webTop:e.bugmeRRemote,htmlTop:I(e.bugmeRRemote)}}function F(e,t){return t.compilePlugin?{workerTop:e.bugmeWRemote,pluginWorkerTop:e.tyroAgent,webTop:e.bugmeRRemote,htmlTop:I(e.bugmeRRemote)}:{workerTop:S(e.tyroAgent||"",e.bugmeWRemote||""),webTop:e.bugmeRRemote,htmlTop:I(e.bugmeRRemote)}}function D(e,t){return{workerTop:S("var __BUGME_CONSOLE_ENABLE__=true;",e.bugmeWRemote||""),webTop:e.bugmeRRemote,htmlTop:I(e.bugmeRRemote)}}function k(e,t){if(t.target===A.ECompileTargetType.Cube)return{};{const n={webTop:e.bugmeRRemote,htmlTop:I(e.bugmeRRemote)};return t.compilePlugin&&(n.workerTop=e.bugmeWRemote),n}}O.composeAssetsByCompileMode=function(e,t){let n;switch(t.mode){case A.ECompileModeType.Preview:n=E;break;case A.ECompileModeType.Remote:n=x;break;case A.ECompileModeType.Remotex:n=F;break;case A.ECompileModeType.RemotexLite:n=D;break;case A.ECompileModeType.RemoteBoatman:n=k;break;default:throw new Error(`[${R.libName}] unknown compile mode: ${t.mode}`)}return n(e,t)};var $={};Object.defineProperty($,"__esModule",{value:!0}),$.BuilderDebugContext=void 0;const U=a;$.BuilderDebugContext=class{constructor(e){this.assetsQueryUrl="",this.injectCodeTempPath="",this.offlineDirectoryPath="",this.readonlyDirectoryPath="",this.assetsMapFilename="",this.assetsQueryUrl=e.assetsQueryUrl,this.injectCodeTempPath=e.injectCodeTempPath,this.offlineDirectoryPath=e.offlineDirectoryPath,this.readonlyDirectoryPath=e.readonlyDirectoryPath,this.assetsMapFilename=e.assetsMapFilename,this.boatmanFilename=e.boatmanFilename}getAssetsMapFilePath(){return(0,U.join)(this.offlineDirectoryPath,this.assetsMapFilename)}getBoatmanFilePath(e){return(0,U.join)(this.offlineDirectoryPath,this.boatmanFilename[e])}getReadonlyAssetsMapFilePath(){return(0,U.join)(this.readonlyDirectoryPath,this.assetsMapFilename)}getReadonlyBoatmanFilePath(e){return(0,U.join)(this.readonlyDirectoryPath,this.boatmanFilename[e])}};var N=r&&r.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(a,r){function i(e){try{u(o.next(e))}catch(e){r(e)}}function s(e){try{u(o.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}u((o=o.apply(e,t||[])).next())}))},L=r&&r.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:!0}),p.BuilderDebugClient=void 0;const q=L(e),J=c,W=f,Q=m,G=O,H=$;function K(e){const t={target:J.ECompileTargetType.Mini};return e.target&&Object.keys(J.ECompileTargetType).indexOf(e.target)>-1&&(t.target=e.target),t}function V(e){const t=Object.assign({},e);if(!t.mode||-1===Object.keys(J.ECompileModeType).indexOf(t.mode))throw new Error(`[${Q.libName}] invalid 'mode' option: ${t.mode}`);return t.target&&-1!==Object.keys(J.ECompileTargetType).indexOf(t.target)||(t.target=J.ECompileTargetType.Mini),e}p.BuilderDebugClient=class{constructor(e){this.context=new H.BuilderDebugContext(Object.assign(Object.assign({},Q.defaultConfig),e))}updateOfflineAssets(e){return N(this,void 0,void 0,(function*(){this.assetsUpdater||(this.assetsUpdater=new W.AssetsUpdater(this.context)),e.cacheToday?yield this.assetsUpdater.updateOfflineAssetsToday():yield this.assetsUpdater.updateOfflineAssets()}))}generateInjectCode(e){return N(this,void 0,void 0,(function*(){e=V(e);const t=yield this.readAssetsMap();return(0,G.composeAssetsByCompileMode)(t,e)}))}generateInjectCodeSync(e){e=V(e);const t=this.readAssetsMapSync();return(0,G.composeAssetsByCompileMode)(t,e)}readAssetsMapSync(){let e=q.default.readJSONSync(this.context.getAssetsMapFilePath(),{throws:!1});return e||(console.log(`[${Q.libName}] offline assets_map file was damaged, fallback to readonly file`),e=q.default.readJSONSync(this.context.getReadonlyAssetsMapFilePath())),e}readAssetsMap(){return N(this,void 0,void 0,(function*(){let e;try{e=yield q.default.readJSON(this.context.getAssetsMapFilePath(),{throws:!1})}catch(e){}return e||(console.log(`[${Q.libName}] offline assets_map file was damaged, fallback to readonly file`),e=yield q.default.readJSON(this.context.getReadonlyAssetsMapFilePath())),e}))}generateInjectCodePath(e){return N(this,void 0,void 0,(function*(){const t=yield this.generateInjectCode(e);return yield q.default.writeJSON(Q.defaultConfig.injectCodeTempPath,t),Q.defaultConfig.injectCodeTempPath}))}generateInjectCodePathSync(e){const t=this.generateInjectCodeSync(e);return q.default.writeJSONSync(Q.defaultConfig.injectCodeTempPath,t),Q.defaultConfig.injectCodeTempPath}getBoatmanBundlePath(e){return N(this,void 0,void 0,(function*(){const t=K(e);try{const e=this.context.getBoatmanFilePath(t.target);return yield q.default.access(e,q.default.constants.R_OK),e}catch(e){return this.context.getReadonlyBoatmanFilePath(t.target)}}))}getBoatmanBundlePathSync(e){const t=K(e);try{const e=this.context.getBoatmanFilePath(t.target);return q.default.accessSync(e,q.default.constants.R_OK),e}catch(e){return this.context.getReadonlyBoatmanFilePath(t.target)}}};var z={},X=r&&r.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(a,r){function i(e){try{u(o.next(e))}catch(e){r(e)}}function s(e){try{u(o.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}u((o=o.apply(e,t||[])).next())}))};Object.defineProperty(z,"__esModule",{value:!0}),z.readAssetsMap=z.readAssetsMapSync=z.loadConfig=z.getBoatmanBundlePathSync=z.getBoatmanBundlePath=z.generateInjectCodePathSync=z.generateInjectCodePath=z.generateInjectCodeSync=z.generateInjectCode=z.updateInjectCodeAssets=void 0;const Y=p;let Z;function ee(){return Z||(Z=new Y.BuilderDebugClient),Z}z.updateInjectCodeAssets=function(e={}){return X(this,void 0,void 0,(function*(){return ee().updateOfflineAssets(e)}))},z.generateInjectCode=function(e){return X(this,void 0,void 0,(function*(){return ee().generateInjectCode(e)}))},z.generateInjectCodeSync=function(e){return ee().generateInjectCodeSync(e)},z.generateInjectCodePath=function(e){return X(this,void 0,void 0,(function*(){return ee().generateInjectCodePath(e)}))},z.generateInjectCodePathSync=function(e){return ee().generateInjectCodePathSync(e)},z.getBoatmanBundlePath=function(e={}){return X(this,void 0,void 0,(function*(){return ee().getBoatmanBundlePath(e)}))},z.getBoatmanBundlePathSync=function(e={}){return ee().getBoatmanBundlePathSync(e)},z.loadConfig=function(e){Z=new Y.BuilderDebugClient(e)},z.readAssetsMapSync=function(){return ee().readAssetsMapSync()},z.readAssetsMap=function(){return ee().readAssetsMap()},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.loadConfig=e.getBoatmanBundlePathSync=e.readAssetsMap=e.readAssetsMapSync=e.getBoatmanBundlePath=e.generateInjectCodePathSync=e.generateInjectCodePath=e.generateInjectCodeSync=e.generateInjectCode=e.updateInjectCodeAssets=e.BuilderDebugClient=e.ECompileTargetType=e.ECompileModeType=void 0;var t=c;Object.defineProperty(e,"ECompileModeType",{enumerable:!0,get:function(){return t.ECompileModeType}}),Object.defineProperty(e,"ECompileTargetType",{enumerable:!0,get:function(){return t.ECompileTargetType}});var n=p;Object.defineProperty(e,"BuilderDebugClient",{enumerable:!0,get:function(){return n.BuilderDebugClient}});var o=z;Object.defineProperty(e,"updateInjectCodeAssets",{enumerable:!0,get:function(){return o.updateInjectCodeAssets}}),Object.defineProperty(e,"generateInjectCode",{enumerable:!0,get:function(){return o.generateInjectCode}}),Object.defineProperty(e,"generateInjectCodeSync",{enumerable:!0,get:function(){return o.generateInjectCodeSync}}),Object.defineProperty(e,"generateInjectCodePath",{enumerable:!0,get:function(){return o.generateInjectCodePath}}),Object.defineProperty(e,"generateInjectCodePathSync",{enumerable:!0,get:function(){return o.generateInjectCodePathSync}}),Object.defineProperty(e,"getBoatmanBundlePath",{enumerable:!0,get:function(){return o.getBoatmanBundlePath}}),Object.defineProperty(e,"readAssetsMapSync",{enumerable:!0,get:function(){return o.readAssetsMapSync}}),Object.defineProperty(e,"readAssetsMap",{enumerable:!0,get:function(){return o.readAssetsMap}}),Object.defineProperty(e,"getBoatmanBundlePathSync",{enumerable:!0,get:function(){return o.getBoatmanBundlePathSync}}),Object.defineProperty(e,"loadConfig",{enumerable:!0,get:function(){return o.loadConfig}})}(l);var te=i(l);module.exports=te;