miniprogram-ci 1.6.1 → 1.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config.d.ts +1 -1
  3. package/dist/@types/core/js/generateMap.d.ts +3 -0
  4. package/dist/@types/types/miniprogram-json/projectconfig.d.ts +1 -0
  5. package/dist/ci/code-analyse.js +1 -1
  6. package/dist/ci/cos-upload.js +1 -1
  7. package/dist/ci/getCompiledResult.js +1 -1
  8. package/dist/ci/getDevSourceMap.js +1 -1
  9. package/dist/ci/getLatestVersion.js +1 -1
  10. package/dist/ci/jsserver.js +1 -1
  11. package/dist/ci/preview.js +1 -1
  12. package/dist/ci/project.js +1 -1
  13. package/dist/ci/projectattr.js +1 -1
  14. package/dist/ci/upload.js +1 -1
  15. package/dist/ci/utils/packfile.js +1 -1
  16. package/dist/cli.js +1 -1
  17. package/dist/cloud/cloudapi.js +1 -1
  18. package/dist/cloud/createTimeTrigger.js +1 -1
  19. package/dist/cloud/uploadContainer.js +1 -1
  20. package/dist/cloud/uploadFile.js +1 -1
  21. package/dist/cloud/uploadFunction.js +1 -1
  22. package/dist/cloud/utils.js +1 -1
  23. package/dist/config.js +1 -1
  24. package/dist/core/compile/common.js +1 -1
  25. package/dist/core/compile/game.js +1 -1
  26. package/dist/core/compile/game_plugin.js +1 -1
  27. package/dist/core/compile/handler/js.js +1 -1
  28. package/dist/core/compile/handler/mpjson.js +1 -1
  29. package/dist/core/compile/handler/wxml.js +1 -1
  30. package/dist/core/compile/handler/wxss.js +1 -1
  31. package/dist/core/compile/index.js +1 -1
  32. package/dist/core/compile/mini_program.js +1 -1
  33. package/dist/core/compile/mini_program_plugin.js +1 -1
  34. package/dist/core/js/enhance.js +1 -1
  35. package/dist/core/js/generateMap.js +1 -0
  36. package/dist/core/js/index.js +1 -1
  37. package/dist/core/js/minifyjs_after_wrap.js +1 -1
  38. package/dist/core/json/app/checkAppFields.js +1 -1
  39. package/dist/core/json/app/getAppJSON.js +1 -1
  40. package/dist/core/json/app/getExtJSON.js +1 -1
  41. package/dist/core/json/app/index.js +1 -1
  42. package/dist/core/json/common.js +1 -1
  43. package/dist/core/json/game.js +1 -1
  44. package/dist/core/json/page/checkPageJSON.js +1 -1
  45. package/dist/core/json/page/getPageJSON.js +1 -1
  46. package/dist/core/json/plugin/plugin.js +1 -1
  47. package/dist/core/json/plugin/plugin_page.js +1 -1
  48. package/dist/core/json/projectWithMockBuffer.js +1 -1
  49. package/dist/core/json/projectconfig.js +1 -1
  50. package/dist/core/json/reactiveCache.js +1 -1
  51. package/dist/core/json/signaturejson.js +1 -1
  52. package/dist/core/json/sitemap.js +1 -1
  53. package/dist/core/json/theme.js +1 -1
  54. package/dist/core/npm/filterdeps.js +1 -1
  55. package/dist/core/npm/packnpm.js +1 -1
  56. package/dist/core/protect/file_flatter.js +1 -1
  57. package/dist/core/protect/uglifyfilenames.js +1 -1
  58. package/dist/core/validate/validate.js +1 -1
  59. package/dist/core/worker_thread/childprocess.js +1 -1
  60. package/dist/core/worker_thread/childprocess_manager.js +1 -1
  61. package/dist/core/worker_thread/fork.js +1 -1
  62. package/dist/core/worker_thread/index.js +1 -1
  63. package/dist/core/worker_thread/task/call_func.js +1 -1
  64. package/dist/core/worker_thread/task/compilejs.js +1 -1
  65. package/dist/core/worker_thread/task/compilewxss.js +1 -1
  66. package/dist/core/worker_thread/task/func.js +1 -1
  67. package/dist/core/worker_thread/task/minifywxml.js +1 -1
  68. package/dist/core/worker_thread/worker.js +1 -1
  69. package/dist/core/worker_thread/worker_manager.js +1 -1
  70. package/dist/core.js +1 -1
  71. package/dist/index.js +1 -1
  72. package/dist/manifest.json +2 -2
  73. package/dist/summer/devtool.js +1 -1
  74. package/dist/summer/entry_process.js +1 -1
  75. package/dist/summer/graph/appconf.js +1 -1
  76. package/dist/summer/graph/basegraph.js +1 -1
  77. package/dist/summer/graph/pluginconf.js +1 -1
  78. package/dist/summer/initPlugin.js +1 -1
  79. package/dist/summer/module.js +1 -1
  80. package/dist/summer/persist_cache.js +1 -1
  81. package/dist/summer/plugin_driver.js +1 -1
  82. package/dist/summer/plugins/base/es6module.js +1 -1
  83. package/dist/summer/plugins/base/javascript.js +1 -1
  84. package/dist/summer/plugins/base/wxss.js +1 -1
  85. package/dist/summer/plugins/enhance.js +1 -1
  86. package/dist/summer/plugins/less.js +1 -1
  87. package/dist/summer/plugins/sass.js +1 -1
  88. package/dist/summer/plugins/terser.js +1 -1
  89. package/dist/summer/plugins/typescript.js +1 -1
  90. package/dist/summer/project.js +1 -1
  91. package/dist/summer/resolver.js +1 -1
  92. package/dist/summer/summer.js +1 -1
  93. package/dist/summer/worker.js +1 -1
  94. package/dist/types/index.js +1 -1
  95. package/dist/types/miniprogram-json/index.js +1 -1
  96. package/dist/utils/babel_helper.js +1 -1
  97. package/dist/utils/cache.js +1 -1
  98. package/dist/utils/common.js +1 -1
  99. package/dist/utils/error.js +1 -1
  100. package/dist/utils/fsagent.js +1 -1
  101. package/dist/utils/glob.js +1 -1
  102. package/dist/utils/jsonParse.js +1 -1
  103. package/dist/utils/locales/locales.js +1 -1
  104. package/dist/utils/report.js +1 -1
  105. package/dist/utils/request.js +1 -1
  106. package/dist/utils/sign.js +1 -1
  107. package/dist/utils/taskstatus.js +1 -1
  108. package/dist/utils/tools.js +1 -1
  109. package/dist/utils/white_ext_list.js +1 -1
  110. package/dist/utils/wxvpkgreader/wxvpkgreader.js +1 -1
  111. package/dist/vendor/cloud-api/src/apis/apis.js +1 -1
  112. package/dist/vendor/cloud-api/src/apis/cdn/cdn.apis.js +1 -1
  113. package/dist/vendor/cloud-api/src/apis/cdn/index.js +1 -1
  114. package/dist/vendor/cloud-api/src/apis/flexdb/flexdb.apis.js +1 -1
  115. package/dist/vendor/cloud-api/src/apis/flexdb/index.js +1 -1
  116. package/dist/vendor/cloud-api/src/apis/scf/index.js +1 -1
  117. package/dist/vendor/cloud-api/src/apis/scf/scf.apis.js +1 -1
  118. package/dist/vendor/cloud-api/src/apis/ssl/index.js +1 -1
  119. package/dist/vendor/cloud-api/src/apis/ssl/ssl.apis.js +1 -1
  120. package/dist/vendor/cloud-api/src/apis/tcb/general.apis.js +1 -1
  121. package/dist/vendor/cloud-api/src/apis/tcb/index.js +1 -1
  122. package/dist/vendor/cloud-api/src/apis/tcb/tcb.apis.js +1 -1
  123. package/dist/vendor/cloud-api/src/index.js +1 -1
  124. package/dist/vendor/cloud-api/src/transaction/contracts/cdn.contracts.js +1 -1
  125. package/dist/vendor/cloud-api/src/transaction/contracts/contracts.js +1 -1
  126. package/dist/vendor/cloud-api/src/transaction/contracts/flexdb.contracts.js +1 -1
  127. package/dist/vendor/cloud-api/src/transaction/contracts/scf.contracts.js +1 -1
  128. package/dist/vendor/cloud-api/src/transaction/contracts/ssl.contracts.js +1 -1
  129. package/dist/vendor/cloud-api/src/transaction/contracts/tcb.contracts.js +1 -1
  130. package/dist/vendor/cloud-api/src/transaction/validations/cdn.validations.js +1 -1
  131. package/dist/vendor/cloud-api/src/transaction/validations/common.validations.js +1 -1
  132. package/dist/vendor/cloud-api/src/transaction/validations/flexdb.validations.js +1 -1
  133. package/dist/vendor/cloud-api/src/transaction/validations/scf.validations.js +1 -1
  134. package/dist/vendor/cloud-api/src/transaction/validations/ssl.validations.js +1 -1
  135. package/dist/vendor/cloud-api/src/transaction/validations/tcb.validations.js +1 -1
  136. package/dist/vendor/cloud-api/src/transaction/validations/validations.js +1 -1
  137. package/dist/vendor/schema/dist/app.js +1 -1
  138. package/dist/vendor/schema/dist/ext.js +1 -1
  139. package/dist/vendor/schema/dist/game.js +29 -1
  140. package/dist/vendor/schema/dist/page.js +1 -1
  141. package/dist/vendor/schema/dist/plugin.js +1 -1
  142. package/dist/vendor/schema/dist/pluginpage.js +1 -1
  143. package/dist/vendor/schema/dist/projectconfig.js +7 -1
  144. package/dist/vendor/schema/dist/sitemap.js +1 -1
  145. package/dist/vendor/schema/dist/theme.js +1 -1
  146. package/package.json +2 -1
