miniprogram-ci 2.0.5 → 2.0.7

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ #### 2.0.7
2
+ - `fix` 修复 Skyline disableScroll 不强制为 true
3
+ #### 2.0.6
4
+ - `fix` 修复 未设置 onProgressUpdate 输出日志为[object Object]的问题
1
5
  #### 2.0.5
2
6
  - `fix` 修复 命令行执行完不退出的问题
3
7
  - `fix` 修复 输出日志为[object Object]的问题
package/README.md CHANGED
@@ -8,6 +8,8 @@ miniprogram-ci 从 1.0.28 开始支持第三方平台开发的上传和预览,
8
8
 
9
9
  ## 最近变更
10
10
 
11
+ #### 2.0.6
12
+ - `fix` 修复 未设置 onProgressUpdate 输出日志为[object Object]的问题
11
13
  #### 2.0.5
12
14
  - `fix` 修复 命令行执行完不退出的问题
13
15
  - `fix` 修复 输出日志为[object Object]的问题
@@ -1,5 +1,5 @@
1
1
  import { IProject } from '../types';
2
- export declare const CI_VERSION = "2.0.5";
2
+ export declare const CI_VERSION = "2.0.7";
3
3
  export declare const PARAM_ERROR = 10000;
4
4
  export declare const WXML_NOT_FOUND = 10007;
5
5
  export declare const JS_NOT_FOUND = 10008;
@@ -106,6 +106,7 @@ export declare abstract class BaseCoreCompiler {
106
106
  }>;
107
107
  abstract getPackageFiles(graphId: MiniProgramDevtools.GraphId, root: string): Promise<FileInfo[]>;
