taro-ci 3.0.1-alpha.2 → 3.1.2

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # taro-ci
2
2
 
3
- 基于[微信:miniprogram-ci](https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html)、[支付宝:miniu](https://opendocs.alipay.com/mini/miniu/command-intro)开发,使用 swan-toolkit 支持百度小程序自动上传,用于同时打包 weapp、alipay、swan、weapp.third 多版本发布管理;第一个横线后半部分会作为环境变量注入到 Taro 框架小程序中【process.env.MODE_ENV=third】;执行 taro build 时置入的环境变量还包括 process.env.ROOT_PATH=当前文件包输出路径,例:dist/weapp.dev;process.env.PLATFORM_ENV=weapp|alipay|swan;
3
+ 基于[微信:miniprogram-ci](https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html)、[支付宝:minidev](https://opendocs.alipay.com/mini/02q29z?pathHash=be1e11ff)开发,使用 swan-toolkit 支持百度小程序自动上传,用于同时打包 weapp、alipay、swan、weapp.third 多版本发布管理;第一个横线后半部分会作为环境变量注入到 Taro 框架小程序中【process.env.MODE_ENV=third】;执行 taro build 时置入的环境变量还包括 process.env.ROOT_PATH=当前文件包输出路径,例:dist/weapp.dev;process.env.PLATFORM_ENV=weapp|alipay|swan;
4
4
 
5
5
  扩展编译平台使用 [taro-plugin-build](https://www.npmjs.com/package/taro-plugin-build),并在 taro-ci.config 中配置 useTaroPluginBuildBy="",插件编译时自动注册对应的编译平台,可实现多版本公用框架并针对特殊版本处理,具体可参考:[Taro 跨平台开发](https://taro-docs.jd.com/taro/docs/2.x/envs)
6
6
 
@@ -43,11 +43,25 @@ module.exports = {
43
43
  version: "1.0.0",
44
44
  description: "通用描述信息",
45
45
  type: ["weapp", "alipay", "weapp.pro", "alipay.pro"],
46
+ sourceRoot: ".taro-ci-src", // 资源入口,不配置,默认 .taro-ci-src,需要在项目config中sourceRoot相关配置,改用process.env.SOURCE_ROOT_PATH
47
+ modes: [''], // 支持的类型:重要:过滤以及查找文件时依赖此配置;
48
+ modesExclude: [''], // 排除的路径,此路径的文件,不按照modes过滤更新文件名,即使用原有文件名;
49
+ copy: () => ['文件路径',['文件路径','分包(空表示主包)']],
50
+ insertImport: { // 为了兼容taro3.x 需要注入一些引用,别名位置可以是default或者alias.default,表示引入default
51
+ '导入路径':(['导出名', '文件类型PAGE|COMPONENT|ENTRY|void', '导出别名.default']|'导出名')[],
52
+ },
53
+ defaultMode: '', // 默认mode
54
+ taroVersion: '', // @tarojs/cli版本
46
55
  info: {
47
56
  weapp: {
57
+ patch404: true, // app.json缺少的文件,自动用src/404.jsx补充;
48
58
  version: "1.1.0",
49
59
  description: "对应版本的针对性描述",
50
60
  appId: "wx.................",
61
+ audit: {
62
+ versionScreenshot: ['','',''], // 必填,可以配置截图,以支持自动提审 2-5张
63
+ ...({}) // 其他提审配置,参考:https://opendocs.alipay.com/mini/0a3ehy?pathHash=1ec799a9
64
+ },
51
65
  subs:{
52
66
  'pages-0': {
53
67
  /**
@@ -66,7 +80,7 @@ module.exports = {
66
80
  },
67
81
  }
68
82
  },
69
- "weapp-third": {
83
+ "weapp.third": {
70
84
  appId: "wx.................",
71
85
  label: "普通", // 特殊版本的标签
72
86
  tag: "N", // 特殊版本的标签体现在版本号上 N1.2.0
@@ -76,6 +90,20 @@ module.exports = {
76
90
  appId: "支付宝的APPID",
77
91
  },
78
92
  },
93
+ asyncComponents: {
94
+ // 异步分包组件
95
+ 'async-components': {
96
+ root: '',
97
+ placeholder: 'view',
98
+ },
99
+ },
100
+ dynamicDependencies: {
101
+ // 动态依赖,taro-ci编译时会检查并安装
102
+ weapp: {},
103
+ alipay: {},
104
+ swan: {},
105
+ tt: {},
106
+ },
79
107
  branchMap: {test:{type:'',robot:1}} | (branch) => ({type:'',robot:1}), // 分支对应信息,可为对象或者方法
80
108
  minSwanVersion: "", // 最低基础库版本
81
109
  useTaroPluginBuildBy: "normal", // type|mode|normal 自定义编译模式:mode - 按照MODE_ENV对应编译,type - 按照传入的全指令编译
@@ -0,0 +1,23 @@
1
+ try {
2
+ require('node:path')
3
+ } catch (e) {
4
+ const Module = require("module");
5
+ const originalRequire = Module.prototype.require;
6
+ Module.prototype.require = function (moduleName) {
7
+ if (moduleName.startsWith("node:")) {
8
+ const pureNode = moduleName.replace("node:", "");
9
+ let res;
10
+ try {
11
+ res = originalRequire.call(this, pureNode);
12
+ } catch (error) {
13
+ if (pureNode === "fs/promises") {
14
+ res = require("fs").promises;
15
+ } else {
16
+ console.log("当前版本不支持且未兼容的module:", pureNode);
17
+ }
18
+ }
19
+ return res;
20
+ }
21
+ return originalRequire.apply(this, arguments);
22
+ };
23
+ }
package/bin/taro-ci.js CHANGED
@@ -1,2 +1,4 @@
1
1
  #!/usr/bin/env node
2
+ console.log("当前node:", process.version);
3
+ require("./patch.require.js");
2
4
  require("../dist/taro-ci.js");
@@ -0,0 +1,2 @@
1
+ declare function fortify(item: string): Promise<string>;
2
+ export default fortify;
@@ -0,0 +1,2 @@
1
+ declare function createTag(item: string): Promise<void>;
2
+ export default createTag;
@@ -0,0 +1,31 @@
1
+ export interface SubPackagesItem {
2
+ preloadRule?: string;
3
+ plugins?: Record<string, Record<string, any>>;
4
+ pages: string[];
5
+ root: string;
6
+ network?: "all" | "wifi";
7
+ }
8
+ declare type PreloadRuleType = Record<string, {
9
+ packages: string[];
10
+ network: SubPackagesItem["network"];
11
+ }>;
12
+ export interface ConfigType {
13
+ preloadRule?: PreloadRuleType;
14
+ subPackages?: SubPackagesItem[];
15
+ pages: string[];
16
+ tabBar?: {
17
+ custom: boolean;
18
+ list?: {
19
+ pagePath: string;
20
+ iconPath: string;
21
+ selectedIconPath: string;
22
+ text: "\u67E5\u5FEB\u9012";
23
+ }[];
24
+ };
25
+ }
26
+ /**
27
+ *
28
+ * @description 解析入口
29
+ */
30
+ export declare function parseAppEntry(): Promise<import("../../utils/files/parse").RunParseReturn>;
31
+ export {};
@@ -0,0 +1,12 @@
1
+ import { ConfigOptions } from "types";
2
+ interface CopyFilesOptions {
3
+ isWatch?: boolean;
4
+ copy?: ConfigOptions['copy'];
5
+ }
6
+ /**
7
+ *
8
+ * @description 注意:复制时,需要判断当前文件所有依赖文件所在分包是否有变化:更新import路径;
9
+ * @param opts
10
+ */
11
+ export declare function triggerCopyFiles(opts: CopyFilesOptions): Promise<void>;
12
+ export {};
@@ -0,0 +1,32 @@
1
+ import { ConfigType } from "./appEntry";
2
+ import { DependenciesMapType } from 'utils/files/parse';
3
+ /**
4
+ *
5
+ * @description 收集tabBar文件
6
+ * @param tabBar
7
+ * @param allDependenciesMap
8
+ */
9
+ export declare function collectTabBarImage(tabBar: ConfigType['tabBar'], allDependenciesMap: DependenciesMapType): Promise<void>;
10
+ /**
11
+ *
12
+ * @description 解析自定义tabBar
13
+ */
14
+ export declare function parseCustomTabBar(tabBar: ConfigType['tabBar']): Promise<{}>;
15
+ /**
16
+ *
17
+ * @description 是否为入口关联文件
18
+ * @param filePath
19
+ * @returns
20
+ */
21
+ export declare function checkIsEntryRelatedFile(filePath: string): boolean;
22
+ /**
23
+ *
24
+ * @description 收集依赖关系
25
+ */
26
+ export declare function collectDependencies(): Promise<any>;
27
+ /**
28
+ *
29
+ * @description 收集依赖关系:变化或新增文件
30
+ * 1、检查文件是否需要复制:
31
+ */
32
+ export declare function collectChangedDependencies(filePath: string): Promise<any>;
package/dist/taro-ci.js CHANGED
@@ -1 +1,6 @@
1
- "use strict";var chalk=require("chalk"),ora=require("ora"),path=require("path"),fs=require("fs"),minimist=require("minimist"),dayjs=require("dayjs"),child_process=require("child_process"),os=require("os"),assert=require("assert"),events=require("events"),buffer$1=require("buffer"),stream$1=require("stream"),ci=require("miniprogram-ci"),miniu=require("miniu"),semver=require("semver"),tma=require("tt-ide-cli"),Robot=require("dingtalk-robot-sender");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var TaroEnv,chalk__default=_interopDefaultLegacy(chalk),ora__default=_interopDefaultLegacy(ora),path__default=_interopDefaultLegacy(path),fs__default=_interopDefaultLegacy(fs),minimist__default=_interopDefaultLegacy(minimist),dayjs__default=_interopDefaultLegacy(dayjs),child_process__default=_interopDefaultLegacy(child_process),os__default=_interopDefaultLegacy(os),assert__default=_interopDefaultLegacy(assert),events__default=_interopDefaultLegacy(events),buffer__default=_interopDefaultLegacy(buffer$1),stream__default=_interopDefaultLegacy(stream$1),ci__default=_interopDefaultLegacy(ci),miniu__default=_interopDefaultLegacy(miniu),semver__default=_interopDefaultLegacy(semver),tma__default=_interopDefaultLegacy(tma),Robot__default=_interopDefaultLegacy(Robot),__assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function __rest(e,t){var r={};for(o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r}function __awaiter(a,i,s,c){return new(s=s||Promise)(function(e,t){function r(e){try{o(c.next(e))}catch(e){t(e)}}function n(e){try{o(c.throw(e))}catch(e){t(e)}}function o(t){t.done?e(t.value):new s(function(e){e(t.value)}).then(r,n)}o((c=c.apply(a,i||[])).next())})}function __generator(r,n){var o,a,i,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(o)throw new TypeError("Generator is already executing.");for(;s;)try{if(o=1,a&&(i=2&t[0]?a.return:t[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,t[1])).done)return i;switch(a=0,(t=i?[2&t[0],i.value]:t)[0]){case 0:case 1:i=t;break;case 4:return s.label++,{value:t[1],done:!1};case 5:s.label++,a=t[1],t=[0];continue;case 7:t=s.ops.pop(),s.trys.pop();continue;default:if(!(i=0<(i=s.trys).length&&i[i.length-1])&&(6===t[0]||2===t[0])){s=0;continue}if(3===t[0]&&(!i||t[1]>i[0]&&t[1]<i[3])){s.label=t[1];break}if(6===t[0]&&s.label<i[1]){s.label=i[1],i=t;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(t);break}i[2]&&s.ops.pop(),s.trys.pop();continue}t=n.call(r,s)}catch(e){t=[6,e],a=0}finally{o=i=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}}!function(e){e.WEAPP="weapp",e.ALIPAY="alipay",e.SWAN="swan",e.QUICKAPP="quickapp",e.H5="h5",e.RN="rn",e.TT="tt"}(TaroEnv=TaroEnv||{});var TaroConfig,taroPlatform=TaroEnv.WEAPP+"|"+TaroEnv.ALIPAY+"|"+TaroEnv.QUICKAPP+"|"+TaroEnv.SWAN+"|"+TaroEnv.H5+"|"+TaroEnv.RN,taroPlatformAndMode="("+taroPlatform+")([.|-]{1})?(.+)?";!function(e){e.WEAPP="project.config.json",e.ALIPAY="mini.project.json",e.SWAN="project.swan.json",e.QUICKAPP="project.quickapp.json",e.TT="project.config.json"}(TaroConfig=TaroConfig||{});var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function createCommonjsModule(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return commonjsRequire(e,null==t?r.path:t)}},r.exports),r.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var windows=isexe$2;function checkPathExt(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r)return!0;if(-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n<r.length;n++){var o=r[n].toLowerCase();if(o&&e.substr(-o.length).toLowerCase()===o)return!0}return!1}function checkStat$1(e,t,r){return!(!e.isSymbolicLink()&&!e.isFile())&&checkPathExt(t,r)}function isexe$2(r,n,o){fs__default.default.stat(r,function(e,t){o(e,!e&&checkStat$1(t,r,n))})}function sync$4(e,t){return checkStat$1(fs__default.default.statSync(e),e,t)}isexe$2.sync=sync$4;var mode=isexe$1;function isexe$1(e,r,n){fs__default.default.stat(e,function(e,t){n(e,!e&&checkStat(t,r))})}function sync$3(e,t){return checkStat(fs__default.default.statSync(e),t)}function checkStat(e,t){return e.isFile()&&checkMode(e,t)}function checkMode(e,t){var r=e.mode,n=e.uid,o=e.gid,a=void 0!==t.uid?t.uid:process.getuid&&process.getuid(),i=void 0!==t.gid?t.gid:process.getgid&&process.getgid(),e=parseInt("100",8),t=parseInt("010",8);return r&parseInt("001",8)||r&t&&o===i||r&e&&n===a||r&(e|t)&&0===a}isexe$1.sync=sync$3;var core$1="win32"===process.platform||commonjsGlobal.TESTING_WINDOWS?windows:mode,isexe_1=isexe;function isexe(e,o,r){if("function"==typeof o&&(r=o,o={}),!r){if("function"!=typeof Promise)throw new TypeError("callback not provided");return new Promise(function(r,n){isexe(e,o||{},function(e,t){e?n(e):r(t)})})}core$1(e,o||{},function(e,t){e&&("EACCES"===e.code||o&&o.ignoreErrors)&&(e=null,t=!1),r(e,t)})}function sync$2(e,t){try{return core$1.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e}}isexe.sync=sync$2;const isWindows="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,COLON=isWindows?";":":",getNotFoundError=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),getPathInfo=(e,t)=>{var r=t.colon||COLON,n=e.match(/\//)||isWindows&&e.match(/\\/)?[""]:[...isWindows?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)];const o=isWindows?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",a=isWindows?o.split(r):[""];return isWindows&&-1!==e.indexOf(".")&&""!==a[0]&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:o}},which=(a,s,t)=>{"function"==typeof s&&(t=s,s={}),s=s||{};const{pathEnv:i,pathExt:c,pathExtExe:l}=getPathInfo(a,s),u=[],d=o=>new Promise((e,t)=>{if(o===i.length)return s.all&&u.length?e(u):t(getNotFoundError(a));const r=i[o];var n=/^".*"$/.test(r)?r.slice(1,-1):r,t=path__default.default.join(n,a),t=!n&&/^\.[\\\/]/.test(a)?a.slice(0,2)+t:t;e(f(t,o,0))}),f=(o,a,i)=>new Promise((r,e)=>{if(i===c.length)return r(d(a+1));const n=c[i];isexe_1(o+n,{pathExt:l},(e,t)=>{if(!e&&t){if(!s.all)return r(o+n);u.push(o+n)}return r(f(o,a,i+1))})});return t?d(0).then(e=>t(null,e),t):d(0)},whichSync=(t,r)=>{r=r||{};var{pathEnv:n,pathExt:o,pathExtExe:a}=getPathInfo(t,r);const i=[];for(let e=0;e<n.length;e++){const d=n[e];var s=/^".*"$/.test(d)?d.slice(1,-1):d,c=path__default.default.join(s,t),l=!s&&/^\.[\\\/]/.test(t)?t.slice(0,2)+c:c;for(let e=0;e<o.length;e++){var u=l+o[e];try{if(isexe_1.sync(u,{pathExt:a})){if(!r.all)return u;i.push(u)}}catch(e){}}}if(r.all&&i.length)return i;if(r.nothrow)return null;throw getNotFoundError(t)};var which_1=which;which.sync=whichSync;const pathKey=(e={})=>{var t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path"};var pathKey_1=pathKey,_default$3=pathKey;function resolveCommandAttempt(e,t){var r=e.options.env||process.env,n=process.cwd(),o=null!=e.options.cwd,a=o&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd)}catch(e){}let i;try{i=which_1.sync(e.command,{path:r[pathKey_1({env:r})],pathExt:t?path__default.default.delimiter:void 0})}catch(e){}finally{a&&process.chdir(n)}return i=i&&path__default.default.resolve(o?e.options.cwd:"",i),i}function resolveCommand(e){return resolveCommandAttempt(e)||resolveCommandAttempt(e,!0)}pathKey_1.default=_default$3;var resolveCommand_1=resolveCommand;const metaCharsRegExp=/([()\][%!^"`<>&|;, *?])/g;function escapeCommand(e){return e=e.replace(metaCharsRegExp,"^$1")}function escapeArgument(e,t){return e=(e=`"${e=(e=(e=`${e}`).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1")}"`).replace(metaCharsRegExp,"^$1"),e=t?e.replace(metaCharsRegExp,"^$1"):e}var command$2=escapeCommand,argument=escapeArgument,_escape={command:escapeCommand,argument:escapeArgument},shebangRegex=/^#!(.*)/,shebangCommand=(e="")=>{const t=e.match(shebangRegex);if(!t)return null;const[r,n]=t[0].replace(/#! ?/,"").split(" ");e=r.split("/").pop();return"env"===e?n:n?`${e} ${n}`:e};function readShebang(e){var t;const r=Buffer.alloc(150);try{t=fs__default.default.openSync(e,"r"),fs__default.default.readSync(t,r,0,150,0),fs__default.default.closeSync(t)}catch(e){}return shebangCommand(r.toString())}var readShebang_1=readShebang;const isWin$2="win32"===process.platform,isExecutableRegExp=/\.(?:com|exe)$/i,isCmdShimRegExp=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function detectShebang(e){e.file=resolveCommand_1(e);var t=e.file&&readShebang_1(e.file);return t?(e.args.unshift(e.file),e.command=t,resolveCommand_1(e)):e.file}function parseNonShell(e){if(!isWin$2)return e;var t=detectShebang(e),r=!isExecutableRegExp.test(t);if(e.options.forceShell||r){const n=isCmdShimRegExp.test(t);e.command=path__default.default.normalize(e.command),e.command=_escape.command(e.command),e.args=e.args.map(e=>_escape.argument(e,n));t=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${t}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function parse(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);t={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?t:parseNonShell(t)}var parse_1=parse;const isWin$1="win32"===process.platform;function notFoundError(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function hookChildProcess(r,n){if(isWin$1){const o=r.emit;r.emit=function(e,t){if("exit"===e){t=verifyENOENT(t,n);if(t)return o.call(r,"error",t)}return o.apply(r,arguments)}}}function verifyENOENT(e,t){return isWin$1&&1===e&&!t.file?notFoundError(t.original,"spawn"):null}function verifyENOENTSync(e,t){return isWin$1&&1===e&&!t.file?notFoundError(t.original,"spawnSync"):null}var enoent={hookChildProcess:hookChildProcess,verifyENOENT:verifyENOENT,verifyENOENTSync:verifyENOENTSync,notFoundError:notFoundError};function spawn(e,t,r){t=parse_1(e,t,r),r=child_process__default.default.spawn(t.command,t.args,t.options);return enoent.hookChildProcess(r,t),r}function spawnSync(e,t,r){r=parse_1(e,t,r);const n=child_process__default.default.spawnSync(r.command,r.args,r.options);return n.error=n.error||enoent.verifyENOENTSync(n.status,r),n}var crossSpawn=spawn,spawn_1=spawn,sync$1=spawnSync,_parse=parse_1,_enoent=enoent;crossSpawn.spawn=spawn,crossSpawn.sync=sync$1,crossSpawn._parse=_parse,crossSpawn._enoent=_enoent;var stripFinalNewline=e=>{var t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e=(e=e[e.length-1]===t?e.slice(0,e.length-1):e)[e.length-1]===r?e.slice(0,e.length-1):e},npmRunPath_1=createCommonjsModule(function(n){var e=e=>{e={cwd:process.cwd(),path:process.env[pathKey_1()],execPath:process.execPath,...e};let t,r=path__default.default.resolve(e.cwd);const n=[];for(;t!==r;)n.push(path__default.default.join(r,"node_modules/.bin")),t=r,r=path__default.default.resolve(r,"..");var o=path__default.default.resolve(e.cwd,e.execPath,"..");return n.push(o),n.concat(e.path).join(path__default.default.delimiter)};n.exports=e,n.exports.default=e,n.exports.env=e=>{const t={...(e={env:process.env,...e}).env};var r=pathKey_1({env:t});return e.path=t[r],t[r]=n.exports(e),t}});const mimicFn=(e,t)=>{for(const r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};var mimicFn_1=mimicFn,_default$2=mimicFn;mimicFn_1.default=_default$2;const calledFunctions=new WeakMap,onetime=(t,r={})=>{if("function"!=typeof t)throw new TypeError("Expected a function");let n,o=0;const a=t.displayName||t.name||"<anonymous>",i=function(...e){if(calledFunctions.set(i,++o),1===o)n=t.apply(this,e),t=null;else if(!0===r.throw)throw new Error(`Function \`${a}\` can only be called once`);return n};return mimicFn_1(i,t),calledFunctions.set(i,o),i};var onetime_1=onetime,_default$1=onetime,callCount=e=>{if(!calledFunctions.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return calledFunctions.get(e)};onetime_1.default=_default$1,onetime_1.callCount=callCount;var core=createCommonjsModule(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.SIGNALS=void 0;t.SIGNALS=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}]}),realtime=createCommonjsModule(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.SIGRTMAX=t.getRealtimeSignals=void 0;t.getRealtimeSignals=function(){var e=o-n+1;return Array.from({length:e},r)};const r=function(e,t){return{name:`SIGRT${t+1}`,number:n+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}},n=34,o=64;t.SIGRTMAX=o}),signals$2=createCommonjsModule(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.getSignals=void 0;t.getSignals=function(){var e=(0,realtime.getRealtimeSignals)();return[...core.SIGNALS,...e].map(r)};const r=function({name:e,number:t,description:r,action:n,forced:o=!1,standard:a}){var{signals:{[e]:i}}=os__default.default.constants,s=void 0!==i;return{name:e,number:s?i:t,description:r,supported:s,action:n,forced:o,standard:a}}}),main=createCommonjsModule(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.signalsByNumber=t.signalsByName=void 0;const r=function(e,{name:t,number:r,description:n,supported:o,action:a,forced:i,standard:s}){return{...e,[t]:{name:t,number:r,description:n,supported:o,action:a,forced:i,standard:s}}};var n=function(){const e=(0,signals$2.getSignals)();return e.reduce(r,{})}();t.signalsByName=n;const o=function(e,t){var r=s(e,t);if(void 0===r)return{};var{name:n,description:o,supported:a,action:i,forced:t,standard:r}=r;return{[e]:{name:n,number:e,description:o,supported:a,action:i,forced:t,standard:r}}},s=function(t,e){var r=e.find(({name:e})=>os__default.default.constants.signals[e]===t);return void 0!==r?r:e.find(e=>e.number===t)};n=function(){const r=(0,signals$2.getSignals)();var e=realtime.SIGRTMAX+1,e=Array.from({length:e},(e,t)=>o(t,r));return Object.assign({},...e)}();t.signalsByNumber=n});const{signalsByName}=main,getErrorPrefix=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:o,exitCode:a,isCanceled:i})=>e?`timed out after ${t} milliseconds`:i?"was canceled":void 0!==r?`failed with ${r}`:void 0!==n?`was killed with ${n} (${o})`:void 0!==a?`failed with exit code ${a}`:"failed",makeError=({stdout:e,stderr:t,all:r,error:n,signal:o,exitCode:a,command:i,timedOut:s,isCanceled:c,killed:l,parsed:{options:{timeout:u}}})=>{a=null===a?void 0:a;var d=void 0===(o=null===o?void 0:o)?void 0:signalsByName[o].description,f=n&&n.code,u=`Command ${getErrorPrefix({timedOut:s,timeout:u,errorCode:f,signal:o,signalDescription:d,exitCode:a,isCanceled:c})}: ${i}`,f="[object Error]"===Object.prototype.toString.call(n);const p=f?`${u}\n${n.message}`:u;u=[p,t,e].filter(Boolean).join("\n");return f?(n.originalMessage=n.message,n.message=u):n=new Error(u),n.shortMessage=p,n.command=i,n.exitCode=a,n.signal=o,n.signalDescription=d,n.stdout=e,n.stderr=t,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=Boolean(s),n.isCanceled=c,n.killed=l&&!s,n};var error=makeError;const aliases=["stdin","stdout","stderr"],hasAlias=t=>aliases.some(e=>void 0!==t[e]),normalizeStdio=t=>{if(t){const{stdio:r}=t;if(void 0===r)return aliases.map(e=>t[e]);if(hasAlias(t))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map(e=>`\`${e}\``).join(", ")}`);if("string"==typeof r)return r;if(!Array.isArray(r))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof r}\``);var e=Math.max(r.length,aliases.length);return Array.from({length:e},(e,t)=>r[t])}};var stdio=normalizeStdio,node$1=e=>{const t=normalizeStdio(e);return"ipc"===t?"ipc":void 0===t||"string"==typeof t?[t,t,t,"ipc"]:t.includes("ipc")?t:[...t,"ipc"]};stdio.node=node$1;var emitter,signals$1=createCommonjsModule(function(e){e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")}),signals=signals$1,isWin=/^win/i.test(process.platform),EE=events__default.default;"function"!=typeof EE&&(EE=EE.EventEmitter),process.__signal_exit_emitter__?emitter=process.__signal_exit_emitter__:((emitter=process.__signal_exit_emitter__=new EE).count=0,emitter.emitted={}),emitter.infinite||(emitter.setMaxListeners(1/0),emitter.infinite=!0);var signalExit=function(e,t){assert__default.default.equal(typeof e,"function","a callback must be provided for exit handler"),!1===loaded&&load();var r="exit";t&&t.alwaysLast&&(r="afterexit");return emitter.on(r,e),function(){emitter.removeListener(r,e),0===emitter.listeners("exit").length&&0===emitter.listeners("afterexit").length&&unload()}},unload_1=unload;function unload(){loaded&&(loaded=!1,signals.forEach(function(e){try{process.removeListener(e,sigListeners[e])}catch(e){}}),process.emit=originalProcessEmit,process.reallyExit=originalProcessReallyExit,--emitter.count)}function emit(e,t,r){emitter.emitted[e]||(emitter.emitted[e]=!0,emitter.emit(e,t,r))}var sigListeners={};signals.forEach(function(e){sigListeners[e]=function(){process.listeners(e).length===emitter.count&&(unload(),emit("exit",null,e),emit("afterexit",null,e),isWin&&"SIGHUP"===e&&(e="SIGINT"),process.kill(process.pid,e))}});var signals_1=function(){return signals},load_1=load,loaded=!1;function load(){loaded||(loaded=!0,emitter.count+=1,signals=signals.filter(function(e){try{return process.on(e,sigListeners[e]),!0}catch(e){return!1}}),process.emit=processEmit,process.reallyExit=processReallyExit)}var originalProcessReallyExit=process.reallyExit;function processReallyExit(e){process.exitCode=e||0,emit("exit",process.exitCode,null),emit("afterexit",process.exitCode,null),originalProcessReallyExit.call(process,process.exitCode)}var originalProcessEmit=process.emit;function processEmit(e,t){if("exit"!==e)return originalProcessEmit.apply(this,arguments);void 0!==t&&(process.exitCode=t);t=originalProcessEmit.apply(this,arguments);return emit("exit",process.exitCode,null),emit("afterexit",process.exitCode,null),t}signalExit.unload=unload_1,signalExit.signals=signals_1,signalExit.load=load_1;const DEFAULT_FORCE_KILL_TIMEOUT=5e3,spawnedKill$1=(e,t="SIGTERM",r={})=>{var n=e(t);return setKillTimeout(e,t,r,n),n},setKillTimeout=(e,t,r,n)=>{if(shouldForceKill(t,r,n)){r=getForceKillAfterTimeout(r);const o=setTimeout(()=>{e("SIGKILL")},r);o.unref&&o.unref()}},shouldForceKill=(e,{forceKillAfterTimeout:t},r)=>isSigterm(e)&&!1!==t&&r,isSigterm=e=>e===os__default.default.constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),getForceKillAfterTimeout=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return DEFAULT_FORCE_KILL_TIMEOUT;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},spawnedCancel$1=(e,t)=>{e.kill()&&(t.isCanceled=!0)},timeoutKill=(e,t,r)=>{e.kill(t),r(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},setupTimeout$1=(r,{timeout:n,killSignal:o="SIGTERM"},e)=>{if(0===n||void 0===n)return e;if(!Number.isFinite(n)||n<0)throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${n}\` (${typeof n})`);let a;var t=new Promise((e,t)=>{a=setTimeout(()=>{timeoutKill(r,o,t)},n)}),e=e.finally(()=>{clearTimeout(a)});return Promise.race([t,e])},setExitHandler$1=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;const o=signalExit(()=>{e.kill()});return n.finally(()=>{o()})};var kill={spawnedKill:spawnedKill$1,spawnedCancel:spawnedCancel$1,setupTimeout:setupTimeout$1,setExitHandler:setExitHandler$1};const isStream=e=>null!==e&&"object"==typeof e&&"function"==typeof e.pipe;isStream.writable=e=>isStream(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState,isStream.readable=e=>isStream(e)&&!1!==e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState,isStream.duplex=e=>isStream.writable(e)&&isStream.readable(e),isStream.transform=e=>isStream.duplex(e)&&"function"==typeof e._transform&&"object"==typeof e._transformState;var isStream_1=isStream,wrappy_1=wrappy;function wrappy(o,e){if(o&&e)return wrappy(o)(e);if("function"!=typeof o)throw new TypeError("need wrapper function");return Object.keys(o).forEach(function(e){t[e]=o[e]}),t;function t(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];var r=o.apply(this,e),n=e[e.length-1];return"function"==typeof r&&r!==n&&Object.keys(n).forEach(function(e){r[e]=n[e]}),r}}var once_1=wrappy_1(once),strict=wrappy_1(onceStrict);function once(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function onceStrict(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}once.proto=once(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:!0})}),once_1.strict=strict;var noop$1=function(){},isRequest$1=function(e){return e.setHeader&&"function"==typeof e.abort},isChildProcess=function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length},eos=function(t,e,r){if("function"==typeof e)return eos(t,null,e);e=e||{},r=once_1(r||noop$1);function n(){t.writable||m()}function o(){d=!1,f||r.call(t)}function a(e){r.call(t,e?new Error("exited with error code: "+e):null)}function i(e){r.call(t,e)}function s(){process.nextTick(g)}function c(){t.req.on("finish",m)}var l=t._writableState,u=t._readableState,d=e.readable||!1!==e.readable&&t.readable,f=e.writable||!1!==e.writable&&t.writable,p=!1,m=function(){f=!1,d||r.call(t)},g=function(){if(!p)return(!d||u&&u.ended&&!u.destroyed)&&(!f||l&&l.ended&&!l.destroyed)?void 0:r.call(t,new Error("premature close"))};return isRequest$1(t)?(t.on("complete",m),t.on("abort",s),t.req?c():t.on("request",c)):f&&!l&&(t.on("end",n),t.on("close",n)),isChildProcess(t)&&t.on("exit",a),t.on("end",o),t.on("finish",m),!1!==e.error&&t.on("error",i),t.on("close",s),function(){p=!0,t.removeListener("complete",m),t.removeListener("abort",s),t.removeListener("request",c),t.req&&t.req.removeListener("finish",m),t.removeListener("end",n),t.removeListener("close",n),t.removeListener("finish",m),t.removeListener("exit",a),t.removeListener("end",o),t.removeListener("error",i),t.removeListener("close",s)}},endOfStream=eos,noop=function(){},ancient=/^v?\.0/.test(process.version),isFn=function(e){return"function"==typeof e},isFS=function(e){return!!ancient&&(!!fs__default.default&&((e instanceof(fs__default.default.ReadStream||noop)||e instanceof(fs__default.default.WriteStream||noop))&&isFn(e.close)))},isRequest=function(e){return e.setHeader&&isFn(e.abort)},destroyer=function(t,e,r,n){n=once_1(n);var o=!1;t.on("close",function(){o=!0}),endOfStream(t,{readable:e,writable:r},function(e){return e?n(e):(o=!0,void n())});var a=!1;return function(e){if(!o&&!a)return a=!0,isFS(t)?t.close(noop):isRequest(t)?t.abort():isFn(t.destroy)?t.destroy():void n(e||new Error("stream was destroyed"))}},call=function(e){e()},pipe=function(e,t){return e.pipe(t)},pump=function(){var n,o=Array.prototype.slice.call(arguments),a=isFn(o[o.length-1]||noop)&&o.pop()||noop;if((o=Array.isArray(o[0])?o[0]:o).length<2)throw new Error("pump requires two streams per minimum");var i=o.map(function(e,t){var r=t<o.length-1;return destroyer(e,r,0<t,function(e){n=n||e,e&&i.forEach(call),r||(i.forEach(call),a(n))})});return o.reduce(pipe)},pump_1=pump;const{PassThrough:PassThroughStream}=stream__default.default;var bufferStream=e=>{const{array:t}=e={...e};let{encoding:r}=e;const n="buffer"===r;let o=!1;t?o=!(r||n):r=r||"utf8",n&&(r=null);const a=new PassThroughStream({objectMode:o});r&&a.setEncoding(r);let i=0;const s=[];return a.on("data",e=>{s.push(e),o?i=s.length:i+=e.length}),a.getBufferedValue=()=>t?s:n?Buffer.concat(s,i):s.join(""),a.getBufferedLength=()=>i,a};const{constants:BufferConstants}=buffer__default.default;class MaxBufferError extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}async function getStream(e,o){if(!e)return Promise.reject(new Error("Expected a stream"));const{maxBuffer:a}=o={maxBuffer:1/0,...o};let i;return await new Promise((t,r)=>{const n=e=>{e&&i.getBufferedLength()<=BufferConstants.MAX_LENGTH&&(e.bufferedData=i.getBufferedValue()),r(e)};i=pump_1(e,bufferStream(o),e=>{e?n(e):t()}),i.on("data",()=>{i.getBufferedLength()>a&&n(new MaxBufferError)})}),i.getBufferedValue()}var getStream_1=getStream,_default=getStream,buffer=(e,t)=>getStream(e,{...t,encoding:"buffer"}),array=(e,t)=>getStream(e,{...t,array:!0}),MaxBufferError_1=MaxBufferError;getStream_1.default=getStream,getStream_1.buffer=buffer,getStream_1.array=array,getStream_1.MaxBufferError=MaxBufferError_1;const{PassThrough}=stream__default.default;var mergeStream=function(){var r=[],n=new PassThrough({objectMode:!0});return n.setMaxListeners(0),n.add=t,n.isEmpty=function(){return 0==r.length},n.on("unpipe",o),Array.prototype.slice.call(arguments).forEach(t),n;function t(e){return Array.isArray(e)?e.forEach(t):(r.push(e),e.once("end",o.bind(null,e)),e.once("error",n.emit.bind(n,"error")),e.pipe(n,{end:!1})),this}function o(t){!(r=r.filter(function(e){return e!==t})).length&&n.readable&&n.end()}};const handleInput$1=(e,t)=>{void 0!==t&&void 0!==e.stdin&&(isStream_1(t)?t.pipe(e.stdin):e.stdin.end(t))},makeAllStream$1=(e,{all:t})=>{if(t&&(e.stdout||e.stderr)){const r=mergeStream();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r}},getBufferedData=async(e,t)=>{if(e){e.destroy();try{return await t}catch(e){return e.bufferedData}}},getStreamPromise=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?getStream_1(e,{encoding:t,maxBuffer:n}):getStream_1.buffer(e,{maxBuffer:n})},getSpawnedResult$1=async({stdout:t,stderr:r,all:n},{encoding:e,buffer:o,maxBuffer:a},i)=>{var s=getStreamPromise(t,{encoding:e,buffer:o,maxBuffer:a}),c=getStreamPromise(r,{encoding:e,buffer:o,maxBuffer:a}),a=getStreamPromise(n,{encoding:e,buffer:o,maxBuffer:2*a});try{return await Promise.all([i,s,c,a])}catch(e){return Promise.all([{error:e,signal:e.signal,timedOut:e.timedOut},getBufferedData(t,s),getBufferedData(r,c),getBufferedData(n,a)])}},validateInputSync$1=({input:e})=>{if(isStream_1(e))throw new TypeError("The `input` option cannot be a stream in sync mode")};var stream={handleInput:handleInput$1,makeAllStream:makeAllStream$1,getSpawnedResult:getSpawnedResult$1,validateInputSync:validateInputSync$1};const nativePromisePrototype=(async()=>{})().constructor.prototype,descriptors=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(nativePromisePrototype,e)]),mergePromise$1=(e,t)=>{for(const[n,o]of descriptors){var r="function"==typeof t?(...e)=>Reflect.apply(o.value,t(),e):o.value.bind(t);Reflect.defineProperty(e,n,{...o,value:r})}return e},getSpawnedPromise$1=e=>new Promise((r,t)=>{e.on("exit",(e,t)=>{r({exitCode:e,signal:t})}),e.on("error",e=>{t(e)}),e.stdin&&e.stdin.on("error",e=>{t(e)})});var promise={mergePromise:mergePromise$1,getSpawnedPromise:getSpawnedPromise$1};const SPACES_REGEXP=/ +/g,joinCommand$1=(e,t=[])=>Array.isArray(t)?[e,...t].join(" "):e,parseCommand$1=e=>{const t=[];for(const r of e.trim().split(SPACES_REGEXP)){const n=t[t.length-1];n&&n.endsWith("\\")?t[t.length-1]=`${n.slice(0,-1)} ${r}`:t.push(r)}return t};var command$1={joinCommand:joinCommand$1,parseCommand:parseCommand$1};const{spawnedKill,spawnedCancel,setupTimeout,setExitHandler}=kill,{handleInput,getSpawnedResult,makeAllStream,validateInputSync}=stream,{mergePromise,getSpawnedPromise}=promise,{joinCommand,parseCommand}=command$1,DEFAULT_MAX_BUFFER=1e8,getEnv=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:o})=>{e=t?{...process.env,...e}:e;return r?npmRunPath_1.env({env:e,cwd:n,execPath:o}):e},handleArguments=(e,t,r={})=>{var n=crossSpawn._parse(e,t,r);return e=n.command,t=n.args,r=n.options,(r={maxBuffer:DEFAULT_MAX_BUFFER,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||process.cwd(),execPath:process.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,...r}).env=getEnv(r),r.stdio=stdio(r),"win32"===process.platform&&"cmd"===path__default.default.basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n}},handleOutput=(e,t,r)=>"string"==typeof t||Buffer.isBuffer(t)?e.stripFinalNewline?stripFinalNewline(t):t:void 0===r?void 0:"",execa=(e,t,r)=>{const s=handleArguments(e,t,r),c=joinCommand(e,t);let l;try{l=child_process__default.default.spawn(s.file,s.args,s.options)}catch(e){var t=new child_process__default.default.ChildProcess,n=Promise.reject(error({error:e,stdout:"",stderr:"",all:"",command:c,parsed:s,timedOut:!1,isCanceled:!1,killed:!1}));return mergePromise(t,n)}n=getSpawnedPromise(l),n=setupTimeout(l,s.options,n);const u=setExitHandler(l,s.options,n),d={isCanceled:!1};l.kill=spawnedKill.bind(null,l.kill.bind(l)),l.cancel=spawnedCancel.bind(null,l,d);n=onetime_1(async()=>{var[{error:e,exitCode:t,signal:r,timedOut:n},o,a,i]=await getSpawnedResult(l,s.options,u),o=handleOutput(s.options,o),a=handleOutput(s.options,a),i=handleOutput(s.options,i);if(e||0!==t||null!==r){n=error({error:e,exitCode:t,signal:r,stdout:o,stderr:a,all:i,command:c,parsed:s,timedOut:n,isCanceled:d.isCanceled,killed:l.killed});if(!s.options.reject)return n;throw n}return{command:c,exitCode:0,stdout:o,stderr:a,all:i,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return crossSpawn._enoent.hookChildProcess(l,s.parsed),handleInput(l,s.options.input),l.all=makeAllStream(l,s.options),mergePromise(l,n)};var execa_1=execa,sync=(e,t,r)=>{var n=handleArguments(e,t,r),o=joinCommand(e,t);validateInputSync(n.options);let a;try{a=child_process__default.default.spawnSync(n.file,n.args,n.options)}catch(e){throw error({error:e,stdout:"",stderr:"",all:"",command:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}r=handleOutput(n.options,a.stdout,a.error),e=handleOutput(n.options,a.stderr,a.error);if(a.error||0!==a.status||null!==a.signal){t=error({stdout:r,stderr:e,error:a.error,signal:a.signal,exitCode:a.status,command:o,parsed:n,timedOut:a.error&&"ETIMEDOUT"===a.error.code,isCanceled:!1,killed:null!==a.signal});if(!n.options.reject)return t;throw t}return{command:o,exitCode:0,stdout:r,stderr:e,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}},command=(e,t)=>{var[r,...e]=parseCommand(e);return execa(r,e,t)},commandSync=(e,t)=>{var[r,...e]=parseCommand(e);return execa.sync(r,e,t)},node=(e,t,r={})=>{t&&!Array.isArray(t)&&"object"==typeof t&&(r=t,t=[]);var n=stdio.node(r),o=process.execArgv.filter(e=>!e.startsWith("--inspect")),{nodePath:a=process.execPath,nodeOptions:o=o}=r;return execa(a,[...o,e,...Array.isArray(t)?t:[]],{...r,stdin:void 0,stdout:void 0,stderr:void 0,stdio:n,shell:!1})};execa_1.sync=sync,execa_1.command=command,execa_1.commandSync=commandSync,execa_1.node=node;var TS_REG=/^[0-9]{8}$/;function keywordTheme(e,t,r,n){void 0===n&&(n=!1);var o=new RegExp("^"+t);return(n?e.includes(t):o.test(e))?n?chalk__default.default.hex(r)(e):e.replace(o,chalk__default.default.hex(r)(t)):""}function CreateProgress(e,t){var r=this;this.text="项目["+t+"]"+{build:"构建",upload:"上传"}[e],this.start=function(){r.spinner=ora__default.default().start(chalk__default.default.yellow(r.text+"中... \n"))},this.fail=function(e){r.spinner||(r.spinner=ora__default.default()),r.spinner.fail(chalk__default.default.red(r.text+"失败:"+e+" \n"))},this.succeed=function(){r.spinner||(r.spinner=ora__default.default()),r.spinner.succeed(chalk__default.default.green(r.text+"成功! \n"))},this.stop=function(){r.spinner&&r.spinner.stop()}}function consoleBufferByTheme(e){e=e.toString().replace(/\n$/g,"");return e?(e=keywordTheme(e,"Tips:","#f5faa4",!0)||keywordTheme(e,"生成","#b278ff")||keywordTheme(e,"编译","#00ee76")||keywordTheme(e,"编译成功","#00ee76",!0)||keywordTheme(e,"监听文件","#6c6f7d",!0)||keywordTheme(e,"创建","#00aad1")||keywordTheme(e,"修改","#e3eb00")||keywordTheme(e,"Listening","#00aad1",!0)||keywordTheme(e,"Compiled","#00ee76",!0)||e,console.log(e),e):""}var pkgMap={1:{label:"体验",key:"Beta"},2:{label:"候选",key:"Rc"},3:{label:"正式",key:""}};function commandTrigger(o,a,i,s,c){return new Promise(function(t){var e=o.split(/\s/g),r=e[0],e=e.slice(1),e=execa_1(r,e,{env:__assign(__assign({},process.env),c)}),n=new CreateProgress("build",s);a||i?(e.stdout.on("data",consoleBufferByTheme),e.stderr.on("data",function(e){consoleBufferByTheme(e),!a||((e=e.toString().trim()).includes("编译成功")||e.includes("successfully"))&&t({code:0})})):(e.stdout.on("data",function(){}),e.stderr.on("data",function(){}),n.start()),e.on("exit",function(){a||(t({code:0}),n.succeed())}),e.on("error",function(e){console.error(e),n.fail(e)})})}var taroCiCfg=null;function readConfig(e){void 0===e&&(e="taro-ci");var t,r,n,o,a,i,s=taroCiCfg||require(path__default.default.resolve("./"+e+".config.js")),c=process.env.PLATFORM_ENV,s="function"==typeof s?s(merge):s;s.minSwanVersion||(s.minSwanVersion="3.310.35");try{!c||(r=(t=resolvePath(path__default.default.resolve("./"+e+".release"),".json"))?require(t):null)&&0<r.length&&(o=(n=r[0].split("-")).splice(0,1)[0],a=n.splice(-1,1)[0],i=n.join("-"),TS_REG.test(a)||(a&&(n.push(a),i=n.join("-")),a=dayjs__default.default().format("YYYYMMDD")),s=__assign(__assign({},s),{ts:a,version:o,description:i}))}catch(e){}return taroCiCfg=s}function getRobotAndTypeByMessage(e){if(!e)return{};var t=new RegExp("\\[(("+taroPlatform+")((\\.[a-zA-Z,]+)+)?,?)\\]"),t=(e.match(t)||[])[1];return t?{type:t.split(",")}:{}}function getRobotAndTypeByBranch(e,t){return t&&e?"function"==typeof t?t(e):t[e]:{}}var argMap=null;function getArgs(e){if(argMap)return argMap;var t=minimist__default.default(process.argv.slice(2),{boolean:["watch","debug","upload","multi"]}),r=t.ci,n=void 0===r?"":r,o=t.dd,a=void 0===o?"":o,i=t.privacy,s=void 0===i?"":i,c=t.tt,l=void 0===c?"":c,u=t.watch,d=t.debug,f=t.upload,p=t.branch,m=t.multi,g=t.message,h=__rest(t,["ci","dd","privacy","tt","watch","debug","upload","branch","multi","message"]),_=n.split(","),v=_[0],y=_[1],w=_[2],b=l.split(","),S=b[0],E=b[1],r=a.split(","),o=r[0],i=r[1],c=s.split(","),t=c[0],_=c[1],b=(""+(g||"")).replace(/\n/g,""),r=getRobotAndTypeByMessage(b),c=r.type,g=r.robot,r=void 0===g?1:g,g=getRobotAndTypeByBranch(p,e),e=g.type,e=void 0===e?c:e,g=g.robot,g=void 0===g?r:g;return argMap=__assign({ci:n?{toolId:v,privateKey:y,token:w}:void 0,dd:a?{accessToken:o,secret:i}:void 0,privacy:s?{accessToken:t,secret:_}:void 0,tt:l?{email:S,password:E}:void 0,watch:u,debug:d,isWatch:Boolean(u),isDebug:Boolean(d),isUpload:Boolean(f),isCi:Boolean(g),isMulti:Boolean(m),branch:p,robot:g,type:e,message:b},h)}function getTARO_ENV(){return process.env.PLATFORM_ENV}function createOutPath(e,t,r){return e+"."+(t?"dev":"build")+(r?".debug":"")}function getProjectConfigPath(){var e=getTARO_ENV();return path__default.default.resolve("./",TaroConfig[e.toLocaleUpperCase()]||TaroConfig.WEAPP)}function readProjectConfig(){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){return t=getProjectConfigPath(),t=fs__default.default.readFileSync(t),[2,JSON.parse(t.toString())]})})}var compileTypeMap={miniprogram:"miniProgram",plugin:"miniProgramPlugin",game:"miniGame",gamePlugin:"miniGamePlugin"};function rewriteExt(a){return __awaiter(this,void 0,void 0,function(){var t,r,n,o;return __generator(this,function(e){if(r=getArgs(),t=r.isWatch,r=r.isDebug,t||r)return[2,a];try{n=path__default.default.resolve("./ext.json"),(o=require(n)).extEnable=!1,fs__default.default.writeFileSync(n,JSON.stringify(o,null,4))}catch(e){console.log("ext-extEnable",e)}return[2,a]})})}function rewriteProjectConfig(c){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i,s;return __generator(this,function(e){switch(e.label){case 0:return(n=readConfig().info,o=getArgs(),t=o.isWatch,a=o.isDebug,s=o.isUpload,r=o.isMulti,o=n[c]||{},n=o.appId,o=o.template,a="dist/"+createOutPath(c,t,a),process.env.ROOT_PATH=a,process.env.PROJECT_ENV=r?"MULTI":"MINI",process.env.FIX_ENV===TaroEnv.QUICKAPP||s)?[2,c]:(i=getProjectConfigPath(),[4,readProjectConfig()]);case 1:return s=e.sent(),"swan"===process.env.PLATFORM_ENV?s.smartProgramRoot=a:s.miniprogramRoot=a,s.projectArchitecture=r?"multiPlatform":"miniprogram",s.appid=n,fs__default.default.writeFileSync(i,JSON.stringify(s,null,4)),1!==o?[3,3]:[4,rewriteExt(c)];case 2:e.sent(),e.label=3;case 3:return[2,c]}})})}function formatStrWithLine(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.filter(function(e){return!!e}).join("-")}function trimStr(e){return e?e.trim():void 0}function getVersionAndDescriptionFromMessage(e){if(!e)return{};var t=e.replace(/\n/g,""),e=(t.match(/v:(.+)d:/)||[])[1],t=(t.match(/d:(.+)See merge request/)||[])[1];return{version:trimStr(e),description:trimStr(t)}}function getAndFormatConfigInfo(e){var t=readConfig(),r=t.version,n=t.description,o=t.info,a=t.minSwanVersion,i=getArgs(t.branchMap),s=i.robot,c=i.message,l=o[e]||{},t=l.version,i=void 0===t?r:t,o=l.description,e=void 0===o?n:o,r=l.tag,t=void 0===r?"":r,n=l.label,o=void 0===n?"":n,r=l.robot,n=void 0===r?1:r,l=getVersionAndDescriptionFromMessage(c),r=l.version,i=void 0===r?i:r,r=l.description,l=void 0===r?e:r,e=pkgMap[s+""],r=e.label,e=e.key,o=formatStrWithLine(r,o);return{minSwanVersion:a,robot:s+2*(n-1),versionPure:i,version:formatStrWithLine(e,t+i),description:"【"+o+"版-"+dayjs__default.default().format("YYYYMMDDHHmmss")+"】:"+c+"【"+l+"】",label:o}}function formateCommand(e){var t=new RegExp(taroPlatformAndMode),r=e.match(t)||[],e=r[1],t=r[3],r="";return e===TaroEnv.QUICKAPP&&(r=e,e=TaroEnv.WEAPP),[e,void 0===t?"":t,r]}function isObject(e){return"[object Object]"===Object.prototype.toString.call(e)}function isArray(e){return Array.isArray(e)}function merge(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return t.reduce(function(e,t){return Object.keys(t).reduce(function(n,o){var e=t[o];return isObject(e)?n[o]=merge(n[o]||{},e):isArray(e)?n[o]=e.map(function(e,t){if(isObject(e)){var r=n[o]||[];return merge(r[t]||{},e)}return e}):n[o]=e,n},e)},e)}function resolvePath(e,t){var r=process.env.PLATFORM_ENV,n=process.env.MODE_ENV,o=[r],a="";n&&o.unshift(r+"."+n,n);for(var i=0,s=o.length;i<s;i++){var c=o[i];if(fs__default.default.existsSync(a=e+"."+c+t))return a;if(fs__default.default.existsSync(a=""+e+path__default.default.sep+"index."+c+t))return a;var l=/\/index$/;if(l.test(e)&&fs__default.default.existsSync(a=""+e.replace(l,"."+c+"/index")+t))return a}return fs__default.default.existsSync(a=""+e+t)||fs__default.default.existsSync(a=""+e+path__default.default.sep+"index"+t)?a:""}function installCommand(e){return new Promise(function(t){console.log(chalk__default.default.red("缺少指令:"),chalk__default.default.gray(e)),execa_1("npm",["install",e,"-g"],{shell:!0}).on("close",function(e){0===e?console.log(chalk__default.default.green("指令安装成功")):console.log(chalk__default.default.red("指令安装失败")),t(e)})})}function build(c){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i,s;return __generator(this,function(e){switch(e.label){case 0:return(i=getArgs(),t=i.isWatch,r=i.isDebug,n=i.isUpload,o=readConfig(),s=o.useTaroPluginBuildBy,a=o.info,i=o.version,o=(a[c]||{}).version,a=void 0===o?i:o,process.env.APP_VERSION=a,i=process.env,o=i.MODE_ENV,a=i.PLATFORM_ENV,i=i.FIX_ENV,n)?[2,c]:(s="taro build --type "+("type"===s?c:"mode"===s&&o?o:a),t&&(s+=" --watch"),console.log(chalk__default.default.grey("编译平台:"),chalk__default.default.red(i||a),chalk__default.default.grey("版本模式:"),chalk__default.default.red(o||"默认")),[4,commandTrigger(s,t,r,c)]);case 1:return e.sent(),[2,c]}})})}function weapp(c){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i,s;return __generator(this,function(e){switch(e.label){case 0:return[4,readConfig()];case 1:return n=e.sent().info,i=(void 0===n?{}:n)[c].appId,o=getAndFormatConfigInfo(c),t=o.version,r=o.description,n=o.robot,[4,readProjectConfig()];case 2:return(o=e.sent(),s=o.setting,s=void 0===s?{}:s,o=o.compileType,o=void 0===o?"miniprogram":o,a=null,i)?(i=new ci__default.default.Project({appid:i,type:compileTypeMap[o]||"miniProgram",projectPath:path__default.default.resolve("./"),privateKeyPath:path__default.default.resolve("./","private."+i+".key"),ignores:["node_modules/**/*"]}),[4,ci__default.default.upload({robot:n,project:i,version:t,desc:r,setting:s,onProgressUpdate:function(){}}).catch(function(e){return a=e})]):(a=new Error("缺少appId,无法上传到微信平台"),[2,{item:c,error:a,errorCode:3}]);case 3:return s=e.sent(),[2,{item:c,error:a,result:s}]}})})}function alipay(s){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i;return __generator(this,function(e){switch(e.label){case 0:return r=getArgs().ci,[4,readConfig()];case 1:return(a=e.sent(),t=a.info,n=void 0===t?{}:t,t=a.ci,a=n[s].appId,n=__assign(__assign({},t),r),t=n.toolId,r=n.privateKey,n=getAndFormatConfigInfo(s).versionPure,o=null,a&&t)?(miniu__default.default.setConfig({toolId:t,privateKey:r}),i={project:path__default.default.resolve("./"),appId:a,clientType:"alipay",experience:!0,onProgressUpdate:function(){}},n&&"-1"!==n?[4,miniu__default.default.getUploadVersion({appId:a,clientType:"alipay"})]:[3,3]):(o=new Error("缺少"+(a?"toolId":"appId")+",无法上传到支付宝平台"),[2,{item:s,error:o,errorCode:3}]);case 2:a=e.sent(),semver__default.default.gt(n,a)||(n=semver__default.default.inc(a,"patch")),i.packageVersion=n,e.label=3;case 3:return[4,miniu__default.default.miniUpload(i).catch(function(e){return o=new Error(""+e.message)})];case 4:return i=e.sent(),[2,{item:s,result:i,error:o}]}})})}function createUploadFailMessage(e){return"上传失败"+((e=void 0===e?!0:e)?",缺少swan-toolkit包":"")}function upload$1(a,i){return void 0===i&&(i=!1),new Promise(function(t){var e=a.token,r=a.version,n=a.desc,r=("swan upload -p ./ --token "+e+" --min-swan-version "+a.minSwanVersion+" --release-version "+r+" -d "+n.replace(/\s/,"")).split(/\s/g),n=r[0],r=r.slice(1),r=execa_1(n,r,{shell:!0}),o="";r.stderr.on("data",function(e){o=""+e}),r.on("close",function(e){0===e?t({}):127===e?installCommand("swan-toolkit").then(function(){i?t({error:createUploadFailMessage()}):upload$1(a,!0).then(t).catch(t)}).catch(function(){t({error:createUploadFailMessage()})}):t({error:o||createUploadFailMessage(!1)})})})}function swan(i){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a;return __generator(this,function(e){switch(e.label){case 0:return n=getArgs().ci,[4,readConfig()];case 1:if(o=e.sent().ci,a=getAndFormatConfigInfo(i),t=a.versionPure,r=a.description,a=a.minSwanVersion,n=__assign(__assign({},o),n).token,o=null,!(n=void 0===n?"":n))return o=new Error("缺少token,无法上传到百度平台"),[2,{item:i,error:o,errorCode:3}];try{fs__default.default.writeFileSync(path__default.default.resolve("./ext.json"),"")}catch(e){}return[4,upload$1({token:n,version:t,desc:r,minSwanVersion:a})];case 2:return a=e.sent(),o=a.error,[2,{item:i,result:a,error:o}]}})})}function tt(s){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i;return __generator(this,function(e){switch(e.label){case 0:return r=getArgs().tt,[4,readConfig()];case 1:return o=e.sent().tt,n=__assign(__assign({},o),r),t=n.email,r=n.password,o=getAndFormatConfigInfo(s),n=o.versionPure,o=o.description,a=null,t&&r?[4,tma__default.default.loginByEmail({email:t,password:r})]:(a=new Error("缺少"+(t?"password":"email")+",无法上传到抖音平台"),[2,{item:s,error:a,errorCode:3}]);case 2:return e.sent(),[4,tma__default.default.upload({project:{path:path__default.default.resolve("./")},qrcode:{format:null,output:"",options:{small:!1}},version:n,changeLog:o,copyToClipboard:!1,needUploadSourcemap:!0}).catch(function(e){return a=e})];case 3:return i=e.sent(),[4,tma__default.default.logout()];case 4:return e.sent(),[2,{item:s,error:a,result:i}]}})})}function upload(i){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a;return __generator(this,function(e){switch(e.label){case 0:if(n=getArgs(),r=n.isCi,t=n.isWatch,n=n.isDebug,process.env.FIX_ENV)throw new Error("暂不支持快应用上传");if(t||!r)throw new Error(i+",未传入robot或者开发模式无法上传");if(n)throw new Error(i+",DEBUG模式无法上传");t=getTARO_ENV(),r={item:i},(n=new CreateProgress("upload",i)).start(),e.label=1;case 1:switch(e.trys.push([1,12,,13]),t){case TaroEnv.WEAPP:return[3,2];case TaroEnv.ALIPAY:return[3,4];case TaroEnv.SWAN:return[3,6];case TaroEnv.TT:return[3,8]}return[3,10];case 2:return[4,weapp(i)];case 3:return r=e.sent(),[3,11];case 4:return[4,alipay(i)];case 5:return r=e.sent(),[3,11];case 6:return[4,swan(i)];case 7:return r=e.sent(),[3,11];case 8:return[4,tt(i)];case 9:return r=e.sent(),[3,11];case 10:throw o=TaroEnv.WEAPP+"、"+TaroEnv.ALIPAY+"、"+TaroEnv.SWAN+"、"+TaroEnv.TT,o=new Error("不支持上传该平台,目前支持:"+o),n.fail(o),r={item:i,error:o,errorCode:1},o;case 11:return o=r.error,a=r.errorCode,o?(n.fail(o.message||o),a||(r.errorCode=2)):n.succeed(),[3,13];case 12:return a=e.sent(),n.fail(a.message||a),r={item:i,error:a},[3,13];case 13:return[2,r]}})})}function Markdown(){this.text="",this.title="",this.items=[],this.setTitle=function(e){return this.title=e,this},this.add=function(e){return Array.isArray(e)?this.items.concat(e):this.items.push(e),this.text=this.items.join("\n"),this}}function notice(p){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i,s,c,l,u,d,f;return __generator(this,function(e){return u=p.result,t=p.error,r=p.item,n=p.errorCode,s=readConfig(),a=getArgs(s.branchMap),i=a.dd,f=a.privacy,c=s.dd,o=void 0===c?i:c,d=s.privacy,a=void 0===d?f:d,i=s.name,c=s.git,f=void 0===c?"":c,d=getAndFormatConfigInfo(r),s=d.version,c=d.description,d=d.label,l=getTARO_ENV(),u=(u||{}).qrCodeUrl,d=("["+r+"]"+i).toUpperCase()+":"+d,d=(new Markdown).setTitle(d).add("["+d+"]("+f+")\n"),t?(f=l===TaroEnv.H5?"**上传结果:打包成功,自行部署发布**":'**上传结果:上传失败** \n<font color="red">('+t.message+")</font>",d.add(f)):d.add("**上传结果:上传成功**"),d.add("1. version:"+s).add("2. description:"+c),u&&d.add("\n![二维码]("+u+")"),a&&new Robot__default.default(__assign({baseUrl:"https://oapi.dingtalk.com/robot/send"},a)).markdown(d.title,d.text),o&&new Robot__default.default(__assign({baseUrl:"https://oapi.dingtalk.com/robot/send"},o)).markdown(d.title,d.text).then(function(){console.log(chalk__default.default.green("已发送钉钉通知!")),t&&l!==TaroEnv.H5&&1!==n&&process.exit(1)}),[2]})})}function run(o){return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,5,,6]),r=formateCommand(o),n=r[0],t=r[1],r=r[2],process.env.PLATFORM_ENV=n,process.env.MODE_ENV=t,process.env.FIX_ENV=r,n=notice,t=upload,r=build,[4,rewriteProjectConfig(o)];case 1:return[4,r.apply(void 0,[e.sent()])];case 2:return[4,t.apply(void 0,[e.sent()])];case 3:return[4,n.apply(void 0,[e.sent()])];case 4:return e.sent(),[3,6];case 5:return n=e.sent(),ora__default.default().fail(chalk__default.default.gray(n.message)),[3,6];case 6:return[2]}})})}function init(){return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:return[4,readConfig()];case 1:if(r=e.sent(),n=getArgs(r.branchMap),t=n.type,r=void 0===t?r.type:t,t=n.isDebug,n=n.robot,process.env.DEBUG_ENV=t||1===n?"OPEN":"CLOSE",!(n=r?Array.isArray(r)?r:[r]:null))return[2];r=0,n=n,e.label=2;case 2:return r<n.length?[4,run(n[r])]:[3,5];case 3:e.sent(),e.label=4;case 4:return r++,[3,2];case 5:return[2]}})})}init();
1
+ /*!
2
+ * taro-ci v3.1.1
3
+ * (c) 2021-2026 yym
4
+ * Released under the MIT License.
5
+ */
6
+ "use strict";var e=require("chalk"),r=require("ora"),t=require("path"),n=require("fs-extra"),i=require("minimist"),o=require("dayjs"),s=require("execa"),a=require("semver"),c=require("dingtalk-robot-sender"),u=require("minigame-code-fortify-cli"),l=require("chokidar"),f=require("lodash"),d=require("child_process");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v,h=p(e),g=p(r),m=p(t),y=p(n),b=p(i),w=p(o),E=p(s),P=p(a),C=p(c),T=p(l),j=function(){return j=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var i in r=arguments[t])Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i]);return e},j.apply(this,arguments)};function I(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)r.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(t[n[i]]=e[n[i]])}return t}function S(e,r,t,n){return new(t||(t=Promise))(function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var r;e.done?i(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(s,a)}c((n=n.apply(e,r||[])).next())})}function A(e,r){var t,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=r.call(e,s)}catch(e){o=[6,e],n=0}finally{t=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function x(){for(var e=0,r=0,t=arguments.length;r<t;r++)e+=arguments[r].length;var n=Array(e),i=0;for(r=0;r<t;r++)for(var o=arguments[r],s=0,a=o.length;s<a;s++,i++)n[i]=o[s];return n}!function(e){e.WEAPP="weapp",e.ALIPAY="alipay",e.SWAN="swan",e.QUICKAPP="quickapp",e.H5="h5",e.RN="rn",e.TT="tt"}(v||(v={}));var O,k=v.WEAPP+"|"+v.ALIPAY+"|"+v.QUICKAPP+"|"+v.SWAN+"|"+v.H5+"|"+v.RN+"|"+v.TT,D="("+k+")([.|-]{1})?(.+)?";function _(e){void 0===e&&(e="");var r=g.default().start(h.default.yellow(e));return{succeed:function(e){return r.succeed(h.default.green(e))},fail:function(e){return r.fail(h.default.red(e))},warning:function(e){return r.warn(h.default.yellow(e))}}}!function(e){e.WEAPP="project.config.json",e.ALIPAY="mini.project.json",e.SWAN="project.swan.json",e.QUICKAPP="project.quickapp.json",e.TT="project.config.json"}(O||(O={}));var R="npm_package_dependencies__tarojs_cli",M=/^([A-Za-z0-9_.]+)-(\d+)\.(\d+)\.(\d+)$/;function q(){}var N=function(){var e=process.env,r=e.SOURCE_ROOT_PATH,t=e.INIT_CWD,n=m.default.resolve(t,"src");return{rootPath:t,npmDir:t+"/node_modules",sourceDir:n,destinationDir:m.default.resolve(t,r),sourceRoot:r,appEntryPath:n+"/app.jsx",appEntryConfigPath:n+"/app.config.js",needCopy:r&&"src"!==r}};function F(){var e=N().npmDir;return require(e+"/@tarojs/helper")}function U(){var e=process.env.INIT_CWD,r=F(),t=require(e+"/"+r.PROJECT_CONFIG),n=("function"==typeof t?t(ve):t).alias;if(n){var i=N(),o=i.sourceDir,s=i.destinationDir;return Object.keys(n).forEach(function(e){var r=n[e];n[e]=m.default.resolve(o,r.replace(s,o))}),n}return n}var V=[".js",".jsx",".ts",".tsx"],L=[".scss",".less"],W=[".png",".jpg",".jpeg",".gif"];function B(e){return L.includes(e)}function H(e){return W.includes(e)}function Y(e){return function(e){return V.includes(e)}(e)||B(e)||H(e)}x(V,L);var G=/^[0-9]{8}$/;function K(e,r){var t=this;this.text="项目["+r+"]"+{build:"构建",upload:"上传"}[e],this.start=function(){t.spinner=g.default().start(h.default.yellow(t.text+"中... \n"))},this.fail=function(e){t.spinner||(t.spinner=g.default()),t.spinner.fail(h.default.red(t.text+"失败:"+e+" \n"))},this.succeed=function(){t.spinner||(t.spinner=g.default()),t.spinner.succeed(h.default.green(t.text+"成功! \n"))},this.stop=function(){t.spinner&&t.spinner.stop()}}var $={1:{label:"体验",key:"Beta"},2:{label:"候选",key:"Rc"},3:{label:"正式",key:""}};function J(e,r,t,n,i){return new Promise(function(o,s){var a=e.split(/\s/g),c=a[0],u=a.slice(1),l=E.default(c,u,{env:j(j(j({},process.env),i),{FORCE_COLOR:"1"})}),f=new K("build",n),d=!1,p="",v=function(e){if(r){var t=e.toString().trim();(t.includes("编译成功")||t.includes("successfully")||t.startsWith("built"))&&o({code:0})}},h=function(e){var r=e.toString().trim();(r.includes("编译失败")||r.includes("failed")||r.includes("Error")||r.includes("SyntaxError"))&&(d=!0),d&&(p+=r+"\n")};r||t?(l.stdout.on("data",function(e){process.stdout.write(e),v(e)}),l.stderr.on("data",function(e){process.stderr.write(e),v(e)})):(l.stdout.on("data",h),l.stderr.on("data",h),f.start()),l.on("exit",function(){if(!r){if(d)return f.stop(),void s(new Error(p));o({code:0}),f.succeed()}}),l.on("error",function(e){console.error(e),f.fail(e)})})}var Q=null;function X(e){void 0===e&&(e="taro-ci");var r=Q;if(!r){try{r=require(m.default.resolve("./"+e+".private.config.js"))}catch(n){try{r=require(m.default.resolve("./"+e+".config.js"))}catch(e){var t=require(m.default.resolve("./package.json"));(r=t["taro-ci"]).name=t.name,r.version=t.version,r.description=t.description}}var n="function"==typeof r?r(ve):r;return n.minSwanVersion||(n.minSwanVersion="3.310.35"),n.compileType||(n.compileType="taro"),n.codeFortify||(n.codeFortify=!1),Q=n,n}return r}var z=null;function Z(e){void 0===e&&(e="taro-ci");var r=z;if(!r){var t=X(e);try{if(process.env.PLATFORM_ENV){var n=he(m.default.resolve("./"+e+".release"),".json"),i=n?require(n):null;if(i&&i.length>0){var o=i[0].split("-"),s=o.splice(0,1)[0],a=o.splice(-1,1)[0],c=o.join("-");G.test(a)||(a&&(o.push(a),c=o.join("-")),a=w.default().format("YYYYMMDD")),t=j(j({},t),{ts:a,version:s,description:c})}z=t}}catch(e){}return t}return r}function ee(){var e=process.env.CI_COMMIT_TAG||"";if(!M.test(e))return{};var r=e.split("-");return{type:r[0],version:r[1]}}var re=null;function te(e){if(re)return re;var r=b.default(process.argv.slice(2),{boolean:["watch","debug","upload","multi","tag"]}),t=r.ci,n=void 0===t?process.env.alipay_tool_id?process.env.alipay_tool_id+","+process.env.alipay_private_key+","+process.env.swan_token:"":t,i=r.dd,o=void 0===i?process.env.dd_access_token?process.env.dd_access_token+","+process.env.dd_secret:"":i,s=r.privacy,a=void 0===s?"":s,c=r.tt,u=void 0===c?process.env.tt_email?process.env.tt_email+","+process.env.tt_password:"":c,l=r.watch,f=r.debug,d=r.upload,p=r.branch,v=void 0===p?process.env.CI_COMMIT_BRANCH||"":p,h=r.multi,g=r.tag,m=r.message,y=void 0===m?process.env.CI_COMMIT_MESSAGE||"":m,w=I(r,["ci","dd","privacy","tt","watch","debug","upload","branch","multi","tag","message"]),E=n.split(","),P=E[0],C=E[1],T=E[2],S=u.split(","),A=S[0],x=S[1],O=o.split(","),D=O[0],_=O[1],R=a.split(","),M=R[0],q=R[1],N=(""+(y||"")).replace(/\n/g,""),F=function(e){if(!e)return{};var r=new RegExp("\\[(("+k+")((\\.[a-zA-Z,]+)+)?,?)\\]"),t=(e.match(r)||[])[1];return t?{type:t.split(",")}:{}}(N),U=F.type,V=F.robot,L=void 0===V?1:V,W=function(e,r){return r&&e?"function"==typeof r?r(e):r[e]:{}}(v,e),B=W.type,H=void 0===B?U:B,Y=W.robot,G=void 0===Y?L:Y,K=ee().type,$=j({ci:n?{toolId:P,privateKey:C,token:T}:void 0,dd:o?{accessToken:D,secret:_}:void 0,privacy:a?{accessToken:M,secret:q}:void 0,tt:u?{email:A,password:x}:void 0,watch:l,debug:f,isWatch:Boolean(l),isDebug:Boolean(f),isUpload:Boolean(d),isCi:Boolean(G),isMulti:Boolean(h),isAutoTag:Boolean(g),isTestRobot:Boolean(""+(w.robot||G)=="1"),branch:v,robot:G,type:K||H,message:N},w);return re=$,$}function ne(){return process.env.PLATFORM_ENV}function ie(){var e=ne();return m.default.resolve("./",O[e.toLocaleUpperCase()]||O.WEAPP)}function oe(){return S(this,void 0,void 0,function(){var e,r;return A(this,function(t){return e=ie(),r=y.default.readFileSync(e),[2,JSON.parse(r.toString())]})})}var se={miniprogram:"miniProgram",plugin:"miniProgramPlugin",game:"miniGame",gamePlugin:"miniGamePlugin"};function ae(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a;return A(this,function(c){if(r=te(),t=r.isWatch,n=r.isDebug,i=r.isTestRobot,"swan"!==process.env.PLATFORM_ENV&&(t||n))return[2,e];try{o=m.default.resolve("./ext.json"),(s=require(o)).extEnable=!1,"swan"===process.env.PLATFORM_ENV?(a=Z().info,s.extAppid=a[e].appId):i&&s.extAppid&&((0,_().warning)("版本将被直接上传到【"+s.extAppid+"】,如需上传三方平台,请将ext.json中的extAppid设置为空!"),s.extEnable=!0,s.directCommit=!0),y.default.writeFileSync(o,JSON.stringify(s,null,4))}catch(e){console.log("ext-extEnable",e)}return[2,e]})})}function ce(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d,p;return A(this,function(h){switch(h.label){case 0:return r=Z().info,t=te(),n=t.isWatch,i=t.isDebug,o=t.isUpload,s=t.isMulti,a=r[e]||{},c=a.appId,u=a.template,l=a.projectName,f="dist/"+function(e,r,t,n){return e+"."+(r?"dev":"build")+(t?".debug":"")+(n?".multi":"")}(e,n,i,s),process.env.ROOT_PATH=f,process.env.PROJECT_ENV=s?"MULTI":"MINI",process.env.FIX_ENV===v.QUICKAPP||o||process.env.PLATFORM_ENV===v.H5?[2,e]:(d=ie(),[4,oe()]);case 1:return p=h.sent(),"swan"===process.env.PLATFORM_ENV?p.smartProgramRoot=f:p.miniprogramRoot=f,p.projectArchitecture=s?"multiPlatform":"miniprogram",p.appid=c,p.projectname=l||e,y.default.writeFileSync(d,JSON.stringify(p,null,4)),1!==u&&"swan"!==process.env.PLATFORM_ENV?[3,3]:[4,ae(e)];case 2:h.sent(),h.label=3;case 3:return[2,e]}})})}function ue(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return e.filter(function(e){return!!e}).join("-")}function le(e){return e?e.trim():void 0}function fe(e){var r=Z(),t=r.version,n=r.info,i=r.minSwanVersion,o=te(r.branchMap),s=o.robot,a=o.message,c=n[e]||{},u=c.version,l=void 0===u?t:u,f=c.tag,d=void 0===f?"":f,p=c.label,v=void 0===p?"":p,h=c.robot,g=void 0===h?1:h,m=function(e){if(!e)return{};var r=e.replace(/\n/g,"").replace("Merge branch ",""),t=(r.match(/v:(.+)d:/)||[])[1],n=(r.match(/d:(.+)See merge request/)||[])[1]||r.replace(/See merge request .+/,"");return{version:le(t),description:le(n)}}(a),y=m.version,b=void 0===y?l:y,E=m.description,P=$[s+""],C=P.label,T=P.key,j=ue(C,v),I=ee().version||b;return{minSwanVersion:i,robot:s+2*(g-1),versionPure:I,version:ue(T,d+I),description:"【"+j+"版-"+w.default().format("YYYYMMDDHHmmss")+"】:"+E,label:j,versionKey:T}}function de(e){return"[object Object]"===Object.prototype.toString.call(e)}function pe(e){return Array.isArray(e)}function ve(e){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return r.reduce(function(e,r){return Object.keys(r).reduce(function(e,t){var n=r[t];return de(n)?e[t]=ve(e[t]?e[t]:{},n):pe(n)?e[t]=n.map(function(r,n){if(de(r)){var i=e[t]?e[t]:[];return ve(i[n]?i[n]:{},r)}return r}):e[t]=n,e},e)},e)}function he(e,r){var t=e.replace(/\/$/,""),n="";if(!r){for(var i=0,o=V.length;i<o;i++){if(n=he(t,V[i]))return n}return n}var s=process.env.PLATFORM_ENV,a=process.env.MODE_ENV,c=[s];a&&c.unshift(s+"."+a,a);var u=/\/(index)?$/;for(i=0,o=c.length;i<o;i++){var l=c[i];if(y.default.existsSync(n=t+"."+l+r))return n;if(y.default.existsSync(n=""+t.replace(u,"")+m.default.sep+"index."+l+r))return n;if(u.test(t)&&y.default.existsSync(n=""+t.replace(u,"."+l+"/index")+r))return n}return y.default.existsSync(n=""+t+r)||y.default.existsSync(n=""+t+m.default.sep+"index"+r)?n:""}function ge(e,r){Object.keys(e).forEach(function(t){r[t]?(e[r[t]]=e[t],"object"==typeof e[t]&&ge(e[r[t]],r),delete e[t]):!1===r[t]?delete e[t]:"object"==typeof e[t]&&ge(e[t],r)})}var me=function(e){return/^pages((\-\d{1,2})?)$/.test(e)};function ye(){var e=process.env[R];return!P.default.gt(e,"3.0.0")}function be(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d,p,v,g,m;return A(this,function(y){switch(y.label){case 0:return r=te(),t=r.isWatch,n=r.isDebug,i=r.isUpload,o=Z(),s=o.useTaroPluginBuildBy,a=o.info,c=o.version,u=o.compileType,l=(a[e]||{}).version,f=void 0===l?c:l,process.env.APP_VERSION=f,d=process.env,p=d.MODE_ENV,v=d.PLATFORM_ENV,g=d.FIX_ENV,i?[2,e]:(m="vite"===u?"vite build --mode "+(t?"development":"production"):"taro build --type "+("type"===s?e:"mode"===s&&p?p:v),t&&(m+=" --watch"),console.log(h.default.grey("编译平台:"),h.default.red(g||v),h.default.grey("版本模式:"),h.default.red(p||"默认")),[4,J(m,t,n,e)]);case 1:return y.sent(),[2,e]}})})}function we(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d,p,v,h,g;return A(this,function(y){switch(y.label){case 0:return r=require("miniprogram-ci"),[4,Z()];case 1:return t=y.sent().info,n=(void 0===t?{}:t)[e].appId,i=fe(e),o=i.version,s=i.description,a=i.robot,[4,oe()];case 2:if(c=y.sent(),u=c.setting,l=void 0===u?{}:u,f=c.compileType,d=void 0===f?"miniprogram":f,p=null,v=null,!n)return p=new Error("缺少appId,无法上传到微信平台"),[2,{item:e,error:p,errorCode:3}];h=new r.Project({appid:n,type:se[d]||"miniProgram",projectPath:m.default.resolve("./"),privateKeyPath:m.default.resolve("./","private."+n+".key"),ignores:["node_modules/**/*"]}),y.label=3;case 3:return y.trys.push([3,5,,6]),[4,r.upload({robot:a,project:h,version:o,desc:s,setting:l,onProgressUpdate:function(){}})];case 4:return v=y.sent(),[3,6];case 5:return g=y.sent(),p=g,[3,6];case 6:return[2,{item:e,error:p,result:v}]}})})}function Ee(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d,p,v,h,g,y,b,w,E,C,T,I,S,x,O,k,D,_,R,M;return A(this,function(A){switch(A.label){case 0:return r=require("minidev").minidev,t=te().ci,[4,Z()];case 1:if(n=A.sent(),i=n.info,o=void 0===i?{}:i,s=n.ci,a=o[e],c=a.appId,u=a.audit,l=j(j({},s),t),f=l.toolId,d=l.privateKey,p=fe(e),v=p.versionPure,h=p.description,g=p.versionKey,y=null,b=null,!c||!f)return y=new Error("缺少"+(c?"toolId":"appId")+",无法上传到支付宝平台"),[2,{item:e,error:y,errorCode:3}];A.label=2;case 2:return A.trys.push([2,17,,18]),[4,r.config.useRuntime({"alipay.authentication.privateKey":d,"alipay.authentication.toolId":f})];case 3:return A.sent(),E={appId:c,clientType:w="alipay",project:m.default.resolve("./"),versionDescription:h},[4,r.app.getUploadedVersionList({appId:c,clientType:w})];case 4:if(C=A.sent(),T=C.filter(function(e){return function(r){return!!e&&("INIT"===r.versionStatus&&(""+r.versionDescription).includes({"":"正式版-",Beta:"体验版-",Rc:"候选版-"}[e]))}}(g)),!(T.length>=1))return[3,9];I=T.slice(-1)[0].appVersion,S={appId:c,clientType:w,version:I},A.label=5;case 5:return A.trys.push([5,8,,9]),[4,r.app.cancelExperience(S)];case 6:return A.sent(),[4,r.app.deleteVersion(S)];case 7:return A.sent(),[3,9];case 8:return x=A.sent(),y=x,[3,9];case 9:return(O=require(m.default.resolve("./mini.project.json")))&&(E.project=m.default.join(E.project,O.miniprogramRoot)),v&&"-1"!==v?[4,r.app.getUploadedVersion({clientType:w,appId:c})]:[3,11];case 10:k=A.sent(),P.default.gt(v,k)||(v=P.default.inc(k,"patch")),E.version=v,A.label=11;case 11:return[4,r.upload(E,{onLog:q,onTaskCreated:q,onVersionCreated:q})];case 12:return b=A.sent(),D=!0,g||!u?[3,14]:(_=u.versionScreenshot)&&_.length>=2?[4,r.audit(j(j({},u),{appId:c,clientType:w,version:E.version,versionDescription:E.versionDescription}))]:[3,14];case 13:A.sent(),D=!1,A.label=14;case 14:return D?[4,r.app.setExperience({appId:c,clientType:w,version:E.version})]:[3,16];case 15:R=A.sent().qrCodeUrl,b.qrCodeUrl=R,A.label=16;case 16:return[3,18];case 17:return M=A.sent(),y=M,[3,18];case 18:return[2,{item:e,result:b,error:y}]}})})}function Pe(e){return void 0===e&&(e=!0),"上传失败"+(e?",缺少swan-toolkit包":"")}function Ce(e,r){return void 0===r&&(r=!1),new Promise(function(t){var n=e.token,i=e.version,o=e.desc,s=("swan upload -p ./ --token "+n+" --min-swan-version "+e.minSwanVersion+" --release-version "+i+" -d "+o.replace(/\s/,"")).split(/\s/g),a=s[0],c=s.slice(1),u=E.default(a,c,{shell:!0}),l="";u.stderr.on("data",function(e){l=""+e}),u.on("close",function(n){var i;0===n?t({}):127===n?(i="swan-toolkit",new Promise(function(e){console.log(h.default.red("缺少指令:"),h.default.gray(i)),E.default("npm",["install",i,"-g"],{shell:!0}).on("close",function(r){0===r?console.log(h.default.green("指令安装成功")):console.log(h.default.red("指令安装失败")),e(r)})})).then(function(){r?t({error:Pe()}):Ce(e,!0).then(t).catch(t)}).catch(function(){t({error:Pe()})}):t({error:l||Pe(!1)})})})}function Te(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l;return A(this,function(f){switch(f.label){case 0:return r=te().ci,[4,Z()];case 1:if(t=f.sent().ci,n=fe(e),i=n.versionPure,o=n.description,s=n.minSwanVersion,a=j(j({},t),r).token,u=null,!(c=void 0===a?"":a))return u=new Error("缺少token,无法上传到百度平台"),[2,{item:e,error:u,errorCode:3}];try{y.default.writeFileSync(m.default.resolve("./ext.json"),"")}catch(e){}return[4,Ce({token:c,version:i,desc:o,minSwanVersion:s})];case 2:return l=f.sent(),u=l.error,[2,{item:e,result:l,error:u}]}})})}function je(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d,p,v;return A(this,function(h){switch(h.label){case 0:return r=require("tt-ide-cli"),t=te().tt,[4,Z()];case 1:return n=h.sent(),i=n.tt,o=n.info,s=(void 0===o?{}:o)[e].appId,a=j(j({},i),t),c=a.email,u=a.password,l=fe(e),f=l.versionPure,d=l.description,p=null,c?u?[4,r.loginByEmail({email:c,password:u})]:[3,3]:(p=new Error("缺少"+(c?"password":"email")+",无法上传到抖音平台"),[2,{item:e,error:p,errorCode:3}]);case 2:return h.sent(),[3,4];case 3:r.setAppConfig({appid:s,config:{token:c}}),h.label=4;case 4:return[4,r.upload({project:{path:m.default.resolve("./")},qrcode:{format:null,output:"",options:{small:!1}},version:f,changeLog:d,copyToClipboard:!1,needUploadSourcemap:!0}).catch(function(e){return p=e})];case 5:return v=h.sent(),[4,r.logout()];case 6:return h.sent(),[2,{item:e,error:p,result:v}]}})})}function Ie(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d;return A(this,function(p){switch(p.label){case 0:if(r=te(),t=r.isCi,n=r.isWatch,i=r.isDebug,process.env.FIX_ENV)throw new Error("暂不支持快应用上传");if(n||!t)throw new Error(e+",未传入robot或者开发模式无法上传");if(i)throw new Error(e+",DEBUG模式无法上传");o=ne(),s={item:e},(a=new K("upload",e)).start(),p.label=1;case 1:switch(p.trys.push([1,12,,13]),o){case v.WEAPP:return[3,2];case v.ALIPAY:return[3,4];case v.SWAN:return[3,6];case v.TT:return[3,8]}return[3,10];case 2:return[4,we(e)];case 3:return s=p.sent(),[3,11];case 4:return[4,Ee(e)];case 5:return s=p.sent(),[3,11];case 6:return[4,Te(e)];case 7:return s=p.sent(),[3,11];case 8:return[4,je(e)];case 9:return s=p.sent(),[3,11];case 10:throw c=v.WEAPP+"、"+v.ALIPAY+"、"+v.SWAN+"、"+v.TT,u=new Error("不支持上传该平台,目前支持:"+c),a.fail(u),s={item:e,error:u,errorCode:1},u;case 11:return l=s.error,f=s.errorCode,l?(a.fail(l.message||l),f||(s.errorCode=2)):a.succeed(),[3,13];case 12:return d=p.sent(),a.fail(d.message||d),s={item:e,error:d},[3,13];case 13:return[2,s]}})})}function Se(){this.text="",this.title="",this.items=[],this.setTitle=function(e){return this.title=e,this},this.add=function(e){return Array.isArray(e)?this.items.concat(e):this.items.push(e),this.text=this.items.join("\n"),this}}function Ae(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d,p,g,m,y,b,w,E,P,T,I,S,x,O,k,D,_,R;return A(this,function(A){return r=e.result,t=e.error,n=e.item,i=e.errorCode,o=Z(),s=te(o.branchMap),a=s.dd,c=s.privacy,u=o.dd,l=void 0===u?a:u,f=o.privacy,d=void 0===f?c:f,p=o.name,g=o.git,m=void 0===g?"":g,y=fe(n),b=y.version,w=y.description,E=y.label,P=ne(),I=(T=r||{}).version,S=void 0===I?b:I,x=T.experienceQrCodeUrl,O=T.qrCodeUrl,k=void 0===O?x:O,D=("["+n+"]"+p).toUpperCase()+":"+E,_=(new Se).setTitle(D).add("["+D+"]("+m+")\n"),t?(R=P===v.H5?"**上传结果:打包成功,自行部署发布**":'**上传结果:上传失败** \n<font color="red">('+t.message+")</font>",_.add(R)):_.add("**上传结果:上传成功**"),_.add("1. version:"+S).add("2. description:"+w),k&&_.add("\n![二维码]("+k+")"),d&&new C.default(j({baseUrl:"https://oapi.dingtalk.com/robot/send"},d)).markdown(_.title,_.text),l&&new C.default(j({baseUrl:"https://oapi.dingtalk.com/robot/send"},l)).markdown(_.title,_.text).then(function(){console.log(h.default.green("已发送钉钉通知!")),t&&P!==v.H5&&1!==i&&process.exit(1)}),[2]})})}function xe(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f,d,p;return A(this,function(v){switch(v.label){case 0:if(console.log("Creating tag for item: "+e),r=process.env.CI_PUSH_TAG_TOKEN,t=process.env.GITLAB_HOST,n=process.env.CI_PROJECT_PATH,!r)throw new Error("CI_PUSH_TAG_TOKEN environment variable is required");if(!t)throw new Error("GITLAB_HOST environment variable is required");if(!n)throw new Error("CI_PROJECT_PATH environment variable is required");return i="https://gitlab-ci-token:"+r+"@"+t+"/"+n+".git",[4,E.default("git",["fetch","--prune",i,"+refs/tags/*:refs/tags/*"])];case 1:v.sent(),o=fe(e),s=o.versionPure||o.version,console.log("Config version for "+e+": "+s),a=null,v.label=2;case 2:return v.trys.push([2,4,,5]),[4,E.default("git",["tag","--list",e+"-*","--sort=-v:refname"])];case 3:return c=v.sent().stdout,(u=c.split("\n").filter(function(e){return M.test(""+e.trim())})).length>0?(l=u[0],a=l.replace(e+"-",""),console.log("Latest tag version: "+a)):console.log("No existing tags found for "+e),[3,5];case 4:return v.sent(),console.log("Error checking for existing tags for "+e+", proceeding with config version"),[3,5];case 5:if(f=s,a&&P.default.valid(s)&&P.default.valid(a)?P.default.gt(s,a)?(f=s,console.log("Using config version "+s+" (greater than latest tag "+a+")")):(d=P.default.inc(a,"patch"),f=d||a,console.log("Incremented version: "+f+" (from latest tag "+a+")")):(f=s,console.log("Using config version "+s)),!process.env.CI)return[3,14];v.label=6;case 6:return v.trys.push([6,13,,14]),[4,E.default("git",["config","user.name"],{reject:!1})];case 7:return v.sent().stdout.trim()?[3,9]:[4,E.default("git",["config","--global","user.name","GitLab CI/CD"])];case 8:v.sent(),v.label=9;case 9:return[4,E.default("git",["config","user.email"],{reject:!1})];case 10:return v.sent().stdout.trim()?[3,12]:[4,E.default("git",["config","--global","user.email","gitlab-ci@example.com"])];case 11:v.sent(),v.label=12;case 12:return[3,14];case 13:return v.sent(),console.log("Setting git user info in CI environment failed, may cause push to fail"),[3,14];case 14:return p=e+"-"+f,console.log("Creating tag: "+p),[4,E.default("git",["tag",p])];case 15:return v.sent(),console.log("Tag "+p+" created successfully"),[4,E.default("git",["push",i,"refs/tags/"+p])];case 16:return v.sent(),console.log("Tag "+p+" pushed to remote successfully"),process.env.CI_COMMIT_TAG=p,[2]}})})}var Oe=new Set(["node_modules",".git"]),ke=new Set([".bak",".map"]);function De(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s;return A(this,function(a){switch(a.label){case 0:return r=m.default.resolve(process.env.ROOT_PATH||"./",e),y.default.existsSync(r)?[4,y.default.readdir(r,{withFileTypes:!0})]:[2];case 1:t=a.sent(),n=0,i=t,a.label=2;case 2:return n<i.length?(o=i[n],s=m.default.join(r,o.name),o.isDirectory()?Oe.has(o.name)?[3,6]:[4,De(s)]:[3,4]):[3,7];case 3:return a.sent(),[3,6];case 4:return ke.has(m.default.extname(o.name))?[4,y.default.remove(s)]:[3,6];case 5:a.sent(),a.label=6;case 6:return n++,[3,2];case 7:return[2]}})})}function _e(e){return S(this,void 0,void 0,function(){var r,t,n;return A(this,function(i){switch(i.label){case 0:return r=te().isWatch,t=Z().codeFortify,r||!t?[2,e]:(n="./",[4,u.protect("./",n)]);case 1:return i.sent(),[4,De(n)];case 2:return i.sent(),[2,e]}})})}var Re={current:{patchFilesMap:{},usingComponentsCopiedFilesMap:{},patchImportAbsoluteMap:{},appEntryRelatedFilesMap:{}}};function Me(e){return m.default.extname(e)}function qe(e,r){return void 0===r&&(r=!1),m.default.basename(e,r?void 0:Me(e))}function Ne(e){var r=Me(e);return Y(r)?[e.replace(r,""),r]:[e]}var Fe=function(e){var r=Ne(e),t=r[0],n=r[1],i=Z(),o=i.modes,s=void 0===o?[]:o,a=i.modesExclude;if((void 0===a?[]:a).some(function(r){return e.includes(r)}))return e;var c="(\\.("+k+"))?",u=s.length>0?"(\\.("+s.sort(function(e){return e.includes(".")?-1:1}).join("|")+"))?":"",l=new RegExp(c+u,"g");return t.replace(l,"")+n};function Ue(e,r){var t=N(),n=t.sourceDir,i=t.destinationDir;return e.replace(n,i+(r&&me(r)?"/"+r:""))}function Ve(e){return function(e){try{return y.default.statSync(e).isDirectory()}catch(e){return!1}}(e)?e:m.default.dirname(e)}function Le(e,r){var t=Ve(e),n=m.default.relative(t,r);return n.startsWith(".")||(n="./"+n),n}function We(e,r){return S(this,void 0,void 0,function(){return A(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,y.default.copy(e,r,{overwrite:!0})];case 1:case 2:return t.sent(),[3,3];case 3:return[2]}})})}function Be(e,r){var t=U(),n=F();return n.isAliasPath(e,t)?function(e){for(var r in t)if(e.startsWith(r+"/"))return m.default.join(t[r],"./"+e.slice(r.length));return""}(e):n.isNpmPkg(e)?require.resolve(m.default.resolve(N().npmDir,e)):m.default.resolve(r?Ve(r):N().sourceDir,e)}function He(e){return!!e.walkAtRules}function Ye(e,r){var t=r||{},n=t.CSSImportDeclaration,i=t.CSSDeclarations,o=t.CSSRules;n&&e.walkAtRules(function(e){"import"===e.name&&n(e)}),i&&e.walkDecls(i),o&&e.walkRules(o)}function Ge(e){return{code:e.toString()}}function Ke(e,r){return S(this,void 0,void 0,function(){var t,n,i,o,s,a;return A(this,function(c){switch(c.label){case 0:return t=e.ast,n=e.source,i=N().npmDir,o=require(i+"/postcss-url"),s=require(i+"/postcss"),a=o({url:"copy",useHash:!1}),t.source.input.file=n,[4,s([a]).process(t,{from:n,to:r})];case 1:return c.sent(),[2]}})})}function $e(){var e=N().npmDir;return require(e+"/@babel/types")}function Je(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var t=N().npmDir;return require(t+"/@babel/traverse").default.apply(void 0,e)}function Qe(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var t=N().npmDir;return require(t+"/@babel/generator").default.apply(void 0,e)}function Xe(e,r){if(r){var t=function(e){var r=N().npmDir,t=require(r+"/postcss"),n=require(r+"/postcss-scss"),i=e.replace(/\/\/\s.*$/gm,"");return t.parse(i,{syntax:n})}(e);return t}var n=N().npmDir;return require(n+"/@babel/parser").parse(e,{sourceType:"module",plugins:["jsx","tsx","typescript","classProperties","dynamicImport","decorators-legacy"]})}function ze(e){var r=$e();if(Array.isArray(e))return r.arrayExpression(e.map(function(e){return ze(e)}));if("object"==typeof e&&null!==e){var t=Object.keys(e).map(function(t){var n=r.isValidIdentifier(t)?r.identifier(t):r.stringLiteral(t);return r.objectProperty(n,ze(e[t]))});return r.objectExpression(t)}if("string"==typeof e)return r.stringLiteral(e);if("number"==typeof e)return r.numericLiteral(e);if("boolean"==typeof e)return r.booleanLiteral(e);throw new Error("Unsupported type: "+typeof e)}function Ze(e,r){var t=$e();return r&&t.isIdentifier(e.superClass,{name:"Component"})||t.isMemberExpression(e.superClass)&&"Taro"===e.superClass.object.name&&"Component"===e.superClass.property.name}function er(e){var r=Qe(e).code;return new Function("return "+r)()}function rr(e){return["ENTRY","PAGE"].includes(e)}function tr(e){return rr(e)||function(e){return"COMPONENT"===e}(e)}function nr(e,r){return S(this,void 0,void 0,function(){var t,n;return A(this,function(i){switch(i.label){case 0:return r?("alipay"===process.env.PLATFORM_ENV&&(t={navigationStyle:"transparentTitle"},"custom"===r.navigationStyle&&(r.navigationBarTitleTextAlipay=r.navigationBarTitleText,r.navigationBarTitleText="",r.navigationStyle="always",r.titlePenetrate="YES"),ge(r,t)),n=Qe($e().valueToNode(r),{}),[4,y.default.writeFileSync(e.replace(qe(e,!0),qe(e)+".config.js"),"const config = "+n.code+";\nexport default config;")]):[3,2];case 1:i.sent(),i.label=2;case 2:return[2]}})})}function ir(e,r){var t,n=$e(),i=N().sourceDir,o=function(){},s="",a=function(e){var r="",t=$e();return Je(e,{ExportDefaultDeclaration:function(e){var n=e.node.declaration;t.isIdentifier(n)?r=n.name:(t.isClassDeclaration(n)||t.isFunctionDeclaration(n))&&(r=n.id?n.id.name:null)}}),r}(e);return Je(e,{ClassDeclaration:function(e){var c=Ze(e.node,!0);e.node.id.name===a&&c&&(e.node.body.body=e.node.body.body.filter(function(e){if(n.isClassProperty(e)&&"config"===e.key.name){if(n.isCallExpression(e.value)&&n.isMemberExpression(e.value.callee)){var a=e.value.callee;if("preval"===a.object.name&&"require"===a.property.name){var c=e.value.arguments[0].value,u=m.default.resolve(i,c);try{l=u,void 0===(f=!0)&&(f=!1),f&&delete require.cache[require.resolve(l)],t=require(l),s=u,o=function(r){e.value=ze(j(j({},t),r))}}catch(e){}}}else try{t=er(e.value),o=function(r){e.value=ze(j(j({},t),r))}}catch(e){}return!r}var l,f;return!0}))},AssignmentExpression:function(e){n.isMemberExpression(e.node.left)&&e.node.left.object.name===a&&"config"===e.node.left.property.name&&(t=er(e.node.right),r&&e.remove(),o=function(r){e.node.right=ze(j(j({},t),r))})}}),[t,o,s]}var or={react:["Fragment","Component","useEffect","useLayoutEffect","useState","useContext","useRef","useCallback","useMemo","useImperativeHandle","useReducer","createRef","createContext"],"react-redux":["Provider","connect","useSelector","useDispatch","useStore"]};function sr(e,r,t){var n,i,o,s=tr(r),a=!1;if(s){var c=$e(),u=Z().insertImport,l=(n=j(j({},u),or),i={},o=function(e,r){i[e]=i[e]||[],i[e].push(r)},Object.keys(n).forEach(function(e){var r=n[e];pe(r)?r.forEach(function(r){var t=pe(r)?r:[r],n=t[0],i=t.slice(1);o(n,x([e],i))}):o(r,[e])}),i),f={},d=new Set,p={};!function(e){var r=$e(),t=!1,n=!1;Je(e,{ImportDeclaration:function(e){e.node.specifiers.forEach(function(e){r.isImportSpecifier(e)&&"Component"===e.imported.name&&(n=!0)})}}),Je(e,{ClassDeclaration:function(e){var n=e.node.superClass,i=Ze(e.node,!0);n&&i&&(t=!0,e.node.superClass=r.identifier("Component"))}}),t&&!n&&Je(e,{ImportDeclaration:function(e){"@tarojs/taro"===e.node.source.value&&e.node.specifiers.push(r.importSpecifier(r.identifier("Component"),r.identifier("Component")))}})}(e),Je(e,{ImportDeclaration:function(e){var n=[];e.node.specifiers.forEach(function(e){var i=e.imported?e.imported.name:e.local.name,o=l[i];if(o){var s=o.find(function(e){var t=e[1];return t&&t.split(/\||,/).includes(r)})||o.find(function(e){return!e[1]})||[],u=s[0],d=s[2],v=s[3];if(!u)return;if(t){var h=Re.current.patchImportAbsoluteMap[u];if(!h){var g=Ne(Be(u,v)),m=g[0],y=g[1];Re.current.patchImportAbsoluteMap[u]=h=he(m,y)}if(t===h)return}var b=(""+(d||"")).split("."),w=b[0],E=void 0===w?"":w,P=b[1],C="default"===(void 0===P?E:P);"default"===E&&(E=""),f[u]||(f[u]=[]),f[u].push(C?c.importDefaultSpecifier(c.identifier(E||i),c.identifier(i)):E?c.importSpecifier(c.identifier(E),c.identifier(i)):e),E&&(p[e.local.name]=E),n.push(e),a=!0}}),n.length&&n.length===e.node.specifiers.length?d.add(e):n.forEach(function(r){e.node.specifiers=e.node.specifiers.filter(function(e){return e!==r})})}}),d.forEach(function(e){return e.remove()}),Je(e,{Identifier:function(e){var r=e.node.name,t=p[r];t&&(e.scope.hasBinding(r)?e.scope.rename(r,t):e.node.name=t)}}),Object.keys(f).forEach(function(r){var t=e.program.body.find(function(e){return c.isImportDeclaration(e)&&e.source.value===r});if(t)f[r].forEach(function(e){t.specifiers.some(function(r){return r.local.name===e.local.name})||t.specifiers.push(e)});else{var n=c.importDeclaration(f[r],c.stringLiteral(r));e.program.body.unshift(n)}})}return{isUpdateImport:a}}function ar(e,r,t){return S(this,void 0,void 0,function(){var n,i,o,s,a,c,u,l;return A(this,function(f){return He(e)?(n=function(e){var r=!1;return Ye(e,{CSSDeclarations:function(e){var t=e.value.replace(/(\$\w[\w-]*)\s*\/\s*(\d+(\.\d+)?)/g,function(e,t,n){var i=(1/parseFloat(n)).toFixed(5);return r=!0,t+" * "+i});e.value=t}}),{isUpdateCss:r}}(e).isUpdateCss,[2,[,n,"",function(){}]]):(i=ye(),o=function(e,r){var t=tr(r),n=!1;if(t){var i=$e(),o=!1;Je(e,{ImportDeclaration:function(e){if("@tarojs/taro"===e.node.source.value){var r=e.node.specifiers;o=r.some(function(e){return i.isImportSpecifier(e)&&"Component"===e.imported.name})}}}),Je(e,{ClassDeclaration:function(e){var r=e.node,t=r.superClass,s=r.body;if(t&&Ze(r,o)){var a=s.body.find(function(e){return i.isClassMethod(e)&&"constructor"===e.kind});if(a)a.body.body.some(function(e){return i.isExpressionStatement(e)&&i.isCallExpression(e.expression)&&i.isSuper(e.expression.callee)})||(a.body.body.unshift(i.expressionStatement(i.callExpression(i.super(),[i.spreadElement(i.identifier("arguments"))]))),n=!0);else{var c=i.classMethod("constructor",i.identifier("constructor"),[],i.blockStatement([i.expressionStatement(i.callExpression(i.super(),[i.spreadElement(i.identifier("arguments"))]))]));s.body.unshift(c),n=!0}}}})}return{isUpdateConstructor:n}}(e,r).isUpdateConstructor,s=function(e,r,t){var n=rr(r)?ir(e,t):[],i=n[0],o=n[1];return{config:i,configRequirePath:n[2],update:o}}(e,r,!i),a=s.config,c=s.update,u=s.configRequirePath,l=(i?{isUpdateImport:!1}:sr(e,r,t)).isUpdateImport,[2,[a,o||l,u,c]])})})}function cr(e,r){return S(this,void 0,void 0,function(){var t,n,i,o,s=this;return A(this,function(a){return t=e.ast,n=e.create,i=e.code,o=function(){},function(e,r){He(e)?Ye(e,r({types:{isPostcss:!0,checkIsCssAst:He},generate:Ge})):Je(e,r({types:$e(),generate:Qe}))}(t,function(e){var a=e.generate,c=e.types,u=function(e,t,n){return r({value:e,SetImportValue:function(e){"cssImport"===n?t.params="'"+e+"'":"import"===n?t.node.source.value=e:"require"===n&&(t.node.arguments[0].value=e)}})};o=function(e,r){return void 0===r&&(r=t),S(s,void 0,void 0,function(){var t;return A(this,function(n){try{t=a(r,{}),y.default.ensureDirSync(m.default.dirname(e)),y.default.writeFileSync(e,t.code)}catch(r){console.log("parseImport-update-error-filePath:",e),console.log("parseImport-update-error-info:",r)}return[2]})})};var l={ImportDeclaration:function(e){u(e.node.source.value,e,"import")},CallExpression:function(e){c.isIdentifier(e.node.callee,{name:"require"})&&u(e.node.arguments[0].value,e,"require")}};return c.isPostcss&&(l={CSSImportDeclaration:function(e){u(e.params.replace(/^('|")/,"").replace(/('|")$/,""),e,"cssImport")}}),j(j({},l),"function"==typeof n?n({ast:t,generate:a,types:c,code:i}):{})}),[2,o]})})}function ur(e,r){return S(this,void 0,void 0,function(){var t,n,i,o,s,a,c,u,l,f,d,p,v,h,g;return A(this,function(m){switch(m.label){case 0:if(t=[],n=Me(e),i=null,u=B(n),l=!u&&H(n),f=r||(u?"STYLE":l?"IMAGE":"COMPONENT"),d=Z().compileExclude,d&&d.some(function(r){return"function"==typeof r?r(e):e.includes(r)})||l)return[3,6];m.label=1;case 1:return m.trys.push([1,5,,6]),[4,y.default.readFileSync(e)];case 2:return p=m.sent(),v=p.toString(),[4,ar(i=Xe(v,u),f,e)];case 3:return g=m.sent(),o=g[0],a=g[1],s=g[2],c=g[3],[4,cr({ast:i,code:v},function(e){var r=e.value;t.push(r)})];case 4:return m.sent(),[3,6];case 5:return h=m.sent(),console.log("\n【runParse-error】",e,h.message,"\n"),[3,6];case 6:return[2,{source:e,dependencies:t,ast:i,type:f,config:o,configRequirePath:s,isUpdate:a,update:c}]}})})}var lr=function(e,r){return me(e)?e+"-"+r:e};function fr(){return S(this,void 0,void 0,function(){var e,r,t,n,i,o;return A(this,function(s){switch(s.label){case 0:return[4,ur(N().appEntryPath,"ENTRY")];case 1:return e=s.sent(),r=e.config,t=e.update,n=r.subPackages,i=I(r,["subPackages"]),o=i,n&&(o.subPackages=function(e){return e.map(function(e,r){var t=e.root,n=e.pages;e.preloadRule,e.network;var i=I(e,["root","pages","preloadRule","network"]);return j(j({},i),{root:lr(t,r),pages:me(t)?n.map(function(e){return m.default.join(t,"/",e)}):n})}).filter(function(e){var r=e.root,t=e.pages;return r&&t&&t.length>0})}(n),o.preloadRule=function(e){var r={};return e.forEach(function(e,t){var n=e.preloadRule,i=e.root,o=e.network,s=void 0===o?"all":o,a=e.pages;n&&0!==(void 0===a?[]:a).length&&(r[n]=r[n]||{packages:[],network:s},r[n].packages.push(lr(i,t)))}),r}(n),e.config=o,"function"==typeof t&&t(o)),[2,e]}})})}function dr(e){var r=N().sourceDir,t=m.default.resolve(r,e);return[he(t),t]}function pr(e,r){return void 0===r&&(r=""),S(this,void 0,void 0,function(){var t,n,i,o;return A(this,function(s){switch(s.label){case 0:t={},n=function(n,i){var o,s,a,c,u,l,f,d,p,v;return A(this,function(i){switch(i.label){case 0:return o=e[n],r&&!me(r)&&(o=m.default.join(r,"/",o)),s=dr(o),a=s[0],c=s[1],u="",l="",f="",a||(v=dr("./404"),a=v[0],l=v[1],a&&(d=Me(a),u=c+d,f=l+d,process.nextTick(function(){var e=Re.current.patchFilesMap,r=e[f]||[];r.push(u),e[f]=r}))),a?(u=u||Fe(a),[4,ur(a,"PAGE")]):[3,2];case 1:p=i.sent(),t[u]=j({root:r},p),i.label=2;case 2:return[2]}})},i=0,o=e.length,s.label=1;case 1:return i<o?[5,n(i,o)]:[3,4];case 2:s.sent(),s.label=3;case 3:return i++,[3,1];case 4:return[2,t]}})})}function vr(e){return S(this,void 0,void 0,function(){var r,t,n,i,o=this;return A(this,function(s){switch(s.label){case 0:r={},t=function(t,n){return A(this,function(n){switch(n.label){case 0:return[4,S(o,void 0,void 0,function(){var n,i,o;return A(this,function(s){switch(s.label){case 0:return n=e[t],i=n.root,[4,pr(n.pages,i)];case 1:return o=s.sent(),r=j(j({},r),o),[2]}})})];case 1:return n.sent(),[2]}})},n=0,i=e.length,s.label=1;case 1:return n<i?[5,t(n,i)]:[3,4];case 2:s.sent(),s.label=3;case 3:return n++,[3,1];case 4:return[2,r]}})})}function hr(e,r){return S(this,void 0,void 0,function(){var t,n;return A(this,function(i){return t=(r||{}).parents,(n=void 0===t?new Set:t).add(e),[2,n]})})}function gr(e,r){return S(this,void 0,void 0,function(){var t,n,i,o,s=this;return A(this,function(a){if((t=Object.values(j({},e))).length>0)for(n=function(e,n){S(s,void 0,void 0,function(){var n,i;return A(this,function(o){switch(o.label){case 0:return n=t[e],(i=r[n])?[4,mr("",i,r)]:[3,2];case 1:o.sent(),o.label=2;case 2:return[2]}})})},i=0,o=t.length;i<o;i++)n(i);return[2]})})}function mr(e,r,t){return S(this,void 0,void 0,function(){var n,i,o;return A(this,function(s){switch(s.label){case 0:return n=r.root,i=r.parents,o=r.dependenciesResolveMap,n&&n!==e?(r.root="",r.copied=!1,i.forEach(function(e){var r=t[e];r&&(r.copied=!1)}),[4,gr(o,t)]):[3,2];case 1:s.sent(),s.label=2;case 2:return[2]}})})}function yr(e,r,t){return S(this,void 0,void 0,function(){var n,i;return A(this,function(o){return(n=(t[e]||{}).dependenciesResolveMap)&&(i=Object.values(r),Object.values(n).filter(function(e){return!i.includes(e)}).forEach(function(r){var n=t[r];if(n){var i=n.parents;i.delete(e);var o=function(e,r){for(var t="",n=Array.from(e),i=0,o=n.length;i<o;i++){var s=r[n[i]];if(s){var a=s.root;if(!a||t&&a!==t)return"";t=a}}return t}(i,t);o!==n.root&&(n.root=o,n.copied=!1)}})),[2]})})}function br(e,r){return void 0===r&&(r=e),S(this,void 0,void 0,function(){var t,n,i,o,s;return A(this,function(a){switch(a.label){case 0:t={},n=Object.keys(e),i=function(i,o){var s,a,c,u,l,f,d,p,v,h,g,m,y,b;return A(this,function(o){switch(o.label){case 0:s=n[i],a=e[s],c=a.dependencies,u=void 0===c?[]:c,l=a.root,f=void 0===l?"":l,d=a.ast,p=a.config,v=!1,h=function(e,r){var t=U(),n=F();return e.filter(function(e){return n.isAliasPath(e,t)||!n.isNpmPkg(e)}).map(function(e){return[Be(e,r),e]})}(u,s),g={},m=function(e,n){var i,o,a,c,u,l,d,p,m,y,b;return A(this,function(n){switch(n.label){case 0:return i=h[e],o=i[0],a=i[1],c=Ne(o),u=c[0],l=c[1],(d=he(u,l))?(p=Fe(d),v||(v=d!==p),g[a]=p,m=r[p]||t[p],[4,hr(s,m)]):[3,6];case 1:return y=n.sent(),m?(m.parents=y,[4,mr(f,m,j(j({},r),t))]):[3,3];case 2:return n.sent(),[3,6];case 3:return[4,ur(d)];case 4:return b=n.sent(),[4,Promise.resolve().then(function(){t[p]=j({root:f,source:d,parents:y},b)})];case 5:n.sent(),n.label=6;case 6:return[2]}})},y=0,b=h.length,o.label=1;case 1:return y<b?[5,m(y,b)]:[3,4];case 2:o.sent(),o.label=3;case 3:return y++,[3,1];case 4:return[4,yr(s,g,r)];case 5:return o.sent(),r[s]=j(j({},r[s]),{config:p,ast:d,dependencies:u,dependenciesResolveMap:g,dependenciesFilePathChange:v}),Re.current.allDependenciesMap=j(j({},Re.current.allDependenciesMap),r),[2]}})},o=0,s=n.length,a.label=1;case 1:return o<s?[5,i(o,s)]:[3,4];case 2:a.sent(),a.label=3;case 3:return o++,[3,1];case 4:return Object.keys(t).length>0?[4,br(t,j(j({},r),t))]:[3,6];case 5:return[2,a.sent()];case 6:return[2,r]}})})}function wr(e,r){return S(this,void 0,void 0,function(){var t,n;return A(this,function(i){return(t=(e||{}).list)&&(n=N().sourceDir,t.forEach(function(e){var t=e.selectedIconPath;[e.iconPath,t].filter(function(e){return!!e}).forEach(function(e){var t=m.default.join(n,e);r[t]={source:t,type:"IMAGE"}})})),[2]})})}function Er(e){return S(this,void 0,void 0,function(){var r,t,n,i,o;return A(this,function(s){switch(s.label){case 0:return r={},e&&e.custom?(t=N().sourceDir,(n=he(t+"/custom-tab-bar"))?(i=Fe(n),[4,ur(n)]):[3,2]):[3,2];case 1:o=s.sent(),r[i]=j({source:n},o),s.label=2;case 2:return[2,r]}})})}function Pr(e){return Object.keys(Re.current.appEntryRelatedFilesMap).some(function(r){return t=r,!!(n=e).startsWith(t)||m.default.dirname(m.default.resolve(t))===m.default.dirname(m.default.resolve(n));var t,n})}function Cr(){return S(this,void 0,void 0,function(){var e,r,t,n,i,o,s,a,c,u,l;return A(this,function(f){switch(f.label){case 0:return[4,fr()];case 1:return e=f.sent(),r=e.config,t=r.pages,n=r.subPackages,i=r.tabBar,(o=e.configRequirePath)&&(Re.current.appEntryRelatedFilesMap[o]=!0),[4,pr(t)];case 2:return s=f.sent(),a=null,n?[4,vr(n)]:[3,4];case 3:a=f.sent(),f.label=4;case 4:return[4,Er(i)];case 5:return c=f.sent(),[4,br(j(j(j(((l={})[e.source]=e,l),s),a),c))];case 6:return u=f.sent(),[4,wr(i,u)];case 7:return f.sent(),[2,u]}})})}function Tr(e,r){var t=e.source,n=e.files,i=e.parseRes;return S(this,void 0,void 0,function(){return A(this,function(e){return[2,n.reduce(function(e,n){var o,s=r[n];return s.source=t,s.copied=!1,j(j({},e),((o={})[n]=j(j({},s),i),o))},{})]})})}function jr(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,d,p,v,h,g,m,y;return A(this,function(b){switch(b.label){case 0:return r=Re.current,t=r.patchFilesMap,n=r.allDependenciesMap,i=Fe(e),o=t[i],s=o&&o.length>0,a=n[i],c=!!a,s||c?(u=Ne(e),l=u[0],d=u[1],(p=he(l,d))!==e?[3,9]:"ENTRY"!==(v=s?"PAGE":a.type)?[3,2]:[4,fr()]):[3,9];case 1:return g=b.sent(),[3,4];case 2:return[4,ur(p,v)];case 3:g=b.sent(),b.label=4;case 4:return h=g,s?[4,Tr({source:p,files:o,parseRes:h},n)]:[3,6];case 5:return m=b.sent(),[3,7];case 6:a.source=p,a.copied=!1,h.config&&a.configCreated&&(a.configCreated=f.isEqual(h.config,a.config)),(y={})[i]=j(j({},a),h),m=y,b.label=7;case 7:return Object.keys(m).forEach(function(e){n[e]=j(j({},n[e]),m[e])}),[4,br(m,n)];case 8:return[2,b.sent()];case 9:return[2]}})})}function Ir(e,r,t,n){e&&e.forEach(function(e){var i=n[e],o=i.type,s=i.parents,a=i.root,c=void 0===a?"":a;tr(o)&&(rr(o)?Object.keys(r).forEach(function(n){var i=r[n],o=t[i];if(o||(o=t[i]={root:c,target:{}}),o.root!==c&&(o.root=""),""===o.root)o.target[n]=[];else{var s=o.target[n];s||(s=o.target[n]=[]),s.push(e)}}):Ir(s,r,t,n))})}function Sr(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a;return A(this,function(c){switch(c.label){case 0:if(!e)return[3,4];r={},Object.keys(e).forEach(function(t){var n=e[t],i=n||{},o=i.ast,s=i.type,a=i.parents,c=void 0===a?[t]:a,u=i.copied;if(tr(s)&&!u){var l=ir(o,!1),f=l[0],d=l[1];rr(s)&&(f=n.config,d=function(e){n.config=j(j({},n.config),e)});var p=(f||{}).usingComponents;if(p){var v=function(e,r){var t={},n={};return Object.keys(r).forEach(function(i){var o=r[i],s=m.default.resolve(Ve(e),o),a=Ve(s);y.default.pathExistsSync(a)?t[i]=s:n[i]=o}),[t,n]}(t,p),h=v[0],g=v[1];g&&(n.isUpdate=!0,d({usingComponents:g})),Ir(c,h,r,e)}}}),t=Object.keys(r),n=N().appEntryPath,i=Re.current.usingComponentsCopiedFilesMap,o=function(o,s){var a,c,u,l,f,d;return A(this,function(s){switch(s.label){case 0:return a=t[o],c=Ve(a),l=(u=r[a]).root,f=u.target,d=Ue(c,l),i[d]?[3,2]:[4,We(c,d)];case 1:s.sent(),i[d]=!0,s.label=2;case 2:return Object.keys(f).forEach(function(r){var t=f[r];(l?t:[n]).forEach(function(t){var n,i,o=e[t];o.isUpdate=!0,o.config=j(j({},o.config),{usingComponents:j(j({},null===(i=o.config)||void 0===i?void 0:i.usingComponents),(n={},n[r]=Le(t,a),n))})})}),[2]}})},s=0,a=t.length,c.label=1;case 1:return s<a?[5,o(s,a)]:[3,4];case 2:c.sent(),c.label=3;case 3:return s++,[3,1];case 4:return[2]}})})}function Ar(e,r,t){return S(this,void 0,void 0,function(){var n,i,o;return A(this,function(s){switch(s.label){case 0:return n=r.ast,i=r.root,o=r.dependenciesFilePathChange,[4,cr({ast:n},function(n){var s=n.value,a=n.SetImportValue,c=r.dependenciesResolveMap[s];if(c){var u=(t[c]||{}).root;if(o||u||i)a(Le(Ue(e,i),Ue(c,u)))}})];case 1:return[4,s.sent()(e)];case 2:return s.sent(),[2]}})})}function xr(e,r){return S(this,void 0,void 0,function(){var t,n,i,o,s,a,c,u,l,f,d,p;return A(this,function(v){switch(v.label){case 0:return(t=r[e]).copied?[3,8]:(n=t.root,i=t.source,o=t.ast,s=t.dependenciesFilePathChange,a=t.config,c=t.type,u=t.isUpdate,l=t.configCreated,f=Ue(e,n),t.copied=!0,d=ye(),p=!d&&rr(c)&&a,o&&(n||s||p||u)?[4,Ar(f,t,r)]:[3,4]);case 1:return v.sent(),!p||l?[3,3]:(t.configCreated=!0,[4,nr(f,a)]);case 2:v.sent(),v.label=3;case 3:return[3,6];case 4:return[4,We(i,f)];case 5:v.sent(),v.label=6;case 6:return o&&"STYLE"===c?[4,Ke(t,f)]:[3,8];case 7:v.sent(),v.label=8;case 8:return[2]}})})}function Or(e){return S(this,void 0,void 0,function(){var r,t,n;return A(this,function(i){if(e)for(r=Object.keys(e),t=0,n=r.length;t<n;t++)xr(r[t],e);return[2]})})}function kr(e,r){S(this,void 0,void 0,function(){var r,t;return A(this,function(n){switch(n.label){case 0:return r=Re.current.allDependenciesMap,[4,jr("ENTRY"===(r[e]||{}).type||Pr(e)?N().appEntryPath:e)];case 1:return[4,Sr(t=n.sent())];case 2:return n.sent(),[4,Or(t)];case 3:return n.sent(),[2]}})})}function Dr(e){return S(this,void 0,void 0,function(){var r;return A(this,function(t){return"function"==typeof e&&(r=N().sourceDir,e().forEach(function(e){var t=pe(e)?e:[e],n=t[0],i=t[1],o=void 0===i?"":i,s=m.default.resolve(r,n);We(s,Ue(s,o))})),[2]})})}function _r(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c,u,l,f;return A(this,function(d){switch(d.label){case 0:if(r=N(),t=r.destinationDir,n=r.sourceRoot,!r.needCopy)return[3,8];o=(i=e||{}).isWatch,s=i.copy,a=_("正在复制文件到"+n),c=a.succeed,u=a.fail,d.label=1;case 1:return d.trys.push([1,7,,8]),[4,y.default.emptyDir(t)];case 2:return d.sent(),[4,Dr(s)];case 3:return d.sent(),[4,Cr()];case 4:return[4,Sr(l=d.sent())];case 5:return d.sent(),[4,Or(l)];case 6:return d.sent(),o&&function(){S(this,void 0,void 0,function(){var e,r;return A(this,function(t){return e=N().sourceDir,(r=T.default.watch(e,{persistent:!0,ignoreInitial:!0})).on("change",kr),r.on("add",kr),[2]})})}(),c("复制成功"),[3,8];case 7:return f=d.sent(),u("Error copying files:"+f.message),[3,8];case 8:return[2]}})})}function Rr(e){return S(this,void 0,void 0,function(){var r,t,n,i,o,s,a,c;return A(this,function(u){switch(u.label){case 0:r=[],t=Object.keys(e),n=0,i=t.length,u.label=1;case 1:return n<i?(o=t[n],s=e[o],[4,(l=o,new Promise(function(e){var r=N().npmDir;try{require.resolve(m.default.join(r,l)),console.log('Dependency "'+l+'" is already installed.'),e(!0)}catch(r){console.log('Dependency "'+l+'" is not installed.'),e(!1)}}))]):[3,4];case 2:u.sent()||r.push(o+(s?"@"+s.replace("^",""):"")),u.label=3;case 3:return n++,[3,1];case 4:if(r.length>0){a=r.join(" ");try{c="npm install "+a+" --no-save",d.execSync(c,{stdio:"inherit"}),console.log('Dependency "'+a+'" installed successfully.')}catch(e){console.error('Failed to install dependency "'+a+'":',e)}}return[2]}var l})})}function Mr(){return S(this,void 0,void 0,function(){var e,r,t,n,i,o,s,a;return A(this,function(c){switch(c.label){case 0:return e=process.env,r=e.PLATFORM_ENV,t=e.MODE_ENV,n=Z().dynamicDependencies,i=void 0===n?{}:n,(o=process.env[R])?(s=ye(),a=j(j(j({},{weapp:{"miniprogram-ci":"1.0.45"},alipay:{minidev:"2.2.1"},swan:{"swan-toolkit":"3.7.5"},tt:{"tt-ide-cli":"0.1.15"},quickapp:{"@tarojs/components-qa":o}}[r]),i[r]),i[r+"."+t]),s&&(a["@tarojs/taro-"+r]=o),[4,Rr(a)]):[2];case 1:return c.sent(),[2]}})})}function qr(e,r){return S(this,void 0,void 0,function(){var t,n,i,o,s,a,c,u,l,f,d,p;return A(this,function(m){switch(m.label){case 0:return m.trys.push([0,10,,11]),t=te(r.branchMap),n=t.isWatch,i=t.isAutoTag,o=function(e,r){void 0===r&&(r="");var t=new RegExp(D),n=e.match(t)||[],i=n[1],o=n[3],s=void 0===o?r:o,a="";return i===v.QUICKAPP&&(a=i,i=v.WEAPP),[i,s,a]}(e,r.defaultMode),s=o[0],a=o[1],c=o[2],process.env.PLATFORM_ENV=s,process.env.MODE_ENV=a,process.env.FIX_ENV=c,i?[4,xe(e)]:[3,2];case 1:m.sent(),m.label=2;case 2:return[4,Mr()];case 3:return m.sent(),[4,_r({isWatch:n,copy:r.copy})];case 4:return m.sent(),u=Ae,l=Ie,f=_e,d=be,[4,ce(e)];case 5:return[4,d.apply(void 0,[m.sent()])];case 6:return[4,f.apply(void 0,[m.sent()])];case 7:return[4,l.apply(void 0,[m.sent()])];case 8:return[4,u.apply(void 0,[m.sent()])];case 9:return m.sent(),[3,11];case 10:return p=m.sent(),Ae({item:e,error:p,errorCode:4}),g.default().fail(h.default.gray(p.message)),[3,11];case 11:return[2]}})})}!function(){S(this,void 0,void 0,function(){var e,r,t,n,i,o,s,a,c,u,l;return A(this,function(f){switch(f.label){case 0:return[4,X()];case 1:if(e=f.sent(),r=te(e.branchMap),t=r.type,n=void 0===t?e.type:t,i=r.isDebug,o=r.robot,s=e.sourceRoot,a=void 0===s?".taro-ci-src":s,process.env.DEBUG_ENV=i||1===o?"OPEN":"CLOSE",process.env.SOURCE_ROOT_PATH=a,!(c=n?Array.isArray(n)?n:[n]:null))return[2];u=0,l=c,f.label=2;case 2:return u<l.length?[4,qr(l[u],e)]:[3,5];case 3:f.sent(),f.label=4;case 4:return u++,[3,2];case 5:return[2]}})})}();
@@ -2,6 +2,9 @@
2
2
  * Copyright (c) 快宝网络 kuaidihelp.com Co., Ltd. All Rights Reserved 禁止外泄以及用于其它的商业用途
3
3
  */
4
4
  import minimist from "minimist";
5
+ import { IUploadOptions } from 'minidev';
6
+ import { ProjectType } from "miniprogram-ci/dist/@types/types";
7
+ export { IUploadOptions, ProjectType };
5
8
  export declare type CommandPromiseRes = {
6
9
  code: number;
7
10
  err?: string;
@@ -10,6 +13,9 @@ export declare type EnvCustom = {
10
13
  MODE_ENV?: string;
11
14
  PLATFORM_ENV?: string;
12
15
  ROOT_PATH?: string;
16
+ FIX_ENV?: string;
17
+ DEBUG_ENV?: "OPEN" | "CLOSE";
18
+ SOURCE_ROOT_PATH?: string;
13
19
  };
14
20
  export declare type BuildOptions = {
15
21
  appId?: string;
@@ -40,6 +46,8 @@ export interface ArgsResponse extends minimist.ParsedArgs {
40
46
  isDebug?: boolean;
41
47
  isUpload?: boolean;
42
48
  isMulti?: boolean;
49
+ isAutoTag?: boolean;
50
+ isTestRobot?: boolean;
43
51
  message?: string;
44
52
  }
45
53
  export declare type InfoOptions = {
@@ -50,6 +58,10 @@ export declare type InfoOptions = {
50
58
  tag?: string;
51
59
  robot?: number;
52
60
  template?: number;
61
+ audit?: {
62
+ versionScreenshot: string[];
63
+ };
64
+ projectName?: string;
53
65
  };
54
66
  declare type CiType = string | string[];
55
67
  interface BranchMapItem {
@@ -57,17 +69,24 @@ interface BranchMapItem {
57
69
  type?: CiType;
58
70
  }
59
71
  declare type BranchMapFun = (brand: string) => BranchMapItem;
60
- export declare type BranchMap = {
72
+ export declare type BranchMap = BranchMapFun | {
61
73
  [propertys: string]: BranchMapItem;
62
- } | BranchMapFun;
74
+ };
75
+ export declare type FileTypeEntryOrPage = "ENTRY" | "PAGE";
76
+ export declare type FileType = FileTypeEntryOrPage | "COMPONENT" | "STYLE" | "IMAGE";
77
+ export declare type InsertImportType = Record<string, string | ([string, FileType | void, string | void] | string)[]>;
78
+ declare type CompileExcludeFun = (modelPath: string) => boolean;
63
79
  export declare type ConfigOptions = {
64
80
  name: string;
65
81
  version?: string;
66
82
  description?: string;
67
83
  type: CiType;
84
+ defaultMode?: string;
68
85
  info: {
69
86
  [propertys: string]: InfoOptions;
70
87
  };
88
+ copy?: () => (string | string[])[];
89
+ insertImport: InsertImportType;
71
90
  minSwanVersion: string;
72
91
  useTaroPluginBuildBy?: "normal" | "mode" | "type";
73
92
  git?: string;
@@ -76,6 +95,15 @@ export declare type ConfigOptions = {
76
95
  tt?: Tt;
77
96
  privacy?: Dd;
78
97
  branchMap?: BranchMap;
98
+ dynamicDependencies?: Record<string, Record<string, string>>;
99
+ taroVersion?: string;
100
+ sourceRoot?: string;
101
+ modes?: string[];
102
+ modesExclude?: string[];
103
+ compileExclude?: (string | CompileExcludeFun)[];
104
+ ts?: number;
105
+ compileType?: 'vite' | 'taro';
106
+ codeFortify?: boolean;
79
107
  };
80
108
  export declare type UploadResponse = {
81
109
  item: string;
@@ -95,22 +123,24 @@ export declare type ConfigInfoResponse = {
95
123
  robot?: Robot;
96
124
  versionPure?: string;
97
125
  minSwanVersion?: string;
126
+ versionKey: 'Beta' | 'Rc' | '';
98
127
  };
99
- export declare type CompileType = 'miniprogram' | 'plugin' | 'game' | 'gamePlugin';
128
+ export declare type CompileType = "miniprogram" | "plugin" | "game" | "gamePlugin";
100
129
  export declare type ProjectConfig = {
101
130
  miniprogramRoot: string;
102
131
  smartProgramRoot?: string;
132
+ projectname?: string;
103
133
  appid: string;
104
134
  setting: {
105
135
  [propertys: string]: any;
106
136
  };
107
137
  compileType: CompileType;
108
- projectArchitecture?: 'multiPlatform' | 'miniprogram' | '';
138
+ projectArchitecture?: "multiPlatform" | "miniprogram" | "";
109
139
  };
110
140
  export declare type PkgMap = {
111
141
  [propertys: string]: {
112
142
  label: string;
113
- key: string;
143
+ key: ConfigInfoResponse['versionKey'];
114
144
  };
115
145
  };
116
146
  export declare enum TaroEnv {
@@ -131,5 +161,4 @@ export declare enum TaroConfig {
131
161
  "QUICKAPP" = "project.quickapp.json",
132
162
  "TT" = "project.config.json"
133
163
  }
134
- export declare type Platform = "weapp" | "alipay" | "swan" | "quickapp" | "h5" | "rn" | 'tt';
135
- export {};
164
+ export declare type Platform = "weapp" | "alipay" | "swan" | "quickapp" | "h5" | "rn" | "tt";
@@ -0,0 +1 @@
1
+ export declare const ENV_TARO_VERSION = "npm_package_dependencies__tarojs_cli";
@@ -0,0 +1,47 @@
1
+ /**
2
+ *
3
+ * @description babel-types
4
+ * @returns
5
+ */
6
+ export declare function types(): any;
7
+ /**
8
+ *
9
+ * @description babel-traverse
10
+ * @returns
11
+ */
12
+ export declare function traverse(...arg: any[]): any;
13
+ /**
14
+ *
15
+ * @description babel-generate
16
+ * @returns
17
+ */
18
+ export declare function generate(...arg: any[]): any;
19
+ /**
20
+ *
21
+ * @description 解析code
22
+ * @param code
23
+ * @returns
24
+ */
25
+ export declare function babelParser(code: any, isStyleFile?: boolean): any;
26
+ /**
27
+ *
28
+ * @description 转换代码
29
+ * @param ast
30
+ * @param create
31
+ */
32
+ export declare function babelTraverse(ast: any, create: any): void;
33
+ /**
34
+ *
35
+ * @description 对象生成ast
36
+ * @param obj
37
+ * @returns
38
+ */
39
+ export declare function objectToAST(obj: any): any;
40
+ /**
41
+ *
42
+ * @description 检查是否为 Taro.Component
43
+ * @param node
44
+ * @param isComponentFromTaro
45
+ * @returns
46
+ */
47
+ export declare function checkIsTaroComponent(node: any, isComponentFromTaro: any): any;
@@ -0,0 +1,47 @@
1
+ import { DependenciesMapType } from "./parse";
2
+ interface FileRefCurrent {
3
+ appEntryRelatedFilesMap?: Record<string, boolean>;
4
+ allDependenciesMap?: DependenciesMapType;
5
+ patchFilesMap: Record<string, string[]>;
6
+ usingComponentsCopiedFilesMap: Record<string, boolean>;
7
+ patchImportAbsoluteMap: Record<string, string>;
8
+ }
9
+ export declare const fileRef: {
10
+ current: FileRefCurrent;
11
+ };
12
+ export interface SubsRefCurrent {
13
+ subsMap?: Record<string, string>;
14
+ appEntryRequirePath?: string;
15
+ }
16
+ export declare function getExtname(filePath: string): string;
17
+ export declare function getFileName(filePath: string, hasExtname?: boolean): string;
18
+ export declare function splitFileExtName(filePath: string): string[];
19
+ export declare const getPathPure: (fullPath: any) => any;
20
+ export declare const subsRef: {
21
+ current: SubsRefCurrent;
22
+ };
23
+ export declare function requireExtend(modulePath: any, noCache?: boolean): any;
24
+ export declare function patchDestPath(filePath: string, root: string): string;
25
+ export declare function isDirectory(p: any): any;
26
+ /**
27
+ *
28
+ * @description 获取文件所在文件夹
29
+ * @param filePath
30
+ * @returns
31
+ */
32
+ export declare function getFilePathDir(filePath: string): string;
33
+ /**
34
+ *
35
+ * @description 获取相对路径
36
+ * @param from 文件路径(注意不能是文件夹路径)
37
+ * @param to 文件路径
38
+ * @returns
39
+ */
40
+ export declare function getRelativePath(from: string, to: string): string;
41
+ export declare function copyFile(src: any, dest: any): Promise<void>;
42
+ /**
43
+ *
44
+ * @description 获取文件绝对链接,包括
45
+ */
46
+ export declare function getAbsolutePath(filePath: string, parentPath?: string): string;
47
+ export {};
@@ -0,0 +1,48 @@
1
+ import { FileType } from "types";
2
+ export interface RunParseReturn {
3
+ dependencies?: string[];
4
+ ast?: any;
5
+ type: FileType;
6
+ config?: any;
7
+ configRequirePath?: string;
8
+ source: string;
9
+ isUpdate?: boolean;
10
+ configCreated?: boolean;
11
+ update?: (cfg: any) => void;
12
+ }
13
+ export interface DependenciesMapItemType extends RunParseReturn {
14
+ copied?: boolean;
15
+ root?: string;
16
+ parents?: Set<string>;
17
+ dependenciesResolveMap?: Record<string, string>;
18
+ dependenciesFilePathChange?: boolean;
19
+ }
20
+ export declare type DependenciesMapType = Record<string, DependenciesMapItemType>;
21
+ export declare const notFound = "./404";
22
+ /**
23
+ *
24
+ * @description 解析引入
25
+ * @param param0
26
+ * @param callback
27
+ */
28
+ export declare function parseImport(opts: {
29
+ ast: any;
30
+ create?: any;
31
+ code?: string;
32
+ }, callback: (opts: {
33
+ SetImportValue: (val: string) => void;
34
+ value: string;
35
+ }) => void): Promise<(c: any) => Promise<void>>;
36
+ /**
37
+ *
38
+ * @description 开始解析
39
+ * @returns
40
+ */
41
+ export declare function runParse(filePath: string, fileType?: FileType): Promise<RunParseReturn>;
42
+ /**
43
+ *
44
+ * @description 依赖关系路径处理为绝对路径:过滤掉npm包依赖,不做处理
45
+ * @param dependencies 依赖关系列表
46
+ * @param parentPath 相对路径
47
+ */
48
+ export declare function resolveDependenciesPath(dependencies: string[], parentPath?: string): string[][];
@@ -0,0 +1,29 @@
1
+ import { FileType } from "types";
2
+ /**
3
+ *
4
+ * @description 生成config
5
+ * @param destPath
6
+ * @param config
7
+ */
8
+ export declare function createConfigFile(destPath: any, config: any): Promise<void>;
9
+ /**
10
+ *
11
+ * @description 解析组件的config配置,可指定是否将原配置移除
12
+ * @param ast
13
+ * @param isRemoveOrg
14
+ * @returns
15
+ */
16
+ export declare function babelTraverseConfig(ast: any, isRemove?: boolean): any[];
17
+ /**
18
+ *
19
+ * @description 解析config配置
20
+ * @param ast
21
+ * @param type
22
+ * @param isRemove // 是否移除config属性
23
+ * @returns
24
+ */
25
+ export declare function babelTraverseEntryOrPageConfigRun(ast: any, type?: FileType, isRemove?: boolean): {
26
+ config: any;
27
+ configRequirePath: any;
28
+ update: any;
29
+ };
@@ -0,0 +1,11 @@
1
+ import { FileType } from "types";
2
+ /**
3
+ *
4
+ * @description 修复constructor,补充调用super
5
+ * @param ast
6
+ * @param type
7
+ * @returns
8
+ */
9
+ export declare function babelTraverseConstructor(ast: any, type?: FileType): {
10
+ isUpdateConstructor: boolean;
11
+ };
@@ -0,0 +1,11 @@
1
+ import { FileType } from "types";
2
+ /**
3
+ *
4
+ * @description 补充依赖引入:主要修复taro2x相关引用
5
+ * @param ast
6
+ * @param type
7
+ * @returns
8
+ */
9
+ export declare function babelTraverseInsertImport(ast: any, type?: FileType, filePath?: string): {
10
+ isUpdateImport: boolean;
11
+ };
@@ -0,0 +1,9 @@
1
+ import { FileType } from "types";
2
+ /**
3
+ *
4
+ * taro2.x补丁,改写为taro3.x
5
+ * @param ast
6
+ * @param type
7
+ * @returns
8
+ */
9
+ export declare function patchConfigAndImport(ast: any, type?: FileType, filePath?: string): Promise<[any, boolean, string, (cfg: any) => void]>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ *
3
+ * @description 补丁:组件配置了 usingComponents,需要移动到指定位置,并将自定义组件的引用放到对应page或app中;(因taro3x仅支持如此操作)
4
+ */
5
+ import { DependenciesMapType } from '../parse';
6
+ /**
7
+ *
8
+ * @description 清除
9
+ */
10
+ export declare function patchConfigUsingComponents(depsMap?: DependenciesMapType): Promise<void>;
@@ -0,0 +1,43 @@
1
+ import { FileType } from "types";
2
+ /**
3
+ *
4
+ * @description 将ast生成json
5
+ * @param ast
6
+ * @param generate
7
+ * @returns
8
+ */
9
+ export declare function generateAstToJson(ast: any): any;
10
+ /**
11
+ *
12
+ * @description 检查文件为入口
13
+ * @param type
14
+ * @returns
15
+ */
16
+ export declare function checkIsEntry(type?: FileType): boolean;
17
+ /**
18
+ *
19
+ * @description 检查文件为入口或者页面
20
+ * @param type
21
+ * @returns
22
+ */
23
+ export declare function checkIsEntryOrPage(type?: FileType): boolean;
24
+ /**
25
+ *
26
+ * @description 纯js模块组件,非入口或页面
27
+ * @param type
28
+ * @returns
29
+ */
30
+ export declare function checkIsComponentPure(type?: FileType): boolean;
31
+ /**
32
+ *
33
+ * @description 模块文件,入口和页面也属于 COMPONENT
34
+ * @param type
35
+ * @returns
36
+ */
37
+ export declare function checkIsComponent(type?: FileType): boolean;
38
+ /**
39
+ *
40
+ * @description 获取抛出的模块名
41
+ * @param ast
42
+ */
43
+ export declare function getExportComponentName(ast: any): string;
@@ -0,0 +1,65 @@
1
+ import { DependenciesMapItemType } from "./parse";
2
+ /**
3
+ *
4
+ * @description 检查是否为css的树
5
+ * @param ast
6
+ */
7
+ export declare function checkIsCssAst(ast: any): boolean;
8
+ /**
9
+ *
10
+ * @description css的样式import带有'或",需要移除;
11
+ * @param params
12
+ * @returns
13
+ */
14
+ export declare function cssImportParamsPure(params: any): any;
15
+ /**
16
+ *
17
+ * @description 解析scss样式
18
+ * @param scssCode
19
+ * @returns
20
+ */
21
+ export declare function postcssParser(scssCode: any): any;
22
+ /**
23
+ *
24
+ * @description css-types
25
+ * @returns
26
+ */
27
+ export declare function postcssTypes(): {
28
+ isPostcss: boolean;
29
+ checkIsCssAst: typeof checkIsCssAst;
30
+ };
31
+ /**
32
+ *
33
+ * @description 遍历css树
34
+ * Root (根节点): 代表整个样式表的根。
35
+ Rules (规则节点): 代表样式规则,包含选择器和声明。
36
+ Declarations (声明节点): 代表每个样式声明(属性和值)。
37
+ AtRules (At规则节点): 代表 @media、@import 等 at-rule 语句。
38
+ * @param ast
39
+ * @param opts
40
+ */
41
+ export declare function postcssTraverse(ast: any, opts: any): void;
42
+ /**
43
+ *
44
+ * @description css样式代码转化
45
+ * @param ast
46
+ * @returns
47
+ */
48
+ export declare function postcssGenerate(ast: any): {
49
+ code: any;
50
+ };
51
+ /**
52
+ *
53
+ * @description 兼容样式,主要用于修补taro3x,/改为*
54
+ * @param ast
55
+ * @returns
56
+ */
57
+ export declare function babelTraversePostcss(ast: any): {
58
+ isUpdateCss: boolean;
59
+ };
60
+ /**
61
+ *
62
+ * @description 补充样式处理,将url引入的图片拷贝到目标位置
63
+ * @param cssAst
64
+ */
65
+ export declare function patchCssImportUrl(item: DependenciesMapItemType, toFilePath: any): Promise<void>;
@@ -1,8 +1,34 @@
1
1
  /**
2
2
  * Copyright (c) 快宝网络 kuaidihelp.com Co., Ltd. All Rights Reserved 禁止外泄以及用于其它的商业用途
3
3
  */
4
- import { CommandPromiseRes, EnvCustom, ConfigOptions, PkgMap, ConfigInfoResponse, ArgsResponse, ProjectConfig, Platform, ProgressType, BranchMap } from "types";
5
- import { ProjectType } from "miniprogram-ci/dist/@types/utils/project";
4
+ import { CommandPromiseRes, EnvCustom, ConfigOptions, PkgMap, ConfigInfoResponse, ArgsResponse, ProjectConfig, Platform, ProgressType, BranchMap, ProjectType } from "types";
5
+ export declare const tagPattern: RegExp;
6
+ export declare function noop(): void;
7
+ export declare const getDir: () => {
8
+ rootPath: string;
9
+ npmDir: string;
10
+ sourceDir: string;
11
+ destinationDir: string;
12
+ sourceRoot: string;
13
+ appEntryPath: string;
14
+ appEntryConfigPath: string;
15
+ needCopy: boolean;
16
+ };
17
+ export declare function getHelper(): any;
18
+ /**
19
+ *
20
+ * @description 获取alias配置
21
+ * 注意 alias 已经使用 SOURCE_ROOT_PATH 替换,需要做一次还原为源路径
22
+ */
23
+ export declare function getAlias(): any;
24
+ export declare const moduleSuffix: string[];
25
+ export declare const styleSuffix: string[];
26
+ export declare const imageSuffix: string[];
27
+ export declare const filesSuffix: string[];
28
+ export declare function checkIsModuleSuffix(suffix: any): boolean;
29
+ export declare function checkIsStyleSuffix(suffix: any): boolean;
30
+ export declare function checkIsImageSuffix(suffix: any): boolean;
31
+ export declare function checkIsFileSuffix(suffix: any): boolean;
6
32
  /**
7
33
  *
8
34
  * @description 进度描述信息
@@ -19,7 +45,19 @@ export declare const pkgMap: PkgMap;
19
45
  * @returns
20
46
  */
21
47
  export declare function commandTrigger(commandStr: string, isWatch: boolean, isDebug: boolean, item: string, env?: EnvCustom): Promise<CommandPromiseRes>;
48
+ export declare function readConfigPure(name?: string): ConfigOptions;
22
49
  export declare function readConfig(name?: string): ConfigOptions;
50
+ /**
51
+ *
52
+ * @description 从tagname 获取类型和版本
53
+ */
54
+ export declare function getTypeAndVersionFromTagName(): {
55
+ type?: undefined;
56
+ version?: undefined;
57
+ } | {
58
+ type: string;
59
+ version: string;
60
+ };
23
61
  export declare function getArgs(branchMap?: BranchMap): ArgsResponse;
24
62
  /**
25
63
  *
@@ -68,7 +106,7 @@ export declare function getAndFormatConfigInfo(item: string): ConfigInfoResponse
68
106
  * @param item
69
107
  * @returns
70
108
  */
71
- export declare function formateCommand(item: string): [Platform, string, string];
109
+ export declare function formateCommand(item: string, defaultMode?: string): [Platform, string, string];
72
110
  export declare function isObject(obj: any): boolean;
73
111
  export declare function isArray(arr: any): boolean;
74
112
  /**
@@ -81,11 +119,11 @@ export declare function merge(target: any, ...arg: any[]): any;
81
119
  /**
82
120
  *
83
121
  * @description 处理路径
84
- * @param p
122
+ * @param pathname
85
123
  * @param suffix
86
124
  * @returns
87
125
  */
88
- export declare function resolvePath(p: string, suffix: string): string;
126
+ export declare function resolvePath(pathname: string, suffix?: string): string;
89
127
  /**
90
128
  *
91
129
  * @description 安装指令
@@ -93,3 +131,14 @@ export declare function resolvePath(p: string, suffix: string): string;
93
131
  * @returns
94
132
  */
95
133
  export declare function installCommand(name: any): Promise<unknown>;
134
+ /**
135
+ *
136
+ * @description 替换
137
+ * @param obj
138
+ * @param keyMap
139
+ */
140
+ export declare function recursiveReplaceObjectKeys(obj: any, keyMap: any): void;
141
+ export declare const checkIsDynamicRoot: (root: string) => boolean;
142
+ export declare function isInSameFolder(pathA: any, pathB: any): boolean;
143
+ export declare function checkIsOldTaroVersion(): boolean;
144
+ export declare function isFunciton(fun: any): boolean;
@@ -0,0 +1,5 @@
1
+ /**
2
+ *
3
+ * @description 检查并安装
4
+ */
5
+ export declare function checkAndInstall(): Promise<void>;
@@ -0,0 +1,6 @@
1
+ import ora from "ora";
2
+ export declare function log(text?: string): {
3
+ succeed: (txt: any) => ora.Ora;
4
+ fail: (txt: any) => ora.Ora;
5
+ warning: (txt: any) => ora.Ora;
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taro-ci",
3
- "version": "3.0.1-alpha.2",
3
+ "version": "3.1.2",
4
4
  "main": "dist/taro-ci.js",
5
5
  "types": "dist/types/index.d.ts",
6
6
  "bin": {
@@ -21,8 +21,8 @@
21
21
  "license": "MIT",
22
22
  "scripts": {
23
23
  "pre-build": "rimraf dist",
24
- "dev": "yarn pre-build && rollup -c -w",
25
- "build": "yarn pre-build && NODE_ENV=production rollup -c",
24
+ "dev": "npm run pre-build && rollup -c -w",
25
+ "build": "npm run pre-build && NODE_ENV=production rollup -c",
26
26
  "build:c": "npm run build && tsc -m commonjs",
27
27
  "release": "node scripts/release",
28
28
  "lint": "eslint src/**/*.ts --max-warnings 0",
@@ -44,15 +44,14 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "chalk": "^4.1.0",
47
+ "chokidar": "^2.0.3",
47
48
  "dayjs": "^1.11.7",
48
49
  "dingtalk-robot-sender": "^1.2.0",
50
+ "fs-extra": "^5.0.0",
51
+ "lodash": "^4.17.15",
49
52
  "minimist": "^1.2.5",
50
- "miniprogram-ci": "^1.0.45",
51
- "miniu": "^1.11.3",
52
53
  "ora": "^5.4.0",
53
- "recast": "^0.22.0",
54
- "semver": "^7.3.5",
55
- "tt-ide-cli": "^0.1.15"
54
+ "semver": "^7.3.5"
56
55
  },
57
56
  "devDependencies": {
58
57
  "@rollup/plugin-alias": "^3.1.1",
@@ -74,13 +73,17 @@
74
73
  "execa": "^4.1.0",
75
74
  "husky": "^4.2.5",
76
75
  "lint-staged": "^10.5.1",
76
+ "minidev": "^2.2.1",
77
+ "miniprogram-ci": "^1.0.45",
78
+ "minigame-code-fortify-cli": "^0.1.2",
77
79
  "prettier": "^2.2.0",
78
80
  "rimraf": "^3.0.2",
79
81
  "rollup": "^2.19.0",
80
82
  "rollup-plugin-auto-external": "^2.0.0",
81
83
  "rollup-plugin-sourcemaps": "^0.6.2",
84
+ "rollup-plugin-terser": "^7.0.2",
82
85
  "rollup-plugin-typescript2": "^0.27.1",
83
- "rollup-plugin-uglify": "^6.0.4",
86
+ "tt-ide-cli": "^0.1.27",
84
87
  "typescript": "^3.9.6"
85
88
  }
86
89
  }