taro-ci 1.3.13 → 1.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ## [1.3.14](https://new.github.com/yymzy/taro-ci/compare/v1.3.13...v1.3.14) (2021-12-24)
2
+
1
3
  ## [1.3.13](https://new.github.com/yymzy/taro-ci/compare/v1.3.12...v1.3.13) (2021-12-22)
2
4
 
3
5
  ## [1.3.12](https://new.github.com/yymzy/taro-ci/compare/v1.3.11...v1.3.12) (2021-11-16)
package/dist/taro-ci.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var chalk=require("chalk"),child_process=require("child_process"),ora=require("ora"),path=require("path"),fs=require("fs"),minimist=require("minimist"),moment=require("moment"),ci=require("miniprogram-ci"),miniu=require("miniu"),semver=require("semver"),Robot=require("dingtalk-robot-sdk");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var TaroEnv,TaroConfig,chalk__default=_interopDefaultLegacy(chalk),ora__default=_interopDefaultLegacy(ora),path__default=_interopDefaultLegacy(path),fs__default=_interopDefaultLegacy(fs),minimist__default=_interopDefaultLegacy(minimist),moment__default=_interopDefaultLegacy(moment),ci__default=_interopDefaultLegacy(ci),miniu__default=_interopDefaultLegacy(miniu),semver__default=_interopDefaultLegacy(semver),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,u,s){return new(u=u||Promise)(function(e,t){function r(e){try{o(s.next(e))}catch(e){t(e)}}function n(e){try{o(s.throw(e))}catch(e){t(e)}}function o(t){t.done?e(t.value):new u(function(e){e(t.value)}).then(r,n)}o((s=s.apply(a,i||[])).next())})}function __generator(r,n){var o,a,i,u={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(;u;)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 u.label++,{value:t[1],done:!1};case 5:u.label++,a=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(i=0<(i=u.trys).length&&i[i.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!i||t[1]>i[0]&&t[1]<i[3])){u.label=t[1];break}if(6===t[0]&&u.label<i[1]){u.label=i[1],i=t;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(t);break}i[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}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.QUICK="quickapp",e.H5="h5",e.RN="rn"}(TaroEnv=TaroEnv||{}),function(e){e.WEAPP="project.config.json",e.ALIPAY="mini.project.json",e.SWAN="project.swan.json",e.QUICK="quickapp.config.json"}(TaroConfig=TaroConfig||{});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,u){return new Promise(function(t){var e=o.split(/\s/g),r=e[0],e=e.slice(1),e=child_process.spawn(r,e,{env:__assign(__assign({},process.env),u)}),n=new CreateProgress("build",i);a?(e.stdout.on("data",consoleBufferByTheme),e.stderr.on("data",function(e){consoleBufferByTheme(e),e.toString().trim().endsWith("编译成功")&&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)})})}function readConfig(e){void 0===e&&(e="taro-ci");var t,r,n,o,a,i,u=require(path__default.default.resolve("./"+e+".config.js")),s=process.env.PLATFORM_ENV,u="function"==typeof u?u(merge):u;try{!s||(r=(t=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=moment__default.default().format("YYYYMMDD")),u=__assign(__assign({},u),{ts:a,version:o,description:i}))}catch(e){}return u}function getArgs(){var e=minimist__default.default(process.argv.slice(2),{boolean:["watch","debug"]}),t=e.ci,r=void 0===t?"":t,n=e.dd,o=void 0===n?"":n,a=e.robot,i=void 0===a?1:a,u=e.watch,s=e.debug,c=__rest(e,["ci","dd","robot","watch","debug"]),t=r.split(","),n=t[0],a=t[1],e=o.split(","),t=e[0],e=e[1];return __assign({ci:r?{toolId:n,privateKey:a}:void 0,dd:o?{accessToken:t,secret:e}:void 0,watch:u,debug:s,robot:i,isWatch:Boolean(u),isDebug:Boolean(s),isCi:Boolean(i)},c)}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())]})})}function rewriteProjectConfig(a){return __awaiter(this,void 0,void 0,function(){var t,r,n,o;return __generator(this,function(e){switch(e.label){case 0:return r=readConfig().info,t=getArgs(),n=t.isWatch,o=t.isDebug,t=(r[a]||{}).appId,r="dist/"+createOutPath(a,n,o),n=getProjectConfigPath(),[4,readProjectConfig()];case 1:return o=e.sent(),"swan"===process.env.PLATFORM_ENV?o.smartProgramRoot=r:o.miniprogramRoot=r,o.appid=t,fs__default.default.writeFileSync(n,JSON.stringify(o,null,4)),process.env.ROOT_PATH=r,[2,a]}})})}function formatStrWithLine(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.filter(function(e){return!!e}).join("-")}function getAndFormatConfigInfo(e){var t=getArgs().robot,r=readConfig(),n=r.version,o=r.description,a=r.info[e]||{},i=a.version,u=void 0===i?n:i,r=a.description,e=void 0===r?o:r,n=a.tag,i=void 0===n?"":n,o=a.label,r=a.robot,n=void 0===r?1:r,a=pkgMap[t+""],r=a.label,a=a.key,o=formatStrWithLine(r,void 0===o?"":o);return{robot:t+2*(n-1),versionPure:u,version:formatStrWithLine(a,i+u),description:"【"+o+"版-"+moment__default.default().format("YYYYMMDDHHmmss")+"】:"+e,label:o}}function formateCommand(e){var t=new RegExp("("+TaroEnv.WEAPP+"|"+TaroEnv.ALIPAY+"|"+TaroEnv.QUICK+"|"+TaroEnv.SWAN+"|"+TaroEnv.H5+"|"+TaroEnv.RN+")([.|-]{1})?(.+)?"),e=e.match(t)||[],t=e[1],e=e[3];return[t,void 0===e?"":e]}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 build(a){return __awaiter(this,void 0,void 0,function(){var t,r,n,o;return __generator(this,function(e){switch(e.label){case 0:return t=getArgs().isWatch,o=readConfig().useTaroPluginBuildBy,n=process.env,r=n.MODE_ENV,n=n.PLATFORM_ENV,o="taro build --type "+("type"===o?a:"mode"===o&&r?r:n),t&&(o+=" --watch"),console.log(chalk__default.default.grey("编译平台:"),chalk__default.default.red(n),chalk__default.default.grey("版本模式:"),chalk__default.default.red(r||"默认")),[4,commandTrigger(o,t,a)];case 1:return e.sent(),[2,a]}})})}function weapp(u){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[4,readConfig()];case 1:return r=e.sent().info,a=(void 0===r?{}:r)[u].appId,n=getAndFormatConfigInfo(u),t=n.version,r=n.description,n=n.robot,[4,readProjectConfig()];case 2:if(i=e.sent().setting,i=void 0===i?{}:i,o=null,!a)throw new Error("缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到微信平台");return a=new ci__default.default.Project({appid:a,type:"miniProgram",projectPath:path__default.default.resolve("./"),privateKeyPath:path__default.default.resolve("./","private."+a+".key"),ignores:["node_modules/**/*"]}),[4,ci__default.default.upload({robot:n,project:a,version:t,desc:r,setting:i,onProgressUpdate:function(){}}).catch(function(e){return o=e})];case 3:return i=e.sent(),[2,{item:u,error:o,result:i}]}})})}function alipay(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 t=getArgs().ci,[4,readConfig()];case 1:if(a=e.sent(),o=a.info,r=void 0===o?{}:o,o=a.ci,a=void 0===o?t:o,o=r[i].appId,r=getAndFormatConfigInfo(i).versionPure,n=null,!o)throw new Error("缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到支付宝平台");if(!a)throw new Error("缺少taro-ci.config.ci配置项,或缺少ci.alipay,无法上传到支付宝平台");return miniu__default.default.setConfig(a),a={project:path__default.default.resolve("./"),appId:o,clientType:"alipay",experience:!0,onProgressUpdate:function(){}},r&&"-1"!==r?[4,miniu__default.default.getUploadVersion({appId:o,clientType:"alipay"})]:[3,3];case 2:o=e.sent(),semver__default.default.gt(r,o)||(r=semver__default.default.inc(o,"patch")),a.packageVersion=r,e.label=3;case 3:return[4,miniu__default.default.miniUpload(a).catch(function(e){var t=e.code,e=e.msg;return n=new Error(t+":"+e)})];case 4:return a=e.sent(),[2,{item:i,result:a,error:n}]}})})}function upload(a){return __awaiter(this,void 0,void 0,function(){var t,r,n,o;return __generator(this,function(e){switch(e.label){case 0:if(r=getArgs(),t=r.isCi,n=r.isWatch,r=r.isDebug,n||!t)throw new Error(a+",未传入robot或者开发模式无法上传");if(r)throw new Error(a+",DEBUG模式无法上传");n=getTARO_ENV(),t={},(r=new CreateProgress("upload",a)).start(),e.label=1;case 1:switch(e.trys.push([1,8,,9]),n){case TaroEnv.WEAPP:return[3,2];case TaroEnv.ALIPAY:return[3,4]}return[3,6];case 2:return[4,weapp(a)];case 3:return t=e.sent(),[3,7];case 4:return[4,alipay(a)];case 5:return t=e.sent(),[3,7];case 6:throw n=new Error("不支持上传该平台,目前支持:"+TaroEnv.WEAPP+"、"+TaroEnv.ALIPAY),r.fail(n),n;case 7:return(o=t.error)?r.fail(o):r.succeed(),[3,9];case 8:return o=e.sent(),r.fail(o),[3,9];case 9:return[2,t]}})})}function notice(f){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i,u,s,c,l;return __generator(this,function(e){if(u=f.result,t=f.error,r=f.item,i=getArgs().dd,a=readConfig(),o=a.dd,s=void 0===o?i:o,n=a.name,c=a.git,l=void 0===c?"":c,i=getAndFormatConfigInfo(r),o=i.version,a=i.description,c=i.label,i=getTARO_ENV(),u=(u||{}).qrCodeUrl,!s)throw new Error("缺少taro-ci.config.notice配置项,无法发送钉钉通知");return s=new Robot__default.default(s),c=("["+r+"]"+n).toUpperCase()+":"+c,l=(new Robot__default.default.Markdown).setTitle(c).add("["+c+"]("+l+")\n"),t?l.add('**上传结果:上传失败**<font color="red">('+t.message+")</font>"):l.add("**上传结果:上传成功**"+(i===TaroEnv.ALIPAY?"【发布后合并到master】":"")).add("1. version:"+o).add("2. description:"+a).add(u?"\n![二维码]("+u+")":""),s.send(l),chalk__default.default.green("通知已发!"),[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]),n=formateCommand(o),t=n[0],r=n[1],process.env.PLATFORM_ENV=t,process.env.MODE_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(t=e.sent(),n=getArgs(),r=n.type,r=void 0===r?t.type:r,n=n.isDebug,process.env.DEBUG_ENV=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
+ "use strict";var chalk=require("chalk"),child_process=require("child_process"),ora=require("ora"),path=require("path"),fs=require("fs"),minimist=require("minimist"),moment=require("moment"),ci=require("miniprogram-ci"),miniu=require("miniu"),semver=require("semver"),Robot=require("dingtalk-robot-sdk");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var TaroEnv,TaroConfig,chalk__default=_interopDefaultLegacy(chalk),ora__default=_interopDefaultLegacy(ora),path__default=_interopDefaultLegacy(path),fs__default=_interopDefaultLegacy(fs),minimist__default=_interopDefaultLegacy(minimist),moment__default=_interopDefaultLegacy(moment),ci__default=_interopDefaultLegacy(ci),miniu__default=_interopDefaultLegacy(miniu),semver__default=_interopDefaultLegacy(semver),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,u,s){return new(u=u||Promise)(function(e,t){function r(e){try{o(s.next(e))}catch(e){t(e)}}function n(e){try{o(s.throw(e))}catch(e){t(e)}}function o(t){t.done?e(t.value):new u(function(e){e(t.value)}).then(r,n)}o((s=s.apply(a,i||[])).next())})}function __generator(r,n){var o,a,i,u={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(;u;)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 u.label++,{value:t[1],done:!1};case 5:u.label++,a=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(i=0<(i=u.trys).length&&i[i.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!i||t[1]>i[0]&&t[1]<i[3])){u.label=t[1];break}if(6===t[0]&&u.label<i[1]){u.label=i[1],i=t;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(t);break}i[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}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.QUICK="quickapp",e.H5="h5",e.RN="rn"}(TaroEnv=TaroEnv||{}),function(e){e.WEAPP="project.config.json",e.ALIPAY="mini.project.json",e.SWAN="project.swan.json",e.QUICK="quickapp.config.json"}(TaroConfig=TaroConfig||{});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,u){return new Promise(function(t){var e=o.split(/\s/g),r=e[0],e=e.slice(1),e=child_process.spawn(r,e,{env:__assign(__assign({},process.env),u)}),n=new CreateProgress("build",i);a?(e.stdout.on("data",consoleBufferByTheme),e.stderr.on("data",function(e){consoleBufferByTheme(e),e.toString().trim().endsWith("编译成功")&&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)})})}function readConfig(e){void 0===e&&(e="taro-ci");var t,r,n,o,a,i,u=require(path__default.default.resolve("./"+e+".config.js")),s=process.env.PLATFORM_ENV,u="function"==typeof u?u(merge):u;try{!s||(r=(t=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=moment__default.default().format("YYYYMMDD")),u=__assign(__assign({},u),{ts:a,version:o,description:i}))}catch(e){}return u}function getArgs(){var e=minimist__default.default(process.argv.slice(2),{boolean:["watch","debug"]}),t=e.ci,r=void 0===t?"":t,n=e.dd,o=void 0===n?"":n,a=e.robot,i=void 0===a?1:a,u=e.watch,s=e.debug,c=__rest(e,["ci","dd","robot","watch","debug"]),t=r.split(","),n=t[0],a=t[1],e=o.split(","),t=e[0],e=e[1];return __assign({ci:r?{toolId:n,privateKey:a}:void 0,dd:o?{accessToken:t,secret:e}:void 0,watch:u,debug:s,robot:i,isWatch:Boolean(u),isDebug:Boolean(s),isCi:Boolean(i)},c)}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())]})})}function rewriteProjectConfig(a){return __awaiter(this,void 0,void 0,function(){var t,r,n,o;return __generator(this,function(e){switch(e.label){case 0:return r=readConfig().info,t=getArgs(),n=t.isWatch,o=t.isDebug,t=(r[a]||{}).appId,r="dist/"+createOutPath(a,n,o),n=getProjectConfigPath(),[4,readProjectConfig()];case 1:return o=e.sent(),"swan"===process.env.PLATFORM_ENV?o.smartProgramRoot=r:o.miniprogramRoot=r,o.appid=t,fs__default.default.writeFileSync(n,JSON.stringify(o,null,4)),process.env.ROOT_PATH=r,[2,a]}})})}function formatStrWithLine(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.filter(function(e){return!!e}).join("-")}function getAndFormatConfigInfo(e){var t=getArgs().robot,r=readConfig(),n=r.version,o=r.description,a=r.info[e]||{},i=a.version,u=void 0===i?n:i,r=a.description,e=void 0===r?o:r,n=a.tag,i=void 0===n?"":n,o=a.label,r=a.robot,n=void 0===r?1:r,a=pkgMap[t+""],r=a.label,a=a.key,o=formatStrWithLine(r,void 0===o?"":o);return{robot:t+2*(n-1),versionPure:u,version:formatStrWithLine(a,i+u),description:"【"+o+"版-"+moment__default.default().format("YYYYMMDDHHmmss")+"】:"+e,label:o}}function formateCommand(e){var t=new RegExp("("+TaroEnv.WEAPP+"|"+TaroEnv.ALIPAY+"|"+TaroEnv.QUICK+"|"+TaroEnv.SWAN+"|"+TaroEnv.H5+"|"+TaroEnv.RN+")([.|-]{1})?(.+)?"),e=e.match(t)||[],t=e[1],e=e[3];return[t,void 0===e?"":e]}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 build(a){return __awaiter(this,void 0,void 0,function(){var t,r,n,o;return __generator(this,function(e){switch(e.label){case 0:return t=getArgs().isWatch,o=readConfig().useTaroPluginBuildBy,n=process.env,r=n.MODE_ENV,n=n.PLATFORM_ENV,o="taro build --type "+("type"===o?a:"mode"===o&&r?r:n),t&&(o+=" --watch"),console.log(chalk__default.default.grey("编译平台:"),chalk__default.default.red(n),chalk__default.default.grey("版本模式:"),chalk__default.default.red(r||"默认")),[4,commandTrigger(o,t,a)];case 1:return e.sent(),[2,a]}})})}function weapp(u){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[4,readConfig()];case 1:return r=e.sent().info,a=(void 0===r?{}:r)[u].appId,n=getAndFormatConfigInfo(u),t=n.version,r=n.description,n=n.robot,[4,readProjectConfig()];case 2:if(i=e.sent().setting,i=void 0===i?{}:i,o=null,!a)throw new Error("缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到微信平台");return a=new ci__default.default.Project({appid:a,type:"miniProgram",projectPath:path__default.default.resolve("./"),privateKeyPath:path__default.default.resolve("./","private."+a+".key"),ignores:["node_modules/**/*"]}),[4,ci__default.default.upload({robot:n,project:a,version:t,desc:r,setting:i,onProgressUpdate:function(){}}).catch(function(e){return o=e})];case 3:return i=e.sent(),[2,{item:u,error:o,result:i}]}})})}function alipay(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 t=getArgs().ci,[4,readConfig()];case 1:if(a=e.sent(),o=a.info,r=void 0===o?{}:o,o=a.ci,a=void 0===o?t:o,o=r[i].appId,r=getAndFormatConfigInfo(i).versionPure,n=null,!o)throw new Error("缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到支付宝平台");if(!a)throw new Error("缺少taro-ci.config.ci配置项,或缺少ci.alipay,无法上传到支付宝平台");return miniu__default.default.setConfig(a),a={project:path__default.default.resolve("./"),appId:o,clientType:"alipay",experience:!0,onProgressUpdate:function(){}},r&&"-1"!==r?[4,miniu__default.default.getUploadVersion({appId:o,clientType:"alipay"})]:[3,3];case 2:o=e.sent(),semver__default.default.gt(r,o)||(r=semver__default.default.inc(o,"patch")),a.packageVersion=r,e.label=3;case 3:return[4,miniu__default.default.miniUpload(a).catch(function(e){return n=new Error(""+e.message)})];case 4:return a=e.sent(),[2,{item:i,result:a,error:n}]}})})}function upload(a){return __awaiter(this,void 0,void 0,function(){var t,r,n,o;return __generator(this,function(e){switch(e.label){case 0:if(r=getArgs(),t=r.isCi,n=r.isWatch,r=r.isDebug,n||!t)throw new Error(a+",未传入robot或者开发模式无法上传");if(r)throw new Error(a+",DEBUG模式无法上传");n=getTARO_ENV(),t={},(r=new CreateProgress("upload",a)).start(),e.label=1;case 1:switch(e.trys.push([1,8,,9]),n){case TaroEnv.WEAPP:return[3,2];case TaroEnv.ALIPAY:return[3,4]}return[3,6];case 2:return[4,weapp(a)];case 3:return t=e.sent(),[3,7];case 4:return[4,alipay(a)];case 5:return t=e.sent(),[3,7];case 6:throw n=new Error("不支持上传该平台,目前支持:"+TaroEnv.WEAPP+"、"+TaroEnv.ALIPAY),r.fail(n),n;case 7:return(o=t.error)?r.fail(o):r.succeed(),[3,9];case 8:return o=e.sent(),r.fail(o),[3,9];case 9:return[2,t]}})})}function notice(f){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i,u,s,c,l;return __generator(this,function(e){if(u=f.result,t=f.error,r=f.item,i=getArgs().dd,a=readConfig(),o=a.dd,s=void 0===o?i:o,n=a.name,c=a.git,l=void 0===c?"":c,i=getAndFormatConfigInfo(r),o=i.version,a=i.description,c=i.label,i=getTARO_ENV(),u=(u||{}).qrCodeUrl,!s)throw new Error("缺少taro-ci.config.notice配置项,无法发送钉钉通知");return s=new Robot__default.default(s),c=("["+r+"]"+n).toUpperCase()+":"+c,l=(new Robot__default.default.Markdown).setTitle(c).add("["+c+"]("+l+")\n"),t?l.add('**上传结果:上传失败**<font color="red">('+t.message+")</font>"):l.add("**上传结果:上传成功**"+(i===TaroEnv.ALIPAY?"【发布后合并到master】":"")).add("1. version:"+o).add("2. description:"+a).add(u?"\n![二维码]("+u+")":""),s.send(l),chalk__default.default.green("通知已发!"),[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]),n=formateCommand(o),t=n[0],r=n[1],process.env.PLATFORM_ENV=t,process.env.MODE_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(t=e.sent(),n=getArgs(),r=n.type,r=void 0===r?t.type:r,n=n.isDebug,process.env.DEBUG_ENV=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();
2
2
  //# sourceMappingURL=taro-ci.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taro-ci.js","sources":["../src/types/index.ts","../node_modules/tslib/tslib.es6.js","../src/utils/index.ts","../src/core/command/build.ts","../src/core/command/upload/weapp.ts","../src/core/command/upload/alipay.ts","../src/core/command/upload/index.ts","../src/core/command/notice.ts","../src/core/index.ts","../src/index.ts"],"sourcesContent":["import minimist from \"minimist\";\n// 命令返回\nexport type CommandPromiseRes = {\n code: number,\n err?: string\n}\n\n// 自定义环境变量\nexport type EnvCustom = {\n MODE_ENV?: string,\n PLATFORM_ENV?: string,\n ROOT_PATH?: string,\n}\n\n// 打包配置项\nexport type BuildOptions = {\n appId?: string,\n isWatch?: boolean,\n isCi?: boolean\n};\n\nexport type Ci = { privateKey: string, toolId: string }\nexport type Dd = { accessToken: string, secret: string }\n// 携带参数\nexport interface ArgsResponse extends minimist.ParsedArgs {\n robot: Robot,\n watch: boolean,\n ci?: Ci,\n dd?: Dd,\n isCi?: boolean,\n isWatch?: boolean\n}\n\n// info组内选项\nexport type InfoOptions = {\n appId: string,\n version?: string,\n description?: string,\n label?: string,\n tag?: string,\n robot?: number\n}\n\n// ci配置项\nexport type ConfigOptions = {\n name: string,\n version?: string,\n description?: string,\n type: string | Array<string>,\n info: {\n [propertys: string]: InfoOptions\n },\n useTaroPluginBuildBy?: \"normal\" | \"mode\" | \"type\",\n git?: string,\n ci?: Ci,\n dd?: Dd,\n}\n\nexport type UploadResponse = {\n item: string,\n result?: {\n qrCodeUrl?: string,\n [propertys: string]: any\n },\n error: Error\n}\n\nexport type ProgressType = \"build\" | \"upload\";\n\nexport type Robot =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n | 26\n | 27\n | 28\n | 29\n | 30;\n\nexport type ConfigInfoResponse = {\n version: string,\n description: string,\n label: string,\n robot?: Robot,\n versionPure?: string\n}\n\nexport type ProjectConfig = {\n miniprogramRoot: string,\n smartProgramRoot?: string,\n appid: string,\n setting: {\n [propertys: string]: any\n }\n}\n\nexport type PkgMap = { [propertys: string]: { label: string, key: string } };\n\nexport enum TaroEnv {\n \"WEAPP\" = \"weapp\",\n \"ALIPAY\" = \"alipay\",\n \"SWAN\" = \"swan\",\n \"QUICK\" = \"quickapp\",\n \"H5\" = \"h5\",\n \"RN\" = \"rn\"\n}\n\nexport enum TaroConfig {\n \"WEAPP\" = \"project.config.json\",\n \"ALIPAY\" = \"mini.project.json\",\n \"SWAN\" = \"project.swan.json\",\n \"QUICK\" = \"quickapp.config.json\"\n}\n\nexport type Platform = \"weapp\" | \"alipay\" | \"swan\" | \"quickapp\" | \"h5\" | \"rn\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { spawn } from \"child_process\";\nimport ora from \"ora\";\nimport chalk from \"chalk\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport minimist from \"minimist\";\nimport moment from \"moment\";\nimport { CommandPromiseRes, EnvCustom, TaroEnv, ConfigOptions, PkgMap, ConfigInfoResponse, Robot, ArgsResponse, ProjectConfig, Platform, ProgressType, TaroConfig } from \"types\";\n\nconst TS_REG = /^[0-9]{8}$/;\n/**\n * \n * @description 输出配色,替换关键词\n * @param str \n * @param tag \n * @param color \n * @param isAll\n * @returns \n */\nfunction keywordTheme(str: string, keyword: string, color: string, isAll: boolean = false): string {\n const rule = new RegExp(`^${keyword}`);\n const isMatch = isAll ? str.includes(keyword) : rule.test(str);\n return isMatch ? isAll ? chalk.hex(color)(str) : str.replace(rule, chalk.hex(color)(keyword)) : \"\"\n}\n\n/**\n * \n * @description 进度描述信息\n * @param type \n * @param status \n * @returns \n */\nexport function CreateProgress(type: ProgressType, item: string) {\n const typeMap = {\n build: \"构建\",\n upload: \"上传\"\n };\n this.text = `项目[${item}]${typeMap[type]}`;\n this.start = () => {\n this.spinner = ora().start(chalk.yellow(`${this.text}中... \\n`))\n }\n this.fail = (err: Error) => {\n if (!this.spinner) {\n this.spinner = ora();\n }\n this.spinner.fail(chalk.red(`${this.text}失败:${err} \\n`));\n }\n this.succeed = () => {\n if (!this.spinner) {\n this.spinner = ora()\n }\n this.spinner.succeed(chalk.green(`${this.text}成功! \\n`));\n }\n this.stop = () => {\n if (!this.spinner) return;\n this.spinner.stop();\n }\n}\n\n/**\n * \n * @description 风格化并打印结果\n */\nfunction consoleBufferByTheme(data: ArrayBuffer): string {\n let str = data.toString().replace(/\\n$/g, \"\");\n if (!str) return \"\"\n str = keywordTheme(str, \"Tips:\", \"#f5faa4\", true)\n || keywordTheme(str, \"生成\", \"#b278ff\")\n || keywordTheme(str, \"编译\", \"#00ee76\")\n || keywordTheme(str, \"编译成功\", \"#00ee76\", true)\n || keywordTheme(str, \"监听文件\", \"#6c6f7d\", true)\n || keywordTheme(str, \"创建\", \"#00aad1\")\n || keywordTheme(str, \"修改\", \"#e3eb00\")\n || keywordTheme(str, \"Listening\", \"#00aad1\", true)\n || keywordTheme(str, \"Compiled\", \"#00ee76\", true)\n || str;\n console.log(str);\n return str;\n}\n\n// 发布包对应版本\nexport const pkgMap: PkgMap = {\n \"1\": {\n label: \"体验\",\n key: \"Beta\"\n },\n \"2\": {\n label: \"候选\",\n key: \"Rc\"\n },\n \"3\": {\n label: \"正式\",\n key: \"\"\n }\n};\n\n/**\n * \n * @description 命令触发器:执行系统指令\n * @param commandStr 命令行字符串\n * @returns \n */\nexport function commandTrigger(commandStr: string, isWatch: boolean, item: string, env?: EnvCustom): Promise<CommandPromiseRes> {\n return new Promise((resolve) => {\n const [command, ...arg] = commandStr.split(/\\s/g);\n const subprocess = spawn(command, arg, {\n env: {\n ...process.env,\n ...env\n }\n });\n\n const progressIns = new CreateProgress(\"build\", item);\n if (isWatch) {\n // 打印数据输出\n subprocess.stdout.on(\"data\", consoleBufferByTheme);\n // 打印错误输出\n subprocess.stderr.on(\"data\", data => {\n consoleBufferByTheme(data);\n if (data.toString().trim().endsWith(\"编译成功\")) {\n resolve({ code: 0 });\n }\n });\n } else {\n subprocess.stdout.on(\"data\", () => { });\n subprocess.stderr.on(\"data\", () => { });\n progressIns.start();\n }\n\n subprocess.on(\"exit\", () => {\n if (!isWatch) {\n resolve({ code: 0 });\n progressIns.succeed();\n }\n });\n\n // 监听报错信息\n subprocess.on(\"error\", (err) => {\n console.error(err);\n progressIns.fail(err);\n });\n })\n}\n\n/**\n * \n * @description 读取ci配置\n * @param name \n * @returns \n */\nexport function readConfig(name: string = \"taro-ci\"): ConfigOptions {\n const config = require(path.resolve(`./${name}.config.js`));\n const { PLATFORM_ENV } = process.env;\n let opts = typeof config === 'function' ? config(merge) : config;\n try {\n // 使用发布配置项\n if (PLATFORM_ENV) {\n const releaseJson = path.resolve(`./${name}.release.json`);\n const list = releaseJson ? require(releaseJson) : null;\n if (list && list.length > 0) {\n const topList = list[0].split(\"-\");\n const version = topList.splice(0, 1)[0];\n let ts = topList.splice(-1, 1)[0];\n let description = topList.join(\"-\");\n if (!TS_REG.test(ts)) {\n if (ts) {\n topList.push(ts);\n description = topList.join(\"-\");\n }\n ts = moment().format(\"YYYYMMDD\");\n }\n opts = {\n ...opts,\n ts,\n version,\n description,\n };\n }\n }\n } catch (error) { }\n return opts;\n}\n\n/**\n * \n * @description 获取命令行参数\n * @returns \n */\nexport function getArgs(): ArgsResponse {\n const { ci = \"\", dd = \"\", robot = 1, watch, debug, ...rest } = minimist(process.argv.slice(2), { boolean: [\"watch\", \"debug\"] });\n const [toolId, privateKey] = ci.split(\",\");\n const [accessToken, secret] = dd.split(\",\");\n return {\n ci: ci ? { toolId, privateKey } : void (0),\n dd: dd ? { accessToken, secret } : void (0),\n watch,\n debug,\n robot,\n isWatch: Boolean(watch),\n isDebug: Boolean(debug),\n isCi: Boolean(robot),\n ...rest\n } as ArgsResponse;\n}\n\n/**\n * \n * @description 获取类似Taro的环境变量,包含aliapp,weapp\n * @param item \n * @returns \n */\nexport function getTARO_ENV(): Platform {\n return process.env.PLATFORM_ENV as Platform;\n}\n\n/**\n * \n * @description 输出路径\n * @param item \n * @param isWatch \n * @returns \n */\nfunction createOutPath(item: string, isWatch: boolean, isDebug: boolean): string {\n return item + `.${isWatch ? \"dev\" : \"build\"}` + (isDebug ? \".debug\" : \"\");\n}\n\n/**\n * \n * @param item \n * @returns \n */\nexport function getProjectConfigPath() {\n const TARO_ENV = getTARO_ENV()\n return path.resolve(\"./\", TaroConfig[TARO_ENV.toLocaleUpperCase()] || TaroConfig.WEAPP)\n}\n\n/**\n * \n * @description 读取项目配置信息\n * @param item \n * @returns \n */\nexport async function readProjectConfig(): Promise<ProjectConfig> {\n const projectConfigPath = getProjectConfigPath();\n const data = fs.readFileSync(projectConfigPath);\n return JSON.parse(data.toString());\n}\n\n/**\n * \n * @description 重写小程序配置文件 project.config.json\n */\nexport async function rewriteProjectConfig(item: string): Promise<string> {\n const { info } = readConfig();\n const { isWatch, isDebug } = getArgs();\n const { appId } = info[item] || {};\n const outPath = `dist/${createOutPath(item, isWatch, isDebug)}`;\n const projectConfigPath = getProjectConfigPath();\n const projectConfig = await readProjectConfig();\n if (process.env.PLATFORM_ENV === 'swan') {\n projectConfig.smartProgramRoot = outPath;\n } else {\n projectConfig.miniprogramRoot = outPath;\n }\n projectConfig.appid = appId;\n fs.writeFileSync(projectConfigPath, JSON.stringify(projectConfig, null, 4));\n process.env.ROOT_PATH = outPath;\n\n return item;\n}\n\n/**\n * \n * @description 将参数组合通过 \"-\" 连线 \n * @param arg \n * @returns \n */\nfunction formatStrWithLine(...arg: Array<string>): string {\n return arg.filter(item => !!item).join(\"-\")\n}\n\n/**\n * \n * @description 获取taro-ci.config.info 并根据一定规则格式化\n * @param item \n * @param robot \n */\nexport function getAndFormatConfigInfo(item: string): ConfigInfoResponse {\n const { robot } = getArgs();\n const { version: rV, description: rD, info } = readConfig();\n const { version = rV, description = rD, tag = \"\", label: iLabel = \"\", robot: iRobot = 1 } = info[item] || {};\n const { label: pkgLabel, key: pkgKey } = pkgMap[robot + \"\"]; // [体验版、正式版、临时版]\n const label = formatStrWithLine(pkgLabel, iLabel);\n return {\n robot: robot + (iRobot - 1) * 2 as Robot,\n versionPure: version,\n version: formatStrWithLine(pkgKey, tag + (version)),\n description: `【${label}版-${moment().format(\n \"YYYYMMDDHHmmss\"\n )}】:${description}`,\n label\n }\n}\n\n/**\n * \n * @description 格式化指令,首位为平台信息\n * @param item \n * @returns \n */\nexport function formateCommand(item: string): [Platform, string] {\n const reg = new RegExp(`(${TaroEnv.WEAPP}|${TaroEnv.ALIPAY}|${TaroEnv.QUICK}|${TaroEnv.SWAN}|${TaroEnv.H5}|${TaroEnv.RN})([\\.|\\-]{1})?(.+)?`)\n const [, platform, , mode = \"\"] = item.match(reg) || []\n return [platform as Platform, mode]\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]'\n}\nexport function isArray(arr) {\n return Array.isArray(arr)\n}\n\n/**\n * @description 合并数据\n * @param target \n * @param arg \n * @returns \n */\nexport function merge(target, ...arg) {\n return arg.reduce((acc, cur) => {\n return Object.keys(cur).reduce((subAcc, key) => {\n const srcVal = cur[key]\n if (isObject(srcVal)) {\n subAcc[key] = merge(subAcc[key] ? subAcc[key] : {}, srcVal)\n } else if (isArray(srcVal)) {\n subAcc[key] = srcVal.map((item, idx) => {\n if (isObject(item)) {\n const curAccVal = subAcc[key] ? subAcc[key] : []\n return merge(curAccVal[idx] ? curAccVal[idx] : {}, item)\n } else {\n return item\n }\n })\n } else {\n subAcc[key] = srcVal\n }\n return subAcc\n }, acc)\n }, target)\n}\n\n/**\n * \n * @description 处理路径\n * @param p \n * @param suffix \n * @returns \n */\nexport function resolvePath(p: string, suffix: string): string {\n const platformEnv = process.env.PLATFORM_ENV;\n const modeEnv = process.env.MODE_ENV;\n const types = [platformEnv];\n let realpath = \"\";\n if (modeEnv) {\n types.unshift(`${platformEnv}.${modeEnv}`, modeEnv);\n }\n for (let i = 0, len = types.length; i < len; i++) {\n const type = types[i];\n if (fs.existsSync(realpath = `${p}.${type}${suffix}`)) {\n return realpath;\n }\n if (fs.existsSync(realpath = `${p}${path.sep}index.${type}${suffix}`)) {\n return realpath;\n }\n const pathReg = /\\/index$/;\n if (pathReg.test(p) && fs.existsSync(realpath = `${p.replace(pathReg, `.${type}/index`)}${suffix}`)) {\n return realpath;\n }\n }\n if (fs.existsSync(realpath = `${p}${suffix}`)) {\n return realpath;\n }\n if (fs.existsSync(realpath = `${p}${path.sep}index${suffix}`)) {\n return realpath;\n }\n return \"\"\n}","import chalk from \"chalk\";\nimport { commandTrigger, getArgs, readConfig } from \"utils\";\n\nasync function build(item: string): Promise<string> {\n const { isWatch } = getArgs();\n const { useTaroPluginBuildBy } = readConfig()\n const { MODE_ENV, PLATFORM_ENV } = process.env\n // 生成打印指令\n // useTaroPluginBuild 使用taro-plugin-build插件会自定义编译平台\n // useTaroPluginBuildBy 编译平台模式 [mode,type,normal]\n let commandStr = `taro build --type ${useTaroPluginBuildBy === \"type\" ? item : (useTaroPluginBuildBy === \"mode\" && MODE_ENV) ? MODE_ENV : PLATFORM_ENV}`;\n\n if (isWatch) {\n // 开发模式,开启监听\n commandStr += \" --watch\";\n }\n\n // 打印当前执行的指令\n console.log(chalk.grey(\"编译平台:\"), chalk.red(PLATFORM_ENV), chalk.grey(\"版本模式:\"), chalk.red(MODE_ENV || \"默认\"));\n // 执行命令\n await commandTrigger(commandStr, isWatch, item);\n return item;\n}\n\nexport default build;\n","import { getAndFormatConfigInfo, readConfig, readProjectConfig } from \"utils\";\nimport path from \"path\";\nimport ci from \"miniprogram-ci\"; // 微信sdk\nimport { UploadResponse } from \"types\";\n\nasync function weapp(item: string): Promise<UploadResponse> {\n const { info = {} } = await readConfig();\n const { appId } = info[item];\n const { version, description: desc, robot } = getAndFormatConfigInfo(item);\n const { setting = {} } = await readProjectConfig();\n let error = null;\n\n if (!appId) {\n throw new Error(\"缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到微信平台\");\n }\n\n const project = new ci.Project({\n appid: appId,\n type: 'miniProgram',\n projectPath: path.resolve(\"./\"),\n privateKeyPath: path.resolve(\"./\", `private.${appId}.key`),\n ignores: ['node_modules/**/*'],\n });\n\n const result = await ci.upload({\n robot,\n project,\n version,\n desc,\n setting,\n onProgressUpdate: () => { }\n }).catch(err => error = err);\n\n return {\n item,\n error,\n result\n }\n}\n\nexport default weapp;\n","import { getAndFormatConfigInfo, getArgs, readConfig } from \"utils\";\nimport { UploadResponse } from \"types\";\nimport path from \"path\";\nimport miniu, { MiniUploadOptions } from \"miniu\";\nimport semver from \"semver\";\n\nasync function alipay(item: string): Promise<UploadResponse> {\n const { ci: argsCI } = getArgs();\n const { info = {}, ci = argsCI } = await readConfig();\n const { appId } = info[item];\n let { versionPure: packageVersion } = getAndFormatConfigInfo(item);\n let error = null;\n\n if (!appId) {\n throw new Error(\"缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到支付宝平台\");\n }\n\n if (!ci) {\n throw new Error(\"缺少taro-ci.config.ci配置项,或缺少ci.alipay,无法上传到支付宝平台\");\n }\n\n // 初始化配置\n miniu.setConfig(ci);\n\n const clientType = \"alipay\";\n const uploadConfig = {\n project: path.resolve(\"./\"),\n appId,\n clientType,\n experience: true,\n onProgressUpdate: () => { },\n } as MiniUploadOptions;\n\n if (packageVersion && packageVersion !== \"-1\") {\n // 上传版本字符串\n const uploadLastVersion = await miniu.getUploadVersion({\n appId,\n clientType,\n });\n if (!semver.gt(packageVersion, uploadLastVersion)) {\n // 传入的版本比最新版本号小,则最新版本号自增1\n packageVersion = semver.inc(uploadLastVersion, \"patch\");\n }\n uploadConfig.packageVersion = packageVersion;\n }\n\n const result = await miniu.miniUpload(uploadConfig).catch(({ code, msg }) => error = new Error(`${code}:${msg}`));\n\n return {\n item,\n result,\n error\n }\n}\n\nexport default alipay;\n","import { TaroEnv, UploadResponse } from \"types\";\nimport { CreateProgress, getArgs, getTARO_ENV } from \"utils\";\nimport weapp from \"./weapp\";\nimport alipay from \"./alipay\";\n\nasync function upload(item: string): Promise<UploadResponse> {\n const { isCi, isWatch, isDebug } = getArgs()\n if (isWatch || !isCi) {\n throw new Error(`${item},未传入robot或者开发模式无法上传`);\n }\n if (isDebug) {\n throw new Error(`${item},DEBUG模式无法上传`);\n }\n const TARO_ENV = getTARO_ENV();\n\n let result = {} as UploadResponse;\n const progressIns = new CreateProgress(\"upload\", item);\n progressIns.start();\n try {\n switch (TARO_ENV) {\n case TaroEnv.WEAPP: // 开发环境 - 微信\n result = await weapp(item);\n break;\n\n case TaroEnv.ALIPAY: // 开发环境 - 支付宝\n result = await alipay(item);\n break;\n\n default:\n const err = new Error(`不支持上传该平台,目前支持:${TaroEnv.WEAPP}、${TaroEnv.ALIPAY}`);\n progressIns.fail(err);\n throw err;\n }\n const { error } = result;\n error\n ? progressIns.fail(error)\n : progressIns.succeed();\n } catch (err) {\n progressIns.fail(err)\n }\n\n return result\n}\n\n\nexport default upload;\n","import Robot from \"dingtalk-robot-sdk\";\nimport { TaroEnv, UploadResponse } from \"types\";\nimport { getAndFormatConfigInfo, getArgs, getTARO_ENV, readConfig } from \"utils\";\nimport chalk from \"chalk\";\n\n/**\n * \n * @description 通过钉钉群发送上传结果通知\n */\nasync function notice(uploadResponse: UploadResponse) {\n const { result, error, item } = uploadResponse;\n const { dd: argsDD } = getArgs();\n const { dd = argsDD, name, git = `` } = readConfig();\n const { version, description, label } = getAndFormatConfigInfo(item);\n const TARO_ENV = getTARO_ENV();\n const { qrCodeUrl } = result || {};\n if (!dd) {\n throw new Error(\"缺少taro-ci.config.notice配置项,无法发送钉钉通知\");\n }\n const ddIns = new Robot(dd);\n\n const markdownTitle = `[${item}]${name}`.toUpperCase() + \":\" + label;\n const content = new Robot.Markdown()\n .setTitle(markdownTitle)\n .add(`[${markdownTitle}](${git})\\n`)\n\n if (error) {\n content.add(`**上传结果:上传失败**<font color=\"red\">(${error.message})</font>`);\n } else {\n content.add(`**上传结果:上传成功**${TARO_ENV === TaroEnv.ALIPAY ? \"【发布后合并到master】\" : \"\"}`)\n .add(`1. version:${version}`)\n .add(`2. description:${description}`)\n .add(qrCodeUrl ? `\\n![二维码](${qrCodeUrl})` : \"\");\n }\n\n ddIns.send(content);\n chalk.green(`通知已发!`)\n}\n\nexport default notice;","import build from \"./command/build\";\nimport upload from \"./command/upload\";\nimport notice from \"./command/notice\";\nimport ora from \"ora\";\nimport chalk from \"chalk\";\nimport { rewriteProjectConfig, formateCommand, getArgs, readConfig } from \"utils\";\n\nasync function run(item: string) {\n try {\n const [platform, mode] = formateCommand(item);\n process.env.PLATFORM_ENV = platform;\n process.env.MODE_ENV = mode;\n await notice(await upload(await build(await rewriteProjectConfig(item))));\n } catch (err) {\n ora().fail(chalk.gray(err.message));\n }\n}\n\nasync function init() {\n // 读取ci配置项\n const config = await readConfig();\n const { type = config.type, isDebug } = getArgs();\n process.env.DEBUG_ENV = isDebug ? \"OPEN\" : \"CLOSE\";\n const list = type ? Array.isArray(type) ? type : [type] : null;\n if (!list) return;\n\n for (let item of list) {\n await run(item)\n }\n}\n\nexport default init;\n","import init from \"./core\";\n\ninit();\n"],"names":["TaroEnv","TaroConfig","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","TS_REG","keywordTheme","str","keyword","color","isAll","rule","RegExp","includes","test","chalk","hex","replace","CreateProgress","type","item","text","build","upload","start","_this","spinner","ora","yellow","fail","err","red","succeed","green","stop","consoleBufferByTheme","data","toString","console","log","pkgMap","1","key","2","3","commandTrigger","commandStr","isWatch","env","_a","split","command","arg","subprocess","spawn","process","progressIns","stdout","on","stderr","trim","endsWith","code","error","readConfig","name","releaseJson","list","topList","version","ts","description","config","require","path","PLATFORM_ENV","opts","merge","splice","join","moment","format","getArgs","minimist","argv","slice","boolean","_b","ci","_c","dd","_d","robot","watch","debug","rest","_e","toolId","privateKey","_f","accessToken","secret","Boolean","isDebug","isCi","getTARO_ENV","createOutPath","getProjectConfigPath","TARO_ENV","toLocaleUpperCase","WEAPP","readProjectConfig","projectConfigPath","fs","readFileSync","JSON","parse","rewriteProjectConfig","info","appId","outPath","projectConfig","smartProgramRoot","miniprogramRoot","appid","writeFileSync","stringify","ROOT_PATH","formatStrWithLine","_i","filter","getAndFormatConfigInfo","rV","rD","tag","_g","iRobot","_h","pkgLabel","pkgKey","versionPure","formateCommand","reg","ALIPAY","QUICK","SWAN","H5","RN","match","platform","isObject","obj","isArray","arr","Array","target","reduce","acc","cur","keys","subAcc","srcVal","map","idx","curAccVal","useTaroPluginBuildBy","MODE_ENV","grey","weapp","desc","setting","Error","project","Project","projectPath","privateKeyPath","ignores","onProgressUpdate","catch","alipay","argsCI","packageVersion","miniu","setConfig","uploadConfig","clientType","experience","getUploadVersion","uploadLastVersion","semver","gt","inc","miniUpload","msg","err_1","notice","uploadResponse","argsDD","git","qrCodeUrl","ddIns","Robot","markdownTitle","toUpperCase","content","Markdown","setTitle","add","message","send","run","mode","gray","init","DEBUG_ENV","list_1"],"mappings":"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"}
1
+ {"version":3,"file":"taro-ci.js","sources":["../src/types/index.ts","../node_modules/tslib/tslib.es6.js","../src/utils/index.ts","../src/core/command/build.ts","../src/core/command/upload/weapp.ts","../src/core/command/upload/alipay.ts","../src/core/command/upload/index.ts","../src/core/command/notice.ts","../src/core/index.ts","../src/index.ts"],"sourcesContent":["import minimist from \"minimist\";\n// 命令返回\nexport type CommandPromiseRes = {\n code: number,\n err?: string\n}\n\n// 自定义环境变量\nexport type EnvCustom = {\n MODE_ENV?: string,\n PLATFORM_ENV?: string,\n ROOT_PATH?: string,\n}\n\n// 打包配置项\nexport type BuildOptions = {\n appId?: string,\n isWatch?: boolean,\n isCi?: boolean\n};\n\nexport type Ci = { privateKey: string, toolId: string }\nexport type Dd = { accessToken: string, secret: string }\n// 携带参数\nexport interface ArgsResponse extends minimist.ParsedArgs {\n robot: Robot,\n watch: boolean,\n ci?: Ci,\n dd?: Dd,\n isCi?: boolean,\n isWatch?: boolean\n}\n\n// info组内选项\nexport type InfoOptions = {\n appId: string,\n version?: string,\n description?: string,\n label?: string,\n tag?: string,\n robot?: number\n}\n\n// ci配置项\nexport type ConfigOptions = {\n name: string,\n version?: string,\n description?: string,\n type: string | Array<string>,\n info: {\n [propertys: string]: InfoOptions\n },\n useTaroPluginBuildBy?: \"normal\" | \"mode\" | \"type\",\n git?: string,\n ci?: Ci,\n dd?: Dd,\n}\n\nexport type UploadResponse = {\n item: string,\n result?: {\n qrCodeUrl?: string,\n [propertys: string]: any\n },\n error: Error\n}\n\nexport type ProgressType = \"build\" | \"upload\";\n\nexport type Robot =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n | 26\n | 27\n | 28\n | 29\n | 30;\n\nexport type ConfigInfoResponse = {\n version: string,\n description: string,\n label: string,\n robot?: Robot,\n versionPure?: string\n}\n\nexport type ProjectConfig = {\n miniprogramRoot: string,\n smartProgramRoot?: string,\n appid: string,\n setting: {\n [propertys: string]: any\n }\n}\n\nexport type PkgMap = { [propertys: string]: { label: string, key: string } };\n\nexport enum TaroEnv {\n \"WEAPP\" = \"weapp\",\n \"ALIPAY\" = \"alipay\",\n \"SWAN\" = \"swan\",\n \"QUICK\" = \"quickapp\",\n \"H5\" = \"h5\",\n \"RN\" = \"rn\"\n}\n\nexport enum TaroConfig {\n \"WEAPP\" = \"project.config.json\",\n \"ALIPAY\" = \"mini.project.json\",\n \"SWAN\" = \"project.swan.json\",\n \"QUICK\" = \"quickapp.config.json\"\n}\n\nexport type Platform = \"weapp\" | \"alipay\" | \"swan\" | \"quickapp\" | \"h5\" | \"rn\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { spawn } from \"child_process\";\nimport ora from \"ora\";\nimport chalk from \"chalk\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport minimist from \"minimist\";\nimport moment from \"moment\";\nimport { CommandPromiseRes, EnvCustom, TaroEnv, ConfigOptions, PkgMap, ConfigInfoResponse, Robot, ArgsResponse, ProjectConfig, Platform, ProgressType, TaroConfig } from \"types\";\n\nconst TS_REG = /^[0-9]{8}$/;\n/**\n * \n * @description 输出配色,替换关键词\n * @param str \n * @param tag \n * @param color \n * @param isAll\n * @returns \n */\nfunction keywordTheme(str: string, keyword: string, color: string, isAll: boolean = false): string {\n const rule = new RegExp(`^${keyword}`);\n const isMatch = isAll ? str.includes(keyword) : rule.test(str);\n return isMatch ? isAll ? chalk.hex(color)(str) : str.replace(rule, chalk.hex(color)(keyword)) : \"\"\n}\n\n/**\n * \n * @description 进度描述信息\n * @param type \n * @param status \n * @returns \n */\nexport function CreateProgress(type: ProgressType, item: string) {\n const typeMap = {\n build: \"构建\",\n upload: \"上传\"\n };\n this.text = `项目[${item}]${typeMap[type]}`;\n this.start = () => {\n this.spinner = ora().start(chalk.yellow(`${this.text}中... \\n`))\n }\n this.fail = (err: Error) => {\n if (!this.spinner) {\n this.spinner = ora();\n }\n this.spinner.fail(chalk.red(`${this.text}失败:${err} \\n`));\n }\n this.succeed = () => {\n if (!this.spinner) {\n this.spinner = ora()\n }\n this.spinner.succeed(chalk.green(`${this.text}成功! \\n`));\n }\n this.stop = () => {\n if (!this.spinner) return;\n this.spinner.stop();\n }\n}\n\n/**\n * \n * @description 风格化并打印结果\n */\nfunction consoleBufferByTheme(data: ArrayBuffer): string {\n let str = data.toString().replace(/\\n$/g, \"\");\n if (!str) return \"\"\n str = keywordTheme(str, \"Tips:\", \"#f5faa4\", true)\n || keywordTheme(str, \"生成\", \"#b278ff\")\n || keywordTheme(str, \"编译\", \"#00ee76\")\n || keywordTheme(str, \"编译成功\", \"#00ee76\", true)\n || keywordTheme(str, \"监听文件\", \"#6c6f7d\", true)\n || keywordTheme(str, \"创建\", \"#00aad1\")\n || keywordTheme(str, \"修改\", \"#e3eb00\")\n || keywordTheme(str, \"Listening\", \"#00aad1\", true)\n || keywordTheme(str, \"Compiled\", \"#00ee76\", true)\n || str;\n console.log(str);\n return str;\n}\n\n// 发布包对应版本\nexport const pkgMap: PkgMap = {\n \"1\": {\n label: \"体验\",\n key: \"Beta\"\n },\n \"2\": {\n label: \"候选\",\n key: \"Rc\"\n },\n \"3\": {\n label: \"正式\",\n key: \"\"\n }\n};\n\n/**\n * \n * @description 命令触发器:执行系统指令\n * @param commandStr 命令行字符串\n * @returns \n */\nexport function commandTrigger(commandStr: string, isWatch: boolean, item: string, env?: EnvCustom): Promise<CommandPromiseRes> {\n return new Promise((resolve) => {\n const [command, ...arg] = commandStr.split(/\\s/g);\n const subprocess = spawn(command, arg, {\n env: {\n ...process.env,\n ...env\n }\n });\n\n const progressIns = new CreateProgress(\"build\", item);\n if (isWatch) {\n // 打印数据输出\n subprocess.stdout.on(\"data\", consoleBufferByTheme);\n // 打印错误输出\n subprocess.stderr.on(\"data\", data => {\n consoleBufferByTheme(data);\n if (data.toString().trim().endsWith(\"编译成功\")) {\n resolve({ code: 0 });\n }\n });\n } else {\n subprocess.stdout.on(\"data\", () => { });\n subprocess.stderr.on(\"data\", () => { });\n progressIns.start();\n }\n\n subprocess.on(\"exit\", () => {\n if (!isWatch) {\n resolve({ code: 0 });\n progressIns.succeed();\n }\n });\n\n // 监听报错信息\n subprocess.on(\"error\", (err) => {\n console.error(err);\n progressIns.fail(err);\n });\n })\n}\n\n/**\n * \n * @description 读取ci配置\n * @param name \n * @returns \n */\nexport function readConfig(name: string = \"taro-ci\"): ConfigOptions {\n const config = require(path.resolve(`./${name}.config.js`));\n const { PLATFORM_ENV } = process.env;\n let opts = typeof config === 'function' ? config(merge) : config;\n try {\n // 使用发布配置项\n if (PLATFORM_ENV) {\n const releaseJson = path.resolve(`./${name}.release.json`);\n const list = releaseJson ? require(releaseJson) : null;\n if (list && list.length > 0) {\n const topList = list[0].split(\"-\");\n const version = topList.splice(0, 1)[0];\n let ts = topList.splice(-1, 1)[0];\n let description = topList.join(\"-\");\n if (!TS_REG.test(ts)) {\n if (ts) {\n topList.push(ts);\n description = topList.join(\"-\");\n }\n ts = moment().format(\"YYYYMMDD\");\n }\n opts = {\n ...opts,\n ts,\n version,\n description,\n };\n }\n }\n } catch (error) { }\n return opts;\n}\n\n/**\n * \n * @description 获取命令行参数\n * @returns \n */\nexport function getArgs(): ArgsResponse {\n const { ci = \"\", dd = \"\", robot = 1, watch, debug, ...rest } = minimist(process.argv.slice(2), { boolean: [\"watch\", \"debug\"] });\n const [toolId, privateKey] = ci.split(\",\");\n const [accessToken, secret] = dd.split(\",\");\n return {\n ci: ci ? { toolId, privateKey } : void (0),\n dd: dd ? { accessToken, secret } : void (0),\n watch,\n debug,\n robot,\n isWatch: Boolean(watch),\n isDebug: Boolean(debug),\n isCi: Boolean(robot),\n ...rest\n } as ArgsResponse;\n}\n\n/**\n * \n * @description 获取类似Taro的环境变量,包含aliapp,weapp\n * @param item \n * @returns \n */\nexport function getTARO_ENV(): Platform {\n return process.env.PLATFORM_ENV as Platform;\n}\n\n/**\n * \n * @description 输出路径\n * @param item \n * @param isWatch \n * @returns \n */\nfunction createOutPath(item: string, isWatch: boolean, isDebug: boolean): string {\n return item + `.${isWatch ? \"dev\" : \"build\"}` + (isDebug ? \".debug\" : \"\");\n}\n\n/**\n * \n * @param item \n * @returns \n */\nexport function getProjectConfigPath() {\n const TARO_ENV = getTARO_ENV()\n return path.resolve(\"./\", TaroConfig[TARO_ENV.toLocaleUpperCase()] || TaroConfig.WEAPP)\n}\n\n/**\n * \n * @description 读取项目配置信息\n * @param item \n * @returns \n */\nexport async function readProjectConfig(): Promise<ProjectConfig> {\n const projectConfigPath = getProjectConfigPath();\n const data = fs.readFileSync(projectConfigPath);\n return JSON.parse(data.toString());\n}\n\n/**\n * \n * @description 重写小程序配置文件 project.config.json\n */\nexport async function rewriteProjectConfig(item: string): Promise<string> {\n const { info } = readConfig();\n const { isWatch, isDebug } = getArgs();\n const { appId } = info[item] || {};\n const outPath = `dist/${createOutPath(item, isWatch, isDebug)}`;\n const projectConfigPath = getProjectConfigPath();\n const projectConfig = await readProjectConfig();\n if (process.env.PLATFORM_ENV === 'swan') {\n projectConfig.smartProgramRoot = outPath;\n } else {\n projectConfig.miniprogramRoot = outPath;\n }\n projectConfig.appid = appId;\n fs.writeFileSync(projectConfigPath, JSON.stringify(projectConfig, null, 4));\n process.env.ROOT_PATH = outPath;\n\n return item;\n}\n\n/**\n * \n * @description 将参数组合通过 \"-\" 连线 \n * @param arg \n * @returns \n */\nfunction formatStrWithLine(...arg: Array<string>): string {\n return arg.filter(item => !!item).join(\"-\")\n}\n\n/**\n * \n * @description 获取taro-ci.config.info 并根据一定规则格式化\n * @param item \n * @param robot \n */\nexport function getAndFormatConfigInfo(item: string): ConfigInfoResponse {\n const { robot } = getArgs();\n const { version: rV, description: rD, info } = readConfig();\n const { version = rV, description = rD, tag = \"\", label: iLabel = \"\", robot: iRobot = 1 } = info[item] || {};\n const { label: pkgLabel, key: pkgKey } = pkgMap[robot + \"\"]; // [体验版、正式版、临时版]\n const label = formatStrWithLine(pkgLabel, iLabel);\n return {\n robot: robot + (iRobot - 1) * 2 as Robot,\n versionPure: version,\n version: formatStrWithLine(pkgKey, tag + (version)),\n description: `【${label}版-${moment().format(\n \"YYYYMMDDHHmmss\"\n )}】:${description}`,\n label\n }\n}\n\n/**\n * \n * @description 格式化指令,首位为平台信息\n * @param item \n * @returns \n */\nexport function formateCommand(item: string): [Platform, string] {\n const reg = new RegExp(`(${TaroEnv.WEAPP}|${TaroEnv.ALIPAY}|${TaroEnv.QUICK}|${TaroEnv.SWAN}|${TaroEnv.H5}|${TaroEnv.RN})([\\.|\\-]{1})?(.+)?`)\n const [, platform, , mode = \"\"] = item.match(reg) || []\n return [platform as Platform, mode]\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]'\n}\nexport function isArray(arr) {\n return Array.isArray(arr)\n}\n\n/**\n * @description 合并数据\n * @param target \n * @param arg \n * @returns \n */\nexport function merge(target, ...arg) {\n return arg.reduce((acc, cur) => {\n return Object.keys(cur).reduce((subAcc, key) => {\n const srcVal = cur[key]\n if (isObject(srcVal)) {\n subAcc[key] = merge(subAcc[key] ? subAcc[key] : {}, srcVal)\n } else if (isArray(srcVal)) {\n subAcc[key] = srcVal.map((item, idx) => {\n if (isObject(item)) {\n const curAccVal = subAcc[key] ? subAcc[key] : []\n return merge(curAccVal[idx] ? curAccVal[idx] : {}, item)\n } else {\n return item\n }\n })\n } else {\n subAcc[key] = srcVal\n }\n return subAcc\n }, acc)\n }, target)\n}\n\n/**\n * \n * @description 处理路径\n * @param p \n * @param suffix \n * @returns \n */\nexport function resolvePath(p: string, suffix: string): string {\n const platformEnv = process.env.PLATFORM_ENV;\n const modeEnv = process.env.MODE_ENV;\n const types = [platformEnv];\n let realpath = \"\";\n if (modeEnv) {\n types.unshift(`${platformEnv}.${modeEnv}`, modeEnv);\n }\n for (let i = 0, len = types.length; i < len; i++) {\n const type = types[i];\n if (fs.existsSync(realpath = `${p}.${type}${suffix}`)) {\n return realpath;\n }\n if (fs.existsSync(realpath = `${p}${path.sep}index.${type}${suffix}`)) {\n return realpath;\n }\n const pathReg = /\\/index$/;\n if (pathReg.test(p) && fs.existsSync(realpath = `${p.replace(pathReg, `.${type}/index`)}${suffix}`)) {\n return realpath;\n }\n }\n if (fs.existsSync(realpath = `${p}${suffix}`)) {\n return realpath;\n }\n if (fs.existsSync(realpath = `${p}${path.sep}index${suffix}`)) {\n return realpath;\n }\n return \"\"\n}","import chalk from \"chalk\";\nimport { commandTrigger, getArgs, readConfig } from \"utils\";\n\nasync function build(item: string): Promise<string> {\n const { isWatch } = getArgs();\n const { useTaroPluginBuildBy } = readConfig()\n const { MODE_ENV, PLATFORM_ENV } = process.env\n // 生成打印指令\n // useTaroPluginBuild 使用taro-plugin-build插件会自定义编译平台\n // useTaroPluginBuildBy 编译平台模式 [mode,type,normal]\n let commandStr = `taro build --type ${useTaroPluginBuildBy === \"type\" ? item : (useTaroPluginBuildBy === \"mode\" && MODE_ENV) ? MODE_ENV : PLATFORM_ENV}`;\n\n if (isWatch) {\n // 开发模式,开启监听\n commandStr += \" --watch\";\n }\n\n // 打印当前执行的指令\n console.log(chalk.grey(\"编译平台:\"), chalk.red(PLATFORM_ENV), chalk.grey(\"版本模式:\"), chalk.red(MODE_ENV || \"默认\"));\n // 执行命令\n await commandTrigger(commandStr, isWatch, item);\n return item;\n}\n\nexport default build;\n","import { getAndFormatConfigInfo, readConfig, readProjectConfig } from \"utils\";\nimport path from \"path\";\nimport ci from \"miniprogram-ci\"; // 微信sdk\nimport { UploadResponse } from \"types\";\n\nasync function weapp(item: string): Promise<UploadResponse> {\n const { info = {} } = await readConfig();\n const { appId } = info[item];\n const { version, description: desc, robot } = getAndFormatConfigInfo(item);\n const { setting = {} } = await readProjectConfig();\n let error = null;\n\n if (!appId) {\n throw new Error(\"缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到微信平台\");\n }\n\n const project = new ci.Project({\n appid: appId,\n type: 'miniProgram',\n projectPath: path.resolve(\"./\"),\n privateKeyPath: path.resolve(\"./\", `private.${appId}.key`),\n ignores: ['node_modules/**/*'],\n });\n\n const result = await ci.upload({\n robot,\n project,\n version,\n desc,\n setting,\n onProgressUpdate: () => { }\n }).catch(err => error = err);\n\n return {\n item,\n error,\n result\n }\n}\n\nexport default weapp;\n","import { getAndFormatConfigInfo, getArgs, readConfig } from \"utils\";\nimport { UploadResponse } from \"types\";\nimport path from \"path\";\nimport miniu, { MiniUploadOptions } from \"miniu\";\nimport semver from \"semver\";\n\nasync function alipay(item: string): Promise<UploadResponse> {\n const { ci: argsCI } = getArgs();\n const { info = {}, ci = argsCI } = await readConfig();\n const { appId } = info[item];\n let { versionPure: packageVersion } = getAndFormatConfigInfo(item);\n let error = null;\n\n if (!appId) {\n throw new Error(\"缺少taro-ci.config.info配置项,或缺少info[type].appId,无法上传到支付宝平台\");\n }\n\n if (!ci) {\n throw new Error(\"缺少taro-ci.config.ci配置项,或缺少ci.alipay,无法上传到支付宝平台\");\n }\n\n // 初始化配置\n miniu.setConfig(ci);\n\n const clientType = \"alipay\";\n const uploadConfig = {\n project: path.resolve(\"./\"),\n appId,\n clientType,\n experience: true,\n onProgressUpdate: () => { },\n } as MiniUploadOptions;\n\n if (packageVersion && packageVersion !== \"-1\") {\n // 上传版本字符串\n const uploadLastVersion = await miniu.getUploadVersion({\n appId,\n clientType,\n });\n if (!semver.gt(packageVersion, uploadLastVersion)) {\n // 传入的版本比最新版本号小,则最新版本号自增1\n packageVersion = semver.inc(uploadLastVersion, \"patch\");\n }\n uploadConfig.packageVersion = packageVersion;\n }\n\n const result = await miniu.miniUpload(uploadConfig).catch((err) => (error = new Error(`${err.message}`)));\n\n return {\n item,\n result,\n error\n }\n}\n\nexport default alipay;\n","import { TaroEnv, UploadResponse } from \"types\";\nimport { CreateProgress, getArgs, getTARO_ENV } from \"utils\";\nimport weapp from \"./weapp\";\nimport alipay from \"./alipay\";\n\nasync function upload(item: string): Promise<UploadResponse> {\n const { isCi, isWatch, isDebug } = getArgs()\n if (isWatch || !isCi) {\n throw new Error(`${item},未传入robot或者开发模式无法上传`);\n }\n if (isDebug) {\n throw new Error(`${item},DEBUG模式无法上传`);\n }\n const TARO_ENV = getTARO_ENV();\n\n let result = {} as UploadResponse;\n const progressIns = new CreateProgress(\"upload\", item);\n progressIns.start();\n try {\n switch (TARO_ENV) {\n case TaroEnv.WEAPP: // 开发环境 - 微信\n result = await weapp(item);\n break;\n\n case TaroEnv.ALIPAY: // 开发环境 - 支付宝\n result = await alipay(item);\n break;\n\n default:\n const err = new Error(`不支持上传该平台,目前支持:${TaroEnv.WEAPP}、${TaroEnv.ALIPAY}`);\n progressIns.fail(err);\n throw err;\n }\n const { error } = result;\n error\n ? progressIns.fail(error)\n : progressIns.succeed();\n } catch (err) {\n progressIns.fail(err)\n }\n\n return result\n}\n\n\nexport default upload;\n","import Robot from \"dingtalk-robot-sdk\";\nimport { TaroEnv, UploadResponse } from \"types\";\nimport { getAndFormatConfigInfo, getArgs, getTARO_ENV, readConfig } from \"utils\";\nimport chalk from \"chalk\";\n\n/**\n * \n * @description 通过钉钉群发送上传结果通知\n */\nasync function notice(uploadResponse: UploadResponse) {\n const { result, error, item } = uploadResponse;\n const { dd: argsDD } = getArgs();\n const { dd = argsDD, name, git = `` } = readConfig();\n const { version, description, label } = getAndFormatConfigInfo(item);\n const TARO_ENV = getTARO_ENV();\n const { qrCodeUrl } = result || {};\n if (!dd) {\n throw new Error(\"缺少taro-ci.config.notice配置项,无法发送钉钉通知\");\n }\n const ddIns = new Robot(dd);\n\n const markdownTitle = `[${item}]${name}`.toUpperCase() + \":\" + label;\n const content = new Robot.Markdown()\n .setTitle(markdownTitle)\n .add(`[${markdownTitle}](${git})\\n`)\n\n if (error) {\n content.add(`**上传结果:上传失败**<font color=\"red\">(${error.message})</font>`);\n } else {\n content.add(`**上传结果:上传成功**${TARO_ENV === TaroEnv.ALIPAY ? \"【发布后合并到master】\" : \"\"}`)\n .add(`1. version:${version}`)\n .add(`2. description:${description}`)\n .add(qrCodeUrl ? `\\n![二维码](${qrCodeUrl})` : \"\");\n }\n\n ddIns.send(content);\n chalk.green(`通知已发!`)\n}\n\nexport default notice;","import build from \"./command/build\";\nimport upload from \"./command/upload\";\nimport notice from \"./command/notice\";\nimport ora from \"ora\";\nimport chalk from \"chalk\";\nimport { rewriteProjectConfig, formateCommand, getArgs, readConfig } from \"utils\";\n\nasync function run(item: string) {\n try {\n const [platform, mode] = formateCommand(item);\n process.env.PLATFORM_ENV = platform;\n process.env.MODE_ENV = mode;\n await notice(await upload(await build(await rewriteProjectConfig(item))));\n } catch (err) {\n ora().fail(chalk.gray(err.message));\n }\n}\n\nasync function init() {\n // 读取ci配置项\n const config = await readConfig();\n const { type = config.type, isDebug } = getArgs();\n process.env.DEBUG_ENV = isDebug ? \"OPEN\" : \"CLOSE\";\n const list = type ? Array.isArray(type) ? type : [type] : null;\n if (!list) return;\n\n for (let item of list) {\n await run(item)\n }\n}\n\nexport default init;\n","import init from \"./core\";\n\ninit();\n"],"names":["TaroEnv","TaroConfig","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","TS_REG","keywordTheme","str","keyword","color","isAll","rule","RegExp","includes","test","chalk","hex","replace","CreateProgress","type","item","text","build","upload","start","_this","spinner","ora","yellow","fail","err","red","succeed","green","stop","consoleBufferByTheme","data","toString","console","log","pkgMap","1","key","2","3","commandTrigger","commandStr","isWatch","env","_a","split","command","arg","subprocess","spawn","process","progressIns","stdout","on","stderr","trim","endsWith","code","error","readConfig","name","releaseJson","list","topList","version","ts","description","config","require","path","PLATFORM_ENV","opts","merge","splice","join","moment","format","getArgs","minimist","argv","slice","boolean","_b","ci","_c","dd","_d","robot","watch","debug","rest","_e","toolId","privateKey","_f","accessToken","secret","Boolean","isDebug","isCi","getTARO_ENV","createOutPath","getProjectConfigPath","TARO_ENV","toLocaleUpperCase","WEAPP","readProjectConfig","projectConfigPath","fs","readFileSync","JSON","parse","rewriteProjectConfig","info","appId","outPath","projectConfig","smartProgramRoot","miniprogramRoot","appid","writeFileSync","stringify","ROOT_PATH","formatStrWithLine","_i","filter","getAndFormatConfigInfo","rV","rD","tag","_g","iRobot","_h","pkgLabel","pkgKey","versionPure","formateCommand","reg","ALIPAY","QUICK","SWAN","H5","RN","match","platform","isObject","obj","isArray","arr","Array","target","reduce","acc","cur","keys","subAcc","srcVal","map","idx","curAccVal","useTaroPluginBuildBy","MODE_ENV","grey","weapp","desc","setting","Error","project","Project","projectPath","privateKeyPath","ignores","onProgressUpdate","catch","alipay","argsCI","packageVersion","miniu","setConfig","uploadConfig","clientType","experience","getUploadVersion","uploadLastVersion","semver","gt","inc","miniUpload","message","err_1","notice","uploadResponse","argsDD","git","qrCodeUrl","ddIns","Robot","markdownTitle","toUpperCase","content","Markdown","setTitle","add","send","run","mode","gray","init","DEBUG_ENV","list_1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taro-ci",
3
- "version": "1.3.13",
3
+ "version": "1.3.14",
4
4
  "main": "dist/taro-ci.js",
5
5
  "types": "dist/types/index.d.ts",
6
6
  "bin": {