package/README.md CHANGED
@@ -67,6 +67,8 @@ interface IProject {
67
67
 
68
68
  ```javascript
69
69
  const ci = require('miniprogram-ci')
70
+
71
+ // 注意: new ci.Project 调用时,请确保项目代码已经是完整的,避免编译过程出现找不到文件的报错。
70
72
  const project = new ci.Project({
71
73
  appid: 'wxsomeappid',
72
74
  type: 'miniProgram',
@@ -1,4 +1,4 @@
1
- export declare const CI_VERSION = "1.6.1";
1
+ export declare const CI_VERSION = "1.6.10";
2
2
  export declare const PARAM_ERROR = 10000;
3
3
  export declare const WXML_NOT_FOUND = 10007;
4
4
  export declare const JS_NOT_FOUND = 10008;
@@ -0,0 +1,3 @@
1
+ import type { RawSourceMap } from 'source-map';
2
+ declare const generateMap: (fileName: string, code: string) => RawSourceMap | undefined;
3
+ export = generateMap;
@@ -2,6 +2,7 @@ export declare namespace ProjectConfigJSON {
2
2
  interface IProjectConfigJSON {
3
3
  miniprogramRoot?: string;
4
4
  pluginRoot?: string;
5
+ pluginAppid?: string;
5
6
  jsserverRoot?: string;
6
7
  setting?: {
7
8
  babelSetting?: {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.analyseCode=void 0;const tslib_1=require("tslib"),projectconfig_1=require("../core/json/projectconfig"),code_analyse_1=require("../vendor/code-analyse"),path_1=tslib_1.__importDefault(require("path"));function transCompileType(e){if("miniProgram"===e.type)return"miniprogram";if("miniProgramPlugin"===e.type)return"plugin";if("miniGame"===e.type)return"game";if("miniGamePlugin"===e.type)return"gamePlugin";throw new Error("unknown compile type "+e.type)}class LogPlugin{constructor(){this.name="LogPlugin"}onDepResolveFailed(e,o){var n,i;console.warn(`${null===(n=e.originModule)||void 0===n?void 0:n.type} module ${null===(i=e.originModule)||void 0===i?void 0:i.path} resolve dep failed`),console.warn(o)}onModuleBuildFailed(e,o,n){console.warn(`${e.type} module ${e.path} build failed`),console.warn(n)}}async function analyseCode(e,o){const n=projectconfig_1.getProjectConfigJSON(e),i=transCompileType(e);if("gamePlugin"===i)throw new Error("gamePlugin is not support yet!");let r="plugin"===i?n.pluginRoot:n.miniprogramRoot;r=r?path_1.default.posix.join(e.projectPath,r):e.projectPath;const t=new code_analyse_1.Analyzer({root:r,type:i,plugins:(null==o?void 0:o.silent)?[]:[new LogPlugin]});return await t.analyse(),t.serialize()}exports.analyseCode=analyseCode;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.analyseCode=void 0;const tslib_1=require("tslib"),projectconfig_1=require("../core/json/projectconfig"),code_analyse_1=require("../vendor/code-analyse"),path_1=(0,tslib_1.__importDefault)(require("path"));function transCompileType(e){if("miniProgram"===e.type)return"miniprogram";if("miniProgramPlugin"===e.type)return"plugin";if("miniGame"===e.type)return"game";if("miniGamePlugin"===e.type)return"gamePlugin";throw new Error("unknown compile type "+e.type)}class LogPlugin{constructor(){this.name="LogPlugin"}onDepResolveFailed(e,o){var n,i;console.warn(`${null===(n=e.originModule)||void 0===n?void 0:n.type} module ${null===(i=e.originModule)||void 0===i?void 0:i.path} resolve dep failed`),console.warn(o)}onModuleBuildFailed(e,o,n){console.warn(`${e.type} module ${e.path} build failed`),console.warn(n)}}async function analyseCode(e,o){const n=(0,projectconfig_1.getProjectConfigJSON)(e),i=transCompileType(e);if("gamePlugin"===i)throw new Error("gamePlugin is not support yet!");let r="plugin"===i?n.pluginRoot:n.miniprogramRoot;r=r?path_1.default.posix.join(e.projectPath,r):e.projectPath;const t=new code_analyse_1.Analyzer({root:r,type:i,plugins:(null==o?void 0:o.silent)?[]:[new LogPlugin]});return await t.analyse(),t.serialize()}exports.analyseCode=analyseCode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadByCos=void 0;const tslib_1=require("tslib"),url_config_1=require("../utils/url_config"),tools_1=require("../utils/tools"),request_1=require("../utils/request"),sign_1=require("../utils/sign"),pack_1=require("./utils/pack"),zlib=require("zlib"),crypto=require("crypto"),config_1=require("../config"),upload_1=require("./upload"),log_1=tslib_1.__importDefault(require("../utils/log")),jsonParse_1=require("../utils/jsonParse"),COS=require("cos-nodejs-sdk-v5");async function putBufferToCos(e,r){const t=new COS({Proxy:request_1.getCiProxy(),getAuthorization(e,t){t({TmpSecretId:r.secret_id,TmpSecretKey:r.secret_key,XCosSecurityToken:r.token,ExpiredTime:r.expired_time})}});try{return await new Promise((o,i)=>{t.putObject({Bucket:r.bucket,Region:"ap-shanghai",Key:r.object,Body:e,onProgress(e){}},(e,r)=>{if(e)return console.error(e),i(e.error);o(r)})})}catch(e){throw new Error("upload to cos failed: "+e.message)}}async function innerRequest(e,r){const t=await request_1.request({url:e,method:"post",body:r,headers:{"content-type":"application/json"}});let o;try{o=JSON.parse(t.body)}catch(r){const t=`request ${e} failed: resp body is not a valid json`;throw log_1.default.error(t),new Error(t)}if(0!==o.errCode)throw new Error(`request failed, errCode: ${o.errCode}, errMsg: ${o.errMsg}`);return o.data}async function uploadByCos(e,r,t,o){let i;try{const e=await sign_1.getSignature(t.privateKey,t.appid);i=await innerRequest(url_config_1.GET_UPLOAD_TOKEN,JSON.stringify({appid:t.appid,signature:e,robot:o}))}catch(e){return console.error("uploadToken error",e),{fallback:!0}}const s=pack_1.pack(e),a=zlib.gzipSync(s.buffer),n=crypto.randomBytes(12),u=crypto.createCipheriv("aes-256-gcm",Buffer.from(i.crypt_key,"base64"),n),c=Buffer.concat([u.update(a),u.final()]),p=u.getAuthTag(),l=Buffer.alloc(1);l.writeUInt8(p.length+n.length,0);const d=Buffer.concat([l,p,n,c]),_=Date.now();await putBufferToCos(d,i);const f=Date.now()-_,g=tools_1.generateMD5(a),y=await sign_1.getSignature(t.privateKey,t.appid);let w=await request_1.request({url:`${r}&task_id=${i.task_id}&new_hash=${g}&upload_cos_cost_time=${f}`,method:"post",body:zlib.gzipSync(pack_1.pack({[upload_1.SIGNATURE_FILE_NAME]:JSON.stringify({signature:y,version:config_1.CI_VERSION})}).buffer)});if(0!==jsonParse_1.jsonRespParse(w.body.toString(),r).errCode)throw new Error(w.body.toString());for(;;){const e=await sign_1.getSignature(t.privateKey,t.appid),r=await innerRequest(`${url_config_1.GET_ASYNC_RESULT}?task_id=${i.task_id}`,JSON.stringify({appid:t.appid,signature:e,robot:o}));if(1!==r.status){if(0===r.status)return{fallback:!1,body:r,uploadCOSCostTime:f};if(3===r.status)throw new Error(`upload failed with status ${r.status}, task not found`);throw new Error("upload failed with status "+r.status)}await new Promise(e=>{setTimeout(e,1e3)})}}exports.uploadByCos=uploadByCos;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadByCos=void 0;const tslib_1=require("tslib"),url_config_1=require("../utils/url_config"),tools_1=require("../utils/tools"),request_1=require("../utils/request"),sign_1=require("../utils/sign"),pack_1=require("./utils/pack"),zlib=require("zlib"),crypto=require("crypto"),config_1=require("../config"),upload_1=require("./upload"),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),jsonParse_1=require("../utils/jsonParse"),COS=require("cos-nodejs-sdk-v5");async function putBufferToCos(e,r){const t=new COS({Proxy:(0,request_1.getCiProxy)(),getAuthorization(e,t){t({TmpSecretId:r.secret_id,TmpSecretKey:r.secret_key,XCosSecurityToken:r.token,ExpiredTime:r.expired_time})}});try{return await new Promise((o,i)=>{t.putObject({Bucket:r.bucket,Region:"ap-shanghai",Key:r.object,Body:e,onProgress(e){}},(e,r)=>{if(e)return console.error(e),i(e.error);o(r)})})}catch(e){throw new Error("upload to cos failed: "+e.message)}}async function innerRequest(e,r){const t=await(0,request_1.request)({url:e,method:"post",body:r,headers:{"content-type":"application/json"}});let o;try{o=JSON.parse(t.body)}catch(r){const t=`request ${e} failed: resp body is not a valid json`;throw log_1.default.error(t),new Error(t)}if(0!==o.errCode)throw new Error(`request failed, errCode: ${o.errCode}, errMsg: ${o.errMsg}`);return o.data}async function uploadByCos(e,r,t,o){let i;try{const e=await(0,sign_1.getSignature)(t.privateKey,t.appid);i=await innerRequest(url_config_1.GET_UPLOAD_TOKEN,JSON.stringify({appid:t.appid,signature:e,robot:o}))}catch(e){return console.error("uploadToken error",e),{fallback:!0}}const s=(0,pack_1.pack)(e),a=zlib.gzipSync(s.buffer),n=crypto.randomBytes(12),u=crypto.createCipheriv("aes-256-gcm",Buffer.from(i.crypt_key,"base64"),n),c=Buffer.concat([u.update(a),u.final()]),l=u.getAuthTag(),p=Buffer.alloc(1);p.writeUInt8(l.length+n.length,0);const d=Buffer.concat([p,l,n,c]),_=Date.now();await putBufferToCos(d,i);const f=Date.now()-_,g=(0,tools_1.generateMD5)(a),y=await(0,sign_1.getSignature)(t.privateKey,t.appid),w=`${r}&task_id=${i.task_id}&new_hash=${g}&upload_cos_cost_time=${f}`;log_1.default.info("request url:",w);let q=await(0,request_1.request)({url:w,method:"post",body:zlib.gzipSync((0,pack_1.pack)({[upload_1.SIGNATURE_FILE_NAME]:JSON.stringify({signature:y,version:config_1.CI_VERSION})}).buffer)});if(0!==(0,jsonParse_1.jsonRespParse)(q.body.toString(),r).errCode)throw new Error(q.body.toString());for(;;){const e=await(0,sign_1.getSignature)(t.privateKey,t.appid),r=await innerRequest(`${url_config_1.GET_ASYNC_RESULT}?task_id=${i.task_id}`,JSON.stringify({appid:t.appid,signature:e,robot:o}));if(1!==r.status){if(0===r.status)return{fallback:!1,body:r,uploadCOSCostTime:f};if(3===r.status)throw new Error(`upload failed with status ${r.status}, task not found`);throw new Error("upload failed with status "+r.status)}await new Promise(e=>{setTimeout(e,1e3)})}}exports.uploadByCos=uploadByCos;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCompiledResult=exports.SIGNATURE_FILE_NAME=void 0;const tslib_1=require("tslib"),fs_extra_1=tslib_1.__importDefault(require("fs-extra")),compile_1=require("../core/compile"),config_1=require("../config"),error_1=require("../utils/error"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),cache_1=require("../utils/cache"),jszip_1=tslib_1.__importDefault(require("jszip")),path_1=tslib_1.__importDefault(require("path"));async function getCompiledResult(e,t){const{project:r,setting:o={},version:i="",onProgressUpdate:s=function(e){console.log(""+e)},threads:a=0,includedMap:l=!1}=e;if(process.env.COMPILE_THREADS=a.toString(),!i)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","version"),config_1.PARAM_ERROR);if(!r)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","project"),config_1.PARAM_ERROR);cache_1.cacheManager.clean();const _=await compile_1.compile(r,{setting:o,onProgressUpdate:s}),c={};if(Object.keys(_).sort().forEach(e=>{e.endsWith("js.map")&&!l||(c[e]=_[e])}),t){const e=new jszip_1.default;Object.keys(c).forEach(t=>{e.folder(path_1.default.dirname(t)).file(path_1.default.basename(t),c[t])});const r=await e.generateAsync({type:"nodebuffer"});fs_extra_1.default.ensureDirSync(path_1.default.dirname(t)),fs_extra_1.default.writeFileSync(t,r)}return c}exports.SIGNATURE_FILE_NAME="ci.signature",exports.getCompiledResult=getCompiledResult;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCompiledResult=exports.SIGNATURE_FILE_NAME=void 0;const tslib_1=require("tslib"),fs_extra_1=(0,tslib_1.__importDefault)(require("fs-extra")),compile_1=require("../core/compile"),config_1=require("../config"),error_1=require("../utils/error"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),cache_1=require("../utils/cache"),jszip_1=(0,tslib_1.__importDefault)(require("jszip")),path_1=(0,tslib_1.__importDefault)(require("path"));async function getCompiledResult(e,t){const{project:r,setting:o={},version:i="",onProgressUpdate:s=function(e){console.log(""+e)},threads:a=0,includedMap:l=!1}=e;if(process.env.COMPILE_THREADS=a.toString(),!i)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","version"),config_1.PARAM_ERROR);if(!r)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","project"),config_1.PARAM_ERROR);cache_1.cacheManager.clean();const _=await(0,compile_1.compile)(r,{setting:o,onProgressUpdate:s}),c={};if(Object.keys(_).sort().forEach(e=>{e.endsWith("js.map")&&!l||(c[e]=_[e])}),t){const e=new jszip_1.default;Object.keys(c).forEach(t=>{e.folder(path_1.default.dirname(t)).file(path_1.default.basename(t),c[t])});const r=await e.generateAsync({type:"nodebuffer"});fs_extra_1.default.ensureDirSync(path_1.default.dirname(t)),fs_extra_1.default.writeFileSync(t,r)}return c}exports.SIGNATURE_FILE_NAME="ci.signature",exports.getCompiledResult=getCompiledResult;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getDevSourceMap=void 0;const tslib_1=require("tslib"),fs_1=tslib_1.__importDefault(require("fs")),path_1=tslib_1.__importDefault(require("path")),log_1=tslib_1.__importDefault(require("../utils/log")),request_1=require("../utils/request"),url_config_1=require("../utils/url_config"),sign_1=require("../utils/sign"),JsZip=require("jszip"),ERR_MSG_PREFIX="download source map failed:";async function getDevSourceMap(e){return new Promise(async(r,t)=>{const{project:o,robot:a}=e;let{sourceMapSavePath:i}=e;if(!o){const e="params project is requried";return log_1.default.error(e),void t(e)}if("number"!=typeof a||Math.round(a)>30||Math.round(a)<=0){const e="params robot is invalid";return log_1.default.error(e),void t(e)}if(!i){const e="params sourceMapSavePath is invalid";return log_1.default.error(e),void t(e)}path_1.default.isAbsolute(i)||(i=path_1.default.join(process.cwd(),i));const s=await sign_1.getSignature(o.privateKey,o.appid),{body:u}=await request_1.request({url:url_config_1.GET_DEV_SOURCE_MAP,method:"post",gzip:!0,body:JSON.stringify({appid:o.appid,signature:s,robot:a}),headers:{"content-type":"application/json"}});let l;try{l=JSON.parse(u)}catch(e){const r=ERR_MSG_PREFIX+" resp body is not a valid json";return log_1.default.error(r),void t(r)}const n=l.data;if(!Array.isArray(n.sourcemap_list)){const e=`${ERR_MSG_PREFIX} respData.sourcemap_list, respData: ${JSON.stringify(n)}`;return log_1.default.error(e),void t(e)}const p=n.sourcemap_list,_=new JsZip;try{p.forEach(e=>{_.folder(path_1.default.dirname(e.fullpath)).file(path_1.default.basename(e.fullpath),e.sourcemap)})}catch(e){const r=ERR_MSG_PREFIX+" source map add folder or add file error";return log_1.default.error(r),void t(r)}_.generateAsync({type:"nodebuffer"}).then(e=>{try{fs_1.default.writeFileSync(i,e),r(void 0)}catch(e){const r=`${ERR_MSG_PREFIX} save source map to ${i} failed. Error detail: ${JSON.stringify(e)}`;return log_1.default.error(r),void t(r)}r(e)}).catch(()=>{const e=ERR_MSG_PREFIX+" source map generate zip error";log_1.default.error(e),t(e)})})}exports.getDevSourceMap=getDevSourceMap;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getDevSourceMap=void 0;const tslib_1=require("tslib"),fs_1=(0,tslib_1.__importDefault)(require("fs")),path_1=(0,tslib_1.__importDefault)(require("path")),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),request_1=require("../utils/request"),url_config_1=require("../utils/url_config"),sign_1=require("../utils/sign"),JsZip=require("jszip"),ERR_MSG_PREFIX="download source map failed:";async function getDevSourceMap(e){return new Promise(async(r,t)=>{const{project:o,robot:a}=e;let{sourceMapSavePath:i}=e;if(!o){const e="params project is requried";return log_1.default.error(e),void t(e)}if("number"!=typeof a||Math.round(a)>30||Math.round(a)<=0){const e="params robot is invalid";return log_1.default.error(e),void t(e)}if(!i){const e="params sourceMapSavePath is invalid";return log_1.default.error(e),void t(e)}path_1.default.isAbsolute(i)||(i=path_1.default.join(process.cwd(),i));const s=await(0,sign_1.getSignature)(o.privateKey,o.appid),{body:u}=await(0,request_1.request)({url:url_config_1.GET_DEV_SOURCE_MAP,method:"post",gzip:!0,body:JSON.stringify({appid:o.appid,signature:s,robot:a}),headers:{"content-type":"application/json"}});let l;try{l=JSON.parse(u)}catch(e){const r=ERR_MSG_PREFIX+" resp body is not a valid json";return log_1.default.error(r),void t(r)}const n=l.data;if(!Array.isArray(n.sourcemap_list)){const e=`${ERR_MSG_PREFIX} respData.sourcemap_list, respData: ${JSON.stringify(n)}`;return log_1.default.error(e),void t(e)}const p=n.sourcemap_list,_=new JsZip;try{p.forEach(e=>{_.folder(path_1.default.dirname(e.fullpath)).file(path_1.default.basename(e.fullpath),e.sourcemap)})}catch(e){const r=ERR_MSG_PREFIX+" source map add folder or add file error";return log_1.default.error(r),void t(r)}_.generateAsync({type:"nodebuffer"}).then(e=>{try{fs_1.default.writeFileSync(i,e),r(void 0)}catch(e){const r=`${ERR_MSG_PREFIX} save source map to ${i} failed. Error detail: ${JSON.stringify(e)}`;return log_1.default.error(r),void t(r)}r(e)}).catch(()=>{const e=ERR_MSG_PREFIX+" source map generate zip error";log_1.default.error(e),t(e)})})}exports.getDevSourceMap=getDevSourceMap;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getLatestVersion=void 0;const tslib_1=require("tslib"),request_1=require("../utils/request"),sign_1=require("../utils/sign"),config_1=require("../config"),error_1=require("../utils/error"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),querystring_1=tslib_1.__importDefault(require("querystring")),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse");async function getLatestVersion(e){const{project:r}=e;if(!r)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("getLatestVersion","project"),config_1.PARAM_ERROR);if("miniProgramPlugin"!==r.type&&"miniGamePlugin"!==r.type)throw new Error("getLatestVersion only support plugin type project");const t=await sign_1.getSignature(r.privateKey,r.appid),i={appid:r.appid,signature:t};try{const e=`${url_config_1.GET_LATEST_VERSION}?${querystring_1.default.stringify(i)}`,r=(await request_1.request({url:e,method:"get"})).body.toString(),t=jsonParse_1.jsonRespParse(r,e);if(0!==t.errCode)throw new Error(r);return t.data}catch(e){throw new error_1.CodeError(e.toString(),config_1.GET_LATEST_VERSION_CGI_ERR)}}exports.getLatestVersion=getLatestVersion;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getLatestVersion=void 0;const tslib_1=require("tslib"),request_1=require("../utils/request"),sign_1=require("../utils/sign"),config_1=require("../config"),error_1=require("../utils/error"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),querystring_1=(0,tslib_1.__importDefault)(require("querystring")),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse");async function getLatestVersion(e){const{project:r}=e;if(!r)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("getLatestVersion","project"),config_1.PARAM_ERROR);if("miniProgramPlugin"!==r.type&&"miniGamePlugin"!==r.type)throw new Error("getLatestVersion only support plugin type project");const t=await(0,sign_1.getSignature)(r.privateKey,r.appid),i={appid:r.appid,signature:t};try{const e=`${url_config_1.GET_LATEST_VERSION}?${querystring_1.default.stringify(i)}`,r=(await(0,request_1.request)({url:e,method:"get"})).body.toString(),t=(0,jsonParse_1.jsonRespParse)(r,e);if(0!==t.errCode)throw new Error(r);return t.data}catch(e){throw new error_1.CodeError(e.toString(),config_1.GET_LATEST_VERSION_CGI_ERR)}}exports.getLatestVersion=getLatestVersion;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadJsServer=exports.SIGNATURE_FILE_NAME=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),request_1=require("../utils/request"),packfile_1=require("./utils/packfile"),zlib_1=tslib_1.__importDefault(require("zlib")),sign_1=require("../utils/sign"),config_1=require("../config"),log_1=tslib_1.__importDefault(require("../utils/log")),error_1=require("../utils/error"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),querystring_1=tslib_1.__importDefault(require("querystring")),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse"),projectconfig_1=require("../core/json/projectconfig");async function uploadJsServer(e){var r;const{project:o,env:t}=e;if(!t||"test"!==t&&"release"!==t)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("uploadJsServer","env"),config_1.PARAM_ERROR);if(!o)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("uploadJsServer","project"),config_1.PARAM_ERROR);const i=projectconfig_1.getProjectConfigJSON(o);if("string"!=typeof i.jsserverRoot||!(null===(r=o.stat("",i.jsserverRoot))||void 0===r?void 0:r.isDirectory))throw new error_1.CodeError("please set a correct jsserverRoot value in project.config.json",config_1.PARAM_ERROR);const s=await packfile_1.packFiledir(path_1.default.posix.join(o.projectPath,i.jsserverRoot)),_=await sign_1.getSignature(o.privateKey,o.appid),l={type:"release"===t?0:1,appid:o.appid,signature:_};try{const e=`${url_config_1.UPLOAD_JS_SERVER}?${querystring_1.default.stringify(l)}`;log_1.default.info("request url:",e);const r=zlib_1.default.gzipSync(s.data),o=(await request_1.request({url:e,method:"post",body:r})).body.toString();if(0!==jsonParse_1.jsonRespParse(o,e).errCode)throw new Error(o);return!0}catch(e){throw new error_1.CodeError(e.toString(),config_1.UPLOAD_JS_SERVER_CGI_ERR)}}exports.SIGNATURE_FILE_NAME="ci.signature",exports.uploadJsServer=uploadJsServer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadJsServer=exports.SIGNATURE_FILE_NAME=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),request_1=require("../utils/request"),packfile_1=require("./utils/packfile"),zlib_1=(0,tslib_1.__importDefault)(require("zlib")),sign_1=require("../utils/sign"),config_1=require("../config"),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),error_1=require("../utils/error"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),querystring_1=(0,tslib_1.__importDefault)(require("querystring")),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse"),projectconfig_1=require("../core/json/projectconfig");async function uploadJsServer(e){var r;const{project:o,env:t}=e;if(!t||"test"!==t&&"release"!==t)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("uploadJsServer","env"),config_1.PARAM_ERROR);if(!o)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("uploadJsServer","project"),config_1.PARAM_ERROR);const i=(0,projectconfig_1.getProjectConfigJSON)(o);if("string"!=typeof i.jsserverRoot||!(null===(r=o.stat("",i.jsserverRoot))||void 0===r?void 0:r.isDirectory))throw new error_1.CodeError("please set a correct jsserverRoot value in project.config.json",config_1.PARAM_ERROR);const s=await(0,packfile_1.packFiledir)(path_1.default.posix.join(o.projectPath,i.jsserverRoot)),_=await(0,sign_1.getSignature)(o.privateKey,o.appid),l={type:"release"===t?0:1,appid:o.appid,signature:_};try{const e=`${url_config_1.UPLOAD_JS_SERVER}?${querystring_1.default.stringify(l)}`;log_1.default.info("request url:",e);const r=zlib_1.default.gzipSync(s.data),o=(await(0,request_1.request)({url:e,method:"post",body:r})).body.toString();if(0!==(0,jsonParse_1.jsonRespParse)(o,e).errCode)throw new Error(o);return!0}catch(e){throw new error_1.CodeError(e.toString(),config_1.UPLOAD_JS_SERVER_CGI_ERR)}}exports.SIGNATURE_FILE_NAME="ci.signature",exports.uploadJsServer=uploadJsServer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.preview=void 0;const tslib_1=require("tslib"),upload_1=require("./upload"),terminalQrcode_1=require("./utils/terminalQrcode"),fs_1=tslib_1.__importDefault(require("fs")),config_1=require("../config"),error_1=require("../utils/error"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),log_1=tslib_1.__importDefault(require("../utils/log"));async function preview(e){const r=Object.assign({},e);if(r.test=!0,r.version="0.0.1",r.qrcodeFormat||(r.qrcodeFormat="terminal"),!["base64","image","terminal"].includes(r.qrcodeFormat))throw new error_1.CodeError(locales_1.default.config.INVALID.format("qrcodeFormat"),config_1.PARAM_ERROR);if(["base64","image"].includes(r.qrcodeFormat)&&("string"!=typeof r.qrcodeOutputDest||"."===r.qrcodeOutputDest.trim()))throw new error_1.CodeError(locales_1.default.config.INVALID.format("qrcodeOutputDest"),config_1.PARAM_ERROR);const o=await upload_1.innerUpload(r);if(!o.respBody.qrcode_img)throw new Error("No `qrcode_img` in response.");if("terminal"===r.qrcodeFormat)try{const e=await terminalQrcode_1.generateTerminalQrcode(o.respBody.qrcode_img);log_1.default.log(e),log_1.default.log("terminal qrcode shown above")}catch(e){log_1.default.error("Termianl qrcode generate failed, but you can still visit the dev version on your cell phone.")}else if(r.qrcodeOutputDest)if("image"===r.qrcodeFormat)try{fs_1.default.writeFileSync(r.qrcodeOutputDest,Buffer.from(o.respBody.qrcode_img,"base64")),log_1.default.info(`Qrcode image saved, file path: '${r.qrcodeOutputDest}'`)}catch(e){throw new Error("write qrcode image error: "+JSON.stringify(e))}else if("base64"===r.qrcodeFormat)try{fs_1.default.writeFileSync(r.qrcodeOutputDest,"data:image/jpeg;base64,"+o.respBody.qrcode_img,"utf8"),log_1.default.info(`Qrcode base64 file saved, file path: '${r.qrcodeOutputDest}'`)}catch(e){throw new Error("write qrcode base64 error: "+JSON.stringify(e))}return{subPackageInfo:o.subPackageInfo,pluginInfo:o.pluginInfo}}exports.preview=preview;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.preview=void 0;const tslib_1=require("tslib"),upload_1=require("./upload"),terminalQrcode_1=require("./utils/terminalQrcode"),fs_1=(0,tslib_1.__importDefault)(require("fs")),config_1=require("../config"),error_1=require("../utils/error"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),log_1=(0,tslib_1.__importDefault)(require("../utils/log"));async function preview(e){const r=Object.assign({},e);if(r.test=!0,r.version="0.0.1",r.qrcodeFormat||(r.qrcodeFormat="terminal"),!["base64","image","terminal"].includes(r.qrcodeFormat))throw new error_1.CodeError(locales_1.default.config.INVALID.format("qrcodeFormat"),config_1.PARAM_ERROR);if(["base64","image"].includes(r.qrcodeFormat)&&("string"!=typeof r.qrcodeOutputDest||"."===r.qrcodeOutputDest.trim()))throw new error_1.CodeError(locales_1.default.config.INVALID.format("qrcodeOutputDest"),config_1.PARAM_ERROR);const o=await(0,upload_1.innerUpload)(r);if(!o.respBody.qrcode_img)throw new Error("No `qrcode_img` in response.");if("terminal"===r.qrcodeFormat)try{const e=await(0,terminalQrcode_1.generateTerminalQrcode)(o.respBody.qrcode_img);log_1.default.log(e),log_1.default.log("terminal qrcode shown above")}catch(e){log_1.default.error("Termianl qrcode generate failed, but you can still visit the dev version on your cell phone.")}else if(r.qrcodeOutputDest)if("image"===r.qrcodeFormat)try{fs_1.default.writeFileSync(r.qrcodeOutputDest,Buffer.from(o.respBody.qrcode_img,"base64")),log_1.default.info(`Qrcode image saved, file path: '${r.qrcodeOutputDest}'`)}catch(e){throw new Error("write qrcode image error: "+JSON.stringify(e))}else if("base64"===r.qrcodeFormat)try{fs_1.default.writeFileSync(r.qrcodeOutputDest,"data:image/jpeg;base64,"+o.respBody.qrcode_img,"utf8"),log_1.default.info(`Qrcode base64 file saved, file path: '${r.qrcodeOutputDest}'`)}catch(e){throw new Error("write qrcode base64 error: "+JSON.stringify(e))}return{subPackageInfo:o.subPackageInfo,pluginInfo:o.pluginInfo}}exports.preview=preview;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Project=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),glob_1=tslib_1.__importDefault(require("glob")),fs_1=tslib_1.__importDefault(require("fs")),projectattr_1=require("./projectattr"),tools_1=require("../utils/tools"),config_1=require("../config"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),error_1=require("../utils/error"),request_1=require("../utils/request"),projectconfig_1=require("../core/json/projectconfig"),defaultIgnores=["node_modules/**/*","**/node_modules/**","**/.git/**",".git/**/*","**/.svn/**",".svn/**/*",".DS_Store","**/.DS_Store"];class Project{constructor(t){this.miniprogramRoot="",this.pluginRoot="",this._appid="",this._projectPath="",this._dirSet=new Set,this._fileSet=new Set,this._fileBufferCache={},this._privateKey="",this._ignores=[];const{appid:e,type:i,projectPath:r,ignores:s,privateKey:o="",privateKeyPath:a=""}=t;if(!e)throw new error_1.CodeError(locales_1.default.config.SHOULD_NOT_BE_EMPTY.format("appid"),config_1.PARAM_ERROR);if(!r)throw new error_1.CodeError(locales_1.default.config.SHOULD_NOT_BE_EMPTY.format("projectPath"),config_1.PARAM_ERROR);if(o)this._privateKey=o;else{if(!a)throw new error_1.CodeError(locales_1.default.config.SHOULD_NOT_BE_EMPTY.format("privateKeyPath"),config_1.PARAM_ERROR);try{this._privateKey=fs_1.default.readFileSync(a).toString("utf8")}catch(t){throw new error_1.CodeError(t.toString(),config_1.PARAM_ERROR)}}this._appid=e,this._type=i||"miniProgram",this._projectPath=r,this.init(s)}init(t=[]){request_1.initGlobalProxy(),this._ignores=t,this.updateFiles()}cacheDirName(t){this._dirSet.has(t)||(this._dirSet.add(t),this.cacheDirName(path_1.default.posix.dirname(t)))}getTargetPath(t,e){return tools_1.normalizePath(path_1.default.posix.join(t,e)).replace(/\/$/,"").replace(/^\//,"")}updateFiles(){this._fileBufferCache={};const t=glob_1.default.sync("**",{nodir:!1,ignore:[...defaultIgnores,...this._ignores],nosort:!0,strict:!1,silent:!0,cwd:this.projectPath,absolute:!1,mark:!0,dot:!0});for(const e of t){const t=e.replace(/\\/g,path_1.default.posix.sep),i=fs_1.default.statSync(path_1.default.posix.join(this.projectPath,e));i.isDirectory()&&this.cacheDirName(t.replace(/\/$/,"")),i.isFile()&&(this._fileSet.add(t),this.cacheDirName(path_1.default.posix.dirname(t)))}}async attr(){return this._attr||(this._attr=await projectattr_1.getProjectAttr(this._privateKey,this._appid)),this._attr}get projectPath(){return this._projectPath}get appid(){return this._appid}get type(){return this._type}get privateKey(){return this._privateKey||""}getFilesAndDirs(){return{files:Array.from(this._fileSet),dirs:Array.from(this._dirSet)}}async getExtAppid(){if(this._extAppid)return this._extAppid;if(null!==this._extAppid)try{const t=await projectconfig_1.getProjectConfigJSON(this),{miniprogramRoot:e=""}=t,i=await this.getFile(e,"ext.json"),r=JSON.parse(i.toString("utf-8"));return r.extEnable&&r.extAppid?this._extAppid=r.extAppid:this._extAppid=null,this._extAppid}catch(t){this._extAppid=null}}stat(t,e){const i=this.getTargetPath(t,e);if(this._fileSet.has(i)){return{isFile:!0,isDirectory:!1,size:fs_1.default.statSync(path_1.default.posix.join(this.projectPath,i)).size}}if(this._dirSet.has(i))return{isFile:!1,isDirectory:!0}}getFile(t,e){const i=this.getTargetPath(t,e),r=tools_1.normalizePath(path_1.default.posix.join(this.projectPath,i));return this._fileBufferCache[i]?this._fileBufferCache[i]:fs_1.default.readFileSync(r,null)}getFileList(t,e=""){return Array.from(this._fileSet).filter(i=>(!e||path_1.default.posix.extname(i)===e)&&(!t||0===i.indexOf(t)))}async onFileChange(t,e){if(e=tools_1.normalizePath(e).replace(/\/$/,"").replace(/^\//,""),"add"!==t&&"addDir"!==t||(this.cacheDirName(path_1.default.posix.dirname(e)),this._fileSet.add(e)),"addDir"===t&&this.cacheDirName(e),"unlink"===t&&this._fileSet.has(e)&&this._fileSet.delete(e),"unlinkDir"===t&&this._dirSet.has(e)){this._dirSet.delete(e);const t=e+"/",i=Array.from(this._dirSet);for(const e of i)0===e.indexOf(t)&&this._dirSet.delete(e);const r=Array.from(this._fileSet);for(const e of r)0===e.indexOf(t)&&this._fileSet.delete(e)}"change"===t&&this._fileSet.has(e)&&delete this._fileBufferCache[e]}}exports.Project=Project;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Project=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),glob_1=(0,tslib_1.__importDefault)(require("glob")),fs_1=(0,tslib_1.__importDefault)(require("fs")),projectattr_1=require("./projectattr"),tools_1=require("../utils/tools"),config_1=require("../config"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),error_1=require("../utils/error"),request_1=require("../utils/request"),projectconfig_1=require("../core/json/projectconfig"),defaultIgnores=["node_modules/**/*","**/node_modules/**","**/.git/**",".git/**/*","**/.svn/**",".svn/**/*",".DS_Store","**/.DS_Store"];class Project{constructor(t){this.miniprogramRoot="",this.pluginRoot="",this._appid="",this._projectPath="",this._dirSet=new Set,this._fileSet=new Set,this._fileBufferCache={},this._privateKey="",this._ignores=[];const{appid:e,type:i,projectPath:r,ignores:s,privateKey:o="",privateKeyPath:a=""}=t;if(!e)throw new error_1.CodeError(locales_1.default.config.SHOULD_NOT_BE_EMPTY.format("appid"),config_1.PARAM_ERROR);if(!r)throw new error_1.CodeError(locales_1.default.config.SHOULD_NOT_BE_EMPTY.format("projectPath"),config_1.PARAM_ERROR);if(o)this._privateKey=o;else{if(!a)throw new error_1.CodeError(locales_1.default.config.SHOULD_NOT_BE_EMPTY.format("privateKeyPath"),config_1.PARAM_ERROR);try{this._privateKey=fs_1.default.readFileSync(a).toString("utf8")}catch(t){throw new error_1.CodeError(t.toString(),config_1.PARAM_ERROR)}}this._appid=e,this._type=i||"miniProgram",this._projectPath=r,this.init(s)}init(t=[]){(0,request_1.initGlobalProxy)(),this._ignores=t,this.updateFiles()}cacheDirName(t){this._dirSet.has(t)||(this._dirSet.add(t),this.cacheDirName(path_1.default.posix.dirname(t)))}getTargetPath(t,e){return(0,tools_1.normalizePath)(path_1.default.posix.join(t,e)).replace(/\/$/,"").replace(/^\//,"")}updateFiles(){this._fileBufferCache={};const t=glob_1.default.sync("**",{nodir:!1,ignore:[...defaultIgnores,...this._ignores],nosort:!0,strict:!1,silent:!0,cwd:this.projectPath,absolute:!1,mark:!0,dot:!0});for(const e of t){const t=e.replace(/\\/g,path_1.default.posix.sep),i=fs_1.default.statSync(path_1.default.posix.join(this.projectPath,e));i.isDirectory()&&this.cacheDirName(t.replace(/\/$/,"")),i.isFile()&&(this._fileSet.add(t),this.cacheDirName(path_1.default.posix.dirname(t)))}}async attr(){return this._attr||(this._attr=await(0,projectattr_1.getProjectAttr)(this._privateKey,this._appid)),this._attr}get projectPath(){return this._projectPath}get appid(){return this._appid}get type(){return this._type}get privateKey(){return this._privateKey||""}getFilesAndDirs(){return{files:Array.from(this._fileSet),dirs:Array.from(this._dirSet)}}async getExtAppid(){if(this._extAppid)return this._extAppid;if(null!==this._extAppid)try{const t=await(0,projectconfig_1.getProjectConfigJSON)(this),{miniprogramRoot:e=""}=t,i=await this.getFile(e,"ext.json"),r=JSON.parse(i.toString("utf-8"));return r.extEnable&&r.extAppid?this._extAppid=r.extAppid:this._extAppid=null,this._extAppid}catch(t){this._extAppid=null}}stat(t,e){const i=this.getTargetPath(t,e);if(this._fileSet.has(i)){return{isFile:!0,isDirectory:!1,size:fs_1.default.statSync(path_1.default.posix.join(this.projectPath,i)).size}}if(this._dirSet.has(i))return{isFile:!1,isDirectory:!0}}getFile(t,e){const i=this.getTargetPath(t,e),r=(0,tools_1.normalizePath)(path_1.default.posix.join(this.projectPath,i));return this._fileBufferCache[i]?this._fileBufferCache[i]:fs_1.default.readFileSync(r,null)}getFileList(t,e=""){return Array.from(this._fileSet).filter(i=>(!e||path_1.default.posix.extname(i)===e)&&(!t||0===i.indexOf(t)))}async onFileChange(t,e){if(e=(0,tools_1.normalizePath)(e).replace(/\/$/,"").replace(/^\//,""),"add"!==t&&"addDir"!==t||(this.cacheDirName(path_1.default.posix.dirname(e)),this._fileSet.add(e)),"addDir"===t&&this.cacheDirName(e),"unlink"===t&&this._fileSet.has(e)&&this._fileSet.delete(e),"unlinkDir"===t&&this._dirSet.has(e)){this._dirSet.delete(e);const t=e+"/",i=Array.from(this._dirSet);for(const e of i)0===e.indexOf(t)&&this._dirSet.delete(e);const r=Array.from(this._fileSet);for(const e of r)0===e.indexOf(t)&&this._fileSet.delete(e)}"change"===t&&this._fileSet.has(e)&&delete this._fileBufferCache[e]}}exports.Project=Project;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getProjectAttr=void 0;const tslib_1=require("tslib"),request_1=require("../utils/request"),sign_1=require("../utils/sign"),log_1=tslib_1.__importDefault(require("../utils/log")),config_1=require("../config"),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse"),testCache={};async function getProjectAttr(e,t){try{if(global.useAttrCache&&testCache[t])return testCache[t];const r=await sign_1.getSignature(e,t),{body:o}=await request_1.request({url:url_config_1.GET_ATTR_URL,method:"post",body:JSON.stringify({appid:t,signature:r}),headers:{"content-type":"application/json"}}),s=jsonParse_1.jsonRespParse(o,url_config_1.GET_ATTR_URL);if(0===s.errCode)return global.useAttrCache&&(testCache[t]=s.data),s.data;log_1.default.error(`get ${t} project attr fail errCode: ${s.errCode}, errMsg: ${s.errMsg}`)}catch(e){log_1.default.error(`get ${t} project attr fail ${e}`)}return config_1.DefaultProjectAttr}exports.getProjectAttr=getProjectAttr;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getProjectAttr=void 0;const tslib_1=require("tslib"),request_1=require("../utils/request"),sign_1=require("../utils/sign"),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),config_1=require("../config"),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse"),testCache={};async function getProjectAttr(e,t){try{if(global.useAttrCache&&testCache[t])return testCache[t];const r=await(0,sign_1.getSignature)(e,t),{body:o}=await(0,request_1.request)({url:url_config_1.GET_ATTR_URL,method:"post",body:JSON.stringify({appid:t,signature:r}),headers:{"content-type":"application/json"}}),s=(0,jsonParse_1.jsonRespParse)(o,url_config_1.GET_ATTR_URL);if(0===s.errCode)return global.useAttrCache&&(testCache[t]=s.data),s.data;log_1.default.error(`get ${t} project attr fail errCode: ${s.errCode}, errMsg: ${s.errMsg}`)}catch(e){log_1.default.error(`get ${t} project attr fail ${e}`)}return config_1.DefaultProjectAttr}exports.getProjectAttr=getProjectAttr;
package/dist/ci/upload.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.innerUpload=exports.upload=exports.SIGNATURE_FILE_NAME=void 0;const tslib_1=require("tslib"),request_1=require("../utils/request"),compile_1=require("../core/compile"),pack_1=require("./utils/pack"),zlib_1=tslib_1.__importDefault(require("zlib")),sign_1=require("../utils/sign"),tools_1=require("../utils/tools"),config_1=require("../config"),taskstatus_1=require("../utils/taskstatus"),log_1=tslib_1.__importDefault(require("../utils/log")),error_1=require("../utils/error"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),querystring_1=tslib_1.__importDefault(require("querystring")),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse"),cache_1=require("../utils/cache"),cos_upload_1=require("./cos-upload");async function upload(e){var o;const r=await innerUpload(e);return(null===(o=r.respBody)||void 0===o?void 0:o.dev_plugin_id)&&(log_1.default.log("Development Version Plugin ID: "+r.respBody.dev_plugin_id),r.devPluginId=r.respBody.dev_plugin_id),{subPackageInfo:r.subPackageInfo,pluginInfo:r.pluginInfo,devPluginId:r.devPluginId}}async function innerUpload(e){const{project:o,setting:r={},desc:t=`robot ${e.robot||"1"} use miniprogram-ci to upload at ${tools_1.formatTime(new Date)}`,version:i="",robot:s="1",onProgressUpdate:a=function(e){console.log(""+e)},test:n,pagePath:l,searchQuery:u,threads:p=0,useCOS:_=!1}=e;if(process.env.COMPILE_THREADS=p.toString(),!i)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","version"),config_1.PARAM_ERROR);if(!o)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","project"),config_1.PARAM_ERROR);cache_1.cacheManager.clean();let c=await compile_1.compile(o,{setting:r,onProgressUpdate:a}),d=config_1.CI_VERSION;const g={codeprotect:r.codeProtect?1:0,type:o.type,appid:o.appid,version:i,desc:t,robot:s},f={scene:e.scene||1011};let b;l&&(f.path=l,g.path=l),u&&(f.query=querystring_1.default.parse(u)),g.debugLaunchInfo=JSON.stringify(f),l&&u&&(g.path+="?"+u);let y={};try{b=await o.getFile(o.miniprogramRoot,"ext.json"),y=JSON.parse(b.toString("utf-8"))}catch(e){}if(y&&(y.extEnable&&(g.extAppId=y.extAppid),y.directCommit)){let e="";e=y.extEnable?"The code will be uploaded into the waiting list of extAppid.":"The code will be uploaded into the draft box of the third-party platform.",log_1.default.warn(e)}try{const e=new taskstatus_1.TaskStatus(locales_1.default.config.UPLOAD.toString());a(e);const r=`${n?url_config_1.TEST_SOURCE_URL:url_config_1.UPLOAD_URL}?${querystring_1.default.stringify(g)}`;log_1.default.info("request url:",r);let t,i=!1,l=0;if(_){const e=await cos_upload_1.uploadByCos(c,r,o,s);e.fallback?i=e.fallback:(t={body:e.body},l=e.uploadCOSCostTime)}if(!_||i){const e=await sign_1.getSignature(o.privateKey,o.appid);c[exports.SIGNATURE_FILE_NAME]=JSON.stringify({signature:e,version:d});const i=pack_1.pack(c),s=zlib_1.default.gzipSync(i.buffer);let a=(await request_1.request({url:r,method:"post",body:s})).body.toString();if(t=jsonParse_1.jsonRespParse(a,r),0!==t.errCode)throw new Error(a)}e.done(),a(e);const u={respBody:t.body};if(Array.isArray(t.body.subpackage_info)){const e=t.body.subpackage_info;u.subPackageInfo=e}if(Array.isArray(t.body.ext_plugin_info)){const e=t.body.ext_plugin_info;u.pluginInfo=e.map(e=>({pluginProviderAppid:e.provider,version:e.version,size:e.size}))}return u}catch(e){throw new error_1.CodeError(e.toString(),config_1.UPLOAD_CGI_ERR)}}exports.SIGNATURE_FILE_NAME="ci.signature",exports.upload=upload,exports.innerUpload=innerUpload;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.innerUpload=exports.upload=exports.SIGNATURE_FILE_NAME=void 0;const tslib_1=require("tslib"),request_1=require("../utils/request"),compile_1=require("../core/compile"),pack_1=require("./utils/pack"),zlib_1=(0,tslib_1.__importDefault)(require("zlib")),sign_1=require("../utils/sign"),tools_1=require("../utils/tools"),config_1=require("../config"),taskstatus_1=require("../utils/taskstatus"),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),error_1=require("../utils/error"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),querystring_1=(0,tslib_1.__importDefault)(require("querystring")),url_config_1=require("../utils/url_config"),jsonParse_1=require("../utils/jsonParse"),cache_1=require("../utils/cache"),cos_upload_1=require("./cos-upload");async function upload(e){var o;const r=await innerUpload(e);return(null===(o=r.respBody)||void 0===o?void 0:o.dev_plugin_id)&&(log_1.default.log("Development Version Plugin ID: "+r.respBody.dev_plugin_id),r.devPluginId=r.respBody.dev_plugin_id),{subPackageInfo:r.subPackageInfo,pluginInfo:r.pluginInfo,devPluginId:r.devPluginId}}async function innerUpload(e){const{project:o,setting:r={},desc:t=`robot ${e.robot||"1"} use miniprogram-ci to upload at ${(0,tools_1.formatTime)(new Date)}`,version:i="",robot:s="1",onProgressUpdate:a=function(e){console.log(""+e)},test:n,pagePath:l,searchQuery:u,threads:p=0,useCOS:_=!1}=e;if(process.env.COMPILE_THREADS=p.toString(),!i)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","version"),config_1.PARAM_ERROR);if(!o)throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("upload","project"),config_1.PARAM_ERROR);cache_1.cacheManager.clean();let c=await(0,compile_1.compile)(o,{setting:r,onProgressUpdate:a}),d=config_1.CI_VERSION;const g={codeprotect:r.codeProtect?1:0,type:o.type,appid:o.appid,version:i,desc:t,robot:s},f={scene:e.scene||1011};let b;l&&(f.path=l,g.path=l),u&&(f.query=querystring_1.default.parse(u)),g.debugLaunchInfo=JSON.stringify(f),l&&u&&(g.path+="?"+u);let y={};try{b=await o.getFile(o.miniprogramRoot,"ext.json"),y=JSON.parse(b.toString("utf-8"))}catch(e){}if(y&&(y.extEnable&&(g.extAppId=y.extAppid),y.directCommit)){let e="";e=y.extEnable?"The code will be uploaded into the waiting list of extAppid.":"The code will be uploaded into the draft box of the third-party platform.",log_1.default.warn(e)}try{const e=new taskstatus_1.TaskStatus(locales_1.default.config.UPLOAD.toString());a(e);const r=`${n?url_config_1.TEST_SOURCE_URL:url_config_1.UPLOAD_URL}?${querystring_1.default.stringify(g)}`;let t,i=!1,l=0;if(_){const e=await(0,cos_upload_1.uploadByCos)(c,r,o,s);e.fallback?i=e.fallback:(t={body:e.body},l=e.uploadCOSCostTime)}if(!_||i){const e=await(0,sign_1.getSignature)(o.privateKey,o.appid);c[exports.SIGNATURE_FILE_NAME]=JSON.stringify({signature:e,version:d});const i=(0,pack_1.pack)(c),s=zlib_1.default.gzipSync(i.buffer);log_1.default.info("request url:",r);let a=(await(0,request_1.request)({url:r,method:"post",body:s})).body.toString();if(t=(0,jsonParse_1.jsonRespParse)(a,r),0!==t.errCode)throw new Error(a)}e.done(),a(e);const u={respBody:t.body};if(Array.isArray(t.body.subpackage_info)){const e=t.body.subpackage_info;u.subPackageInfo=e}if(Array.isArray(t.body.ext_plugin_info)){const e=t.body.ext_plugin_info;u.pluginInfo=e.map(e=>({pluginProviderAppid:e.provider,version:e.version,size:e.size}))}return u}catch(e){throw new error_1.CodeError(e.toString(),config_1.UPLOAD_CGI_ERR)}}exports.SIGNATURE_FILE_NAME="ci.signature",exports.upload=upload,exports.innerUpload=innerUpload;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.packFiledir=exports.packFileMap=void 0;const tslib_1=require("tslib"),fs_1=tslib_1.__importDefault(require("fs")),path_1=tslib_1.__importDefault(require("path")),crypto_1=tslib_1.__importDefault(require("crypto")),glob_1=tslib_1.__importDefault(require("glob")),packFileMap=(e,t={})=>{const r=[Buffer.alloc(1),Buffer.alloc(4),Buffer.alloc(4),Buffer.alloc(4),Buffer.alloc(1)];r[0][0]=190,r[1].writeInt32BE(0,0),r[4][0]=237;let o=0;const l=[],c=[],f={};let i=0;for(const r in e){const n=Buffer.isBuffer(e[r])?e[r]:Buffer.from(e[r]);if(t.needMd5){const e=crypto_1.default.createHash("md5");e.update(n);const o=e.digest("hex");if(f[r]=o,t.ignoreFileMd5&&t.ignoreFileMd5[r]===o)continue}const a=Buffer.from("/"+r.replace(/\\/g,"/"));o++,l.push(a),c.push(n),/\.js\.map$/.test(r)||(i+=n.length,i+=a.length,i+=12)}let n=18+12*o+Buffer.concat(l).length;const a=l.map((e,t)=>{const r=Buffer.alloc(4);r.writeInt32BE(e.length,0);const o=Buffer.alloc(4),l=c[t].length,f=n;o.writeInt32BE(f,0),n+=l;const i=Buffer.alloc(4);return i.writeInt32BE(l,0),Buffer.concat([r,e,o,i])}),s=Buffer.alloc(4);s.writeInt32BE(o,0),a.unshift(s);const u=Buffer.concat(a),p=Buffer.concat(c);r[2].writeInt32BE(u.length,0),r[3].writeInt32BE(p.length,0);const B=Buffer.concat(r);return i+=18,{data:Buffer.concat([B,u,p]),totalSize:i,fileMd5Info:f}};exports.packFileMap=packFileMap;const packFiledir=(e,t={})=>new Promise((r,o)=>{const l=Object.assign({nodir:!0},t);glob_1.default(e+"/**",l,(l,c)=>{if(l)return o(l);const f={};c.forEach(t=>{const r=fs_1.default.readFileSync(t),o=path_1.default.relative(e,t);f[o]=r});const i=exports.packFileMap(f,t);r(i)})});exports.packFiledir=packFiledir;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.packFiledir=exports.packFileMap=void 0;const tslib_1=require("tslib"),fs_1=(0,tslib_1.__importDefault)(require("fs")),path_1=(0,tslib_1.__importDefault)(require("path")),crypto_1=(0,tslib_1.__importDefault)(require("crypto")),glob_1=(0,tslib_1.__importDefault)(require("glob")),packFileMap=(e,t={})=>{const r=[Buffer.alloc(1),Buffer.alloc(4),Buffer.alloc(4),Buffer.alloc(4),Buffer.alloc(1)];r[0][0]=190,r[1].writeInt32BE(0,0),r[4][0]=237;let o=0;const l=[],c=[],f={};let i=0;for(const r in e){const n=Buffer.isBuffer(e[r])?e[r]:Buffer.from(e[r]);if(t.needMd5){const e=crypto_1.default.createHash("md5");e.update(n);const o=e.digest("hex");if(f[r]=o,t.ignoreFileMd5&&t.ignoreFileMd5[r]===o)continue}const a=Buffer.from("/"+r.replace(/\\/g,"/"));o++,l.push(a),c.push(n),/\.js\.map$/.test(r)||(i+=n.length,i+=a.length,i+=12)}let n=18+12*o+Buffer.concat(l).length;const a=l.map((e,t)=>{const r=Buffer.alloc(4);r.writeInt32BE(e.length,0);const o=Buffer.alloc(4),l=c[t].length,f=n;o.writeInt32BE(f,0),n+=l;const i=Buffer.alloc(4);return i.writeInt32BE(l,0),Buffer.concat([r,e,o,i])}),s=Buffer.alloc(4);s.writeInt32BE(o,0),a.unshift(s);const u=Buffer.concat(a),p=Buffer.concat(c);r[2].writeInt32BE(u.length,0),r[3].writeInt32BE(p.length,0);const B=Buffer.concat(r);return i+=18,{data:Buffer.concat([B,u,p]),totalSize:i,fileMd5Info:f}};exports.packFileMap=packFileMap;const packFiledir=(e,t={})=>new Promise((r,o)=>{const l=Object.assign({nodir:!0},t);(0,glob_1.default)(e+"/**",l,(l,c)=>{if(l)return o(l);const f={};c.forEach(t=>{const r=fs_1.default.readFileSync(t),o=path_1.default.relative(e,t);f[o]=r});const i=(0,exports.packFileMap)(f,t);r(i)})});exports.packFiledir=packFiledir;
package/dist/cli.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const tslib_1=require("tslib"),ci=tslib_1.__importStar(require("./index")),yargs_1=tslib_1.__importDefault(require("yargs")),log_1=tslib_1.__importDefault(require("./utils/log"));async function run(){let e;function o(o){return{command:o,describe:o+" commands",builder:a=>a.usage(`Usage: $0 cloud ${o} <command>`).command({command:"upload",describe:"upload files",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},path:{alias:"p",desc:"path to the local folder",string:!0,demandOption:!0},remotePath:{alias:"rp",desc:"path to the remote folder",string:!0,demandOption:!0},concurrency:{alias:"c",desc:"concurrenct upload file count",number:!0,default:5,demandOption:!0}}).group(["env","path","remotePath"],"Options:"),handler:a=>e=e=>ci.cloud["storage"===o?"uploadStorage":"uploadStaticStorage"]({project:e,env:a.env,path:a.path,remotePath:a.remotePath})}),handler:()=>{}}}const a=yargs_1.default.usage("Usage: miniprogram-ci <command> [options]").command("$0","",a=>{a.command({command:"preview",describe:"preview project and get a preview qrcode",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"upload",describe:"upload project",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"get-compiled-result",describe:"get local compiled result, which will be uploaded to the server",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}).options("save-path",{alias:"sp",describe:"save path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"pack-npm",describe:"pack npm modules for miniprogram",builder:e=>e.demandOption("appid").demandOption("project-path").demandOption("private-key-path"),handler:()=>{}}).command({command:"get-dev-source-map",describe:"get source map of last upload version",builder:e=>e.demandOption("appid").demandOption("project-path").demandOption("private-key-path").options("robot",{alias:"r",describe:"the robot user who is uploading the project",string:!0,default:"1",choices:["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"],demandOption:!0}).options("source-map-save-path",{describe:"path to save source map zip",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"pack-npm-manually",describe:"pack npm modules with specified node_modules position",builder:e=>e.options({"pack-npm-manually-package-json-path":{desc:"path of node_modules related package.json",string:!0,demandOption:!0},"pack-npm-manually-miniprogram-npm-dist-dir":{desc:"path of target miniprogram_npm position",string:!0,demandOption:!0},ignores:{alias:"i",desc:"ignore files, glob format",array:!0,demandOption:!1}}).group(["pack-npm-manually-package-json-path","pack-npm-manually-miniprogram-npm-dist-dir","ignores"],"Options:"),handler:e=>{(async()=>{const o=await ci.packNpmManually({packageJsonPath:String(e.packNpmManuallyPackageJsonPath),miniprogramNpmDistDir:String(e.packNpmManuallyMiniprogramNpmDistDir),ignores:[]});log_1.default.log("pack npm done, pack result:",o)})()}}).command({command:"cloud",describe:"cloudbase commands",builder:a=>a.usage("Usage: $0 cloud <command>").command({command:"functions",describe:"cloudfunctions commands",builder:o=>o.usage("Usage: $0 cloud functions <command>").command({command:"upload",describe:"upload a cloudfunction",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},name:{alias:"n",desc:"cloudfunction name",string:!0,demandOption:!0},path:{alias:"p",desc:"path to the folder containing cloudfunction code",string:!0,demandOption:!0},"remote-npm-install":{alias:"rnpm",desc:"if true, node_modules will not be uploaded and NPM dependencies will be installed in the cloud. if false, node_modules will be uploaded.",boolean:!0}}).group(["env","name","path","remote-npm-install"],"Options:"),handler:o=>e=e=>ci.cloud.uploadFunction({project:e,env:o.env,name:o.name,path:o.path,remoteNpmInstall:o["remote-npm-install"]})}),handler:()=>{}}).command(o("storage")).command(o("staticstorage")).command({command:"container",describe:"container commands",builder:o=>o.usage("Usage: $0 cloud container <command>").command({command:"create",describe:"create a version by uploading package",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},flow:{desc:"flow ratio of this version",number:!0,demandOption:!0},cpu:{desc:"cpu cores of this version",number:!0,demandOption:!0},mem:{desc:"memory gigabytes of this version",number:!0,demandOption:!0},min:{desc:"minimal copies",number:!0,demandOption:!0},max:{desc:"maximum copies",number:!0,demandOption:!0},threshold:{desc:"cpu threshold for auto scaling",number:!0,demandOption:!0},port:{desc:"container listening port for liveness",number:!0,demandOption:!0},service:{desc:"service name",string:!0,demandOption:!0},remark:{desc:"version remark",string:!0},envParams:{desc:"stringified environment parameters Record<string, string>",string:!0,default:"{}"},allowHttp:{desc:"allow direct http request to this version",boolean:!0,default:!1},containerRoot:{alias:"cr",desc:"path to the container folder",string:!0,demandOption:!0},dockerfilePath:{desc:"custom docker file path",string:!0},buildDir:{desc:"build directory",string:!0}}).group(["env","flow","cpu","mem","min","max","threshold","port","service","remark","envParams","allowHttp","containerRoot","dockerfilePath","buildDir"],"Options:"),handler:o=>e=e=>ci.cloud.uploadContainer({project:e,env:o.env,containerRoot:o.containerRoot,version:{flowRatio:o.flow,cpu:o.cpu,mem:o.mem,minNum:o.min,maxNum:o.max,policyType:"cpu",policyThreshold:o.threshold,containerPort:o.port,serverName:o.service,uploadType:"package",buildDir:o.buildDir,envParams:o.envParams,dockerfilePath:o.dockerfilePath,useHttpRoute:o.allowHttp,versionRemark:o.remark}})}),handler:()=>{}}),handler:()=>{}}).options("appid",{describe:"project appid",string:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0}).options("locales",{describe:"set locales",default:"en",string:!0,choices:["en","zh"]}).option("verbose",{alias:"v",description:"run with verbose logging",default:!0,boolean:!0}).options("proxy",{describe:"proxy url",default:"",string:!0}).options("project-type",{alias:"pt",describe:"project type",string:!0,default:"miniProgram",choices:["miniProgram","miniGame","miniProgramPlugin","miniGamePlugin"]}).options("project-ignores",{alias:"pi",describe:"project ignores",array:!0}).options("upload-description",{alias:"ud",describe:"the uploaded code version description",string:!0}).options("upload-version",{alias:"uv",describe:"the uploaded code version description",string:!0,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("threads",{describe:"the number indicates how many threads will be created for compile the source files",number:!0,default:0,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("use-cos",{describe:"enable uploading code-package through the async way, which is more stable than the direct way",boolean:!0,default:!1,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("robot",{alias:"r",describe:"the robot user who is uploading the project",string:!0,default:"1",choices:["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"]}).options("enable-es6",{describe:"enable transform from es6 to es5",default:!1,boolean:!0}).options("enable-es7",{describe:"enable transform from es7 to es5",default:!1,boolean:!0}).options("enable-autoprefixwxss",{describe:"enable autoprefixwxss",default:!1,boolean:!0}).options("enable-minify-wxss",{describe:"enable minify wxss",default:!1,boolean:!0}).options("enable-minify-wxml",{describe:"enable minify wxml",default:!1,boolean:!0}).options("enable-minify-js",{describe:"enable minify js",default:!1,boolean:!0}).options("enable-minify",{describe:"enable minify js/wxml/wxss",default:!1,boolean:!0}).options("enable-code-protect",{describe:"enable code protect",default:!1,boolean:!0}).options("enable-qrcode",{describe:"enable generate weapp qrcode",default:!1,boolean:!0}).options("qrcode-format",{describe:"format of output qrcode",default:"terminal",string:!0,choices:["base64","image","terminal"]}).options("qrcode-output-dest",{describe:"destination of output qrcode",string:!0}).options("preview-page-path",{describe:"preview with page path",string:!0}).options("preview-search-query",{describe:'preview with query, Tips: "&" should be "\\&" in command line',string:!0}).options("scene",{describe:"preview with scene, about scene: https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html",string:!0})},e=>e).help().argv;if(a.help&&(yargs_1.default.showHelp(),process.exit(0)),a.proxy&&ci.proxy(a.proxy),ci.setLocale(a.locales),a._&&!a._.includes("pack-npm-manually")){const o=new ci.Project({appid:a.appid,projectPath:a.projectPath,privateKeyPath:a.privateKeyPath,type:a.projectType,ignores:a.projectIgnores});if(e)await e(o);else if(a._.includes("upload"))await ci.upload({project:o,setting:{es6:a.enableEs6,es7:a.enableEs7,minify:a.enableMinify,autoPrefixWXSS:a.enableHijack,minifyWXML:a.enableMinify||a.enableMinifyWxml,minifyWXSS:a.enableMinify||a.enableMinifyWxss,minifyJS:a.enableMinify||a.enableMinifyJs,codeProtect:a.enableCodeProtect},threads:a.threads,version:a.uploadVersion,desc:a.uploadDescription,robot:a.robot,onProgressUpdate:e=>{a.verbose&&log_1.default.log(""+e)}});else if(a._.includes("preview")){let e=a.scene;e&&(e=parseInt(e,10)),await ci.preview({project:o,setting:{es6:a.enableEs6,es7:a.enableEs7,minify:a.enableMinify,autoPrefixWXSS:a.enableHijack,minifyWXML:a.enableMinify||a.enableMinifyWxml,minifyWXSS:a.enableMinify||a.enableMinifyWxss,minifyJS:a.enableMinify||a.enableMinifyJs,codeProtect:a.enableCodeProtect},threads:a.threads,version:a.uploadVersion,desc:a.uploadDescription,robot:a.robot,pagePath:a.previewPagePath,searchQuery:a.previewSearchQuery,scene:e,onProgressUpdate:e=>{a.verbose&&log_1.default.log(""+e)},qrcodeFormat:a.qrcodeFormat,qrcodeOutputDest:a.qrcodeOutputDest})}else if(a._.includes("get-compiled-result")){let e=a.scene;e&&(e=parseInt(e,10)),await ci.getCompiledResult({project:o,setting:{es6:a.enableEs6,es7:a.enableEs7,minify:a.enableMinify,autoPrefixWXSS:a.enableHijack,minifyWXML:a.enableMinify||a.enableMinify,minifyWXSS:a.enableMinify||a.enableMinifyWxss,minifyJS:a.enableMinify||a.enableMinifyJs,codeProtect:a.enableCodeProtect},threads:a.threads,version:a.uploadVersion,desc:a.uploadDescription,robot:a.robot,pagePath:a.previewPagePath,searchQuery:a.previewSearchQuery,scene:e,onProgressUpdate:e=>{a.verbose&&log_1.default.log(""+e)},qrcodeFormat:a.qrcodeFormat,qrcodeOutputDest:a.qrcodeOutputDest},a.savePath)}else if(a._.includes("pack-npm")){const e=await ci.packNpm(o,{ignores:a.packNpmIgnores,reporter:e=>{a.verbose&&console.log(e)}})||[];e.length&&(log_1.default.log("Pack npm warning:"),log_1.default.log(e.map((e,o)=>`${o+1}. ${e.msg}\n \t> code: ${e.code}\n \t@ ${e.jsPath}:${e.startLine}-${e.endLine}`).join("---------------\n")))}else a._.includes("get-dev-source-map")&&(await ci.getDevSourceMap({project:o,robot:parseInt(a.robot,10),sourceMapSavePath:a.sourceMapSavePath}),log_1.default.info(`save sourcemap.zip to ${a.sourceMapSavePath} successfully`))}}run().catch(e=>{console.error(e),process.exit(1)});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const tslib_1=require("tslib"),ci=(0,tslib_1.__importStar)(require("./index")),yargs_1=(0,tslib_1.__importDefault)(require("yargs")),log_1=(0,tslib_1.__importDefault)(require("./utils/log"));async function run(){let e;function o(o){return{command:o,describe:o+" commands",builder:a=>a.usage(`Usage: $0 cloud ${o} <command>`).command({command:"upload",describe:"upload files",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},path:{alias:"p",desc:"path to the local folder",string:!0,demandOption:!0},remotePath:{alias:"rp",desc:"path to the remote folder",string:!0,demandOption:!0},concurrency:{alias:"c",desc:"concurrenct upload file count",number:!0,default:5,demandOption:!0}}).group(["env","path","remotePath"],"Options:"),handler:a=>e=e=>ci.cloud["storage"===o?"uploadStorage":"uploadStaticStorage"]({project:e,env:a.env,path:a.path,remotePath:a.remotePath})}),handler:()=>{}}}const a=yargs_1.default.usage("Usage: miniprogram-ci <command> [options]").command("$0","",a=>{a.command({command:"preview",describe:"preview project and get a preview qrcode",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"upload",describe:"upload project",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"get-compiled-result",describe:"get local compiled result, which will be uploaded to the server",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}).options("save-path",{alias:"sp",describe:"save path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"pack-npm",describe:"pack npm modules for miniprogram",builder:e=>e.demandOption("appid").demandOption("project-path").demandOption("private-key-path"),handler:()=>{}}).command({command:"get-dev-source-map",describe:"get source map of last upload version",builder:e=>e.demandOption("appid").demandOption("project-path").demandOption("private-key-path").options("robot",{alias:"r",describe:"the robot user who is uploading the project",string:!0,default:"1",choices:["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"],demandOption:!0}).options("source-map-save-path",{describe:"path to save source map zip",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"pack-npm-manually",describe:"pack npm modules with specified node_modules position",builder:e=>e.options({"pack-npm-manually-package-json-path":{desc:"path of node_modules related package.json",string:!0,demandOption:!0},"pack-npm-manually-miniprogram-npm-dist-dir":{desc:"path of target miniprogram_npm position",string:!0,demandOption:!0},ignores:{alias:"i",desc:"ignore files, glob format",array:!0,demandOption:!1}}).group(["pack-npm-manually-package-json-path","pack-npm-manually-miniprogram-npm-dist-dir","ignores"],"Options:"),handler:e=>{(async()=>{const o=await ci.packNpmManually({packageJsonPath:String(e.packNpmManuallyPackageJsonPath),miniprogramNpmDistDir:String(e.packNpmManuallyMiniprogramNpmDistDir),ignores:[]});log_1.default.log("pack npm done, pack result:",o)})()}}).command({command:"cloud",describe:"cloudbase commands",builder:a=>a.usage("Usage: $0 cloud <command>").command({command:"functions",describe:"cloudfunctions commands",builder:o=>o.usage("Usage: $0 cloud functions <command>").command({command:"upload",describe:"upload a cloudfunction",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},name:{alias:"n",desc:"cloudfunction name",string:!0,demandOption:!0},path:{alias:"p",desc:"path to the folder containing cloudfunction code",string:!0,demandOption:!0},"remote-npm-install":{alias:"rnpm",desc:"if true, node_modules will not be uploaded and NPM dependencies will be installed in the cloud. if false, node_modules will be uploaded.",boolean:!0}}).group(["env","name","path","remote-npm-install"],"Options:"),handler:o=>e=e=>ci.cloud.uploadFunction({project:e,env:o.env,name:o.name,path:o.path,remoteNpmInstall:o["remote-npm-install"]})}),handler:()=>{}}).command(o("storage")).command(o("staticstorage")).command({command:"container",describe:"container commands",builder:o=>o.usage("Usage: $0 cloud container <command>").command({command:"create",describe:"create a version by uploading package",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},flow:{desc:"flow ratio of this version",number:!0,demandOption:!0},cpu:{desc:"cpu cores of this version",number:!0,demandOption:!0},mem:{desc:"memory gigabytes of this version",number:!0,demandOption:!0},min:{desc:"minimal copies",number:!0,demandOption:!0},max:{desc:"maximum copies",number:!0,demandOption:!0},threshold:{desc:"cpu threshold for auto scaling",number:!0,demandOption:!0},port:{desc:"container listening port for liveness",number:!0,demandOption:!0},service:{desc:"service name",string:!0,demandOption:!0},remark:{desc:"version remark",string:!0},envParams:{desc:"stringified environment parameters Record<string, string>",string:!0,default:"{}"},allowHttp:{desc:"allow direct http request to this version",boolean:!0,default:!1},containerRoot:{alias:"cr",desc:"path to the container folder",string:!0,demandOption:!0},dockerfilePath:{desc:"custom docker file path",string:!0},buildDir:{desc:"build directory",string:!0}}).group(["env","flow","cpu","mem","min","max","threshold","port","service","remark","envParams","allowHttp","containerRoot","dockerfilePath","buildDir"],"Options:"),handler:o=>e=e=>ci.cloud.uploadContainer({project:e,env:o.env,containerRoot:o.containerRoot,version:{flowRatio:o.flow,cpu:o.cpu,mem:o.mem,minNum:o.min,maxNum:o.max,policyType:"cpu",policyThreshold:o.threshold,containerPort:o.port,serverName:o.service,uploadType:"package",buildDir:o.buildDir,envParams:o.envParams,dockerfilePath:o.dockerfilePath,useHttpRoute:o.allowHttp,versionRemark:o.remark}})}),handler:()=>{}}),handler:()=>{}}).options("appid",{describe:"project appid",string:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0}).options("locales",{describe:"set locales",default:"en",string:!0,choices:["en","zh"]}).option("verbose",{alias:"v",description:"run with verbose logging",default:!0,boolean:!0}).options("proxy",{describe:"proxy url",default:"",string:!0}).options("project-type",{alias:"pt",describe:"project type",string:!0,default:"miniProgram",choices:["miniProgram","miniGame","miniProgramPlugin","miniGamePlugin"]}).options("project-ignores",{alias:"pi",describe:"project ignores",array:!0}).options("upload-description",{alias:"ud",describe:"the uploaded code version description",string:!0}).options("upload-version",{alias:"uv",describe:"the uploaded code version description",string:!0,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("threads",{describe:"the number indicates how many threads will be created for compile the source files",number:!0,default:0,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("use-cos",{describe:"enable uploading code-package through the async way, which is more stable than the direct way",boolean:!0,default:!1,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("robot",{alias:"r",describe:"the robot user who is uploading the project",string:!0,default:"1",choices:["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"]}).options("enable-es6",{describe:"enable transform from es6 to es5",default:!1,boolean:!0}).options("enable-es7",{describe:"enable transform from es7 to es5",default:!1,boolean:!0}).options("enable-autoprefixwxss",{describe:"enable autoprefixwxss",default:!1,boolean:!0}).options("enable-minify-wxss",{describe:"enable minify wxss",default:!1,boolean:!0}).options("enable-minify-wxml",{describe:"enable minify wxml",default:!1,boolean:!0}).options("enable-minify-js",{describe:"enable minify js",default:!1,boolean:!0}).options("enable-minify",{describe:"enable minify js/wxml/wxss",default:!1,boolean:!0}).options("enable-code-protect",{describe:"enable code protect",default:!1,boolean:!0}).options("enable-qrcode",{describe:"enable generate weapp qrcode",default:!1,boolean:!0}).options("qrcode-format",{describe:"format of output qrcode",default:"terminal",string:!0,choices:["base64","image","terminal"]}).options("qrcode-output-dest",{describe:"destination of output qrcode",string:!0}).options("preview-page-path",{describe:"preview with page path",string:!0}).options("preview-search-query",{describe:'preview with query, Tips: "&" should be "\\&" in command line',string:!0}).options("scene",{describe:"preview with scene, about scene: https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html",string:!0})},e=>e).help().argv;if(a.help&&(yargs_1.default.showHelp(),process.exit(0)),a.proxy&&ci.proxy(a.proxy),ci.setLocale(a.locales),a._&&!a._.includes("pack-npm-manually")){const o=new ci.Project({appid:a.appid,projectPath:a.projectPath,privateKeyPath:a.privateKeyPath,type:a.projectType,ignores:a.projectIgnores});if(e)await e(o);else if(a._.includes("upload"))await ci.upload({project:o,setting:{es6:a.enableEs6,es7:a.enableEs7,minify:a.enableMinify,autoPrefixWXSS:a.enableHijack,minifyWXML:a.enableMinify||a.enableMinifyWxml,minifyWXSS:a.enableMinify||a.enableMinifyWxss,minifyJS:a.enableMinify||a.enableMinifyJs,codeProtect:a.enableCodeProtect},threads:a.threads,version:a.uploadVersion,desc:a.uploadDescription,robot:a.robot,onProgressUpdate:e=>{a.verbose&&log_1.default.log(""+e)}});else if(a._.includes("preview")){let e=a.scene;e&&(e=parseInt(e,10)),await ci.preview({project:o,setting:{es6:a.enableEs6,es7:a.enableEs7,minify:a.enableMinify,autoPrefixWXSS:a.enableHijack,minifyWXML:a.enableMinify||a.enableMinifyWxml,minifyWXSS:a.enableMinify||a.enableMinifyWxss,minifyJS:a.enableMinify||a.enableMinifyJs,codeProtect:a.enableCodeProtect},threads:a.threads,version:a.uploadVersion,desc:a.uploadDescription,robot:a.robot,pagePath:a.previewPagePath,searchQuery:a.previewSearchQuery,scene:e,onProgressUpdate:e=>{a.verbose&&log_1.default.log(""+e)},qrcodeFormat:a.qrcodeFormat,qrcodeOutputDest:a.qrcodeOutputDest})}else if(a._.includes("get-compiled-result")){let e=a.scene;e&&(e=parseInt(e,10)),await ci.getCompiledResult({project:o,setting:{es6:a.enableEs6,es7:a.enableEs7,minify:a.enableMinify,autoPrefixWXSS:a.enableHijack,minifyWXML:a.enableMinify||a.enableMinify,minifyWXSS:a.enableMinify||a.enableMinifyWxss,minifyJS:a.enableMinify||a.enableMinifyJs,codeProtect:a.enableCodeProtect},threads:a.threads,version:a.uploadVersion,desc:a.uploadDescription,robot:a.robot,pagePath:a.previewPagePath,searchQuery:a.previewSearchQuery,scene:e,onProgressUpdate:e=>{a.verbose&&log_1.default.log(""+e)},qrcodeFormat:a.qrcodeFormat,qrcodeOutputDest:a.qrcodeOutputDest},a.savePath)}else if(a._.includes("pack-npm")){const e=await ci.packNpm(o,{ignores:a.packNpmIgnores,reporter:e=>{a.verbose&&console.log(e)}})||[];e.length&&(log_1.default.log("Pack npm warning:"),log_1.default.log(e.map((e,o)=>`${o+1}. ${e.msg}\n \t> code: ${e.code}\n \t@ ${e.jsPath}:${e.startLine}-${e.endLine}`).join("---------------\n")))}else a._.includes("get-dev-source-map")&&(await ci.getDevSourceMap({project:o,robot:parseInt(a.robot,10),sourceMapSavePath:a.sourceMapSavePath}),log_1.default.info(`save sourcemap.zip to ${a.sourceMapSavePath} successfully`))}}run().catch(e=>{console.error(e),process.exit(1)});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.boundTransactRequest=exports.get3rdCloudCodeSecret=exports.initCloudAPI=void 0;const tslib_1=require("tslib"),crypto_1=tslib_1.__importDefault(require("crypto")),request_1=tslib_1.__importDefault(require("request")),cloudAPI=tslib_1.__importStar(require("../vendor/cloud-api/src/index")),request_2=require("../utils/request"),sign_1=require("../utils/sign"),jsonParse_1=require("../utils/jsonParse"),urlConfig=tslib_1.__importStar(require("../utils/url_config"));function initCloudAPI(e){cloudAPI.setDefaultAppID(e),cloudAPI.setTransactType(cloudAPI.TransactType.IDE),cloudAPI.setRequest(transactRequest)}exports.initCloudAPI=initCloudAPI;const SERVICE_CLOUD_URL={scf:"https://scf.tencentcloudapi.com",flexdb:"https://flexdb.tencentcloudapi.com",tcb:"https://tcb.tencentcloudapi.com"},DIRECT_CLOUD_API_SET=new Set(["UpdateFunctionCode","CreateFunction"]);async function transactRequest(e){var t;const r=e.project,o=await sign_1.getSignature(r.privateKey,r.appid),s=await r.getExtAppid();if(DIRECT_CLOUD_API_SET.has(e.identity.action||"")&&Boolean(SERVICE_CLOUD_URL[e.identity.service])){const{body:i}=await request_2.request({url:urlConfig.GET_CLOUD_API_SIGNATURE,method:"post",body:JSON.stringify({appid:r.appid,extAppid:s||void 0,signature:o,signReq:{action:e.identity.action,path:e.identity.path,service:e.identity.service,version:e.identity.version,region:e.identity.region,hashed_postdata:crypto_1.default.createHash("sha256").update(e.postdata).digest("hex")}}),headers:{"content-type":"application/json"}}),n=jsonParse_1.jsonRespParse(i,"cloudapi.getCloudAPISignedHeader");if(n.errCode)throw new Error(`getCloudAPISignedHeader failed, errCode: ${i.errCode}, errMsg: ${i.errMsg}`);const a=n.header;if(!a)throw new Error("empty header, recv cgi resp: "+i);const{resp:d}=await new Promise((t,r)=>{request_1.default({url:SERVICE_CLOUD_URL[e.identity.service],method:"post",body:e.postdata,headers:a.split("\n").map(e=>e.trim()).reduce((e,t)=>{const r=t.indexOf(":");return e[t.slice(0,r)]=t.slice(r+1),e},{})},(e,o)=>{e?r(e):t({resp:o})})});if(413===d.statusCode)throw new Error("Body too large");const p=d.body;if(!p)throw new Error("Empty body "+d);const c="string"==typeof p?JSON.parse(p):p;if(!c.Response||(null===(t=c.Response)||void 0===t?void 0:t.Error))throw new Error("TencentCloud API error: "+p);return p}{const{resp:t,body:i}=await request_2.request({url:urlConfig.cloudAPIAgentURL,method:"post",body:JSON.stringify({appid:r.appid,extAppid:s||void 0,signature:o,agentReq:Object.assign({postdata:e.postdata,test:!1},e.identity)}),headers:Object.assign(Object.assign({},e.headers),{"content-type":"application/json"})});if(413===t.statusCode)throw new Error("Body too large");if(!i)throw new Error("Empty body "+t);const n="string"==typeof i?JSON.parse(i):i;if(n.errCode)throw new Error(`${n.errCode} ${n.errMsg}`);const a=n.data;if(!a||!a.base_resp||"0"!=a.base_resp.ret){if(80210===a.base_resp.ret)throw new Error("NO_CLOUD_MANAGE_PERMISSION_AUTHORIZED_TO_3RD_PLATFORM");throw new Error("Base resp abnormal, "+JSON.stringify(null==a?void 0:a.base_resp))}return a.content}}async function get3rdCloudCodeSecret(e){const t=await e.attr();let r,o="",s={};try{r=await e.getFile(e.miniprogramRoot,"ext.json"),s=JSON.parse(r.toString("utf-8"))}catch(e){}if(s&&s.extEnable&&(o=s.extAppid||""),(null==t?void 0:t.platform)&&o)try{const t=await sign_1.getSignature(e.privateKey,e.appid),{body:r}=await request_2.request({url:urlConfig.get3rdCloudCodeSecret,method:"post",headers:{"content-type":"application/json"},body:JSON.stringify({appid:e.appid,extAppid:o,signature:t})}),s=jsonParse_1.jsonRespParse(r);if(0===s.errCode)return s.codeSecret;throw new Error("get 3rd cloud codesecret invalid resp "+JSON.stringify(r))}catch(e){throw new Error("get 3rd cloud codesecret error "+e)}}function boundTransactRequest(e){return t=>transactRequest(Object.assign(Object.assign({},t),{project:e}))}exports.get3rdCloudCodeSecret=get3rdCloudCodeSecret,exports.boundTransactRequest=boundTransactRequest;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.boundTransactRequest=exports.get3rdCloudCodeSecret=exports.initCloudAPI=void 0;const tslib_1=require("tslib"),crypto_1=(0,tslib_1.__importDefault)(require("crypto")),request_1=(0,tslib_1.__importDefault)(require("request")),cloudAPI=(0,tslib_1.__importStar)(require("../vendor/cloud-api/src/index")),request_2=require("../utils/request"),sign_1=require("../utils/sign"),jsonParse_1=require("../utils/jsonParse"),urlConfig=(0,tslib_1.__importStar)(require("../utils/url_config"));function initCloudAPI(e){cloudAPI.setDefaultAppID(e),cloudAPI.setTransactType(cloudAPI.TransactType.IDE),cloudAPI.setRequest(transactRequest)}exports.initCloudAPI=initCloudAPI;const SERVICE_CLOUD_URL={scf:"https://scf.tencentcloudapi.com",flexdb:"https://flexdb.tencentcloudapi.com",tcb:"https://tcb.tencentcloudapi.com"},DIRECT_CLOUD_API_SET=new Set(["UpdateFunctionCode","CreateFunction"]);async function transactRequest(e){var t;const r=e.project,o=await(0,sign_1.getSignature)(r.privateKey,r.appid),s=await r.getExtAppid();if(DIRECT_CLOUD_API_SET.has(e.identity.action||"")&&Boolean(SERVICE_CLOUD_URL[e.identity.service])){const{body:i}=await(0,request_2.request)({url:urlConfig.GET_CLOUD_API_SIGNATURE,method:"post",body:JSON.stringify({appid:r.appid,extAppid:s||void 0,signature:o,signReq:{action:e.identity.action,path:e.identity.path,service:e.identity.service,version:e.identity.version,region:e.identity.region,hashed_postdata:crypto_1.default.createHash("sha256").update(e.postdata).digest("hex")}}),headers:{"content-type":"application/json"}}),n=(0,jsonParse_1.jsonRespParse)(i,"cloudapi.getCloudAPISignedHeader");if(n.errCode)throw new Error(`getCloudAPISignedHeader failed, errCode: ${i.errCode}, errMsg: ${i.errMsg}`);const a=n.header;if(!a)throw new Error("empty header, recv cgi resp: "+i);const{resp:d}=await new Promise((t,r)=>{(0,request_1.default)({url:SERVICE_CLOUD_URL[e.identity.service],method:"post",body:e.postdata,headers:a.split("\n").map(e=>e.trim()).reduce((e,t)=>{const r=t.indexOf(":");return e[t.slice(0,r)]=t.slice(r+1),e},{})},(e,o)=>{e?r(e):t({resp:o})})});if(413===d.statusCode)throw new Error("Body too large");const p=d.body;if(!p)throw new Error("Empty body "+d);const c="string"==typeof p?JSON.parse(p):p;if(!c.Response||(null===(t=c.Response)||void 0===t?void 0:t.Error))throw new Error("TencentCloud API error: "+p);return p}{const{resp:t,body:i}=await(0,request_2.request)({url:urlConfig.cloudAPIAgentURL,method:"post",body:JSON.stringify({appid:r.appid,extAppid:s||void 0,signature:o,agentReq:Object.assign({postdata:e.postdata,test:!1},e.identity)}),headers:Object.assign(Object.assign({},e.headers),{"content-type":"application/json"})});if(413===t.statusCode)throw new Error("Body too large");if(!i)throw new Error("Empty body "+t);const n="string"==typeof i?JSON.parse(i):i;if(n.errCode)throw new Error(`${n.errCode} ${n.errMsg}`);const a=n.data;if(!a||!a.base_resp||"0"!=a.base_resp.ret){if(80210===a.base_resp.ret)throw new Error("NO_CLOUD_MANAGE_PERMISSION_AUTHORIZED_TO_3RD_PLATFORM");throw new Error("Base resp abnormal, "+JSON.stringify(null==a?void 0:a.base_resp))}return a.content}}async function get3rdCloudCodeSecret(e){const t=await e.attr();let r,o="",s={};try{r=await e.getFile(e.miniprogramRoot,"ext.json"),s=JSON.parse(r.toString("utf-8"))}catch(e){}if(s&&s.extEnable&&(o=s.extAppid||""),(null==t?void 0:t.platform)&&o)try{const t=await(0,sign_1.getSignature)(e.privateKey,e.appid),{body:r}=await(0,request_2.request)({url:urlConfig.get3rdCloudCodeSecret,method:"post",headers:{"content-type":"application/json"},body:JSON.stringify({appid:e.appid,extAppid:o,signature:t})}),s=(0,jsonParse_1.jsonRespParse)(r);if(0===s.errCode)return s.codeSecret;throw new Error("get 3rd cloud codesecret invalid resp "+JSON.stringify(r))}catch(e){throw new Error("get 3rd cloud codesecret error "+e)}}function boundTransactRequest(e){return t=>transactRequest(Object.assign(Object.assign({},t),{project:e}))}exports.get3rdCloudCodeSecret=get3rdCloudCodeSecret,exports.boundTransactRequest=boundTransactRequest;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTimeTrigger=void 0;const tslib_1=require("tslib"),cloudAPI=tslib_1.__importStar(require("../vendor/cloud-api")),cloudapi_1=require("./cloudapi"),error_1=require("../utils/error"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),config_1=require("../config"),requiredParams=["project","envId","functionName","triggersConfig"];async function createTimeTrigger(r){if(!Array.isArray(r.triggersConfig))throw new Error("triggersConfig is not Array");requiredParams.forEach(e=>{if(!r[e])throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("cloud.createTimeTrigger",e),config_1.PARAM_ERROR)});const{project:e,envId:i,functionName:t,triggersConfig:o}=r,n=await e.getExtAppid();cloudapi_1.initCloudAPI(n||e.appid);const{envList:a}=await cloudAPI.tcbGetEnvironments({},{request:cloudapi_1.boundTransactRequest(e),transactType:cloudAPI.TransactType.IDE}),c=a.find(r=>r.envId===i);if(!c)throw new Error("env not found");const g=c.functions[0].region,s=o.map((r,e)=>{if("Object"!==Object.prototype.toString.call(r).slice(8,-1))throw new Error(`triggersConfig index ${e} is not Object`);if(!r.name)throw new Error(`triggersConfig index ${e} required name`);if(!r.type)throw new Error(`triggersConfig index ${e} required type`);switch(r.type){case"timer":if(!r.config)throw new Error(`triggersConfig index ${e} required config`)}return{triggerName:r.name,type:r.type,triggerDesc:r.config}});try{return await cloudAPI.scfBatchCreateTrigger({namespace:i,region:g,functionName:t,triggers:s},{request:cloudapi_1.boundTransactRequest(e),transactType:cloudAPI.TransactType.IDE}),"创建定时触发器成功"}catch(r){return"请检查传入的 triggersConfig 是否符合格式"}}exports.createTimeTrigger=createTimeTrigger;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTimeTrigger=void 0;const tslib_1=require("tslib"),cloudAPI=(0,tslib_1.__importStar)(require("../vendor/cloud-api")),cloudapi_1=require("./cloudapi"),error_1=require("../utils/error"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),config_1=require("../config"),requiredParams=["project","envId","functionName","triggersConfig"];async function createTimeTrigger(r){if(!Array.isArray(r.triggersConfig))throw new Error("triggersConfig is not Array");requiredParams.forEach(e=>{if(!r[e])throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("cloud.createTimeTrigger",e),config_1.PARAM_ERROR)});const{project:e,envId:i,functionName:t,triggersConfig:o}=r,n=await e.getExtAppid();(0,cloudapi_1.initCloudAPI)(n||e.appid);const{envList:a}=await cloudAPI.tcbGetEnvironments({},{request:(0,cloudapi_1.boundTransactRequest)(e),transactType:cloudAPI.TransactType.IDE}),c=a.find(r=>r.envId===i);if(!c)throw new Error("env not found");const g=c.functions[0].region,s=o.map((r,e)=>{if("Object"!==Object.prototype.toString.call(r).slice(8,-1))throw new Error(`triggersConfig index ${e} is not Object`);if(!r.name)throw new Error(`triggersConfig index ${e} required name`);if(!r.type)throw new Error(`triggersConfig index ${e} required type`);switch(r.type){case"timer":if(!r.config)throw new Error(`triggersConfig index ${e} required config`)}return{triggerName:r.name,type:r.type,triggerDesc:r.config}});try{return await cloudAPI.scfBatchCreateTrigger({namespace:i,region:g,functionName:t,triggers:s},{request:(0,cloudapi_1.boundTransactRequest)(e),transactType:cloudAPI.TransactType.IDE}),"创建定时触发器成功"}catch(r){return"请检查传入的 triggersConfig 是否符合格式"}}exports.createTimeTrigger=createTimeTrigger;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadContainer=void 0;const tslib_1=require("tslib"),request_1=tslib_1.__importDefault(require("request")),utils_1=require("./utils"),util_1=require("util"),request_2=require("../utils/request"),request=util_1.promisify(request_1.default);async function uploadContainer(e){var t;const{currentEnv:o,cloudAPI:a}=await utils_1.initEnvironmentByProject(e.project,e.env),r=e.version;if("package"===r.uploadType){const o=await a.tcbDescribeCloudBaseBuildService({envId:e.env,serviceName:e.version.serverName}),i=utils_1.zipFile(e.containerRoot,{});console.log("[ ] uploading container package..."),console.time("[+] upload elapsed");const s=await request({url:o.uploadUrl,proxy:request_2.getCiProxy(),method:"PUT",headers:Object.assign({"Content-type":"application/zip"},null===(t=o.uploadHeaders)||void 0===t?void 0:t.reduce((e,{key:t,value:o})=>(e[t]=o,e),{})),body:i.generateNodeStream()});console.timeEnd("[+] upload elapsed"),console.log("[+] upload file status",s.statusCode),r.packageName=o.packageName,r.packageVersion=o.packageVersion}const i=await a.tcbCreateCloudBaseRunServerVersion(Object.assign(Object.assign({},r),{envId:o.envId}));return console.log("[+] create version done.",i),i}exports.uploadContainer=uploadContainer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadContainer=void 0;const tslib_1=require("tslib"),request_1=(0,tslib_1.__importDefault)(require("request")),utils_1=require("./utils"),util_1=require("util"),request_2=require("../utils/request"),request=(0,util_1.promisify)(request_1.default);async function uploadContainer(e){var t;const{currentEnv:o,cloudAPI:a}=await(0,utils_1.initEnvironmentByProject)(e.project,e.env),r=e.version;if("package"===r.uploadType){const o=await a.tcbDescribeCloudBaseBuildService({envId:e.env,serviceName:e.version.serverName}),i=(0,utils_1.zipFile)(e.containerRoot,{});console.log("[ ] uploading container package..."),console.time("[+] upload elapsed");const s=await request({url:o.uploadUrl,proxy:(0,request_2.getCiProxy)(),method:"PUT",headers:Object.assign({"Content-type":"application/zip"},null===(t=o.uploadHeaders)||void 0===t?void 0:t.reduce((e,{key:t,value:o})=>(e[t]=o,e),{})),body:i.generateNodeStream()});console.timeEnd("[+] upload elapsed"),console.log("[+] upload file status",s.statusCode),r.packageName=o.packageName,r.packageVersion=o.packageVersion}const i=await a.tcbCreateCloudBaseRunServerVersion(Object.assign(Object.assign({},r),{envId:o.envId}));return console.log("[+] create version done.",i),i}exports.uploadContainer=uploadContainer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadFiles=void 0;const tslib_1=require("tslib"),log_1=tslib_1.__importDefault(require("../utils/log")),error_1=require("../utils/error"),config_1=require("../config"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),request_1=require("../utils/request"),sign_1=require("../utils/sign"),urlConfig=tslib_1.__importStar(require("../utils/url_config")),utils_1=require("./utils"),{resolve:resolve,relative:relative}=require("path"),{readdir:readdir,readFile:readFile}=require("fs").promises,COS=require("cos-nodejs-sdk-v5"),requiredParams=["project","env","path"];async function uploadFiles(e,t){var r,i;const{currentEnv:o}=await utils_1.initEnvironmentByProject(e.project,e.env);requiredParams.forEach(t=>{if(!e[t])throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("cloud.storage",t),config_1.PARAM_ERROR)});const{project:a,remotePath:s="",path:n,concurrency:l=5}=e;let c=s.endsWith("/")?s:s+"/";if(c.startsWith("/")&&(c=c.slice(1)),"staticstorage"!==t)if("storage"!==t);else{const e=null===(i=o.storages)||void 0===i?void 0:i[0];if(!e)throw new Error(`invalid storage status: ${e}. exiting`);await beginUpload(n,e,c,a,l)}else{const e=null===(r=o.staticStorages)||void 0===r?void 0:r[0];if(!e||"online"!==e.status)throw new Error(`invalid static storage status: ${e.status}. exiting`);await beginUpload(n,e,c,a,l)}}async function beginUpload(e,t,r,i,o){const a=await getFiles(e),s=a.map(t=>relative(e,t));log_1.default.info("[storage]","done. begin upload to cos.");const n=await putObjectToCos(s.map((e,i)=>({Bucket:t.bucket,Region:t.region,Key:r+e,Body:a[i]})),i,t,o);log_1.default.info("[storage]",n)}async function getFiles(e){const t=await readdir(e,{withFileTypes:!0}),r=await Promise.all(t.map(t=>{const r=resolve(e,t.name);return t.isDirectory()?getFiles(r):r}));return Array.prototype.concat(...r)}async function putObjectToCos(e,t,r,i){const o=new COS({Proxy:request_1.getCiProxy(),getAuthorization:await getAuthorizationThunk(t,r)}),a=await callCiServerApi(t,"CLOUD_ROUTE_GETCOSMETA",{action:"batchencode",bucket:r.bucket,mpappid:t.appid,paths:e.map(e=>e.Key)},e=>JSON.parse(JSON.parse(e).data.data).x_cos_meta_field_strs),s=new Map(e.map((e,t)=>[e.Key,a[t]]));try{const t=e.length;let r="";const a=async e=>{if(!e)return;const t=await o.putObject(Object.assign(Object.assign({},e),{Body:await readFile(e.Body),Headers:{"x-cos-meta-fileid":s.get(e.Key)}}));return r=e.Key,t};for(await a(e.shift());e.length>0;){const o=e.splice(0,Math.min(e.length,i)).map(a);log_1.default.info(`[storage] Uploading ${t-e.length} / ${t}: ${r}`),await Promise.all(o)}return{success:!0}}catch(e){throw new Error("upload to cos failed: "+e.message)}}async function getAuthorizationThunk(e,t){return async function(r,i){var o;const a=Date.now(),s=await callCiServerApi(e,"CLOUD_ROUTE_GETCOSAUTH",{region:t.region,bucket:t.bucket}),n=null===(o=null==s?void 0:s.Response)||void 0===o?void 0:o.Credentials;if(!n)throw new Error("getFederalToken failed: "+JSON.stringify(n));i({TmpSecretId:n.TmpSecretId,TmpSecretKey:n.TmpSecretKey,XCosSecurityToken:n.Token,StartTime:~~(a/1e3),ExpiredTime:s.Response.ExpiredTime})}}async function callCiServerApi(e,t,r,i){const o=await sign_1.getSignature(e.privateKey,e.appid),a=await e.getExtAppid(),{resp:s,body:n}=await request_1.request({url:urlConfig.cloudCosUploadURL,method:"post",body:JSON.stringify({appid:e.appid,extAppid:a||void 0,signature:o,action:t,agentReq:r}),headers:{"content-type":"application/json"}});if(413===s.statusCode)throw new Error("Body too large");if(!n)throw new Error("Empty body "+JSON.stringify(s));if(i){return i(n)}const l="string"==typeof n?JSON.parse(n):n,c=JSON.parse(l.data.content);if(l.errCode)throw new Error(`${l.errCode} ${l.errMsg}`);return c}exports.uploadFiles=uploadFiles;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadFiles=void 0;const tslib_1=require("tslib"),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),error_1=require("../utils/error"),config_1=require("../config"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),request_1=require("../utils/request"),sign_1=require("../utils/sign"),urlConfig=(0,tslib_1.__importStar)(require("../utils/url_config")),utils_1=require("./utils"),{resolve:resolve,relative:relative}=require("path"),{readdir:readdir,readFile:readFile}=require("fs").promises,COS=require("cos-nodejs-sdk-v5"),requiredParams=["project","env","path"];async function uploadFiles(e,t){var r,i;const{currentEnv:o}=await(0,utils_1.initEnvironmentByProject)(e.project,e.env);requiredParams.forEach(t=>{if(!e[t])throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("cloud.storage",t),config_1.PARAM_ERROR)});const{project:a,remotePath:s="",path:n,concurrency:l=5}=e;let c=s.endsWith("/")?s:s+"/";if(c.startsWith("/")&&(c=c.slice(1)),"staticstorage"!==t)if("storage"!==t);else{const e=null===(i=o.storages)||void 0===i?void 0:i[0];if(!e)throw new Error(`invalid storage status: ${e}. exiting`);await beginUpload(n,e,c,a,l)}else{const e=null===(r=o.staticStorages)||void 0===r?void 0:r[0];if(!e||"online"!==e.status)throw new Error(`invalid static storage status: ${e.status}. exiting`);await beginUpload(n,e,c,a,l)}}async function beginUpload(e,t,r,i,o){const a=await getFiles(e),s=a.map(t=>relative(e,t));log_1.default.info("[storage]","done. begin upload to cos.");const n=await putObjectToCos(s.map((e,i)=>({Bucket:t.bucket,Region:t.region,Key:r+e,Body:a[i]})),i,t,o);log_1.default.info("[storage]",n)}async function getFiles(e){const t=await readdir(e,{withFileTypes:!0}),r=await Promise.all(t.map(t=>{const r=resolve(e,t.name);return t.isDirectory()?getFiles(r):r}));return Array.prototype.concat(...r)}async function putObjectToCos(e,t,r,i){const o=new COS({Proxy:(0,request_1.getCiProxy)(),getAuthorization:await getAuthorizationThunk(t,r)}),a=await callCiServerApi(t,"CLOUD_ROUTE_GETCOSMETA",{action:"batchencode",bucket:r.bucket,mpappid:t.appid,paths:e.map(e=>e.Key)},e=>JSON.parse(JSON.parse(e).data.data).x_cos_meta_field_strs),s=new Map(e.map((e,t)=>[e.Key,a[t]]));try{const t=e.length;let r="";const a=async e=>{if(!e)return;const t=await o.putObject(Object.assign(Object.assign({},e),{Body:await readFile(e.Body),Headers:{"x-cos-meta-fileid":s.get(e.Key)}}));return r=e.Key,t};for(await a(e.shift());e.length>0;){const o=e.splice(0,Math.min(e.length,i)).map(a);log_1.default.info(`[storage] Uploading ${t-e.length} / ${t}: ${r}`),await Promise.all(o)}return{success:!0}}catch(e){throw new Error("upload to cos failed: "+e.message)}}async function getAuthorizationThunk(e,t){return async function(r,i){var o;const a=Date.now(),s=await callCiServerApi(e,"CLOUD_ROUTE_GETCOSAUTH",{region:t.region,bucket:t.bucket}),n=null===(o=null==s?void 0:s.Response)||void 0===o?void 0:o.Credentials;if(!n)throw new Error("getFederalToken failed: "+JSON.stringify(n));i({TmpSecretId:n.TmpSecretId,TmpSecretKey:n.TmpSecretKey,XCosSecurityToken:n.Token,StartTime:~~(a/1e3),ExpiredTime:s.Response.ExpiredTime})}}async function callCiServerApi(e,t,r,i){const o=await(0,sign_1.getSignature)(e.privateKey,e.appid),a=await e.getExtAppid(),{resp:s,body:n}=await(0,request_1.request)({url:urlConfig.cloudCosUploadURL,method:"post",body:JSON.stringify({appid:e.appid,extAppid:a||void 0,signature:o,action:t,agentReq:r}),headers:{"content-type":"application/json"}});if(413===s.statusCode)throw new Error("Body too large");if(!n)throw new Error("Empty body "+JSON.stringify(s));if(i){return i(n)}const l="string"==typeof n?JSON.parse(n):n,c=JSON.parse(l.data.content);if(l.errCode)throw new Error(`${l.errCode} ${l.errMsg}`);return c}exports.uploadFiles=uploadFiles;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadFunction=void 0;const tslib_1=require("tslib"),cloudapi_1=require("./cloudapi"),cloudAPI=tslib_1.__importStar(require("../vendor/cloud-api")),utils_1=require("./utils"),log_1=tslib_1.__importDefault(require("../utils/log")),error_1=require("../utils/error"),config_1=require("../config"),locales_1=tslib_1.__importDefault(require("../utils/locales/locales")),HelloWordCode="UEsDBBQACAAIALB+WU4AAAAAAAAAAAAAAAAIABAAaW5kZXguanNVWAwAAZ9zXPuec1z1ARQAdY7BCsIwEETv+Yoll6ZQ+wOhnv0DD+IhxkWC664kWwmI/27V3IpzGuYNw3RzQSiaU9TOG6x3yVrGW0gMEzh8IOsAUVixfkwgOoV47WHawtPAooUVIRxJLs7ukEhgL5nOtl/h79qf+GBZeIM1FbXHdac9aKC9cDwTDfCb9eblzRtQSwcI6+pcr4AAAADOAAAAUEsBAhUDFAAIAAgAsH5ZTuvqXK+AAAAAzgAAAAgADAAAAAAAAAAAQKSBAAAAAGluZGV4LmpzVVgIAAGfc1z7nnNcUEsFBgAAAAABAAEAQgAAAMYAAAAAAA==",requiredParams=["project","name","path"];async function uploadFunction(e){requiredParams.forEach(t=>{if(!e[t])throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("cloud.uploadFunction",t),config_1.PARAM_ERROR)});const{project:t,remoteNpmInstall:o=!1,name:n,path:a,env:c}=e,i=await t.getExtAppid();cloudapi_1.initCloudAPI(i||t.appid),log_1.default.info(`will upload code under ${a} as cloudfunction '${n}' of env ${c}. remote-npm-install: ${o}`);const{envList:u}=await cloudAPI.tcbGetEnvironments({},{request:cloudapi_1.boundTransactRequest(t),transactType:cloudAPI.TransactType.IDE}),r=u.find(e=>e.envId===c);if(!r)throw new Error("env not found");const l=r.functions[0].region,{clsLogsetId:s,clsTopicId:d}=getLogServiceProperties(r),p=await cloudapi_1.get3rdCloudCodeSecret(t);log_1.default.info("checking cloudfunction status, will only proceed on normal status"),await waitFuncDeploy({namespace:c,region:l,functionName:n,codeSecret:p,topts:{request:cloudapi_1.boundTransactRequest(e.project),transactType:cloudAPI.TransactType.IDE}});let A,f=!1;try{if(A=await cloudAPI.scfGetFunctionInfo({namespace:c,region:"",functionName:n,codeSecret:p},{request:cloudapi_1.boundTransactRequest(t),transactType:cloudAPI.TransactType.IDE}),"DeleteFailed"===A.status)throw new Error("delete failed")}catch(e){if("ResourceNotFound.Function"!==e.code)throw e;f=!0}if(log_1.default.info("get cloudfunction info done"),log_1.default.info(`will ${f?"create":"update"} cloudfunction`),f)await cloudAPI.scfCreateFunction({functionName:n,code:{zipFile:HelloWordCode},handler:"index.main",description:"",memorySize:256,timeout:3,environment:{variables:[]},role:"TCB_QcsRole",runtime:"Nodejs8.9",namespace:c,region:l,stamp:"MINI_QCBASE",installDependency:o,codeSecret:p,clsLogsetId:s,clsTopicId:d},{request:cloudapi_1.boundTransactRequest(e.project),transactType:cloudAPI.TransactType.IDE}),log_1.default.info("create cloudfunction done, continue to update code");else{if("Updating"===A.status)throw new Error("there's another ongoing update, please wait for it to complete and try again later");const t=o?"TRUE":"FALSE";A.installDependency!==t&&(log_1.default.info("updating cloudfunction info"),await cloudAPI.scfUpdateFunctionInfo({namespace:c,region:l,functionName:n,installDependency:o,clsLogsetId:s,clsTopicId:d},{request:cloudapi_1.boundTransactRequest(e.project),transactType:cloudAPI.TransactType.IDE}),log_1.default.info("update cloudfunction info done, waiting for it to take into effect"),await waitFuncDeploy({namespace:c,region:l,functionName:n,codeSecret:p,topts:{request:cloudapi_1.boundTransactRequest(e.project),transactType:cloudAPI.TransactType.IDE}}),log_1.default.info("cloudfunction info updated"))}const g=utils_1.zipFile(a,{ignore:o?["node_modules"]:void 0}),I=await utils_1.zipToBuffer(g);log_1.default.info("zip file done, updating cloudfunction code"),await cloudAPI.scfUpdateFunction({functionName:n,namespace:c,region:l,handler:"index.main",installDependency:o,fileData:I.toString("base64"),codeSecret:p},{request:cloudapi_1.boundTransactRequest(e.project),transactType:cloudAPI.TransactType.IDE}),log_1.default.info("cloudfunction code updated, "+(o?"installing dependencies in the cloud and deploying":"deploying")),await waitFuncDeploy({namespace:c,region:l,functionName:n,codeSecret:p,topts:{request:cloudapi_1.boundTransactRequest(e.project),transactType:cloudAPI.TransactType.IDE}}),log_1.default.info("deployed");return{filesCount:Object.keys(g.files).length,packSize:I.byteLength}}exports.uploadFunction=uploadFunction;const waitFuncDeploy=async e=>new Promise(async(t,o)=>{let n=!1;const{namespace:a,region:c,functionName:i,onStatusUpdate:u=(t=>{log_1.default.info(`env ${e.namespace}'s cloudfunction '${e.functionName}' status: ${t}`)}),maxWaitTimeout:r=9e5,codeSecret:l}=e,s=setTimeout(()=>{n||(n=!0,o(new Error("timeout waiting for function to deploy")))},r);try{let o="";const s=+new Date;for(;!n&&+new Date-s<r;){const r=await cloudAPI.scfGetFunctionInfo({namespace:a,region:c,functionName:i,codeSecret:l},e.topts);switch(r.status!==o&&(u(r.status),o=r.status),r.status){case"Creating":case"Updating":case"Publishing":case"UpdatingAndPublishing":break;case"CreateFailed":throw new Error("create function failed: "+r.statusDesc);case"UpdateFailed":throw new Error("update function failed: "+r.statusDesc);case"Active":n=!0,t(void 0)}}}catch(e){try{log_1.default.error(`upload ${a} ${i} failed: `,"string"==typeof e?e:JSON.stringify(e))}catch(e){log_1.default.error(`upload ${a} ${i} failed: `,e.toString())}clearTimeout(s),o(e)}});function getLogServiceProperties(e){let t,o;try{const n=e.logServices[0];t=n.logsetId,o=n.topicId}catch(e){}return{clsLogsetId:t,clsTopicId:o}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.uploadFunction=void 0;const tslib_1=require("tslib"),cloudapi_1=require("./cloudapi"),cloudAPI=(0,tslib_1.__importStar)(require("../vendor/cloud-api")),utils_1=require("./utils"),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),error_1=require("../utils/error"),config_1=require("../config"),locales_1=(0,tslib_1.__importDefault)(require("../utils/locales/locales")),HelloWordCode="UEsDBBQACAAIALB+WU4AAAAAAAAAAAAAAAAIABAAaW5kZXguanNVWAwAAZ9zXPuec1z1ARQAdY7BCsIwEETv+Yoll6ZQ+wOhnv0DD+IhxkWC664kWwmI/27V3IpzGuYNw3RzQSiaU9TOG6x3yVrGW0gMEzh8IOsAUVixfkwgOoV47WHawtPAooUVIRxJLs7ukEhgL5nOtl/h79qf+GBZeIM1FbXHdac9aKC9cDwTDfCb9eblzRtQSwcI6+pcr4AAAADOAAAAUEsBAhUDFAAIAAgAsH5ZTuvqXK+AAAAAzgAAAAgADAAAAAAAAAAAQKSBAAAAAGluZGV4LmpzVVgIAAGfc1z7nnNcUEsFBgAAAAABAAEAQgAAAMYAAAAAAA==",requiredParams=["project","name","path"];async function uploadFunction(e){requiredParams.forEach(t=>{if(!e[t])throw new error_1.CodeError(locales_1.default.config.PARAM_ERROR.format("cloud.uploadFunction",t),config_1.PARAM_ERROR)});const{project:t,remoteNpmInstall:o=!1,name:n,path:a,env:c}=e,i=await t.getExtAppid();(0,cloudapi_1.initCloudAPI)(i||t.appid),log_1.default.info(`will upload code under ${a} as cloudfunction '${n}' of env ${c}. remote-npm-install: ${o}`);const{envList:u}=await cloudAPI.tcbGetEnvironments({},{request:(0,cloudapi_1.boundTransactRequest)(t),transactType:cloudAPI.TransactType.IDE}),r=u.find(e=>e.envId===c);if(!r)throw new Error("env not found");const l=r.functions[0].region,{clsLogsetId:s,clsTopicId:d}=getLogServiceProperties(r),p=await(0,cloudapi_1.get3rdCloudCodeSecret)(t);log_1.default.info("checking cloudfunction status, will only proceed on normal status"),await waitFuncDeploy({namespace:c,region:l,functionName:n,codeSecret:p,topts:{request:(0,cloudapi_1.boundTransactRequest)(e.project),transactType:cloudAPI.TransactType.IDE}});let A,f=!1;try{if(A=await cloudAPI.scfGetFunctionInfo({namespace:c,region:"",functionName:n,codeSecret:p},{request:(0,cloudapi_1.boundTransactRequest)(t),transactType:cloudAPI.TransactType.IDE}),"DeleteFailed"===A.status)throw new Error("delete failed")}catch(e){if("ResourceNotFound.Function"!==e.code)throw e;f=!0}if(log_1.default.info("get cloudfunction info done"),log_1.default.info(`will ${f?"create":"update"} cloudfunction`),f)await cloudAPI.scfCreateFunction({functionName:n,code:{zipFile:HelloWordCode},handler:"index.main",description:"",memorySize:256,timeout:3,environment:{variables:[]},role:"TCB_QcsRole",runtime:"Nodejs8.9",namespace:c,region:l,stamp:"MINI_QCBASE",installDependency:o,codeSecret:p,clsLogsetId:s,clsTopicId:d},{request:(0,cloudapi_1.boundTransactRequest)(e.project),transactType:cloudAPI.TransactType.IDE}),log_1.default.info("create cloudfunction done, continue to update code");else{if("Updating"===A.status)throw new Error("there's another ongoing update, please wait for it to complete and try again later");const t=o?"TRUE":"FALSE";A.installDependency!==t&&(log_1.default.info("updating cloudfunction info"),await cloudAPI.scfUpdateFunctionInfo({namespace:c,region:l,functionName:n,installDependency:o,clsLogsetId:s,clsTopicId:d},{request:(0,cloudapi_1.boundTransactRequest)(e.project),transactType:cloudAPI.TransactType.IDE}),log_1.default.info("update cloudfunction info done, waiting for it to take into effect"),await waitFuncDeploy({namespace:c,region:l,functionName:n,codeSecret:p,topts:{request:(0,cloudapi_1.boundTransactRequest)(e.project),transactType:cloudAPI.TransactType.IDE}}),log_1.default.info("cloudfunction info updated"))}const g=(0,utils_1.zipFile)(a,{ignore:o?["node_modules"]:void 0}),I=await(0,utils_1.zipToBuffer)(g);log_1.default.info("zip file done, updating cloudfunction code"),await cloudAPI.scfUpdateFunction({functionName:n,namespace:c,region:l,handler:"index.main",installDependency:o,fileData:I.toString("base64"),codeSecret:p},{request:(0,cloudapi_1.boundTransactRequest)(e.project),transactType:cloudAPI.TransactType.IDE}),log_1.default.info("cloudfunction code updated, "+(o?"installing dependencies in the cloud and deploying":"deploying")),await waitFuncDeploy({namespace:c,region:l,functionName:n,codeSecret:p,topts:{request:(0,cloudapi_1.boundTransactRequest)(e.project),transactType:cloudAPI.TransactType.IDE}}),log_1.default.info("deployed");return{filesCount:Object.keys(g.files).length,packSize:I.byteLength}}exports.uploadFunction=uploadFunction;const waitFuncDeploy=async e=>new Promise(async(t,o)=>{let n=!1;const{namespace:a,region:c,functionName:i,onStatusUpdate:u=(t=>{log_1.default.info(`env ${e.namespace}'s cloudfunction '${e.functionName}' status: ${t}`)}),maxWaitTimeout:r=9e5,codeSecret:l}=e,s=setTimeout(()=>{n||(n=!0,o(new Error("timeout waiting for function to deploy")))},r);try{let o="";const s=+new Date;for(;!n&&+new Date-s<r;){const r=await cloudAPI.scfGetFunctionInfo({namespace:a,region:c,functionName:i,codeSecret:l},e.topts);switch(r.status!==o&&(u(r.status),o=r.status),r.status){case"Creating":case"Updating":case"Publishing":case"UpdatingAndPublishing":break;case"CreateFailed":throw new Error("create function failed: "+r.statusDesc);case"UpdateFailed":throw new Error("update function failed: "+r.statusDesc);case"Active":n=!0,t(void 0)}}}catch(e){try{log_1.default.error(`upload ${a} ${i} failed: `,"string"==typeof e?e:JSON.stringify(e))}catch(e){log_1.default.error(`upload ${a} ${i} failed: `,e.toString())}clearTimeout(s),o(e)}});function getLogServiceProperties(e){let t,o;try{const n=e.logServices[0];t=n.logsetId,o=n.topicId}catch(e){}return{clsLogsetId:t,clsTopicId:o}}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initEnvironmentByProject=exports.zipToBuffer=exports.zipFile=void 0;const tslib_1=require("tslib"),fs_1=tslib_1.__importDefault(require("fs")),path_1=tslib_1.__importDefault(require("path")),jszip_1=tslib_1.__importDefault(require("jszip")),minimatch_1=tslib_1.__importDefault(require("minimatch")),cloudapi_1=require("./cloudapi"),log_1=tslib_1.__importDefault(require("../utils/log")),cloudAPI=tslib_1.__importStar(require("../vendor/cloud-api")),minimatchWithList=(e,t)=>{if(!t)return!1;for(const i of t)if(i.startsWith("!")&&!minimatch_1.default(e,i))return!1;for(const i of t)if(!i.startsWith("!")&&minimatch_1.default(e,i))return!0;return!1},zipFile=(e,{ignore:t,name:i,zip:n=new jszip_1.default,includeRoot:r=!1}={})=>{if(!fs_1.default.existsSync(e))return n;const o=fs_1.default.lstatSync(e),s=i||path_1.default.basename(e);if(o.isSymbolicLink())n.file(s,fs_1.default.readlinkSync(e),{unixPermissions:parseInt("120"+parseInt((o.mode&parseInt("777",8)).toString(8),10),8)});else if(o.isDirectory()){r&&n.folder(s);const i=fs_1.default.readdirSync(e);for(let o=0,a=i.length;o<a;o++){const a=i[o],l=r?path_1.default.posix.join(s,a):a;t&&minimatchWithList(l,t)||exports.zipFile(path_1.default.join(e,a),{zip:n,ignore:t,name:l,includeRoot:!0})}}else n.file(s,fs_1.default.readFileSync(e),{binary:!0,unixPermissions:o.mode});return n};exports.zipFile=zipFile;const zipToBuffer=(e,t)=>e.generateAsync({type:"nodebuffer",platform:"darwin"===process.platform?"UNIX":"DOS",compression:"DEFLATE",compressionOptions:{level:9}},t);async function initEnvironmentByProject(e,t){const i=await e.getExtAppid();cloudapi_1.initCloudAPI(i||e.appid),log_1.default.info("[cloud] loading env info");const n={request:cloudapi_1.boundTransactRequest(e),transactType:cloudAPI.TransactType.IDE};cloudAPI.setRequest(cloudapi_1.boundTransactRequest(e)),cloudAPI.setTransactType(cloudAPI.TransactType.IDE);const[r,o]=await Promise.all([cloudAPI.tcbGetEnvironments({},n),cloudAPI.tcbDescribeWxCloudBaseRunEnvs({})]),s=[...r.envList,...o.envList].find(e=>e.envId===t);if(!s)throw new Error("env not found");return{currentEnv:s,cloudAPI:cloudAPI}}exports.zipToBuffer=zipToBuffer,exports.initEnvironmentByProject=initEnvironmentByProject;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initEnvironmentByProject=exports.zipToBuffer=exports.zipFile=void 0;const tslib_1=require("tslib"),fs_1=(0,tslib_1.__importDefault)(require("fs")),path_1=(0,tslib_1.__importDefault)(require("path")),jszip_1=(0,tslib_1.__importDefault)(require("jszip")),minimatch_1=(0,tslib_1.__importDefault)(require("minimatch")),cloudapi_1=require("./cloudapi"),log_1=(0,tslib_1.__importDefault)(require("../utils/log")),cloudAPI=(0,tslib_1.__importStar)(require("../vendor/cloud-api")),minimatchWithList=(e,t)=>{if(!t)return!1;for(const i of t)if(i.startsWith("!")&&!(0,minimatch_1.default)(e,i))return!1;for(const i of t)if(!i.startsWith("!")&&(0,minimatch_1.default)(e,i))return!0;return!1},zipFile=(e,{ignore:t,name:i,zip:n=new jszip_1.default,includeRoot:r=!1}={})=>{if(!fs_1.default.existsSync(e))return n;const o=fs_1.default.lstatSync(e),s=i||path_1.default.basename(e);if(o.isSymbolicLink())n.file(s,fs_1.default.readlinkSync(e),{unixPermissions:parseInt("120"+parseInt((o.mode&parseInt("777",8)).toString(8),10),8)});else if(o.isDirectory()){r&&n.folder(s);const i=fs_1.default.readdirSync(e);for(let o=0,a=i.length;o<a;o++){const a=i[o],l=r?path_1.default.posix.join(s,a):a;t&&minimatchWithList(l,t)||(0,exports.zipFile)(path_1.default.join(e,a),{zip:n,ignore:t,name:l,includeRoot:!0})}}else n.file(s,fs_1.default.readFileSync(e),{binary:!0,unixPermissions:o.mode});return n};exports.zipFile=zipFile;const zipToBuffer=(e,t)=>e.generateAsync({type:"nodebuffer",platform:"darwin"===process.platform?"UNIX":"DOS",compression:"DEFLATE",compressionOptions:{level:9}},t);async function initEnvironmentByProject(e,t){const i=await e.getExtAppid();(0,cloudapi_1.initCloudAPI)(i||e.appid),log_1.default.info("[cloud] loading env info");const n={request:(0,cloudapi_1.boundTransactRequest)(e),transactType:cloudAPI.TransactType.IDE};cloudAPI.setRequest((0,cloudapi_1.boundTransactRequest)(e)),cloudAPI.setTransactType(cloudAPI.TransactType.IDE);const[r,o]=await Promise.all([cloudAPI.tcbGetEnvironments({},n),cloudAPI.tcbDescribeWxCloudBaseRunEnvs({})]),s=[...r.envList,...o.envList].find(e=>e.envId===t);if(!s)throw new Error("env not found");return{currentEnv:s,cloudAPI:cloudAPI}}exports.zipToBuffer=zipToBuffer,exports.initEnvironmentByProject=initEnvironmentByProject;
package/dist/config.js CHANGED
@@ -1 +1 @@
1
- "use strict";var COMPILE_TYPE;Object.defineProperty(exports,"__esModule",{value:!0}),exports.extendedLibMap=exports.jsonVariablePropertyWhiteList=exports.DefaultProjectAttr=exports.TABBAR_ICON_WHITE_LIST=exports.GameWhiteList=exports.MiniProgramWhiteList=exports.COMPILE_TYPE=exports.APP_TYPE=exports.MINI_GAME_MAIN_PACKAGE_ROOT=exports.MINI_PROGRAM_MAIN_PACKAGE_ROOT=exports.PROJECT_TYPE_ERROR=exports.GET_LATEST_VERSION_CGI_ERR=exports.UPLOAD_JS_SERVER_CGI_ERR=exports.CODE_PROTECT_TRANSLATE_FILENAME=exports.UPLOAD_CGI_ERR=exports.GENERATE_LOCAL_SIGNATURE_ERR=exports.GET_SIGNATURE_RAND_STRING_ERR=exports.APP_JSON_NOT_FOUND=exports.JSON_CONTENT_ERR=exports.FILE_NOT_UTF8=exports.JSON_PARSE_ERR=exports.FILE_NOT_FOUND=exports.PLUGIN_JSON_PARSE_ERR=exports.PLUGIN_JSON_CONTENT_ERR=exports.PLUGIN_JSON_FILE_NOT_FOUND=exports.GAME_PLUGIN_LIB_MD5_NOT_MATCH=exports.SUMMER_PLUGIN_CODE_ERR=exports.SUMMER_PLUGIN_ERR=exports.MINIFY_WXML_ERR=exports.POST_WXSS_ERR=exports.FILE_FLAT_ERR=exports.JS_ES6_ERR=exports.BABILI_JS_ERR=exports.UGLIFY_JS_ERR=exports.BABEL_TRANS_JS_ERR=exports.JS_NOT_FOUND=exports.WXML_NOT_FOUND=exports.PARAM_ERROR=exports.CI_VERSION=void 0,exports.CI_VERSION="1.6.1",exports.PARAM_ERROR=1e4,exports.WXML_NOT_FOUND=10007,exports.JS_NOT_FOUND=10008,exports.BABEL_TRANS_JS_ERR=10032,exports.UGLIFY_JS_ERR=10033,exports.BABILI_JS_ERR=10034,exports.JS_ES6_ERR=10035,exports.FILE_FLAT_ERR=10036,exports.POST_WXSS_ERR=10037,exports.MINIFY_WXML_ERR=10038,exports.SUMMER_PLUGIN_ERR=10045,exports.SUMMER_PLUGIN_CODE_ERR=10046,exports.GAME_PLUGIN_LIB_MD5_NOT_MATCH=10081,exports.PLUGIN_JSON_FILE_NOT_FOUND=10091,exports.PLUGIN_JSON_CONTENT_ERR=10092,exports.PLUGIN_JSON_PARSE_ERR=10093,exports.FILE_NOT_FOUND=10005,exports.JSON_PARSE_ERR=10006,exports.FILE_NOT_UTF8=10031,exports.JSON_CONTENT_ERR=10009,exports.APP_JSON_NOT_FOUND=2e4,exports.GET_SIGNATURE_RAND_STRING_ERR=20001,exports.GENERATE_LOCAL_SIGNATURE_ERR=20002,exports.UPLOAD_CGI_ERR=20003,exports.CODE_PROTECT_TRANSLATE_FILENAME=20004,exports.UPLOAD_JS_SERVER_CGI_ERR=20005,exports.GET_LATEST_VERSION_CGI_ERR=20006,exports.PROJECT_TYPE_ERROR=3e4,exports.MINI_PROGRAM_MAIN_PACKAGE_ROOT="__APP__",exports.MINI_GAME_MAIN_PACKAGE_ROOT="__GAME__",exports.APP_TYPE={NORMAL:0,PLUGIN:1,SHOP:2,MINISHOP:3,GAME:4,CARD:5,NATIVE:7},function(_){_.miniProgram="miniProgram",_.miniProgramPlugin="miniProgramPlugin",_.miniGame="miniGame",_.miniGamePlugin="miniGamePlugin"}(COMPILE_TYPE=exports.COMPILE_TYPE||(exports.COMPILE_TYPE={})),exports.MiniProgramWhiteList={".wxml":!0,".wxss":!0,".wxs":!0,".png":!0,".jpg":!0,".jpeg":!0,".gif":!0,".svg":!0,".js":!0,".json":!0,".cer":!0,".mp3":!0,".aac":!0,".m4a":!0,".mp4":!0,".wav":!0,".ogg":!0,".silk":!0,".wasm":!0,".br":!0},exports.GameWhiteList={".png":!0,".jpg":!0,".jpeg":!0,".gif":!0,".svg":!0,".js":!0,".json":!0,".cer":!0,".obj":!0,".dae":!0,".fbx":!0,".mtl":!0,".stl":!0,".3ds":!0,".mp3":!0,".pvr":!0,".wav":!0,".plist":!0,".ttf":!0,".fnt":!0,".gz":!0,".ccz":!0,".m4a":!0,".mp4":!0,".bmp":!0,".atlas":!0,".swf":!0,".ani":!0,".part":!0,".proto":!0,".bin":!0,".sk":!0,".mipmaps":!0,".txt":!0,".zip":!0,".ogg":!0,".silk":!0,".dbbin":!0,".dbmv":!0,".etc":!0,".lmat":!0,".lm":!0,".ls":!0,".lh":!0,".lani":!0,".lav":!0,".lsani":!0,".ltc":!0,".csv":!0,".scene":!0,".prefab":!0,".lml":!0,".lmani":!0,".ktx":!0,".dds":!0,".xml":!0,".aac":!0,".pkm":!0,".skel":!0,".cur":!0,".ico":!0,".wasm":!0,".br":!0},exports.TABBAR_ICON_WHITE_LIST=[".png",".jpg",".jpeg"],exports.DefaultProjectAttr={platform:!1,appType:0,isSandbox:!1,released:!1,setting:{MaxCodeSize:2,MaxSubpackageSubCodeSize:2,MaxSubpackageFullCodeSize:12,NavigateMiniprogramLimit:10,MaxSubPackageLimit:100,MinTabbarCount:2,MaxTabbarCount:5,MaxTabbarIconSize:40}},exports.jsonVariablePropertyWhiteList={windowPropertWhiteList:["navigationBarBackgroundColor","navigationBarTextStyle","backgroundColor","backgroundTextStyle","backgroundColorTop","backgroundColorBottom","backgroundColorContent"],tabBarPropertyWhiteList:["color","selectedColor","backgroundColor","borderStyle"],tabbarListItemPropertyWhiteList:["iconPath","selectedIconPath"]},exports.extendedLibMap={kbone:{packages:["miniprogram-element","miniprogram-render"]},weui:{packages:["weui-miniprogram"]}};
1
+ "use strict";var COMPILE_TYPE;Object.defineProperty(exports,"__esModule",{value:!0}),exports.extendedLibMap=exports.jsonVariablePropertyWhiteList=exports.DefaultProjectAttr=exports.TABBAR_ICON_WHITE_LIST=exports.GameWhiteList=exports.MiniProgramWhiteList=exports.COMPILE_TYPE=exports.APP_TYPE=exports.MINI_GAME_MAIN_PACKAGE_ROOT=exports.MINI_PROGRAM_MAIN_PACKAGE_ROOT=exports.PROJECT_TYPE_ERROR=exports.GET_LATEST_VERSION_CGI_ERR=exports.UPLOAD_JS_SERVER_CGI_ERR=exports.CODE_PROTECT_TRANSLATE_FILENAME=exports.UPLOAD_CGI_ERR=exports.GENERATE_LOCAL_SIGNATURE_ERR=exports.GET_SIGNATURE_RAND_STRING_ERR=exports.APP_JSON_NOT_FOUND=exports.JSON_CONTENT_ERR=exports.FILE_NOT_UTF8=exports.JSON_PARSE_ERR=exports.FILE_NOT_FOUND=exports.PLUGIN_JSON_PARSE_ERR=exports.PLUGIN_JSON_CONTENT_ERR=exports.PLUGIN_JSON_FILE_NOT_FOUND=exports.GAME_PLUGIN_LIB_MD5_NOT_MATCH=exports.SUMMER_PLUGIN_CODE_ERR=exports.SUMMER_PLUGIN_ERR=exports.MINIFY_WXML_ERR=exports.POST_WXSS_ERR=exports.FILE_FLAT_ERR=exports.JS_ES6_ERR=exports.BABILI_JS_ERR=exports.UGLIFY_JS_ERR=exports.BABEL_TRANS_JS_ERR=exports.JS_NOT_FOUND=exports.WXML_NOT_FOUND=exports.PARAM_ERROR=exports.CI_VERSION=void 0,exports.CI_VERSION="1.6.10",exports.PARAM_ERROR=1e4,exports.WXML_NOT_FOUND=10007,exports.JS_NOT_FOUND=10008,exports.BABEL_TRANS_JS_ERR=10032,exports.UGLIFY_JS_ERR=10033,exports.BABILI_JS_ERR=10034,exports.JS_ES6_ERR=10035,exports.FILE_FLAT_ERR=10036,exports.POST_WXSS_ERR=10037,exports.MINIFY_WXML_ERR=10038,exports.SUMMER_PLUGIN_ERR=10045,exports.SUMMER_PLUGIN_CODE_ERR=10046,exports.GAME_PLUGIN_LIB_MD5_NOT_MATCH=10081,exports.PLUGIN_JSON_FILE_NOT_FOUND=10091,exports.PLUGIN_JSON_CONTENT_ERR=10092,exports.PLUGIN_JSON_PARSE_ERR=10093,exports.FILE_NOT_FOUND=10005,exports.JSON_PARSE_ERR=10006,exports.FILE_NOT_UTF8=10031,exports.JSON_CONTENT_ERR=10009,exports.APP_JSON_NOT_FOUND=2e4,exports.GET_SIGNATURE_RAND_STRING_ERR=20001,exports.GENERATE_LOCAL_SIGNATURE_ERR=20002,exports.UPLOAD_CGI_ERR=20003,exports.CODE_PROTECT_TRANSLATE_FILENAME=20004,exports.UPLOAD_JS_SERVER_CGI_ERR=20005,exports.GET_LATEST_VERSION_CGI_ERR=20006,exports.PROJECT_TYPE_ERROR=3e4,exports.MINI_PROGRAM_MAIN_PACKAGE_ROOT="__APP__",exports.MINI_GAME_MAIN_PACKAGE_ROOT="__GAME__",exports.APP_TYPE={NORMAL:0,PLUGIN:1,SHOP:2,MINISHOP:3,GAME:4,CARD:5,NATIVE:7},function(_){_.miniProgram="miniProgram",_.miniProgramPlugin="miniProgramPlugin",_.miniGame="miniGame",_.miniGamePlugin="miniGamePlugin"}(COMPILE_TYPE=exports.COMPILE_TYPE||(exports.COMPILE_TYPE={})),exports.MiniProgramWhiteList={".wxml":!0,".wxss":!0,".wxs":!0,".png":!0,".jpg":!0,".jpeg":!0,".gif":!0,".svg":!0,".js":!0,".json":!0,".cer":!0,".mp3":!0,".aac":!0,".m4a":!0,".mp4":!0,".wav":!0,".ogg":!0,".silk":!0,".wasm":!0,".br":!0},exports.GameWhiteList={".png":!0,".jpg":!0,".jpeg":!0,".gif":!0,".svg":!0,".js":!0,".json":!0,".cer":!0,".obj":!0,".dae":!0,".fbx":!0,".mtl":!0,".stl":!0,".3ds":!0,".mp3":!0,".pvr":!0,".wav":!0,".plist":!0,".ttf":!0,".fnt":!0,".gz":!0,".ccz":!0,".m4a":!0,".mp4":!0,".bmp":!0,".atlas":!0,".swf":!0,".ani":!0,".part":!0,".proto":!0,".bin":!0,".sk":!0,".mipmaps":!0,".txt":!0,".zip":!0,".ogg":!0,".silk":!0,".dbbin":!0,".dbmv":!0,".etc":!0,".lmat":!0,".lm":!0,".ls":!0,".lh":!0,".lani":!0,".lav":!0,".lsani":!0,".ltc":!0,".csv":!0,".scene":!0,".prefab":!0,".lml":!0,".lmani":!0,".ktx":!0,".dds":!0,".xml":!0,".aac":!0,".pkm":!0,".skel":!0,".cur":!0,".ico":!0,".wasm":!0,".br":!0},exports.TABBAR_ICON_WHITE_LIST=[".png",".jpg",".jpeg"],exports.DefaultProjectAttr={platform:!1,appType:0,isSandbox:!1,released:!1,setting:{MaxCodeSize:2,MaxSubpackageSubCodeSize:2,MaxSubpackageFullCodeSize:12,NavigateMiniprogramLimit:10,MaxSubPackageLimit:100,MinTabbarCount:2,MaxTabbarCount:5,MaxTabbarIconSize:40}},exports.jsonVariablePropertyWhiteList={windowPropertWhiteList:["navigationBarBackgroundColor","navigationBarTextStyle","backgroundColor","backgroundTextStyle","backgroundColorTop","backgroundColorBottom","backgroundColorContent"],tabBarPropertyWhiteList:["color","selectedColor","backgroundColor","borderStyle"],tabbarListItemPropertyWhiteList:["iconPath","selectedIconPath"]},exports.extendedLibMap={kbone:{packages:["miniprogram-element","miniprogram-render"]},weui:{packages:["weui-miniprogram"]}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getUploadProjectConfig=exports.compileWXMLFiles=exports.compileWXSSFiles=exports.compileJSFiles=exports.compileOther=exports.isNotIgnoredByProjectConfig=exports.getBabelRoot=void 0;const tslib_1=require("tslib"),babel_helper_1=require("../../utils/babel_helper"),js_1=require("./handler/js"),wxss_1=require("./handler/wxss"),wxml_1=require("./handler/wxml"),tools_1=require("../../utils/tools"),taskstatus_1=require("../../utils/taskstatus"),index_1=require("../worker_thread/index"),path_1=tslib_1.__importDefault(require("path")),projectconfig_1=require("../json/projectconfig"),game_1=tslib_1.__importDefault(require("../json/game")),signaturejson_1=require("../json/signaturejson"),config_1=require("../../config");async function getBabelRoot(o){var e,t;const i=await projectconfig_1.getProjectConfigJSON(o);let s=null===(t=null===(e=null==i?void 0:i.setting)||void 0===e?void 0:e.babelSetting)||void 0===t?void 0:t.outputPath;return s?(s=tools_1.normalizePath(s),s.replace(/(^[./\\])|(\/$)/g,""),s):"@babel/runtime"}function isNotIgnoredByProjectConfig(o,e,t){var i;const s=(null===(i=o.packOptions)||void 0===i?void 0:i.ignore)||[];return 0===s.length||!tools_1.isFileIgnored(path_1.default.posix.relative(e,t),s)}async function copyFile(o,e){return{filePath:e,code:await o.getFile("",e)}}async function compileOther(o,e,t){const{onProgressUpdate:i=(()=>{})}=t,s=new taskstatus_1.TaskStatus("compiling other files");i(s);const n=[];for(const t of e)n.push(copyFile(o,t));const a=await Promise.all(n),r={};for(const o of a){const{code:e,filePath:t}=o;e&&(r[t]=e)}return s.done(),i(s),r}async function canWeCompileJS(o,e,t){let i;for(const o of e)if(tools_1.normalizePath(t).startsWith(tools_1.normalizePath(signaturejson_1.trailing(o.fullPath,"/")))){i=o;break}if(i){return i.signature.findIndex(o=>tools_1.normalizePath(o.fullPath)===tools_1.normalizePath(t))>=0}return!0}async function compileJSFiles(o,e,t,i){const{setting:s={}}=i;let n="@babel/runtime";s.es7&&(n=await getBabelRoot(o));const a=[];if(o.type===config_1.COMPILE_TYPE.miniGame||o.type===config_1.COMPILE_TYPE.miniGamePlugin){const s=await signaturejson_1.getAllPluginSignatures(o);for(const r of e){const e=path_1.default.join(o.projectPath,t,r);await canWeCompileJS(o,s,e)&&a.push(js_1.compileJS(o,r,Object.assign(Object.assign({},i),{babelRoot:n,root:t})))}}else for(const s of e)a.push(js_1.compileJS(o,s,Object.assign(Object.assign({},i),{babelRoot:n,root:t})));let r=[];try{r=await Promise.all(a)}catch(o){throw index_1.abortTask(index_1.TASK_NAME.COMPILE_JS),o}const l={},c=new Set;for(const o of r){const{filePath:e,map:i,code:s,helpers:n}=o,a=tools_1.formatSourceMap(i);void 0!==s&&(l[path_1.default.posix.normalize(path_1.default.posix.join(t,e))]=s),a&&(l[path_1.default.posix.normalize(path_1.default.posix.join(t,e+".map"))]=a),n.length>0&&n.forEach(o=>{c.add(o)})}return await babel_helper_1.appendBabelHelpers(c,path_1.default.join(t),n,l),l}async function compileWXSSFiles(o,e,t,i){const s=[];for(const n of e)s.push(wxss_1.compileWXSS(o,n,Object.assign(Object.assign({},i),{root:t})));let n=[];try{n=await Promise.all(s)}catch(o){throw index_1.abortTask(index_1.TASK_NAME.COMPILE_WXSS),o}const a={};for(const o of n){const{filePath:e,code:i}=o;void 0!==i&&(a[path_1.default.posix.normalize(path_1.default.posix.join(t,e))]=i)}return a}async function compileWXMLFiles(o,e,t,i){const s=[];for(const n of e)s.push(wxml_1.compileWXML(o,n,Object.assign(Object.assign({},i),{root:t})));let n=[];try{n=await Promise.all(s)}catch(o){throw index_1.abortTask(index_1.TASK_NAME.MINIFY_WXML),o}const a={};for(const o of n){const{filePath:e,code:i}=o;void 0!==i&&(a[path_1.default.posix.normalize(path_1.default.posix.join(t,e))]=i)}return a}async function getUploadProjectConfig(o,e){const t={miniprogramRoot:e.miniprogramRoot,localPlugins:[]};e.pluginRoot&&(t.pluginRoot=e.pluginRoot);const i=await game_1.default(o),s=(o,e="")=>{const i=t.localPlugins||[];for(const t in o)if(o.hasOwnProperty(t)&&o[t]&&"string"==typeof o[t].path){const s=o[t],n=path_1.default.posix.normalize(path_1.default.posix.join(e,s.path.replace(/\\/g,"/")).replace(/^\/+/,""));i.push({alias:t,provider:s.provider,path:n})}t.localPlugins=i};if(i.plugins){s(i.plugins)}const n=i.subpackages||i.subPackages;if(Array.isArray(n))for(const o of n)(null==o?void 0:o.plugins)&&s(o.plugins,o.root||"");return t}exports.getBabelRoot=getBabelRoot,exports.isNotIgnoredByProjectConfig=isNotIgnoredByProjectConfig,exports.compileOther=compileOther,exports.compileJSFiles=compileJSFiles,exports.compileWXSSFiles=compileWXSSFiles,exports.compileWXMLFiles=compileWXMLFiles,exports.getUploadProjectConfig=getUploadProjectConfig;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getUploadProjectConfig=exports.compileWXMLFiles=exports.compileWXSSFiles=exports.compileJSFiles=exports.compileOther=exports.isNotIgnoredByProjectConfig=exports.getBabelRoot=void 0;const tslib_1=require("tslib"),babel_helper_1=require("../../utils/babel_helper"),js_1=require("./handler/js"),wxss_1=require("./handler/wxss"),wxml_1=require("./handler/wxml"),tools_1=require("../../utils/tools"),taskstatus_1=require("../../utils/taskstatus"),index_1=require("../worker_thread/index"),path_1=(0,tslib_1.__importDefault)(require("path")),projectconfig_1=require("../json/projectconfig"),game_1=(0,tslib_1.__importDefault)(require("../json/game")),signaturejson_1=require("../json/signaturejson"),config_1=require("../../config");async function getBabelRoot(o){var e,t;const i=await(0,projectconfig_1.getProjectConfigJSON)(o);let s=null===(t=null===(e=null==i?void 0:i.setting)||void 0===e?void 0:e.babelSetting)||void 0===t?void 0:t.outputPath;return s?(s=(0,tools_1.normalizePath)(s),s.replace(/(^[./\\])|(\/$)/g,""),s):"@babel/runtime"}function isNotIgnoredByProjectConfig(o,e,t){var i;const s=(null===(i=o.packOptions)||void 0===i?void 0:i.ignore)||[];return 0===s.length||!(0,tools_1.isFileIgnored)(path_1.default.posix.relative(e,t),s)}async function copyFile(o,e){return{filePath:e,code:await o.getFile("",e)}}async function compileOther(o,e,t){const{onProgressUpdate:i=(()=>{})}=t,s=new taskstatus_1.TaskStatus("compiling other files");i(s);const n=[];for(const t of e)n.push(copyFile(o,t));const a=await Promise.all(n),r={};for(const o of a){const{code:e,filePath:t}=o;e&&(r[t]=e)}return s.done(),i(s),r}async function canWeCompileJS(o,e,t){let i;for(const o of e)if((0,tools_1.normalizePath)(t).startsWith((0,tools_1.normalizePath)((0,signaturejson_1.trailing)(o.fullPath,"/")))){i=o;break}if(i){return i.signature.findIndex(o=>(0,tools_1.normalizePath)(o.fullPath)===(0,tools_1.normalizePath)(t))>=0}return!0}async function compileJSFiles(o,e,t,i){const{setting:s={}}=i;let n="@babel/runtime";s.es7&&(n=await getBabelRoot(o));const a=[];if(o.type===config_1.COMPILE_TYPE.miniGame||o.type===config_1.COMPILE_TYPE.miniGamePlugin){const s=await(0,signaturejson_1.getAllPluginSignatures)(o);for(const r of e){const e=path_1.default.join(o.projectPath,t,r);await canWeCompileJS(o,s,e)&&a.push((0,js_1.compileJS)(o,r,Object.assign(Object.assign({},i),{babelRoot:n,root:t})))}}else for(const s of e)a.push((0,js_1.compileJS)(o,s,Object.assign(Object.assign({},i),{babelRoot:n,root:t})));let r=[];try{r=await Promise.all(a)}catch(o){throw(0,index_1.abortTask)(index_1.TASK_NAME.COMPILE_JS),o}const l={},c=new Set;for(const o of r){const{filePath:e,map:i,code:s,helpers:n}=o,a=(0,tools_1.formatSourceMap)(i);void 0!==s&&(l[path_1.default.posix.normalize(path_1.default.posix.join(t,e))]=s),a&&(l[path_1.default.posix.normalize(path_1.default.posix.join(t,e+".map"))]=a),n.length>0&&n.forEach(o=>{c.add(o)})}return await(0,babel_helper_1.appendBabelHelpers)(c,path_1.default.join(t),n,l),l}async function compileWXSSFiles(o,e,t,i){const s=[];for(const n of e)s.push((0,wxss_1.compileWXSS)(o,n,Object.assign(Object.assign({},i),{root:t})));let n=[];try{n=await Promise.all(s)}catch(o){throw(0,index_1.abortTask)(index_1.TASK_NAME.COMPILE_WXSS),o}const a={};for(const o of n){const{filePath:e,code:i}=o;void 0!==i&&(a[path_1.default.posix.normalize(path_1.default.posix.join(t,e))]=i)}return a}async function compileWXMLFiles(o,e,t,i){const s=[];for(const n of e)s.push((0,wxml_1.compileWXML)(o,n,Object.assign(Object.assign({},i),{root:t})));let n=[];try{n=await Promise.all(s)}catch(o){throw(0,index_1.abortTask)(index_1.TASK_NAME.MINIFY_WXML),o}const a={};for(const o of n){const{filePath:e,code:i}=o;void 0!==i&&(a[path_1.default.posix.normalize(path_1.default.posix.join(t,e))]=i)}return a}async function getUploadProjectConfig(o,e){const t={miniprogramRoot:e.miniprogramRoot,localPlugins:[]};e.pluginRoot&&(t.pluginRoot=e.pluginRoot);const i=await(0,game_1.default)(o),s=(o,e="")=>{const i=t.localPlugins||[];for(const t in o)if(o.hasOwnProperty(t)&&o[t]&&"string"==typeof o[t].path){const s=o[t],n=path_1.default.posix.normalize(path_1.default.posix.join(e,s.path.replace(/\\/g,"/")).replace(/^\/+/,""));i.push({alias:t,provider:s.provider,path:n})}t.localPlugins=i};if(i.plugins){s(i.plugins)}const n=i.subpackages||i.subPackages;if(Array.isArray(n))for(const o of n)(null==o?void 0:o.plugins)&&s(o.plugins,o.root||"");return t}exports.getBabelRoot=getBabelRoot,exports.isNotIgnoredByProjectConfig=isNotIgnoredByProjectConfig,exports.compileOther=compileOther,exports.compileJSFiles=compileJSFiles,exports.compileWXSSFiles=compileWXSSFiles,exports.compileWXMLFiles=compileWXMLFiles,exports.getUploadProjectConfig=getUploadProjectConfig;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compile=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),game_1=tslib_1.__importDefault(require("../json/game")),projectconfig_1=require("../json/projectconfig"),common_1=require("./common"),taskstatus_1=require("../../utils/taskstatus"),config_1=require("../../config"),common_2=require("../../utils/common"),locales_1=tslib_1.__importDefault(require("../../utils/locales/locales")),white_ext_list_1=require("../../utils/white_ext_list"),uglifyfilenames_1=require("../protect/uglifyfilenames");async function compileGameJSON(e,t){const{onProgressUpdate:o=(()=>{})}=t,i=new taskstatus_1.TaskStatus("game.json");o(i);const a=await game_1.default(e);return i.done(),o(i),a}async function compile(e,t){var o;const i=await projectconfig_1.getProjectConfigJSON(e);!1===(await e.attr()).gameApp&&common_2.throwError({filePath:"",msg:locales_1.default.config.PROJECT_TYPE_ERROR.format(e.appid,locales_1.default.config.MINI_PROGRAM),code:config_1.PROJECT_TYPE_ERROR});const a=i.miniprogramRoot||"",{GameWhiteList:s}=await white_ext_list_1.getWhiteExtList(),n=e.getFileList(a,"").filter(common_1.isNotIgnoredByProjectConfig.bind(null,i,a)).filter(e=>s.has(path_1.default.posix.extname(e))),r=await compileGameJSON(e,t);e.stat(a,"game.js")||common_2.throwError({msg:locales_1.default.config.FILE_NOT_FOUND.format(path_1.default.posix.join(a,"game.js")),filePath:path_1.default.posix.join(a,"game.js"),code:config_1.FILE_NOT_FOUND});const l=n.filter(e=>".js"===path_1.default.posix.extname(e)).map(e=>path_1.default.posix.relative(a,e)),m=await common_1.compileJSFiles(e,l,a,t),_=n.filter(e=>e!==path_1.default.posix.join(a,"game.json")&&".js"!==path_1.default.posix.extname(e)),c=await common_1.compileOther(e,_,t),f=await common_1.getUploadProjectConfig(e,i);let p=Object.assign(Object.assign({},m),c);if(e.type===config_1.COMPILE_TYPE.miniGame){if(f.miniprogramRoot&&"."!==f.miniprogramRoot&&"./"!==f.miniprogramRoot){const t={};for(const o in p)t[path_1.default.posix.relative(e.miniprogramRoot,o)]=p[o];p=t}f.miniprogramRoot="",p["game.json"]=JSON.stringify(r)}else p[path_1.default.posix.join(f.miniprogramRoot||"","game.json")]=JSON.stringify(r);return f.__compileDebugInfo__=t.__compileDebugInfo__||{},p["project.config.json"]=JSON.stringify(f),e.type===config_1.COMPILE_TYPE.miniGame&&(null===(o=t.setting)||void 0===o?void 0:o.codeProtect)&&(p=await uglifyfilenames_1.uglifyFileNames(e,p)),p}exports.compile=compile;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compile=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),game_1=(0,tslib_1.__importDefault)(require("../json/game")),projectconfig_1=require("../json/projectconfig"),common_1=require("./common"),taskstatus_1=require("../../utils/taskstatus"),config_1=require("../../config"),common_2=require("../../utils/common"),locales_1=(0,tslib_1.__importDefault)(require("../../utils/locales/locales")),white_ext_list_1=require("../../utils/white_ext_list"),uglifyfilenames_1=require("../protect/uglifyfilenames");async function compileGameJSON(e,t){const{onProgressUpdate:o=(()=>{})}=t,i=new taskstatus_1.TaskStatus("game.json");o(i);const a=await(0,game_1.default)(e);return i.done(),o(i),a}async function compile(e,t){var o;const i=await(0,projectconfig_1.getProjectConfigJSON)(e);!1===(await e.attr()).gameApp&&(0,common_2.throwError)({filePath:"",msg:locales_1.default.config.PROJECT_TYPE_ERROR.format(e.appid,locales_1.default.config.MINI_PROGRAM),code:config_1.PROJECT_TYPE_ERROR});const a=i.miniprogramRoot||"",{GameWhiteList:s}=await(0,white_ext_list_1.getWhiteExtList)(),n=e.getFileList(a,"").filter(common_1.isNotIgnoredByProjectConfig.bind(null,i,a)).filter(e=>s.has(path_1.default.posix.extname(e))),r=await compileGameJSON(e,t);e.stat(a,"game.js")||(0,common_2.throwError)({msg:locales_1.default.config.FILE_NOT_FOUND.format(path_1.default.posix.join(a,"game.js")),filePath:path_1.default.posix.join(a,"game.js"),code:config_1.FILE_NOT_FOUND});const l=n.filter(e=>".js"===path_1.default.posix.extname(e)).map(e=>path_1.default.posix.relative(a,e)),m=await(0,common_1.compileJSFiles)(e,l,a,t),_=n.filter(e=>e!==path_1.default.posix.join(a,"game.json")&&".js"!==path_1.default.posix.extname(e)),c=await(0,common_1.compileOther)(e,_,t),f=await(0,common_1.getUploadProjectConfig)(e,i);let p=Object.assign(Object.assign({},m),c);if(e.type===config_1.COMPILE_TYPE.miniGame){if(f.miniprogramRoot&&"."!==f.miniprogramRoot&&"./"!==f.miniprogramRoot){const t={};for(const o in p)t[path_1.default.posix.relative(e.miniprogramRoot,o)]=p[o];p=t}f.miniprogramRoot="",p["game.json"]=JSON.stringify(r)}else p[path_1.default.posix.join(f.miniprogramRoot||"","game.json")]=JSON.stringify(r);return f.__compileDebugInfo__=t.__compileDebugInfo__||{},p["project.config.json"]=JSON.stringify(f),e.type===config_1.COMPILE_TYPE.miniGame&&(null===(o=t.setting)||void 0===o?void 0:o.codeProtect)&&(p=await(0,uglifyfilenames_1.uglifyFileNames)(e,p)),p}exports.compile=compile;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compile=exports.compilePlugin=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),projectconfig_1=require("../json/projectconfig"),common_1=require("./common"),plugin_1=require("../json/plugin/plugin"),game_1=require("./game"),white_ext_list_1=require("../../utils/white_ext_list");async function compilePlugin(e,i){const t=await projectconfig_1.getProjectConfigJSON(e),o=t.pluginRoot,{GameWhiteList:n}=await white_ext_list_1.getWhiteExtList(),l=e.getFileList(o,"").filter(common_1.isNotIgnoredByProjectConfig.bind(null,t,o)).filter(e=>n.has(path_1.default.posix.extname(e))),a=await plugin_1.getDevPluginJSON(e,!1),s=l.filter(e=>".js"===path_1.default.posix.extname(e)).map(e=>path_1.default.posix.relative(o,e)),p=await common_1.compileJSFiles(e,s,o,i),c=l.filter(e=>".js"!==path_1.default.posix.extname(e)&&e!==path_1.default.posix.join(o,"plugin.json")),r=await common_1.compileOther(e,c,i);return Object.assign(Object.assign({[path_1.default.posix.join(o,"plugin.json")]:JSON.stringify(a)},p),r)}async function compile(e,i){const t=await projectconfig_1.getProjectConfigJSON(e),o=await compilePlugin(e,i),n=await game_1.compile(e,i),l=await common_1.getUploadProjectConfig(e,t);return l.__compileDebugInfo__=i.__compileDebugInfo__||{},Object.assign(Object.assign(Object.assign({},o),n),{"project.config.json":JSON.stringify(l)})}exports.compilePlugin=compilePlugin,exports.compile=compile;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compile=exports.compilePlugin=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),projectconfig_1=require("../json/projectconfig"),common_1=require("./common"),plugin_1=require("../json/plugin/plugin"),game_1=require("./game"),white_ext_list_1=require("../../utils/white_ext_list");async function compilePlugin(e,i){const t=await(0,projectconfig_1.getProjectConfigJSON)(e),o=t.pluginRoot,{GameWhiteList:n}=await(0,white_ext_list_1.getWhiteExtList)(),l=e.getFileList(o,"").filter(common_1.isNotIgnoredByProjectConfig.bind(null,t,o)).filter(e=>n.has(path_1.default.posix.extname(e))),a=await(0,plugin_1.getDevPluginJSON)(e,!1),s=l.filter(e=>".js"===path_1.default.posix.extname(e)).map(e=>path_1.default.posix.relative(o,e)),p=await(0,common_1.compileJSFiles)(e,s,o,i),c=l.filter(e=>".js"!==path_1.default.posix.extname(e)&&e!==path_1.default.posix.join(o,"plugin.json")),r=await(0,common_1.compileOther)(e,c,i);return Object.assign(Object.assign({[path_1.default.posix.join(o,"plugin.json")]:JSON.stringify(a)},p),r)}async function compile(e,i){const t=await(0,projectconfig_1.getProjectConfigJSON)(e),o=await compilePlugin(e,i),n=await(0,game_1.compile)(e,i),l=await(0,common_1.getUploadProjectConfig)(e,t);return l.__compileDebugInfo__=i.__compileDebugInfo__||{},Object.assign(Object.assign(Object.assign({},o),n),{"project.config.json":JSON.stringify(l)})}exports.compilePlugin=compilePlugin,exports.compile=compile;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileJS=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),taskstatus_1=require("../../../utils/taskstatus"),worker_thread_1=require("../../worker_thread"),common_1=require("../../../utils/common"),config_1=require("../../../config"),tools_1=require("../../../utils/tools"),app_1=require("../../json/app"),common_2=require("../../json/common"),projectconfig_1=require("../../json/projectconfig"),game_1=tslib_1.__importDefault(require("../../json/game")),core_1=require("../../../core");async function formatBabelRoot(e,t,o,r){const a=e.type;if(a===config_1.COMPILE_TYPE.miniProgram){const t=await app_1.getAppJSON(e),a=common_2.checkPagePathIsInIndependentSubpackage(t,o);a&&(r=`${a.root}/${r}`),"object"==typeof t.functionalPages&&!0===t.functionalPages.independent&&o.startsWith("functional-pages/")&&(r="functional-pages/"+r),"string"==typeof t.openDataContext&&o.startsWith(t.openDataContext)&&(r=`${t.openDataContext}/${r}`),"string"==typeof t.workers&&o.startsWith(t.workers)&&(r=`${t.workers}/${r}`)}else if(a===config_1.COMPILE_TYPE.miniGame){const t=await game_1.default(e),a=common_2.checkFilePathIsInIndependentSubpackage(t,o);a&&(r=`${a}/${r}`),"string"==typeof t.openDataContext&&o.startsWith(t.openDataContext)&&(r=`${t.openDataContext}/${r}`),"string"==typeof t.workers&&o.startsWith(t.workers)&&(r=`${t.workers}/${r}`)}else if(a===config_1.COMPILE_TYPE.miniProgramPlugin||a===config_1.COMPILE_TYPE.miniGamePlugin){const t=await core_1.getPluginJSON(e);"string"==typeof t.workers&&o.startsWith(t.workers)&&(r=`${t.workers}/${r}`)}return tools_1.normalizePath(""+r)}async function compileJS(e,t,o){var r,a;const{setting:i={},onProgressUpdate:n=(()=>{}),root:s="",devToolsCompileCache:c}=o,l=path_1.default.posix.join(s,t);let p=[],_=o.babelRoot||"@babel/runtime";if(i.es7){const o=await projectconfig_1.getProjectConfigJSON(e);p=(null===(a=null===(r=o.setting)||void 0===r?void 0:r.babelSetting)||void 0===a?void 0:a.ignore)||[],_=await formatBabelRoot(e,s,t,_)}const u=new taskstatus_1.TaskStatus(t),g=o.sourceCode?o.sourceCode:await e.getFile(s,t);async function f(){const o=await worker_thread_1.runTask(worker_thread_1.TASK_NAME.COMPILE_JS,{projectPath:e.projectPath,root:s,filePath:t,setting:i,code:g,babelRoot:_,babelIgnore:p},e=>{e===worker_thread_1.ETaskStatus.progress?n(u):e===worker_thread_1.ETaskStatus.done&&(u.done(),n(u))});return o.error&&common_1.throwError({msg:o.error.message,code:o.error.code,filePath:l}),o}let m={};if(c){const o=tools_1.normalizePath(path_1.default.posix.join(e.projectPath,s,t)),r=`${o}_${JSON.stringify(i)}`;m=await c.getFile(o,r),m&&!i.codeProtect||(m=await f(),c.setFile(o,m,r))}else m=await f();return Object.assign({filePath:t},m)}exports.compileJS=compileJS;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileJS=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),taskstatus_1=require("../../../utils/taskstatus"),worker_thread_1=require("../../worker_thread"),common_1=require("../../../utils/common"),config_1=require("../../../config"),tools_1=require("../../../utils/tools"),app_1=require("../../json/app"),common_2=require("../../json/common"),projectconfig_1=require("../../json/projectconfig"),game_1=(0,tslib_1.__importDefault)(require("../../json/game")),core_1=require("../../../core");async function formatBabelRoot(e,t,o,r){const a=e.type;if(a===config_1.COMPILE_TYPE.miniProgram){const t=await(0,app_1.getAppJSON)(e),a=(0,common_2.checkPagePathIsInIndependentSubpackage)(t,o);a&&(r=`${a.root}/${r}`),"object"==typeof t.functionalPages&&!0===t.functionalPages.independent&&o.startsWith("functional-pages/")&&(r="functional-pages/"+r),"string"==typeof t.openDataContext&&o.startsWith(t.openDataContext)&&(r=`${t.openDataContext}/${r}`),"string"==typeof t.workers&&o.startsWith(t.workers)&&(r=`${t.workers}/${r}`)}else if(a===config_1.COMPILE_TYPE.miniGame){const t=await(0,game_1.default)(e),a=(0,common_2.checkFilePathIsInIndependentSubpackage)(t,o);a&&(r=`${a}/${r}`),"string"==typeof t.openDataContext&&o.startsWith(t.openDataContext)&&(r=`${t.openDataContext}/${r}`),"string"==typeof t.workers&&o.startsWith(t.workers)&&(r=`${t.workers}/${r}`)}else if(a===config_1.COMPILE_TYPE.miniProgramPlugin||a===config_1.COMPILE_TYPE.miniGamePlugin){const t=await(0,core_1.getPluginJSON)(e);"string"==typeof t.workers&&o.startsWith(t.workers)&&(r=`${t.workers}/${r}`)}return(0,tools_1.normalizePath)(""+r)}async function compileJS(e,t,o){var r,a;const{setting:i={},onProgressUpdate:n=(()=>{}),root:s="",devToolsCompileCache:c}=o,l=path_1.default.posix.join(s,t);let p=[],_=o.babelRoot||"@babel/runtime";if(i.es7){const o=await(0,projectconfig_1.getProjectConfigJSON)(e);p=(null===(a=null===(r=o.setting)||void 0===r?void 0:r.babelSetting)||void 0===a?void 0:a.ignore)||[],_=await formatBabelRoot(e,s,t,_)}const u=new taskstatus_1.TaskStatus(t),g=o.sourceCode?o.sourceCode:await e.getFile(s,t);async function f(){const o=await(0,worker_thread_1.runTask)(worker_thread_1.TASK_NAME.COMPILE_JS,{projectPath:e.projectPath,root:s,filePath:t,setting:i,code:g,babelRoot:_,babelIgnore:p},e=>{e===worker_thread_1.ETaskStatus.progress?n(u):e===worker_thread_1.ETaskStatus.done&&(u.done(),n(u))});return o.error&&(0,common_1.throwError)({msg:o.error.message,code:o.error.code,filePath:l}),o}let m={};if(c){const o=(0,tools_1.normalizePath)(path_1.default.posix.join(e.projectPath,s,t)),r=`${o}_${JSON.stringify(i)}`;m=await c.getFile(o,r),m&&!i.codeProtect||(m=await f(),c.setFile(o,m,r))}else m=await f();return Object.assign({filePath:t},m)}exports.compileJS=compileJS;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileJSON=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),app_1=require("../../json/app"),getExtJSON_1=require("../../json/app/getExtJSON"),common_1=require("../../../utils/common"),getPageJSON_1=require("../../json/page/getPageJSON"),taskstatus_1=require("../../../utils/taskstatus"),projectconfig_1=require("../../json/projectconfig"),common_2=require("../common");async function compilePageJSON(t,e,o,a){const{onProgressUpdate:s=(()=>{})}=a,n={};for(const a of e){const e=new taskstatus_1.TaskStatus(a);s(e),n[path_1.default.posix.join(o,a+".json")]=await getPageJSON_1.getPageJSON(t,{miniprogramRoot:o,pagePath:a}),e.done(),s(e)}return n}async function compileJSON(t,e){const{onProgressUpdate:o=(()=>{})}=e,a=await projectconfig_1.getProjectConfigJSON(t),{miniprogramRoot:s=""}=a;let n=new taskstatus_1.TaskStatus("app.json");o(n);const i=await app_1.getAppJSON(t);let r;n.done(),o(n);const p=await t.attr();(null==p?void 0:p.platform)&&(n=new taskstatus_1.TaskStatus("ext.json"),o(n),r=await getExtJSON_1.getExtJSON(t),n.done(),o(n));const c=common_1.getAllPages(i),l=await compilePageJSON(t,c,s,e),g=new Set(["app.json","ext.json"].concat(c.map(t=>t+".json"))),u=common_1.getAllTargetTypeFilesWithOtherTypeFilesOfSameName(t,".json",[".wxml",".js"],s).filter(common_2.isNotIgnoredByProjectConfig.bind(null,a,s)).filter(t=>{const e=path_1.default.posix.relative(s,t);return!g.has(e)}).map(t=>path_1.default.posix.relative(s,t).replace(/\.json$/,"")),m=await compilePageJSON(t,u,s,e);u.forEach(t=>g.add(t+".json"));const j=t.getFileList(s,".json").filter(common_2.isNotIgnoredByProjectConfig.bind(null,a,s)).filter(t=>{const e=path_1.default.posix.relative(s,t);return!g.has(e)}),_=await common_2.compileOther(t,j,e),f=Object.assign(Object.assign(Object.assign({[path_1.default.posix.join(s,"app.json")]:i},l),m),_);r&&(f[path_1.default.posix.join(s,"ext.json")]=r);const O={};for(const t in f){const e=f[t];let o;o="[object Uint8Array]"===Object.prototype.toString.call(e)?e.toString():JSON.stringify(e),O[t]=o}return O}exports.compileJSON=compileJSON;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileJSON=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),app_1=require("../../json/app"),getExtJSON_1=require("../../json/app/getExtJSON"),common_1=require("../../../utils/common"),getPageJSON_1=require("../../json/page/getPageJSON"),taskstatus_1=require("../../../utils/taskstatus"),projectconfig_1=require("../../json/projectconfig"),common_2=require("../common");async function compilePageJSON(t,e,o,a){const{onProgressUpdate:s=(()=>{})}=a,n={};for(const a of e){const e=new taskstatus_1.TaskStatus(a);s(e),n[path_1.default.posix.join(o,a+".json")]=await(0,getPageJSON_1.getPageJSON)(t,{miniprogramRoot:o,pagePath:a}),e.done(),s(e)}return n}async function compileJSON(t,e){const{onProgressUpdate:o=(()=>{})}=e,a=await(0,projectconfig_1.getProjectConfigJSON)(t),{miniprogramRoot:s=""}=a;let n=new taskstatus_1.TaskStatus("app.json");o(n);const i=await(0,app_1.getAppJSON)(t);let r;n.done(),o(n);const p=await t.attr();(null==p?void 0:p.platform)&&(n=new taskstatus_1.TaskStatus("ext.json"),o(n),r=await(0,getExtJSON_1.getExtJSON)(t),n.done(),o(n));const c=(0,common_1.getAllPages)(i),l=await compilePageJSON(t,c,s,e),g=new Set(["app.json","ext.json"].concat(c.map(t=>t+".json"))),u=(0,common_1.getAllTargetTypeFilesWithOtherTypeFilesOfSameName)(t,".json",[".wxml",".js"],s).filter(common_2.isNotIgnoredByProjectConfig.bind(null,a,s)).filter(t=>{const e=path_1.default.posix.relative(s,t);return!g.has(e)}).map(t=>path_1.default.posix.relative(s,t).replace(/\.json$/,"")),m=await compilePageJSON(t,u,s,e);u.forEach(t=>g.add(t+".json"));const j=t.getFileList(s,".json").filter(common_2.isNotIgnoredByProjectConfig.bind(null,a,s)).filter(t=>{const e=path_1.default.posix.relative(s,t);return!g.has(e)}),_=await(0,common_2.compileOther)(t,j,e),f=Object.assign(Object.assign(Object.assign({[path_1.default.posix.join(s,"app.json")]:i},l),m),_);r&&(f[path_1.default.posix.join(s,"ext.json")]=r);const O={};for(const t in f){const e=f[t];let o;o="[object Uint8Array]"===Object.prototype.toString.call(e)?e.toString():JSON.stringify(e),O[t]=o}return O}exports.compileJSON=compileJSON;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileWXML=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),tools_1=require("../../../utils/tools"),locales_1=tslib_1.__importDefault(require("../../../utils/locales/locales")),config_1=require("../../../config"),taskstatus_1=require("../../../utils/taskstatus"),worker_thread_1=require("../../worker_thread"),common_1=require("../../../utils/common");async function compileWXML(e,r,t){const{root:o="",setting:s={},onProgressUpdate:i=(()=>{})}=t,{minify:a,minifyWXML:_}=s,l=new taskstatus_1.TaskStatus(r),c=path_1.default.posix.join(o,r),n=await e.getFile(o,r);if(!a&&!_){i(l);const e=tools_1.bufferToUtf8String(n);return void 0===e&&common_1.throwError({msg:locales_1.default.config.FILE_NOT_UTF8.format(c),code:config_1.FILE_NOT_UTF8,filePath:c}),l.done(),i(l),{filePath:r,code:e.replace(/\r\n/g,"\n")}}const u=await worker_thread_1.runTask(worker_thread_1.TASK_NAME.MINIFY_WXML,{projectPath:e.projectPath,root:o,filePath:r,setting:s,code:n},e=>{e===worker_thread_1.ETaskStatus.progress?i(l):e===worker_thread_1.ETaskStatus.done&&(l.done(),i(l))});return u.error&&common_1.throwError({msg:u.error.message,code:u.error.code,filePath:c}),{filePath:r,code:u.code.replace(/\r\n/g,"\n")}}exports.compileWXML=compileWXML;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileWXML=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),tools_1=require("../../../utils/tools"),locales_1=(0,tslib_1.__importDefault)(require("../../../utils/locales/locales")),config_1=require("../../../config"),taskstatus_1=require("../../../utils/taskstatus"),worker_thread_1=require("../../worker_thread"),common_1=require("../../../utils/common");async function compileWXML(e,r,t){const{root:o="",setting:s={},onProgressUpdate:i=(()=>{})}=t,{minify:a,minifyWXML:_}=s,l=new taskstatus_1.TaskStatus(r),c=path_1.default.posix.join(o,r),n=await e.getFile(o,r);if(!a&&!_){i(l);const e=(0,tools_1.bufferToUtf8String)(n);return void 0===e&&(0,common_1.throwError)({msg:locales_1.default.config.FILE_NOT_UTF8.format(c),code:config_1.FILE_NOT_UTF8,filePath:c}),l.done(),i(l),{filePath:r,code:e.replace(/\r\n/g,"\n")}}const u=await(0,worker_thread_1.runTask)(worker_thread_1.TASK_NAME.MINIFY_WXML,{projectPath:e.projectPath,root:o,filePath:r,setting:s,code:n},e=>{e===worker_thread_1.ETaskStatus.progress?i(l):e===worker_thread_1.ETaskStatus.done&&(l.done(),i(l))});return u.error&&(0,common_1.throwError)({msg:u.error.message,code:u.error.code,filePath:c}),{filePath:r,code:u.code.replace(/\r\n/g,"\n")}}exports.compileWXML=compileWXML;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileWXSS=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),tools_1=require("../../../utils/tools"),locales_1=tslib_1.__importDefault(require("../../../utils/locales/locales")),config_1=require("../../../config"),taskstatus_1=require("../../../utils/taskstatus"),worker_thread_1=require("../../worker_thread"),common_1=require("../../../utils/common");async function compileWXSS(e,t,o){const{root:r="",setting:i={},onProgressUpdate:s=(()=>{}),devToolsCompileCache:a}=o,{minify:l,minifyWXSS:_,autoPrefixWXSS:c}=i,n=new taskstatus_1.TaskStatus(t),u=path_1.default.posix.join(r,t),f=await e.getFile(r,t);if(!l&&!_&&!c){s(n);const e=tools_1.bufferToUtf8String(f);return void 0===e&&common_1.throwError({msg:locales_1.default.config.FILE_NOT_UTF8.format(u),code:config_1.FILE_NOT_UTF8,filePath:u}),n.done(),s(n),{filePath:t,code:e}}async function d(){const o=await worker_thread_1.runTask(worker_thread_1.TASK_NAME.COMPILE_WXSS,{projectPath:e.projectPath,root:r,filePath:t,setting:i,code:f},e=>{e===worker_thread_1.ETaskStatus.progress?s(n):e===worker_thread_1.ETaskStatus.done&&(n.done(),s(n))});return o.error&&common_1.throwError({msg:o.error.message,code:o.error.code,filePath:u}),o.code}let h="";if(a){const o=tools_1.normalizePath(path_1.default.posix.join(e.projectPath,r,t)),s=`${o}_${JSON.stringify(i)}`;h=await a.getFile(o,s),h&&!i.codeProtect||(h=await d(),a.setFile(o,h,s))}else h=await d();return{filePath:t,code:h}}exports.compileWXSS=compileWXSS;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileWXSS=void 0;const tslib_1=require("tslib"),path_1=(0,tslib_1.__importDefault)(require("path")),tools_1=require("../../../utils/tools"),locales_1=(0,tslib_1.__importDefault)(require("../../../utils/locales/locales")),config_1=require("../../../config"),taskstatus_1=require("../../../utils/taskstatus"),worker_thread_1=require("../../worker_thread"),common_1=require("../../../utils/common");async function compileWXSS(e,t,o){const{root:r="",setting:i={},onProgressUpdate:s=(()=>{}),devToolsCompileCache:a}=o,{minify:l,minifyWXSS:_,autoPrefixWXSS:c}=i,n=new taskstatus_1.TaskStatus(t),u=path_1.default.posix.join(r,t),f=await e.getFile(r,t);if(!l&&!_&&!c){s(n);const e=(0,tools_1.bufferToUtf8String)(f);return void 0===e&&(0,common_1.throwError)({msg:locales_1.default.config.FILE_NOT_UTF8.format(u),code:config_1.FILE_NOT_UTF8,filePath:u}),n.done(),s(n),{filePath:t,code:e}}async function d(){const o=await(0,worker_thread_1.runTask)(worker_thread_1.TASK_NAME.COMPILE_WXSS,{projectPath:e.projectPath,root:r,filePath:t,setting:i,code:f},e=>{e===worker_thread_1.ETaskStatus.progress?s(n):e===worker_thread_1.ETaskStatus.done&&(n.done(),s(n))});return o.error&&(0,common_1.throwError)({msg:o.error.message,code:o.error.code,filePath:u}),o.code}let h="";if(a){const o=(0,tools_1.normalizePath)(path_1.default.posix.join(e.projectPath,r,t)),s=`${o}_${JSON.stringify(i)}`;h=await a.getFile(o,s),h&&!i.codeProtect||(h=await d(),a.setFile(o,h,s))}else h=await d();return{filePath:t,code:h}}exports.compileWXSS=compileWXSS;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compile=void 0;const game_1=require("./game"),mini_program_1=require("./mini_program"),mini_program_plugin_1=require("./mini_program_plugin"),game_plugin_1=require("./game_plugin"),config_1=require("../../config"),reactiveCache_1=require("../json/reactiveCache");async function compile(e,i){const o=reactiveCache_1.tryToGetReactiveProject(e);return await o.updateProject(),i.__compileDebugInfo__?i.__compileDebugInfo__.ciVersion=config_1.CI_VERSION:i.__compileDebugInfo__={from:"ci",useNewCompileModule:!0,devtoolsVersion:"0",compileSetting:i.setting,ciVersion:config_1.CI_VERSION},process.env.isDevtools&&(e.nameMappingFromDevtools=i.nameMapping||{}),e.type===config_1.COMPILE_TYPE.miniGame?game_1.compile(e,i):e.type===config_1.COMPILE_TYPE.miniProgramPlugin?mini_program_plugin_1.compile(e,i):e.type===config_1.COMPILE_TYPE.miniGamePlugin?game_plugin_1.compile(e,i):mini_program_1.compile(e,i)}exports.compile=compile;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compile=void 0;const game_1=require("./game"),mini_program_1=require("./mini_program"),mini_program_plugin_1=require("./mini_program_plugin"),game_plugin_1=require("./game_plugin"),config_1=require("../../config"),reactiveCache_1=require("../json/reactiveCache");async function compile(e,i){const o=(0,reactiveCache_1.tryToGetReactiveProject)(e);return await o.updateProject(),i.__compileDebugInfo__?i.__compileDebugInfo__.ciVersion=config_1.CI_VERSION:i.__compileDebugInfo__={from:"ci",useNewCompileModule:!0,devtoolsVersion:"0",compileSetting:i.setting,ciVersion:config_1.CI_VERSION},process.env.isDevtools&&(e.nameMappingFromDevtools=i.nameMapping||{}),e.type===config_1.COMPILE_TYPE.miniGame?(0,game_1.compile)(e,i):e.type===config_1.COMPILE_TYPE.miniProgramPlugin?(0,mini_program_plugin_1.compile)(e,i):e.type===config_1.COMPILE_TYPE.miniGamePlugin?(0,game_plugin_1.compile)(e,i):(0,mini_program_1.compile)(e,i)}exports.compile=compile;