108
108
  abstract getSubPkgSortedJSFiles(rootPath: string): Promise<{
109
+ entryJS: string;
109
110
  allFiles: string[];
110
111
  pageFiles: string[];
111
112
  componentFiles: string[];
@@ -93,6 +93,7 @@ export declare class OriginalCompiler extends BaseCoreCompiler {
93
93
  }>;
94
94
  getPackageFiles(graphId: MiniProgramDevtools.GraphId, root: string): Promise<FileInfo[]>;
95
95
  getSubPkgSortedJSFiles(_rootPath: string): Promise<{
96
+ entryJS: string;
96
97
  allFiles: string[];
97
98
  pageFiles: string[];
98
99
  componentFiles: string[];
@@ -69,6 +69,7 @@ export declare class SummerCompiler extends BaseCoreCompiler {
69
69
  otherFiles: string[];
70
70
  }>;
71
71
  getSubPkgSortedJSFiles(rootPath: string): Promise<{
72
+ entryJS: string;
72
73
  allFiles: string[];
73
74
  pageFiles: string[];
74
75
  componentFiles: string[];
@@ -210,6 +210,7 @@ export declare namespace MiniProgramDevtools {
210
210
  [key in string]: any;
211
211
  }]>;
212
212
  ignoreUploadUnusedFiles?: boolean;
213
+ ignoreCodeQuality?: boolean;
213
214
  ignoreDevUnusedFiles?: boolean;
214
215
  bigPackageSizeSupport?: boolean;
215
216
  }
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"),log=tslib_1.__importStar(require("../utils/log")),request_1=require("../utils/request"),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/config"),taskstatus_1=require("../utils/taskstatus"),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("../config/url.config"),jsonParse_1=require("../utils/jsonParse"),cache_1=require("../utils/cache"),cos_upload_1=require("./cos-upload"),filterUnusedFile_1=require("./utils/filterUnusedFile"),getcompiler_1=require("./getcompiler"),tools_2=require("./utils/tools");exports.SIGNATURE_FILE_NAME="ci.signature";const MIN_COS_UPLOAD_SIZE=5242880;async function upload(e){var o;const t=await innerUpload(e);return(null===(o=t.respBody)||void 0===o?void 0:o.dev_plugin_id)&&(log.log("Development Version Plugin ID: "+t.respBody.dev_plugin_id),t.devPluginId=t.respBody.dev_plugin_id),{subPackageInfo:t.subPackageInfo,pluginInfo:t.pluginInfo,devPluginId:t.devPluginId}}async function innerUpload(e){const{project:o,setting:t={useProjectConfig:!1},desc:r=`robot ${e.robot||"1"} use miniprogram-ci to upload at ${(0,tools_1.formatTime)(new Date)}`,version:i="",robot:s="1",onProgressUpdate:n=function(e){console.log(""+e)},test:a,pagePath:l,searchQuery:u,threads:p=0,bigPackageSizeSupport:c,allowIgnoreUnusedFiles:d=!0}=e;let{useCOS:_}=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();const g=await(0,getcompiler_1.getCompiler)(o,t),f=(0,tools_2.formatCISetting)(o,t);let b=await g.compile({setting:f,onProgressUpdate:n,resultType:"prod"});!1!==d&&(b=await(0,filterUnusedFile_1.filterUnusedFile)(!!a,o,b));const y=config_1.CI_VERSION,S={codeprotect:t.codeProtect?1:0,type:o.type,appid:o.appid,version:i,desc:r,robot:s},q={scene:e.scene||1011};let P;l&&(q.path=l,S.path=l),u&&(q.query=querystring_1.default.parse(u)),S.debugLaunchInfo=JSON.stringify(q),l&&u&&(S.path+="?"+u),a&&c&&(S.bigPackageSizeSupport=1);let R={};try{P=await o.getFile(o.miniprogramRoot,"ext.json"),R=JSON.parse(P.toString("utf-8"))}catch(e){}if(R&&(R.extEnable&&(S.extAppId=R.extAppid),R.directCommit)){let e="";e=R.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.warn(e)}try{const e=new taskstatus_1.TaskStatus(locales_1.default.config.UPLOAD.toString());n(e);const t=`${a?url_config_1.TEST_SOURCE_URL:url_config_1.UPLOAD_URL}?${querystring_1.default.stringify(S)}`;let r,i=!1,l=0;const u=(0,pack_1.pack)(b),p=zlib_1.default.gzipSync(u.buffer);if(log.info("useCOS parameter: ",_),log.info("upload zip buffer size: ",p.length),void 0===_&&(_=p.length>5242880),_){log.info("upload by COS: ",_);const e=await(0,cos_upload_1.uploadByCos)(p,t,o,s);e.fallback?(i=e.fallback,log.info("upload by COS failed, fallback to http way")):(r={body:e.body},l=e.uploadCOSCostTime)}if(!_||i){const e=await(0,sign_1.getSignature)(o.privateKey,o.appid);b[exports.SIGNATURE_FILE_NAME]=JSON.stringify({signature:e,version:y});const i=(0,pack_1.pack)(b),s=zlib_1.default.gzipSync(i.buffer);log.info("request url:",t);const n=(await(0,request_1.request)({url:t,method:"post",body:s})).body.toString();if(r=(0,jsonParse_1.jsonRespParse)(n,t),0!==r.errCode)throw new Error(n)}e.done(),n(e);const c={respBody:r.body};if(Array.isArray(r.body.subpackage_info)){const e=r.body.subpackage_info;c.subPackageInfo=e}if(Array.isArray(r.body.ext_plugin_info)){const e=r.body.ext_plugin_info;c.pluginInfo=e.map(e=>({pluginProviderAppid:e.provider,version:e.version,size:e.size}))}return c}catch(e){throw new error_1.CodeError(e.toString(),config_1.UPLOAD_CGI_ERR)}}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"),log=tslib_1.__importStar(require("../utils/log")),request_1=require("../utils/request"),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/config"),taskstatus_1=require("../utils/taskstatus"),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("../config/url.config"),jsonParse_1=require("../utils/jsonParse"),cache_1=require("../utils/cache"),cos_upload_1=require("./cos-upload"),filterUnusedFile_1=require("./utils/filterUnusedFile"),getcompiler_1=require("./getcompiler"),tools_2=require("./utils/tools");exports.SIGNATURE_FILE_NAME="ci.signature";const MIN_COS_UPLOAD_SIZE=5242880;async function upload(e){var o;const t=await innerUpload(e);return(null===(o=t.respBody)||void 0===o?void 0:o.dev_plugin_id)&&(log.log("Development Version Plugin ID: "+t.respBody.dev_plugin_id),t.devPluginId=t.respBody.dev_plugin_id),{subPackageInfo:t.subPackageInfo,pluginInfo:t.pluginInfo,devPluginId:t.devPluginId}}async function innerUpload(e){const{project:o,setting:t={useProjectConfig:!1},desc:r=`robot ${e.robot||"1"} use miniprogram-ci to upload at ${(0,tools_1.formatTime)(new Date)}`,version:i="",robot:s="1",onProgressUpdate:n=function(e){if("object"==typeof e)try{const o=JSON.stringify(e);return void console.log(o)}catch(e){}console.log(""+e)},test:l,pagePath:a,searchQuery:u,threads:p=0,bigPackageSizeSupport:c,allowIgnoreUnusedFiles:d=!0}=e;let{useCOS:_}=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();const g=await(0,getcompiler_1.getCompiler)(o,t),f=(0,tools_2.formatCISetting)(o,t);let b=await g.compile({setting:f,onProgressUpdate:n,resultType:"prod"});!1!==d&&(b=await(0,filterUnusedFile_1.filterUnusedFile)(!!l,o,b));const y=config_1.CI_VERSION,S={codeprotect:t.codeProtect?1:0,type:o.type,appid:o.appid,version:i,desc:r,robot:s},q={scene:e.scene||1011};let P;a&&(q.path=a,S.path=a),u&&(q.query=querystring_1.default.parse(u)),S.debugLaunchInfo=JSON.stringify(q),a&&u&&(S.path+="?"+u),l&&c&&(S.bigPackageSizeSupport=1);let h={};try{P=await o.getFile(o.miniprogramRoot,"ext.json"),h=JSON.parse(P.toString("utf-8"))}catch(e){}if(h&&(h.extEnable&&(S.extAppId=h.extAppid),h.directCommit)){let e="";e=h.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.warn(e)}try{const e=new taskstatus_1.TaskStatus(locales_1.default.config.UPLOAD.toString());n(e);const t=`${l?url_config_1.TEST_SOURCE_URL:url_config_1.UPLOAD_URL}?${querystring_1.default.stringify(S)}`;let r,i=!1,a=0;const u=(0,pack_1.pack)(b),p=zlib_1.default.gzipSync(u.buffer);if(log.info("useCOS parameter: ",_),log.info("upload zip buffer size: ",p.length),void 0===_&&(_=p.length>5242880),_){log.info("upload by COS: ",_);const e=await(0,cos_upload_1.uploadByCos)(p,t,o,s);e.fallback?(i=e.fallback,log.info("upload by COS failed, fallback to http way")):(r={body:e.body},a=e.uploadCOSCostTime)}if(!_||i){const e=await(0,sign_1.getSignature)(o.privateKey,o.appid);b[exports.SIGNATURE_FILE_NAME]=JSON.stringify({signature:e,version:y});const i=(0,pack_1.pack)(b),s=zlib_1.default.gzipSync(i.buffer);log.info("request url:",t);const n=(await(0,request_1.request)({url:t,method:"post",body:s})).body.toString();if(r=(0,jsonParse_1.jsonRespParse)(n,t),0!==r.errCode)throw new Error(n)}e.done(),n(e);const c={respBody:r.body};if(Array.isArray(r.body.subpackage_info)){const e=r.body.subpackage_info;c.subPackageInfo=e}if(Array.isArray(r.body.ext_plugin_info)){const e=r.body.ext_plugin_info;c.pluginInfo=e.map(e=>({pluginProviderAppid:e.provider,version:e.version,size:e.size}))}return c}catch(e){throw new error_1.CodeError(e.toString(),config_1.UPLOAD_CGI_ERR)}}exports.upload=upload,exports.innerUpload=innerUpload;
@@ -1 +1 @@
1
- "use strict";var COMPILE_TYPE,AstType;function getDefaultIgnores(e){const _=["node_modules/**/*","**/node_modules/**","**/.git/**",".git/**/*","**/.svn/**",".svn/**/*",".DS_Store","**/.DS_Store"];return"multiPlatform"===e.projectArchitecture&&_.push(exports.multiPlatformRoot+"/**/*"),_}Object.defineProperty(exports,"__esModule",{value:!0}),exports.AstType=exports.compileTypeConfig=exports.getDefaultIgnores=exports.FullPkg=exports.MainPkg=exports.multiPlatformRoot=exports.extendedLibMap=exports.jsonVariablePropertyWhiteList=exports.DefaultProjectAttr=exports.TABBAR_ICON_WHITE_LIST=exports.COMPILE_TYPE=exports.APP_TYPE=exports.MINI_GAME_WORKERS_PACKAGE_ROOT=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="2.0.5",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.MINI_GAME_WORKERS_PACKAGE_ROOT="workers.js",exports.APP_TYPE={NORMAL:0,PLUGIN:1,SHOP:2,MINISHOP:3,GAME:4,CARD:5,NATIVE:7},function(e){e.miniProgram="miniProgram",e.miniProgramPlugin="miniProgramPlugin",e.miniGame="miniGame",e.miniGamePlugin="miniGamePlugin"}(COMPILE_TYPE=exports.COMPILE_TYPE||(exports.COMPILE_TYPE={})),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,MaxCustomTabbarCount:10,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"]}},exports.multiPlatformRoot="miniapp",exports.MainPkg="__APP__",exports.FullPkg="__FULL__",exports.getDefaultIgnores=getDefaultIgnores,exports.compileTypeConfig={weapp:"weapp",game:"game",plugin:"plugin",gamePlugin:"gamePlugin"},function(e){e.Babel="babel",e.Acorn="acorn"}(AstType=exports.AstType||(exports.AstType={}));
1
+ "use strict";var COMPILE_TYPE,AstType;function getDefaultIgnores(e){const _=["node_modules/**/*","**/node_modules/**","**/.git/**",".git/**/*","**/.svn/**",".svn/**/*",".DS_Store","**/.DS_Store"];return"multiPlatform"===e.projectArchitecture&&_.push(exports.multiPlatformRoot+"/**/*"),_}Object.defineProperty(exports,"__esModule",{value:!0}),exports.AstType=exports.compileTypeConfig=exports.getDefaultIgnores=exports.FullPkg=exports.MainPkg=exports.multiPlatformRoot=exports.extendedLibMap=exports.jsonVariablePropertyWhiteList=exports.DefaultProjectAttr=exports.TABBAR_ICON_WHITE_LIST=exports.COMPILE_TYPE=exports.APP_TYPE=exports.MINI_GAME_WORKERS_PACKAGE_ROOT=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="2.0.7",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.MINI_GAME_WORKERS_PACKAGE_ROOT="workers.js",exports.APP_TYPE={NORMAL:0,PLUGIN:1,SHOP:2,MINISHOP:3,GAME:4,CARD:5,NATIVE:7},function(e){e.miniProgram="miniProgram",e.miniProgramPlugin="miniProgramPlugin",e.miniGame="miniGame",e.miniGamePlugin="miniGamePlugin"}(COMPILE_TYPE=exports.COMPILE_TYPE||(exports.COMPILE_TYPE={})),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,MaxCustomTabbarCount:10,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"]}},exports.multiPlatformRoot="miniapp",exports.MainPkg="__APP__",exports.FullPkg="__FULL__",exports.getDefaultIgnores=getDefaultIgnores,exports.compileTypeConfig={weapp:"weapp",game:"game",plugin:"plugin",gamePlugin:"gamePlugin"},function(e){e.Babel="babel",e.Acorn="acorn"}(AstType=exports.AstType||(exports.AstType={}));
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SummerCompiler=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),lodash_1=tslib_1.__importDefault(require("lodash")),request_1=require("../../utils/request"),progressRecorder_1=require("../../utils/progressRecorder"),tools_1=require("../../utils/tools"),config_1=require("../../config/config"),processManager_1=require("../../utils/subprocess/processManager"),messageHub_1=require("../../utils/messageHub"),uglifyfilenames_1=require("./original/protect/uglifyfilenames"),index_1=require("./original/index"),baseCompiler_1=require("./baseCompiler"),miniProgram=config_1.COMPILE_TYPE.miniProgram,miniGame=config_1.COMPILE_TYPE.miniGame,miniProgramPlugin=config_1.COMPILE_TYPE.miniProgramPlugin,miniGamePlugin=config_1.COMPILE_TYPE.miniGamePlugin;function performanceMark(e,s){}class SummerCompiler extends baseCompiler_1.BaseCoreCompiler{constructor(e,s,t,i){super(e),this.project=e,this.cachePath=s,this.projectInfo=t,this.devtoolMessagehub=i,this.isSummer=!0,this.codeCache=new Map,this.promiseCache=new Map,this._status=void 0,this._eventAdded=!1,this._locale="",this.onFileChange=(e,s)=>{if("change"!==e||s.endsWith(".json"))for(const e of this.promiseCache.keys())e.startsWith("getConf-")&&this.promiseCache.delete(e);if("change"!==e)for(const e of this.promiseCache.keys())e.startsWith("getPackageFiles-")&&this.promiseCache.delete(e);this.invalidCodeCache(),this.subProcessManager.sendEvent("fileChange",{type:e,targetPath:s})},this.onPreCompileOptionsChange=async e=>{await this.clearCache(),this.subProcessManager.sendEvent("precompileOptionsChange",e)},this.onProgressUpdate=(e,s,t)=>{const i="doing"===s?"doing":"done"===s?"success":"error";this.messageHub.showBuildLog(""+e,i,t)},performanceMark("create summer compiler"),this.messageHub=new messageHub_1.MessageHub(i),this.ready()}get status(){return this._status}async init(){performanceMark("init summer compiler");const e=path_1.default.posix.join(__dirname,"./summerEntryProcess.js");this.subProcessManager=new processManager_1.SubProcessProxy(this.project,e,{cachePath:this.cachePath},this.projectInfo,8891),this.addProjectListener(),this.loadStatus(),performanceMark("init summer compiler",!0)}async loadStatus(){this._status=await this.subProcessManager.runTask("loadStatus")}destroy(){var e;null===(e=this.subProcessManager)||void 0===e||e.destroy(),this.removeProjectListener(),this._checkReadyTask=void 0}async clearCache(){var e;await(null===(e=this.subProcessManager)||void 0===e?void 0:e.runTask("clearCache")),this.codeCache.clear(),this.promiseCache.clear()}updateOptions(e){var s;lodash_1.default.isEqual(e,this.projectInfo)||(this.projectInfo=e,this.promiseCache.clear(),this.codeCache.clear(),null===(s=this.subProcessManager)||void 0===s||s.sendEvent("updateOptions",e),this.loadStatus())}addProjectListener(){var e,s;this._eventAdded&&this.removeProjectListener(),null===(e=this.project.event)||void 0===e||e.on("fileChange",this.onFileChange),null===(s=this.project.event)||void 0===s||s.on("precompileOptionsChange",this.onPreCompileOptionsChange),this._eventAdded=!0}removeProjectListener(){var e,s;null===(e=this.project.event)||void 0===e||e.off("fileChange",this.onFileChange),null===(s=this.project.event)||void 0===s||s.off("precompileOptionsChange",this.onPreCompileOptionsChange),this._eventAdded=!1}invalidCodeCache(){for(const e of this.codeCache.values())e.isValid=!1}async getConf(e){var s,t;const i="getConf-"+e;if(this.promiseCache.has(i))return(null===(s=process.env)||void 0===s?void 0:s.isDevtools)&&console.log(i,"hit cache"),this.promiseCache.get(i);(null===(t=process.env)||void 0===t?void 0:t.isDevtools)&&console.log(i,"do request"),performanceMark("request get conf");const r={graphId:e},o=this.subProcessManager.runTask("getConf",r,this.onProgressUpdate);return this.promiseCache.set(i,o),performanceMark("request get conf",!0),o}async getPackageFiles(e,s){var t,i;const r=`getPackageFiles-${e}-${s}`;if(this.promiseCache.has(r))return(null===(t=process.env)||void 0===t?void 0:t.isDevtools)&&console.log(r,"hit cache"),this.promiseCache.get(r);(null===(i=process.env)||void 0===i?void 0:i.isDevtools)&&console.log(r,"do request"),performanceMark("request get getPackageFiles");const o=this.subProcessManager.runTask("getPackageFiles",{graphId:e,root:s},this.onProgressUpdate);return this.promiseCache.set(r,o),performanceMark("request get getPackageFiles",!0),o}async getCode(e,s){var t,i,r;const o=`getCode-${e}${s?"-"+s.package:""}`;if(this.promiseCache.has(o))return(null===(t=process.env)||void 0===t?void 0:t.isDevtools)&&console.log(o,"hit promise cache"),this.promiseCache.get(o);const n=this.codeCache.get(o);if(null==n?void 0:n.isValid)return n.codeFiles;(null===(i=process.env)||void 0===i?void 0:i.isDevtools)&&console.log(o,"do request");const a={};if(n){const{codeFiles:e}=n;for(const s of Object.keys(e)){const t=e[s];"error"in t||(a[s]=t.md5)}}const c={graphId:e,cacheMd5:a,package:null==s?void 0:s.package};performanceMark("request get code");const l=Date.now();(null===(r=process.env)||void 0===r?void 0:r.isDevtools)&&(console.time("[summer-compiler] runTask "+o),console.log(`[summer-compiler] [${(0,progressRecorder_1.getPrintTime)()}] runTask ${o}`));const g=this.subProcessManager.runTask("getCode",c,this.onProgressUpdate).then(e=>{var s,t;(null===(s=process.env)||void 0===s?void 0:s.isDevtools)&&console.timeEnd("[summer-compiler] runTask "+o);const i=(null===(t=this.codeCache.get(o))||void 0===t?void 0:t.codeFiles)||{};for(const s of Object.keys(e)){const t=e[s];"error"in t||""!==t.md5?i[s]=t:delete i[s]}return this.codeCache.set(o,{isValid:!0,codeFiles:i}),i},e=>{throw e.code?console.error(e):console.error("Unexpected error when getCode",e),e});return g.finally(()=>{var e;performanceMark("request get code",!0),(null===(e=process.env)||void 0===e?void 0:e.isDevtools)&&console.log(`[summer-compiler] [${(0,progressRecorder_1.getPrintTime)()}] [cost ${Date.now()-l}ms] runTask ${o}`),this.promiseCache.delete(o)}),this.promiseCache.set(o,g),g}async getExtJSON(){return await(0,index_1.getExtJSON)(this.project)}async getAppJSON(){return(await this.getConf(miniProgram)).app}async getGameJSON(){return(await this.getConf(miniGame)).app}async getSiteMapJSON(){return(await this.getConf(miniProgram)).sitemap}async getPageJSON(e){const s=await this.getConf(miniProgram),t=s.pages[e]||s.comps[e];if(!t)throw new Error("summer-compiler 收集json配置有遗漏, "+e);return t}async getAllPageAndComponent(){const e=await this.getConf(miniProgram);return Object.keys(e.pages).concat(Object.keys(e.comps))}async getAllSortedJSFiles(){const e=await this.getConf(miniProgram),s=Object.keys(e.pages),t=Object.keys(e.comps),i=s.filter(e=>!t.includes(e)).map(e=>e+".js"),r=t.map(e=>e+".js"),o=await this.getCode(miniProgram,{package:config_1.FullPkg}),n=Object.keys(o).filter(e=>e.endsWith(".js")&&"app.js"!==e&&!i.includes(e)&&!r.includes(e));return{jsPagesFiles:i,components:r,otherJsFiles:n}}async getAllWxmlAndWxsFiles(){const e=await this.getCode(miniProgram,{package:config_1.FullPkg}),s=Object.keys(e).filter(e=>e.endsWith(".wxml")),t=Object.keys(e).filter(e=>e.endsWith(".wxs"));return{wxmlFiles:s,wxsFiles:t,content:s.concat(t).reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async getPackageWxmlAndWxsFiles(e){let s=await this.getCode(miniProgram,{package:e});if(e!==config_1.MainPkg){const e=await this.getCode(miniProgram,{package:config_1.MainPkg});s=Object.assign(Object.assign({},s),e)}const t=Object.keys(s).filter(e=>e.endsWith(".wxml")),i=Object.keys(s).filter(e=>e.endsWith(".wxs"));return{wxmlFiles:t,wxsFiles:i,content:t.concat(i).reduce((e,t)=>{const i=s[t];if("error"in i)throw i.error;return e[t]=i.code,e["./"+t]=i.code,e},{})}}async getPackageWxssFiles(e){let s=await this.getCode(miniProgram,{package:e});if(e!==config_1.MainPkg){const e=await this.getCode(miniProgram,{package:config_1.MainPkg});s=Object.assign(Object.assign({},s),e)}const t=Object.keys(s).filter(e=>e.endsWith(".wxss"));return{wxssFiles:t,content:t.reduce((e,t)=>{const i=s[t];if("error"in i)throw i.error;return e[t]=i.code,e["./"+t]=i.code,e},{})}}getWxssMap(e,s){s=(0,tools_1.normalizePath)(s);for(const[t,i]of this.codeCache.entries())if(t.startsWith("getCode-"+e)){const e=i.codeFiles[s];if(e&&!("error"in e))return e.map}}async getMainPkgSortedJSFiles(){const e=await this.getConf(miniProgram),s=await this.getCode(miniProgram,{package:"__APP__"}),t=Object.keys(s).filter(e=>e.endsWith(".js")),i=[],r=[],o=[],n=[],a=[];let c=!1;const l={},g=s=>Object.keys(e.packages).find(e=>s.startsWith(e))||config_1.MainPkg;e.app.functionalPages&&t.forEach(e=>{if(e.startsWith("functional-pages/")){const s=e.replace(/\.js$/,"");if(l[s])return;l[s]=!0,a.push(encodeURI(s))}}),e.app.workers&&t.forEach(s=>{if(s.startsWith((0,tools_1.getWorkersPath)(e.app.workers))){const e=s.replace(/\.js$/,"");if(l[e])return;l[e]=!0,n.push(e)}});Object.keys(e.comps).filter(e=>g(e)===config_1.MainPkg).forEach(s=>{if((s.startsWith("miniprogram_npm/weui-miniprogram")||s.startsWith("weui-miniprogram"))&&e.app.useExtendedLib&&e.app.useExtendedLib.weui)return;if(l[s])return;l[s]=!0;const t=encodeURI(s);o.push(""+t)});Object.keys(e.pages).filter(e=>g(e)===config_1.MainPkg).forEach(e=>{if(l[e])return;l[e]=!0;const s=encodeURI(e);i.push(""+s)}),t.forEach(e=>{const s=e.replace(/\.js$/,"");l[s]||(l[s]=!0,"app.js"!==e?r.push(""+encodeURI(s)):c=!0)});const h=[...r,...o,...i];return c&&h.push("app"),{hasAppJS:c,allFiles:h,pageFiles:i,componentFiles:o,workerFiles:n,functionalPageFiles:a,otherFiles:r}}async getSubPkgSortedJSFiles(e){const s=await this.getConf(miniProgram),t=await this.getCode(miniProgram,{package:e}),i=Object.keys(t).filter(e=>e.endsWith(".js")),r=[],o=[],n={},a=e=>Object.keys(s.packages).find(s=>e.startsWith(s))||config_1.MainPkg;Object.keys(s.comps).filter(s=>a(s)===e).forEach(e=>{if((e.startsWith("miniprogram_npm/weui-miniprogram")||e.startsWith("weui-miniprogram"))&&s.app.useExtendedLib&&s.app.useExtendedLib.weui)return;if(n[e])return;n[e]=!0;const t=encodeURI(e);o.push(""+t)});Object.keys(s.pages).filter(s=>a(s)===e).forEach(e=>{if(n[e])return;n[e]=!0;const s=encodeURI(e);r.push(""+s)});const c=i.map(e=>""+encodeURI(e.replace(/\.js$/,"")));return{allFiles:c,pageFiles:r,componentFiles:o,otherFiles:c.filter(e=>!r.includes(e)&&!o.includes(e))}}async compileJS(e){const s=this.project.type;let t;if(e.root===this.project.miniprogramRoot){const i=await this.getConf(this.isGameType(s)?config_1.COMPILE_TYPE.miniGame:config_1.COMPILE_TYPE.miniProgram),r=Object.keys(i.packages).find(s=>e.filePath.startsWith(s))||config_1.MainPkg;t=(await this.getCode(this.isGameType(s)?config_1.COMPILE_TYPE.miniGame:config_1.COMPILE_TYPE.miniProgram,{package:r,partialCompilePath:[]}))[e.filePath]}else{t=(await this.getCode(this.isGameType(s)?config_1.COMPILE_TYPE.miniGamePlugin:miniProgramPlugin))[e.filePath]}if(!t){const s=new Error(`summer-compiler miss ${e.root} js file, ${e.filePath}`);throw s.code="ENOENT",s}if("error"in t)throw t.error;return Object.assign({filePath:e.filePath,code:t.code,map:t.map},t.jsTag)}async compile(e){const s=await this.subProcessManager.runTask("compile",e,(s,t,i)=>{var r;null===(r=e.onProgressUpdate)||void 0===r||r.call(e,{id:s.toString(),status:t,message:i})});for(const e of Object.keys(s))"object"==typeof s[e]&&"Buffer"===s[e].type&&(s[e]=Buffer.from(s[e].data));return s}async getPluginJSON(e=""){return(await this.getConf(this.isGameType(this.project.type)?miniGamePlugin:miniProgramPlugin)).plugin}async getPluginPageJSON(e){const s=await this.getConf(miniProgramPlugin),t=s.pages[e]||s.comps[e];if(!t)throw new Error("summer-compiler 收集plugin json配置有遗漏, "+e);return t}async getPluginComponents(){const e=await this.getConf(miniProgramPlugin),s=new Set(Object.keys(e.pages).concat(Object.keys(e.comps)));return Array.from(s)}async getPluginJSFiles(){const e=await this.getCode(this.isGameType(this.project.type)?miniGamePlugin:miniProgramPlugin),s=Object.keys(e).filter(e=>e.endsWith(".js"));return{jsFiles:s,content:s.reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async getPluginWxssFiles(){const e=await this.getCode(miniProgramPlugin),s=Object.keys(e).filter(e=>e.endsWith(".wxss"));return{wxssFiles:s,content:s.reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async getPluginWxmlAndWxsFiles(){const e=await this.getCode(miniProgramPlugin),s=Object.keys(e).filter(e=>e.endsWith(".wxml")),t=Object.keys(e).filter(e=>e.endsWith(".wxs"));return{wxmlFiles:s,wxsFiles:t,content:s.concat(t).reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async checkThemeJSON(e){return(await this.getConf(miniProgram)).theme}setProxy(e){(0,request_1.setCiProxy)(e)}setLocale(e){this._locale!==e&&(this._locale=e,this.subProcessManager.runTask("setLocale",e))}async uglifyFileNames(e,s,t){return await(0,uglifyfilenames_1.uglifyFileNames)(e,s,t)}async getMPFileInfo(){return this.subProcessManager.runTask("getLocalFileList",miniProgram)}async getPluginFileInfo(){return this.subProcessManager.runTask("getLocalFileList",miniProgramPlugin)}async getCompAndPagesOfConf(){const e=await this.getConf(miniProgram);return{pages:e.pages,comps:e.comps}}}exports.SummerCompiler=SummerCompiler;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SummerCompiler=void 0;const tslib_1=require("tslib"),path_1=tslib_1.__importDefault(require("path")),lodash_1=tslib_1.__importDefault(require("lodash")),request_1=require("../../utils/request"),progressRecorder_1=require("../../utils/progressRecorder"),tools_1=require("../../utils/tools"),config_1=require("../../config/config"),processManager_1=require("../../utils/subprocess/processManager"),messageHub_1=require("../../utils/messageHub"),uglifyfilenames_1=require("./original/protect/uglifyfilenames"),index_1=require("./original/index"),baseCompiler_1=require("./baseCompiler"),miniProgram=config_1.COMPILE_TYPE.miniProgram,miniGame=config_1.COMPILE_TYPE.miniGame,miniProgramPlugin=config_1.COMPILE_TYPE.miniProgramPlugin,miniGamePlugin=config_1.COMPILE_TYPE.miniGamePlugin;function performanceMark(e,s){}class SummerCompiler extends baseCompiler_1.BaseCoreCompiler{constructor(e,s,t,i){super(e),this.project=e,this.cachePath=s,this.projectInfo=t,this.devtoolMessagehub=i,this.isSummer=!0,this.codeCache=new Map,this.promiseCache=new Map,this._status=void 0,this._eventAdded=!1,this._locale="",this.onFileChange=(e,s)=>{if("change"!==e||s.endsWith(".json"))for(const e of this.promiseCache.keys())e.startsWith("getConf-")&&this.promiseCache.delete(e);if("change"!==e)for(const e of this.promiseCache.keys())e.startsWith("getPackageFiles-")&&this.promiseCache.delete(e);this.invalidCodeCache(),this.subProcessManager.sendEvent("fileChange",{type:e,targetPath:s})},this.onPreCompileOptionsChange=async e=>{await this.clearCache(),this.subProcessManager.sendEvent("precompileOptionsChange",e)},this.onProgressUpdate=(e,s,t)=>{const i="doing"===s?"doing":"done"===s?"success":"error";this.messageHub.showBuildLog(""+e,i,t)},performanceMark("create summer compiler"),this.messageHub=new messageHub_1.MessageHub(i),this.ready()}get status(){return this._status}async init(){performanceMark("init summer compiler");const e=path_1.default.posix.join(__dirname,"./summerEntryProcess.js");this.subProcessManager=new processManager_1.SubProcessProxy(this.project,e,{cachePath:this.cachePath},this.projectInfo,8891),this.addProjectListener(),this.loadStatus(),performanceMark("init summer compiler",!0)}async loadStatus(){this._status=await this.subProcessManager.runTask("loadStatus")}destroy(){var e;null===(e=this.subProcessManager)||void 0===e||e.destroy(),this.removeProjectListener(),this._checkReadyTask=void 0}async clearCache(){var e;await(null===(e=this.subProcessManager)||void 0===e?void 0:e.runTask("clearCache")),this.codeCache.clear(),this.promiseCache.clear()}updateOptions(e){var s;lodash_1.default.isEqual(e,this.projectInfo)||(this.projectInfo=e,this.promiseCache.clear(),this.codeCache.clear(),null===(s=this.subProcessManager)||void 0===s||s.sendEvent("updateOptions",e),this.loadStatus())}addProjectListener(){var e,s;this._eventAdded&&this.removeProjectListener(),null===(e=this.project.event)||void 0===e||e.on("fileChange",this.onFileChange),null===(s=this.project.event)||void 0===s||s.on("precompileOptionsChange",this.onPreCompileOptionsChange),this._eventAdded=!0}removeProjectListener(){var e,s;null===(e=this.project.event)||void 0===e||e.off("fileChange",this.onFileChange),null===(s=this.project.event)||void 0===s||s.off("precompileOptionsChange",this.onPreCompileOptionsChange),this._eventAdded=!1}invalidCodeCache(){for(const e of this.codeCache.values())e.isValid=!1}async getConf(e){var s,t;const i="getConf-"+e;if(this.promiseCache.has(i))return(null===(s=process.env)||void 0===s?void 0:s.isDevtools)&&console.log(i,"hit cache"),this.promiseCache.get(i);(null===(t=process.env)||void 0===t?void 0:t.isDevtools)&&console.log(i,"do request"),performanceMark("request get conf");const r={graphId:e},o=this.subProcessManager.runTask("getConf",r,this.onProgressUpdate);return this.promiseCache.set(i,o),performanceMark("request get conf",!0),o}async getPackageFiles(e,s){var t,i;const r=`getPackageFiles-${e}-${s}`;if(this.promiseCache.has(r))return(null===(t=process.env)||void 0===t?void 0:t.isDevtools)&&console.log(r,"hit cache"),this.promiseCache.get(r);(null===(i=process.env)||void 0===i?void 0:i.isDevtools)&&console.log(r,"do request"),performanceMark("request get getPackageFiles");const o=this.subProcessManager.runTask("getPackageFiles",{graphId:e,root:s},this.onProgressUpdate);return this.promiseCache.set(r,o),performanceMark("request get getPackageFiles",!0),o}async getCode(e,s){var t,i,r;const o=`getCode-${e}${s?"-"+s.package:""}`;if(this.promiseCache.has(o))return(null===(t=process.env)||void 0===t?void 0:t.isDevtools)&&console.log(o,"hit promise cache"),this.promiseCache.get(o);const n=this.codeCache.get(o);if(null==n?void 0:n.isValid)return n.codeFiles;(null===(i=process.env)||void 0===i?void 0:i.isDevtools)&&console.log(o,"do request");const a={};if(n){const{codeFiles:e}=n;for(const s of Object.keys(e)){const t=e[s];"error"in t||(a[s]=t.md5)}}const c={graphId:e,cacheMd5:a,package:null==s?void 0:s.package};performanceMark("request get code");const l=Date.now();(null===(r=process.env)||void 0===r?void 0:r.isDevtools)&&(console.time("[summer-compiler] runTask "+o),console.log(`[summer-compiler] [${(0,progressRecorder_1.getPrintTime)()}] runTask ${o}`));const g=this.subProcessManager.runTask("getCode",c,this.onProgressUpdate).then(e=>{var s,t;(null===(s=process.env)||void 0===s?void 0:s.isDevtools)&&console.timeEnd("[summer-compiler] runTask "+o);const i=(null===(t=this.codeCache.get(o))||void 0===t?void 0:t.codeFiles)||{};for(const s of Object.keys(e)){const t=e[s];"error"in t||""!==t.md5?i[s]=t:delete i[s]}return this.codeCache.set(o,{isValid:!0,codeFiles:i}),i},e=>{throw e.code?console.error(e):console.error("Unexpected error when getCode",e),e});return g.finally(()=>{var e;performanceMark("request get code",!0),(null===(e=process.env)||void 0===e?void 0:e.isDevtools)&&console.log(`[summer-compiler] [${(0,progressRecorder_1.getPrintTime)()}] [cost ${Date.now()-l}ms] runTask ${o}`),this.promiseCache.delete(o)}),this.promiseCache.set(o,g),g}async getExtJSON(){return await(0,index_1.getExtJSON)(this.project)}async getAppJSON(){return(await this.getConf(miniProgram)).app}async getGameJSON(){return(await this.getConf(miniGame)).app}async getSiteMapJSON(){return(await this.getConf(miniProgram)).sitemap}async getPageJSON(e){const s=await this.getConf(miniProgram),t=s.pages[e]||s.comps[e];if(!t)throw new Error("summer-compiler 收集json配置有遗漏, "+e);return t}async getAllPageAndComponent(){const e=await this.getConf(miniProgram);return Object.keys(e.pages).concat(Object.keys(e.comps))}async getAllSortedJSFiles(){const e=await this.getConf(miniProgram),s=Object.keys(e.pages),t=Object.keys(e.comps),i=s.filter(e=>!t.includes(e)).map(e=>e+".js"),r=t.map(e=>e+".js"),o=await this.getCode(miniProgram,{package:config_1.FullPkg}),n=Object.keys(o).filter(e=>e.endsWith(".js")&&"app.js"!==e&&!i.includes(e)&&!r.includes(e));return{jsPagesFiles:i,components:r,otherJsFiles:n}}async getAllWxmlAndWxsFiles(){const e=await this.getCode(miniProgram,{package:config_1.FullPkg}),s=Object.keys(e).filter(e=>e.endsWith(".wxml")),t=Object.keys(e).filter(e=>e.endsWith(".wxs"));return{wxmlFiles:s,wxsFiles:t,content:s.concat(t).reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async getPackageWxmlAndWxsFiles(e){let s=await this.getCode(miniProgram,{package:e});if(e!==config_1.MainPkg){const e=await this.getCode(miniProgram,{package:config_1.MainPkg});s=Object.assign(Object.assign({},s),e)}const t=Object.keys(s).filter(e=>e.endsWith(".wxml")),i=Object.keys(s).filter(e=>e.endsWith(".wxs"));return{wxmlFiles:t,wxsFiles:i,content:t.concat(i).reduce((e,t)=>{const i=s[t];if("error"in i)throw i.error;return e[t]=i.code,e["./"+t]=i.code,e},{})}}async getPackageWxssFiles(e){let s=await this.getCode(miniProgram,{package:e});if(e!==config_1.MainPkg){const e=await this.getCode(miniProgram,{package:config_1.MainPkg});s=Object.assign(Object.assign({},s),e)}const t=Object.keys(s).filter(e=>e.endsWith(".wxss"));return{wxssFiles:t,content:t.reduce((e,t)=>{const i=s[t];if("error"in i)throw i.error;return e[t]=i.code,e["./"+t]=i.code,e},{})}}getWxssMap(e,s){s=(0,tools_1.normalizePath)(s);for(const[t,i]of this.codeCache.entries())if(t.startsWith("getCode-"+e)){const e=i.codeFiles[s];if(e&&!("error"in e))return e.map}}async getMainPkgSortedJSFiles(){const e=await this.getConf(miniProgram),s=await this.getCode(miniProgram,{package:"__APP__"}),t=Object.keys(s).filter(e=>e.endsWith(".js")),i=[],r=[],o=[],n=[],a=[];let c=!1;const l={},g=s=>Object.keys(e.packages).find(e=>s.startsWith(e))||config_1.MainPkg;e.app.functionalPages&&t.forEach(e=>{if(e.startsWith("functional-pages/")){const s=e.replace(/\.js$/,"");if(l[s])return;l[s]=!0,a.push(encodeURI(s))}}),e.app.workers&&t.forEach(s=>{if(s.startsWith((0,tools_1.getWorkersPath)(e.app.workers))){const e=s.replace(/\.js$/,"");if(l[e])return;l[e]=!0,n.push(e)}});Object.keys(e.comps).filter(e=>g(e)===config_1.MainPkg).forEach(s=>{if((s.startsWith("miniprogram_npm/weui-miniprogram")||s.startsWith("weui-miniprogram"))&&e.app.useExtendedLib&&e.app.useExtendedLib.weui)return;if(l[s])return;l[s]=!0;const t=encodeURI(s);o.push(""+t)});Object.keys(e.pages).filter(e=>g(e)===config_1.MainPkg).forEach(e=>{if(l[e])return;l[e]=!0;const s=encodeURI(e);i.push(""+s)}),t.forEach(e=>{const s=e.replace(/\.js$/,"");l[s]||(l[s]=!0,"app.js"!==e?r.push(""+encodeURI(s)):c=!0)});const h=[...r,...o,...i];return c&&h.push("app"),{hasAppJS:c,allFiles:h,pageFiles:i,componentFiles:o,workerFiles:n,functionalPageFiles:a,otherFiles:r}}async getSubPkgSortedJSFiles(e){const s=await this.getConf(miniProgram),t=await this.getCode(miniProgram,{package:e}),i=Object.keys(t).filter(e=>e.endsWith(".js")),r=[],o=[],n=[],a={},c=e=>Object.keys(s.packages).find(s=>e.startsWith(s))||config_1.MainPkg;Object.keys(s.comps).filter(s=>c(s)===e).forEach(e=>{if((e.startsWith("miniprogram_npm/weui-miniprogram")||e.startsWith("weui-miniprogram"))&&s.app.useExtendedLib&&s.app.useExtendedLib.weui)return;if(a[e])return;a[e]=!0;const t=encodeURI(e);n.push(""+t)});Object.keys(s.pages).filter(s=>c(s)===e).forEach(e=>{if(a[e])return;a[e]=!0;const s=encodeURI(e);r.push(""+s)});let l=s.packages[e].entry||"";l&&(l=path_1.default.join(e,l),l=l.replace(/\.js$/,"")),i.forEach(e=>{const s=e.replace(/\.js$/,"");a[s]||(a[s]=!0,s!==l&&o.push(""+encodeURI(s)))});const g=i.map(e=>""+encodeURI(e.replace(/\.js$/,"")));return{entryJS:l,allFiles:g,pageFiles:r,componentFiles:n,otherFiles:o}}async compileJS(e){const s=this.project.type;let t;if(e.root===this.project.miniprogramRoot){const i=await this.getConf(this.isGameType(s)?config_1.COMPILE_TYPE.miniGame:config_1.COMPILE_TYPE.miniProgram),r=Object.keys(i.packages).find(s=>e.filePath.startsWith(s))||config_1.MainPkg;t=(await this.getCode(this.isGameType(s)?config_1.COMPILE_TYPE.miniGame:config_1.COMPILE_TYPE.miniProgram,{package:r,partialCompilePath:[]}))[e.filePath]}else{t=(await this.getCode(this.isGameType(s)?config_1.COMPILE_TYPE.miniGamePlugin:miniProgramPlugin))[e.filePath]}if(!t){const s=new Error(`summer-compiler miss ${e.root} js file, ${e.filePath}`);throw s.code="ENOENT",s}if("error"in t)throw t.error;return Object.assign({filePath:e.filePath,code:t.code,map:t.map},t.jsTag)}async compile(e){const s=await this.subProcessManager.runTask("compile",e,(s,t,i)=>{var r;null===(r=e.onProgressUpdate)||void 0===r||r.call(e,{id:s.toString(),status:t,message:i})});for(const e of Object.keys(s))"object"==typeof s[e]&&"Buffer"===s[e].type&&(s[e]=Buffer.from(s[e].data));return s}async getPluginJSON(e=""){return(await this.getConf(this.isGameType(this.project.type)?miniGamePlugin:miniProgramPlugin)).plugin}async getPluginPageJSON(e){const s=await this.getConf(miniProgramPlugin),t=s.pages[e]||s.comps[e];if(!t)throw new Error("summer-compiler 收集plugin json配置有遗漏, "+e);return t}async getPluginComponents(){const e=await this.getConf(miniProgramPlugin),s=new Set(Object.keys(e.pages).concat(Object.keys(e.comps)));return Array.from(s)}async getPluginJSFiles(){const e=await this.getCode(this.isGameType(this.project.type)?miniGamePlugin:miniProgramPlugin),s=Object.keys(e).filter(e=>e.endsWith(".js"));return{jsFiles:s,content:s.reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async getPluginWxssFiles(){const e=await this.getCode(miniProgramPlugin),s=Object.keys(e).filter(e=>e.endsWith(".wxss"));return{wxssFiles:s,content:s.reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async getPluginWxmlAndWxsFiles(){const e=await this.getCode(miniProgramPlugin),s=Object.keys(e).filter(e=>e.endsWith(".wxml")),t=Object.keys(e).filter(e=>e.endsWith(".wxs"));return{wxmlFiles:s,wxsFiles:t,content:s.concat(t).reduce((s,t)=>{const i=e[t];if("error"in i)throw i.error;return s[t]=i.code,s["./"+t]=i.code,s},{})}}async checkThemeJSON(e){return(await this.getConf(miniProgram)).theme}setProxy(e){(0,request_1.setCiProxy)(e)}setLocale(e){this._locale!==e&&(this._locale=e,this.subProcessManager.runTask("setLocale",e))}async uglifyFileNames(e,s,t){return await(0,uglifyfilenames_1.uglifyFileNames)(e,s,t)}async getMPFileInfo(){return this.subProcessManager.runTask("getLocalFileList",miniProgram)}async getPluginFileInfo(){return this.subProcessManager.runTask("getLocalFileList",miniProgramPlugin)}async getCompAndPagesOfConf(){const e=await this.getConf(miniProgram);return{pages:e.pages,comps:e.comps}}}exports.SummerCompiler=SummerCompiler;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.printFoundDevices=exports.formattedDeviceName=exports.matchingDevice=exports.findMatchingSimulator=exports.getDevices=exports.parseXctraceIOSDevicesList=void 0;const tslib_1=require("tslib"),execa=tslib_1.__importStar(require("execa")),env_1=require("../../../utils/env"),miniappBuilder=tslib_1.__importStar(require("../../../utils/miniapp-builder"));function parseIOSDevicesList(e){const i=[];return e.split("\n").forEach(e=>{const t=e.match(/(.*?) (\(([0-9.]+)\) )?\[([0-9A-F-]+)\]( \(Simulator\))?/i);if(t){const[,e,,r,n,s]=t,c={name:e,udid:n};r?(c.version=r,c.type=s?"simulator":"device"):c.type="catalyst",i.push(c)}}),i}function parseXctraceIOSDevicesList(e){const i=[];let t=!1;return-1===e.indexOf("== Simulators ==")?[]:(e.split("\n").forEach(e=>{"== Simulators =="===e&&(t=!0);const r=e.match(/(.*?) (\(([0-9.]+)\) )?\(([0-9A-F-]+)\)/i);if(r){const[,e,,n,s]=r,c={name:e,udid:s};n?(c.version=n,c.type=t?"simulator":"device"):c.type="catalyst",i.push(c)}}),i)}async function getDevices(e){let i=[];const{recorder:t}=e||{};try{const e=await execa.default("xcrun",["xctrace","list","devices"],{env:(0,env_1.getProcessEnv)()});i=parseXctraceIOSDevicesList(""===e.stderr?e.stdout:e.stderr)}catch(e){try{i=parseIOSDevicesList(execa.sync("xcrun",["instruments","-s"],{env:(0,env_1.getProcessEnv)()}).stdout)}catch(e){}}let r=i.filter(e=>"device"===e.type);if(!r.length)try{r=await miniappBuilder.getIOSDevices(e||{}),r.forEach(e=>{i.find(i=>i.udid===e.udid)||i.push(e)})}catch(e){t?t.progress("get Devices error:"+e.message):console.error("get Devices error:",e)}return i.filter(e=>!!e.version)}function findMatchingSimulator(e,i){if(!e.devices)return null;const{devices:t}=e;let r,n,s=null;if(null==i?void 0:i.device){const e=i.device.match(/(.*)? (?:\((\d+\.\d+)?\))$/);void 0!==(null==e?void 0:e[2])?(r=e[2],s=e[1]):s=i.device}for(const e in t){const c=t[e];let o=e;if(o.startsWith("com.apple.CoreSimulator.SimRuntime.")&&(o=o.replace(/^com\.apple\.CoreSimulator\.SimRuntime\.([^-]+)-([^-]+)-([^-]+)$/g,"$1 $2.$3")),(o.includes("iOS")||o.includes("tvOS"))&&(!r||o.endsWith(r)))for(const e of c){if("(available)"!==e.availability&&"YES"!==e.isAvailable&&!0!==e.isAvailable)continue;const t="Booted"===e.state,r={udid:e.udid,name:e.name,booted:t,version:o};if(null==i?void 0:i.udid){if(e.udid===i.udid)return r}else{if(t&&null===s)return r;e.name!==s||n||(n=r)}}}return n}function matchingDevice(e,i,t){if(!0===i){const i=e.find(e=>"device"===e.type);return i?(t.progress(`Using first available device named "${i.name}" due to lack of name supplied.`),i):void t.progress("No iOS devices connected.")}const r=e.find(e=>e.name===i||formattedDeviceName(e)===i);if(!r)throw new Error(`Could not find a device named: "${String(i)} ${printFoundDevices(e)}}".`);return r}function formattedDeviceName(e){return e.version?`${e.name} (${e.version})`:e.name}function printFoundDevices(e){return["Available devices:",...e.map(e=>` - ${e.name} (${e.udid})`)].join("\n")}exports.parseXctraceIOSDevicesList=parseXctraceIOSDevicesList,exports.getDevices=getDevices,exports.findMatchingSimulator=findMatchingSimulator,exports.matchingDevice=matchingDevice,exports.formattedDeviceName=formattedDeviceName,exports.printFoundDevices=printFoundDevices;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.printFoundDevices=exports.formattedDeviceName=exports.matchingDevice=exports.findMatchingSimulator=exports.getDevices=exports.parseXctraceIOSDevicesList=void 0;const tslib_1=require("tslib"),execa=tslib_1.__importStar(require("execa")),env_1=require("../../../utils/env"),miniappBuilder=tslib_1.__importStar(require("../../../utils/miniapp-builder"));function parseIOSDevicesList(e){const i=[];return e.split("\n").forEach(e=>{const t=e.match(/(.*?) (\(([0-9.]+)\) )?\[([0-9A-F-]+)\]( \(Simulator\))?/i);if(t){const[,e,,r,n,s]=t,c={name:e,udid:n};r?(c.version=r,c.type=s?"simulator":"device"):c.type="catalyst",i.push(c)}}),i}function parseXctraceIOSDevicesList(e){const i=[];let t=!1;return e.split("\n").forEach(e=>{"== Simulators =="===e&&(t=!0);const r=e.match(/^(.*?) (\(([0-9.]{3,})\) )?\(([0-9A-F-]{5,})\)$/i);if(r){const[,e,,n,s]=r,c={name:e,udid:s};n?(c.version=n,c.type=t?"simulator":"device"):c.type="catalyst",i.push(c)}}),i}async function getDevices(e){let i=[];const{recorder:t}=e||{};try{const e=await execa.default("xcrun",["xctrace","list","devices"],{env:(0,env_1.getProcessEnv)()});i=parseXctraceIOSDevicesList(""===e.stderr?e.stdout:e.stderr)}catch(e){try{i=parseIOSDevicesList(execa.sync("xcrun",["instruments","-s"],{env:(0,env_1.getProcessEnv)()}).stdout)}catch(e){}}let r=i.filter(e=>"device"===e.type);if(!r.length)try{r=await miniappBuilder.getIOSDevices(e||{}),r.forEach(e=>{i.find(i=>i.udid===e.udid)||i.push(e)})}catch(e){t?t.progress("get Devices error:"+e.message):console.error("get Devices error:",e)}return i.filter(e=>!!e.version)}function findMatchingSimulator(e,i){if(!e.devices)return null;const{devices:t}=e;let r,n,s=null;if(null==i?void 0:i.device){const e=i.device.match(/(.*)? (?:\((\d+\.\d+)?\))$/);void 0!==(null==e?void 0:e[2])?(r=e[2],s=e[1]):s=i.device}for(const e in t){const c=t[e];let o=e;if(o.startsWith("com.apple.CoreSimulator.SimRuntime.")&&(o=o.replace(/^com\.apple\.CoreSimulator\.SimRuntime\.([^-]+)-([^-]+)-([^-]+)$/g,"$1 $2.$3")),(o.includes("iOS")||o.includes("tvOS"))&&(!r||o.endsWith(r)))for(const e of c){if("(available)"!==e.availability&&"YES"!==e.isAvailable&&!0!==e.isAvailable)continue;const t="Booted"===e.state,r={udid:e.udid,name:e.name,booted:t,version:o};if(null==i?void 0:i.udid){if(e.udid===i.udid)return r}else{if(t&&null===s)return r;e.name!==s||n||(n=r)}}}return n}function matchingDevice(e,i,t){if(!0===i){const i=e.find(e=>"device"===e.type);return i?(t.progress(`Using first available device named "${i.name}" due to lack of name supplied.`),i):void t.progress("No iOS devices connected.")}const r=e.find(e=>e.name===i||formattedDeviceName(e)===i);if(!r)throw new Error(`Could not find a device named: "${String(i)} ${printFoundDevices(e)}}".`);return r}function formattedDeviceName(e){return e.version?`${e.name} (${e.version})`:e.name}function printFoundDevices(e){return["Available devices:",...e.map(e=>` - ${e.name} (${e.udid})`)].join("\n")}exports.parseXctraceIOSDevicesList=parseXctraceIOSDevicesList,exports.getDevices=getDevices,exports.findMatchingSimulator=findMatchingSimulator,exports.matchingDevice=matchingDevice,exports.formattedDeviceName=formattedDeviceName,exports.printFoundDevices=printFoundDevices;
@@ -2076,6 +2076,9 @@ module.exports = {
2076
2076
  "name": {
2077
2077
  "type": "string"
2078
2078
  },
2079
+ "entry": {
2080
+ "type": "string"
2081
+ },
2079
2082
  "root": {
2080
2083
  "type": "string"
2081
2084
  },
@@ -2217,5 +2220,5 @@ module.exports = {
2217
2220
  }
2218
2221
  },
2219
2222
  "$schema": "http://json-schema.org/draft-07/schema#",
2220
- "$version": 1715672764344
2223
+ "$version": 1718940707580
2221
2224
  }
@@ -952,6 +952,9 @@ module.exports = {
952
952
  "name": {
953
953
  "type": "string"
954
954
  },
955
+ "entry": {
956
+ "type": "string"
957
+ },
955
958
  "root": {
956
959
  "type": "string"
957
960
  },
@@ -1084,5 +1087,5 @@ module.exports = {
1084
1087
  }
1085
1088
  },
1086
1089
  "$schema": "http://json-schema.org/draft-07/schema#",
1087
- "$version": 1710507688689
1090
+ "$version": 1675931606631
1088
1091
  }
@@ -207,5 +207,5 @@ module.exports = {
207
207
  }
208
208
  },
209
209
  "$schema": "http://json-schema.org/draft-07/schema#",
210
- "$version": 1710507688689
210
+ "$version": 1701660938211
211
211
  }
@@ -512,5 +512,5 @@ module.exports = {
512
512
  }
513
513
  },
514
514
  "$schema": "http://json-schema.org/draft-07/schema#",
515
- "$version": 1715672877117
515
+ "$version": 1718869682828
516
516
  }
@@ -49,5 +49,5 @@ module.exports = {
49
49
  },
50
50
  "additionalProperties": false,
51
51
  "$schema": "http://json-schema.org/draft-07/schema#",
52
- "$version": 1710507688689
52
+ "$version": 1701660938211
53
53
  }
@@ -10,5 +10,5 @@ module.exports = {
10
10
  },
11
11
  "additionalProperties": false,
12
12
  "$schema": "http://json-schema.org/draft-07/schema#",
13
- "$version": 1710507688689
13
+ "$version": 1701660938211
14
14
  }
@@ -168,6 +168,9 @@ module.exports = {
168
168
  "ignoreUploadUnusedFiles": {
169
169
  "type": "boolean"
170
170
  },
171
+ "ignoreCodeQuality": {
172
+ "type": "boolean"
173
+ },
171
174
  "autoAudits": {
172
175
  "type": "boolean"
173
176
  },
@@ -651,5 +654,5 @@ module.exports = {
651
654
  }
652
655
  },
653
656
  "$schema": "http://json-schema.org/draft-07/schema#",
654
- "$version": 1710507688689
657
+ "$version": 1718869292222
655
658
  }
@@ -166,6 +166,9 @@ module.exports = {
166
166
  "ignoreDevUnusedFiles": {
167
167
  "type": "boolean"
168
168
  },
169
+ "ignoreCodeQuality": {
170
+ "type": "boolean"
171
+ },
169
172
  "checkInvalidKey": {
170
173
  "type": "boolean"
171
174
  },
@@ -367,5 +370,5 @@ module.exports = {
367
370
  }
368
371
  },
369
372
  "$schema": "http://json-schema.org/draft-07/schema#",
370
- "$version": 1710507688689
373
+ "$version": 1718869873347
371
374
  }
@@ -49,5 +49,5 @@ module.exports = {
49
49
  "rules"
50
50
  ],
51
51
  "$schema": "http://json-schema.org/draft-07/schema#",
52
- "$version": 1710507688689
52
+ "$version": 1701660938211
53
53
  }
@@ -16,5 +16,5 @@ module.exports = {
16
16
  },
17
17
  "additionalProperties": false,
18
18
  "$schema": "http://json-schema.org/draft-07/schema#",
19
- "$version": 1710507688689
19
+ "$version": 1701660938211
20
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miniprogram-ci",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "description": "Module that build miniprogram project for web or app extracted from WeChatDevtools.",
5
5
  "homepage": "https://developers.weixin.qq.com/community/homepage",
6
6
  "main": "dist/index.js",