UNPKG

@ppgjs/cli

Version:

PpgJs's command line tools

12 lines (10 loc) 43 kB
#!/usr/bin/env node import zu from"cac";import{loadConfig as Wu}from"c12";import D,{existsSync as Fu,mkdirSync as Hu,copyFileSync as pu,writeFileSync as Y,statSync as Yu,readFileSync as mu,writeJson as Ku,readdirSync as hu}from"fs-extra";import*as F from"kolorist";import E from"enquirer";import{readFileSync as Eu,existsSync as du,createWriteStream as wu,readdirSync as Qu,statSync as Xu,createReadStream as ut}from"fs";import p,{resolve as J,join as q}from"path";import{readPackageJSON as tt}from"pkg-types";import{simpleGit as et}from"simple-git";import{Axios as K}from"axios";import gu from"dayjs";import{stringify as Bu}from"querystring";import{render as at}from"ejs";import{glob as fu}from"fast-glob";import{format as it}from"prettier";import{sys as nt}from"ping";import ot from"dns";import st from"bumpp";import Cu from"form-data";import{inc as rt}from"semver";import Du from"archiver";const m={useRemote:"origin"};async function c(u,t=[],e={}){const{execa:a}=await import("execa");return(await a(u,t,e))?.stdout?.trim()||""}function ct(u){Fu(u)||(Hu(u,{recursive:!0}),console.log("\u76EE\u6807\u6587\u4EF6\u5939\u5DF2\u521B\u5EFA"))}const I=console.log,b=(u="")=>I(F.yellow(u)),d=(u="")=>I(F.green(u)),r=(u="")=>I(F.red(u)),w=(u="")=>I(F.lightBlue(u)),yu=(u="")=>I(F.lightMagenta(u)),lt=/^.*[0-9]{1,4}(\.[0-9]{1,4}){2,3}$/,V=/\n{1,}\s*/,Ft=async(u,t)=>{try{const e=[c(`git tag -d ${u}`)];t.includes(`refs/tags/${u}`)&&e.push(c("git",["push",m.useRemote,`:refs/tags/${u}`])),await Promise.all(e)}catch(e){console.warn(`error:\u5220\u9664tag:${u}\u9519\u8BEF`,e)}};async function pt(u=""){let t=[];if(u&&t.push(u),!u){const i=(await c("git tag -l")).split(V),{tags:o}=await E.prompt([{name:"tags",type:"multiselect",message:"\u8BF7\u9009\u62E9\u9700\u8981\u5220\u9664\u7684tag",choices:i.map(s=>({name:s})),validate(s){return!!s.length||"\u8BF7\u9009\u62E9\u81F3\u5C11\u4E00\u4E2Atag"}}]);t=o}const e=await c(`git ls-remote --tags ${m.useRemote}`),a=[];t.forEach(i=>{a.push(Ft(i,e))}),await Promise.all(a),d("\u64CD\u4F5C\u5B8C\u6210\u4E86")}var mt=Object.defineProperty,ht=(u,t,e)=>t in u?mt(u,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):u[t]=e,P=(u,t,e)=>(ht(u,typeof t!="symbol"?t+"":t,e),e);class Et{constructor(){P(this,"projectName",""),P(this,"originBranch",""),P(this,"versionMainBranch",""),P(this,"versionNumber",""),P(this,"projectMainBranch",""),P(this,"funcName","")}async init(){await this.getProjectName(),this.originBranch=await c("git",["symbolic-ref","--short","HEAD"]),b(`\u5F53\u524D\u5206\u652F:${this.originBranch}`);const t=this.originBranch.split("/")[0];ku(t)&&(this.versionNumber=t,this.setMainBranch()),await Promise.all([this.setProjectMainBranch()]),await vt(),ie(C);try{await c("git",["remote","update",m.useRemote,"--prune"])}catch(e){console.log("\u5237\u65B0\u5206\u652F\u9519\u8BEF: ",e)}}setMainBranch(){this.versionMainBranch=`${this.versionNumber}/main`}async setVersionNumber(t){const{version:e}=await E.prompt([Yt(Ht.inputVersion,JSON.parse(JSON.stringify({default:this.versionNumber,message:t})))]);this.versionNumber=e,b(`\u5F53\u524D\u7248\u672C:${this.versionNumber}`),this.setMainBranch(),b(`\u5F53\u524D\u7248\u672C\u4E3B\u5206\u652F:${this.versionMainBranch}`)}async setProjectMainBranch(){const[t,e]=await Promise.all([M("master"),M("main")]);t.remoteExist?this.projectMainBranch="master":e.remoteExist?this.projectMainBranch="main":(r(`\u5F53\u524D\u9879\u76EE\u7F3A\u5C11\u4E3B\u5206\u652F:${this.versionMainBranch}`),await A())}setFuncName(t){this.funcName=t}async getFuncFullName(){return this.funcName||(r("\u62B1\u6B49\u6CA1\u6709\u627E\u5230\u529F\u80FD\u5206\u652F"),await A()),`${this.versionNumber}/${this.funcName}`}async getProjectName(){const t=await Tu({packageJson:["name"]});t&&t.name&&(this.projectName=t.name,b(`\u5F53\u524D\u9879\u76EE\u540D\u79F0:${t.name}`))}}const n=new Et;var f=(u=>(u.new="new",u.merge="merge",u.mq="mq",u.build="build",u.publish="publish",u.check="check",u.fix="fix",u.move="move",u.test="test",u))(f||{});const dt={new:"\u521B\u5EFA\u65B0\u7684\u7248\u672C\u529F\u80FD\u5206\u652F",merge:"\u5408\u5E76\u529F\u80FD\u5206\u652F\u5230\u7248\u672C\u4E3B\u5206\u652F",mq:"\u53D1\u8D77\u5408\u5E76\u8BF7\u6C42\uFF1A\u529F\u80FD\u5206\u652F->\u7248\u672C\u4E3B\u5206\u652F",test:"\u5C06\u7248\u672C\u4E3B\u5206\u652F\u5408\u5E76\u5230test\u5206\u652F",build:"\u5207\u6362\u5230\u7248\u672C\u4E3B\u5206\u652F\uFF0C\u7B49\u5F85\u6253\u5305",publish:"\u53D1\u5E03\u7248\u672C\uFF0C\u7248\u672C\u4E3B\u5206\u652F\u5408\u5E76\u5230master\u5206\u652F",check:"\u68C0\u6D4B\u5F53\u524D\u7248\u672C\u7684\u5206\u652F\u662F\u5426\u90FD\u5408\u5E76\u5230\u4E3B\u5206\u652F",fix:"\u521B\u5EFA\u4E00\u4E2A\u4FEE\u590D\u5206\u652F\uFF0C\u4FEE\u590D\u7EBF\u4E0A\u7248\u672CBug",move:"\u7248\u672C\u529F\u80FD\u5206\u652F\u8FC1\u79FB\u5230\u4E0B\u4E2A\u7248\u672C"},wt=async u=>{let t;if(u){const e=f[u];e&&(t=e)}if(!t){const e=Object.keys(f).map(i=>({name:i,message:`${i.padEnd(10)}${dt[i]}`})),{choicesActionType:a}=await E.prompt([{name:"choicesActionType",type:"select",message:"\u8BF7\u9009\u62E9\u64CD\u4F5C\u7C7B\u578B",choices:e}]);t=a}return t},gt=async(u=!0)=>{const{isBuild:t}=await E.prompt([{name:"isBuild",type:"confirm",initial:u,message:"\u662F\u5426\u9700\u8981\u7F16\u8BD1"}]);return t},Bt=async(u,t=!0)=>{const{isCheck:e}=await E.prompt([{name:"isCheck",type:"confirm",initial:t,message:u}]);return e},ft=async()=>{const{env:u}=await E.prompt([{name:"env",type:"select",message:"\u8BF7\u9009\u62E9\u64CD\u4F5C\u7C7B\u578B",choices:[{name:"dev",message:`${"dev".padEnd(8)}\u5F00\u53D1\u73AF\u5883`},{name:"test",message:`${"test".padEnd(8)}\u6D4B\u8BD5\u73AF\u5883`},{name:"prod",message:`${"prod".padEnd(8)}\u751F\u4EA7\u73AF\u5883`}]}]);return u},Ct=async()=>{const{project:u}=await E.prompt([{name:"project",type:"select",message:"\u8BF7\u9009\u62E9\u8981\u6253\u5305\u7684\u9879\u76EE",choices:[{name:"open"},{name:"index"}]}]);return u},Dt=async(u,t=0)=>{const{branchName:e}=await E.prompt([{name:"branchName",type:"select",initial:t,message:"\u8BF7\u9009\u62E9\u76EE\u6807\u5206\u652F\uFF0C(\u9ED8\u8BA4\u7248\u672C\u4E3B\u5206\u652F)",choices:u.map(a=>({name:a}))}]);return e};async function yt(u=!0,t=!1,e=""){const a=q(process.cwd(),"doc","update.md");if(!u&&Fu(a))return t&&yu(`Warn: ${a} \u5DF2\u5B58\u5728`),!1;const i=Xt("update_md.ejs");if(typeof i=="boolean")return r("Error: \u521B\u5EFAupdate.md\u5931\u8D25"),!1;const o=at(i,{version:e}),s=await it(o,{parser:"markdown"});return Y(a,s),!0}async function Au(){try{const u=await fu(["**/doc/update.md"],{ignore:["**/node_modules/**"]});if(u.length)return(await import("open")).default(u[0]),await w(`\u6253\u5F00 ${n.versionNumber} \u7248\u672C\u5347\u7EA7\u6B65\u9AA4\u6587\u6863`),!0}catch(u){console.log("openUpdateMdFile Error:",u)}return!1}async function At(){const u=await fu(["**/doc/update.md"],{ignore:["**/node_modules/**"]});if(!u.length)return;const t=await c("uname"),e=J(process.cwd(),u[0]);let a="";if(t==="Darwin")a=J(`/tmp/${n.projectName}.${n.versionNumber}.update.md`),pu(e,a);else{const i="C:/tmp";ct(i),a=q(i,`./${n.projectName}.${n.versionNumber}.update.md`)}pu(e,a),await yt(),(await import("open")).default(a)}function C(){return S(n.originBranch)}async function N(u,t){w(`\u5408\u5E76\u5206\u652F:${u} to ${t}`),await S(u,"",!1),await z(!1),await S(t),await z(!1);try{await c("git",["merge",u,"--no-edit"])}catch{j.start("\u7B49\u5F85\u89E3\u51B3\u5408\u5E76\u51B2\u7A81"),await Ru()}await R(),j.SuccessEnd(`\u5408\u5E76\u5206\u652F:${u} to ${t} \u5408\u5E76\u5B8C\u6210`)}async function Z(){await S(n.projectMainBranch),await z(!0)}async function G(){return n.originBranch==="master"||n.originBranch==="main"||n.originBranch.endsWith("/main")?(r(`\u5F53\u524D\u5206\u652F ${n.originBranch} \u9519\u8BEF\uFF0C\u4E0D\u80FD\u8FDB\u884C\u64CD\u4F5C`),A()):!0}async function O(){return c("git",["symbolic-ref","--short","HEAD"])}function Q(){const u=process.env.HOME;return u?p.join(u,"gitlab.token"):(r("\u6CA1\u6709\u627E\u5230\u7CFB\u7EDF\u9ED8\u8BA4\u8DEF\u5F84"),"")}function $t(){Y(Q(),"")}async function $u(){if(await X({showError:!1}))return!0;const{tempToken:u}=await E.prompt({name:"tempToken",type:"text",message:"\u8BF7\u586B\u5199\u4E34\u65F6\u4EE4\u724C",validate:e=>e.trim().length?!0:"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u5B57\u7B26\u4E32"}),t=Q();return t?(Y(t,u),!0):!1}function X({showError:u}={showError:!0}){const t="gitlab.token",e=Q();if(!e)return"";const a=process.env.HOME;try{Yu(e)}catch{return r(`\u6CA1\u6709\u627E\u5230 ${e} \u6587\u4EF6`),b(`\u8BF7\u521B\u5EFA\u5E76\u5199\u5728 ${a} \u76EE\u5F55\u4E0B\u7684 ${t} \u6587\u4EF6\u4E2D\uFF0C\u5185\u5BB9\u4E3AGitLab\u4E2A\u4EBA\u8BBF\u95EE\u4EE4\u724C`),w("\u5BFC\u822A\u94FE\u63A5: http://git.rantron.biz:3002/-/profile/personal_access_tokens"),""}let i="";try{i=mu(e,{encoding:"utf8"}).trim(),i||r(`${e} \u6587\u4EF6\u6CA1\u6709\u5185\u5BB9`)}catch{u&&r(`\u8BFB\u53D6 ${e} \u6587\u4EF6\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u6587\u4EF6\u662F\u5426\u5B58\u5728`)}return i}async function bu(){const{value:u=""}=await y.getConfig(`remote.${m.useRemote}.url`),t=u?.match(/\/([^/]+\/[^/]+)\.git$/);if(t&&t[1]){const e=t[1];return encodeURIComponent(e)}throw new Error(`\u83B7\u53D6 \u9879\u76EEid \u9519\u8BEF\u5566 ${u}`)}async function bt({projectId:u,gitlabToken:t,originBranch:e,targetBranch:a}){try{const i=await new K({headers:{"PRIVATE-TOKEN":t}}).post(`http://git.rantron.biz:3002/api/v4/projects/${u}/merge_requests`,Bu({source_branch:e,target_branch:a,title:`new merge request ${e} -> ${a}`})),o=JSON.parse(i.data);if(o.iid)return w(`\u521B\u5EFA\u5408\u5E76\u8BF7\u6C42\u6210\u529F ${e} -> ${a} \uFF0C\u8BF7\u6C42id\uFF1A${o.iid}\uFF0C\u627E\u9879\u76EE\u8D1F\u8D23\u4EBA\u8FDB\u884C\u5BA1\u6838`),w(`\u5BFC\u822A\u94FE\u63A5: ${o.web_url}`),!0;if(o.message)console.log(`${F.red("\u8BF7\u6C42\u5408\u5E76\u53D1\u751F\u9519\u8BEF\uFF0C")}${F.lightMagenta(`\u9519\u8BEF\u4FE1\u606F\uFF1A${o.message}`)}`);else throw o}catch(i){console.log("\u{1F3F7}\uFE0F ~ getGitlabLaunchMergeRequestByProjectId error:",i),$t(),r(i)}return!1}async function vu(){return c("git",["status"])}async function vt(){return(await vu()).includes("nothing to commit")?!0:(r("\u5F53\u524D\u5206\u652F\u8FD8\u6CA1\u63D0\u4EA4\uFF0C\u8BF7\u63D0\u4EA4\u540E\u518D\u64CD\u4F5C"),await A(),!1)}async function Ru(){return await ru(),(await vu()).includes("nothing to commit")?!0:Ru()}async function R(u=!0,t=""){const e=t||await O();try{const a=await c("git",["push","-u",m.useRemote,e]);return u&&d(`\u63A8\u9001\u5206\u652F ${e} \u5230 \u8FDC\u7A0B ${m.useRemote} `),a}catch(a){return r(`\u63A8\u9001\u5931\u8D25 ${e} `),Promise.reject(a)}}async function z(u=!0){const t=await c("git",["pull"]);if(u){const e=await O();d(`\u62C9\u53D6 ${e} \u5206\u652F\u6700\u65B0\u4EE3\u7801`)}return t}async function S(u,t="",e=!0){return await O()===u||(await c("git",["checkout",u]),e&&d(t||`\u5207\u6362\u5206\u652F\u5230 ${u} `)),!0}async function L(u,t={deleteRemote:!1,deleteLocal:!0,showLog:!0,logMessage:""}){if(t.deleteLocal&&await c("git",["branch","-d",u]),t.deleteRemote){if(u.includes("main"))throw new Error("delete protected branches using");await c("git",["push",m.useRemote,"--delete",u])}(t.deleteLocal||t.deleteRemote)&&t.showLog&&d(t?.logMessage||`\u5220\u9664\u5206\u652F ${u} \u6210\u529F`)}function ku(u){return lt.test(u)}async function M(u){const[t,e]=await Promise.all([c("git branch"),c("git branch -r")]),a=t.split(V).map(l=>l.replace(/\*\s/,"")),i=e.split(V),o=a.includes(u),s=!!i.find(l=>l===`${m.useRemote}/${u}`);return{remoteExist:s,localExist:o,allExist:s&&o,allNotExist:!s&&!o}}async function W(){return await L(n.versionMainBranch,{showLog:!1}),!0}async function uu(u=n.versionMainBranch){const t=async(a=!0)=>{await R(a,u),await W()},e=await M(u);e.allNotExist?(await Z(),await c("git",["branch",u]),await t(!1),d(`\u521B\u5EFA\u7248\u672C\u4E3B\u5206\u652F ${u}\uFF0C\u5E76\u63A8\u9001\u5230\u8FDC\u7A0B`)):e.localExist&&await t(),await S(n.projectMainBranch,"",!1),await W()}function Rt(u){const t=u.split("/");if(!t.length)throw new Error("\u6CA1\u6709\u89E3\u6790\u51FA\u529F\u80FD\u5206\u652F");return t.pop()}async function kt(){const u=Rt(n.originBranch);n.setFuncName(u),w(`\u5F53\u524D\u529F\u80FD:${n.funcName}`)}async function Nt(){if(!n.funcName){const{inputFuncName:u}=await E.prompt({name:"inputFuncName",type:"text",message:"\u8BF7\u8F93\u5165\u65B0\u529F\u80FD\u540D",validate:t=>{const e=t.trim();if(e.length){if(/\s/.test(e))return"\u8F93\u5165\u7684\u7248\u672C\u53F7\u4E4B\u95F4\u4E0D\u80FD\u5305\u542B\u7A7A\u683C ps: addPage | fixError"}else return"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u529F\u80FD\u540D\u79F0 ps: addPage | fixError";return!0}});n.setFuncName(u.trim())}w(`\u5F53\u524D\u529F\u80FD:${n.funcName}`)}async function tu(){const u=await n.getFuncFullName(),{localExist:t,remoteExist:e,allExist:a}=await M(u);return a?(r(`\u7248\u672C\u529F\u80FD\u5206\u652F ${u} \u5DF2\u5B58\u5728!!!`),!0):e?(r(`\u7248\u672C\u529F\u80FD\u5206\u652F ${u} \u8FDC\u7A0B\u5DF2\u7ECF\u5B58\u5728!!!`),!0):t?(r(`\u7248\u672C\u529F\u80FD\u5206\u652F ${u} \u672C\u5730\u5DF2\u7ECF\u5B58\u5728!!!`),!0):!1}async function St(){await Nt(),await tu()&&(await C(),await A()),await Z();const u=await n.getFuncFullName();await c("git",["checkout","-b",u]),await R(),d(`${u} \u529F\u80FD\u5206\u652F\u521B\u5EFA\u5B8C\u6210`)}async function eu(){return(await M(n.versionMainBranch)).remoteExist||(r(`\u62B1\u6B49 ${n.versionMainBranch} \u7248\u672C\u4E3B\u5206\u652F\u4E0D\u5B58\u5728`),await A()),!0}function Mt(u){return u===n.projectMainBranch||u===`remotes/${m.useRemote}/${n.projectMainBranch}`}function xt(u){return!!(u.startsWith(n.versionNumber)||u.includes(`${m.useRemote}/${n.versionNumber}/`))}async function H(){await S(n.versionMainBranch),await z();const u=(await c("git",["branch","-a","--no-merged"])).split(V);try{const t=[];if(u.forEach(e=>{if(Mt(e)||xt(e)){const a=e.replace(`remotes/${m.useRemote}/`,"");t.includes(a)||t.push(a)}}),t.length)throw new Error(`\u5206\u652F [${F.green(t.join("\uFF0C"))}] \u8FD8\u6CA1\u5408\u5E76\uFF0C\u8BF7\u5148\u5408\u5E76\u540E\u518D \u53D1\u5E03/\u6253\u5305`)}catch(t){r(t),await C(),n.originBranch!==await O()&&await W(),await A()}}async function au(u=!0){if(await gt(u)){w("\u5F00\u59CB\u6253\u5305...");try{return await c("npm",["run","build"],{stdio:"inherit"}),d("\u7F16\u8BD1\u5B8C\u6210!"),!0}catch{return r("\u7F16\u8BD1\u5931\u8D25!"),!1}}return!1}async function Nu(u=!0){u&&await Au(),await au()&&await Bt("\u662F\u5426\u9700\u8981\u5C06\u6253\u5305\u597D\u7684\u6587\u4EF6\u63A8\u9001\u5230\u8FDC\u7AEF")&&(await y.add("./*").commit(`chore: build test branch ${gu().format("M-D_H:m")}`),await R())}async function Su(){await Au();const u=await ft();switch(u){case"dev":await N(n.versionMainBranch,"dev"),await au(),await y.add("./*").commit("build dist"),console.log(F.bgLightRed("\u63A5\u4E0B\u6765\u5E72\u8FD9\u4E8B\uFF1A")),console.log(F.bgLightRed(" \u9489\u9489@cyc\uFF0Ccyc\u4F1A\u6253\u5305\u90E8\u7F72\u5230dev\u73AF\u5883"));break;case"test":await au(),await y.add("./*").commit("build dist"),await R(),console.log(F.bgLightRed("\u63A5\u4E0B\u6765\u5E72\u8FD9\u4E8B\uFF1A")),console.log(F.bgLightRed(" \u81EA\u5DF1\u4E0D\u884C\u5C31\u547C\u53EB\u6D4B\u8BD5\u6216\u8005\u540E\u7AEF\u540C\u5B66\u6784\u5EFA\u90E8\u7F72\u8BE5\u5206\u652F\uFF0C\u5373\u53EF\u5728test\u73AF\u5883\u8FDB\u884C\u6D4B\u8BD5"));break;case"prod":console.log(F.bgLightRed("\u63A5\u4E0B\u6765\u5E72\u8FD9\u4E8B\uFF1A")),console.log(F.bgLightRed(" \u9489\u9489@cyc\uFF0C\u544A\u8BC9\u4ED6\u5347\u7EA7\u7684\u5206\u652F\uFF0Ccyc\u4F1A\u6253\u5305\u90E8\u7F72\u5230prod\u73AF\u5883"));break;default:r(`Error:${u}`)}}async function Mu(){const u=await Ct();await c("npm",["run",`build:${u}`],{stdio:"inherit"}),console.log(F.bgLightRed("\u63A5\u4E0B\u6765\u5E72\u8FD9\u4E8B\uFF1A")),console.log(F.bgLightRed(" \u9489\u9489@cyc\uFF0C\u5C06\u6253\u5305\u6587\u4EF6\u53D1\u7ED9\u4ED6"))}async function Pt(){switch(n.projectName){case"operator-ts":await Su();break;case"official-ts":await Mu();break;default:await Nu(!1)}}async function jt(){switch(n.projectName){case"operator-ts":await Su();break;case"official-ts":await Mu();break;default:await Nu()}}async function xu(){n.originBranch!==await O()&&(await C(),await W())}async function Tt(){const u=`${n.versionNumber}/publish/${gu().format("YY/M/D")}`;await c("git",["tag","-f",u]),await c("git",["push","-f",m.useRemote,u]),w(`\u7248\u672C\u589E\u52A0tag${u}`)}async function It(){yu("\u51C6\u5907\u53D1\u5E03..."),await N(n.versionMainBranch,n.projectMainBranch),await Tt(),await At(),await y.add("./*").commit(`\u5347\u7EA7\u7248\u672C\uFF1A${n.versionNumber}`),await R(),await xu(),d(`${n.versionNumber} \u7248\u672C\u53D1\u5E03\u6210\u529F`)}async function Ot(){const u=await tu();await C(),u&&await A();const t=`${n.originBranch.split("/")[0]}/main`,e=await n.getFuncFullName();await c("git",["branch","-m",n.originBranch,e]),R(),w(`\u4FEE\u6539\u5206\u652F ${n.originBranch} \u4E3A ${e}`);const{remoteExist:a}=await M(t);await L(n.originBranch,{deleteRemote:a,deleteLocal:!1}),a&&b(`\u5220\u9664\u8FDC\u7A0B\u5206\u652F ${n.originBranch}`);const{remoteExist:i,localExist:o}=await M(t);if(i||o)try{await L(t,{deleteRemote:i,deleteLocal:o,showLog:!1})}catch(s){if(JSON.stringify(s).includes("delete protected branches using")){if(!await Lt(t))return}else{r(s);return}}await uu(t),await S(e)}async function Lt(u){try{const t=await bu();if(!await $u())return!1;const e=await X();return await new K({headers:{"PRIVATE-TOKEN":e}}).delete(`http://git.rantron.biz:3002/api/v4/projects/${t}/repository/branches/${encodeURIComponent(u)}`),await c("git",["remote","update",m.useRemote,"--prune"]),!0}catch(t){w(`\u5220\u9664\u8FDC\u7A0B ${u} \u5206\u652F\u9519\u8BEF error ${t}`)}return!1}async function Ut(){n.setFuncName("fixOnline");const u=await n.getFuncFullName();await tu()?await y.checkout(u):(j.start("\u4FEE\u590D\u5206\u652F\u521B\u5EFA\u4E2D"),await y.checkoutLocalBranch(u).push(m.useRemote,u,["-u"]),j.SuccessEnd("\u4FEE\u590D\u5206\u652F\u521B\u5EFA\u5B8C\u6210"))}async function _t(){const{all:u}=await y.branch(["-r"]),t=u.filter(e=>e.includes(`${m.useRemote}/${n.versionNumber}/`)&&!e.endsWith(`${m.useRemote}/${n.originBranch}`)).sort((e,a)=>e.includes("main")&&!a.includes("main")?-1:!e.includes("main")&&a.includes("main")?1:0);if(!t.length)throw await C(),new Error("\u6CA1\u6709\u5176\u4ED6\u7248\u672C\u5206\u652F");return(await Dt(t)).replace(`${m.useRemote}/`,"")}const Jt=async u=>{const t=`${n.originBranch}_temp_merge`;let e=n.originBranch,a=!0;try{await c("git",["merge",`${m.useRemote}/${u}`,"--no-commit"]),y.merge(["--abort"]),a=!1}catch{b("\u548C\u7248\u672C\u4E3B\u5206\u652F\u5B58\u5728\u51B2\u7A81\uFF0C\u5148\u5728\u5F53\u524D\u5206\u652F\u89E3\u51B3\u51B2\u7A81\u540E\u518D\u63D0\u4EA4\u5408\u5E76\u8BF7\u6C42\u3002"),y.merge(["--abort"])}try{await Promise.all([c("git",["push","--delete",m.useRemote,t]),c("git",["branch","-d",t])])}catch{}return a&&(e=t,await c("git",["checkout","-b",t]),await R(),await N(u,t)),e},qt=/^(\d{1,3}\.){3}\d{1,3}$/,Vt=/^([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,5})$/,iu=u=>qt.test(u),nu=u=>Vt.test(u),Pu=u=>iu(u)||nu(u),ou=async(u="\u8BF7\u8F93\u5165ip/\u57DF\u540D",t="\u8BF7\u8F93\u5165\u6B63\u786E\u7684ip/\u57DF\u540D",e=1)=>E.prompt([{name:"ip",type:"text",message:u,required:!0,validate(a){return e===1?Pu(a)||t:e===2?iu(a)||t:nu(a)||t}}]),Zt=u=>nu(u)?new Promise(t=>{ot.lookup(`${u}`,(e,a)=>{t(e?"":`\u5BF9\u5E94\u7684IP\u5730\u5740:${F.lightCyan(a)}`)})}):Promise.resolve(""),ju=u=>new Promise(t=>{nt.probe(u,e=>{const a=e?F.green("alive"):F.red("dead");t(`${F.lightBlue(u)} is ${a}`)})}),Gt=u=>Promise.resolve(""),zt=async u=>{const[t,e,a]=await Promise.all([ju(u),Zt(u),Gt()]);return`${t} ${e} ${a}`};async function Wt(u,t=""){if(u){let e="",a=t;if(!iu(a)){const{ip:g}=await ou("\u8BF7\u8F93\u5165\u8303\u56F4\u8D77\u59CB\u7684ip","\u8BF7\u8F93\u5165\u6B63\u786E\u7684ip",2);a=g}const{ip:i}=await ou("\u8BF7\u8F93\u5165\u8303\u56F4\u7ED3\u675F\u7684ip","\u8BF7\u8F93\u5165\u6B63\u786E\u7684ip",2);e=i;const o=a.split(".").map(Number),s=e.split(".").map(Number),l=[];for(let g=o[3];g<=s[3];g+=1){const _=[...o];_[3]=g,l.push(ju(_.join(".")))}j.start("\u6B63\u5728\u75AF\u72C2ping\u4E2D");const h=await Promise.all(l);console.log(` ------------------- ${h.join(` `)} -------------------`),j.SuccessEnd("ping\u5B8C\u6210\u5566")}else{let e="";if(Pu(t)&&(e=t),!e){const{ip:i}=await ou();e=i}const a=await zt(e);console.log(` ------------------- ${a} -------------------`)}}const Ht={inputVersion:{name:"version",type:"text",message:"\u8BF7\u8F93\u5165\u7248\u672C\u53F7",required:!0,validate(u){return ku(u)||"\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u7248\u672C\u53F7 ps: 1.0.0 | project1.0.0"}}},Yt=(u,t={})=>({...u,...t}),Kt=()=>{const u=__dirname.split(/(\\|\/)/);for(;u.length&&!/^(dist|src)$/.test(u[u.length-1]);)u.pop();return u.join("/")},Qt=(u="")=>{const t=Kt(),e=q(t,"./static/",u);try{return Eu(e).toString()}catch{r(`Error:\u6587\u4EF6\u4E0D\u5B58\u5728${e}`)}return!1},Xt=(u="")=>Qt(q("./template",u));var ue=Object.defineProperty,te=(u,t,e)=>t in u?ue(u,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):u[t]=e,k=(u,t,e)=>(te(u,typeof t!="symbol"?t+"":t,e),e);const su="simpleDotsScrolling";class ee{constructor(){k(this,"shapeList",[su,"monkey","speaker","moon","earth","smiley"]),k(this,"index",0),k(this,"count",0),k(this,"spinner"),k(this,"timer"),k(this,"preTextFormat",""),k(this,"showDesc",""),k(this,"startNow",Date.now()),this.init()}async init(){const t=await import("ora");this.spinner=await t.default({color:"green",spinner:su,prefixText:"start"})}setSpinnerStyle(t,e){this.spinner&&Object.assign(this.spinner,{prefixText:e,spinner:t})}start(t="waiting",e="waiting **s"){this.showDesc=F.red(t),this.index=0,this.preTextFormat=e,this.spinner?.start(this.showDesc),this.startNow=Date.now(),this.circle()}SuccessEnd(t){this.spinner&&this.spinner.succeed(`${t}\u{1F604}`),this.end()}FailEnd(t){this.spinner&&this.spinner.fail(`${t}\u{1F604}`),this.end()}end(){clearInterval(this.timer),this.setSpinnerStyle(su,"")}circle(){this.timer=setInterval(()=>{const t=this.getLoadingSeconds();if(this.spinner&&this.shapeList.length){t%3||(this.index=(this.index+1)%this.shapeList.length);const e=this.preTextFormat.replace("**",`${t}`);this.setSpinnerStyle(this.shapeList[this.index],F.blue(F.bgGreen(e)))}},1e3)}getLoadingSeconds(){return Math.ceil((Date.now()-this.startNow)/1e3)}}const j=new ee,ru=(u=1e3)=>new Promise(t=>{setTimeout(()=>{t("\u7761\u7720\u5B8C\u6210")},u)});function ae(u=!0){return u?new Promise(t=>{process.stdin.setRawMode(!0),process.stdin.resume(),d("cli\u6267\u884C\u5B8C\u6210\uFF0C\u6309\u4EFB\u610F\u952E\u9000\u51FA\u3002"),process.stdin.on("data",()=>{t("\u811A\u672C\u6267\u884C\u5B8C\u6210"),process.exit()})}):(d("cli\u6267\u884C\u5B8C\u6210"),"\u811A\u672C\u6267\u884C\u5B8C\u6210")}function A(){return new Promise((u,t)=>{process.stdin.setRawMode(!0),process.stdin.resume(),r("cli\u6267\u884C\u5931\u8D25\uFF0C\u6309\u4EFB\u610F\u952E\u9000\u51FA\uFF01"),process.stdin.on("data",()=>{t(new Error("Program Exit")),process.exit()})})}function ie(u,t=!1){process.on("exit",async e=>{e!==0&&(t&&await u(),r(`\u8FDB\u7A0B\u9000\u51FA\u7F16\u7801:${e}`))}),process.on("SIGINT",async()=>{await u(),process.exit(0)})}const Tu=async u=>{const t={};if(u.packageJson){const e=(Array.isArray(u.packageJson)?u.packageJson:[typeof u.packageJson=="string"?u.packageJson:u.name]).filter(i=>i&&typeof i=="string"),a=await tt(u.cwd).catch(i=>{});if(a){const i={};e.forEach(o=>{a[o]&&(i[o]=a[o])}),Object.assign(t,i)}}return t},ne={baseDir:process.cwd(),binary:"git",maxConcurrentProcesses:6,trimmed:!1},y=et(ne),Iu="*.{js,jsx,mjs,cjs,json,ts,tsx,mts,cts,vue,svelte,astro}",oe={cwd:process.cwd(),cleanupDirs:["**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/node_modules","!node_modules/**"],gitCommitTypes:[["init","\u9879\u76EE\u521D\u59CB\u5316"],["feat","\u6DFB\u52A0\u65B0\u7279\u6027"],["fix","\u4FEE\u590Dbug"],["docs","\u4EC5\u4EC5\u4FEE\u6539\u6587\u6863"],["style","\u4EC5\u4EC5\u4FEE\u6539\u4E86\u7A7A\u683C\u3001\u683C\u5F0F\u7F29\u8FDB\u3001\u9017\u53F7\u7B49\u7B49\uFF0C\u4E0D\u6539\u53D8\u4EE3\u7801\u903B\u8F91"],["refactor","\u4EE3\u7801\u91CD\u6784\uFF0C\u6CA1\u6709\u52A0\u65B0\u529F\u80FD\u6216\u8005\u4FEE\u590Dbug"],["perf","\u4F18\u5316\u76F8\u5173\uFF0C\u6BD4\u5982\u63D0\u5347\u6027\u80FD\u3001\u4F53\u9A8C"],["test","\u6DFB\u52A0\u6D4B\u8BD5\u7528\u4F8B"],["build","\u4F9D\u8D56\u76F8\u5173\u7684\u5185\u5BB9"],["ci","CI\u914D\u7F6E\u76F8\u5173\uFF0C\u4F8B\u5982\u5BF9k8s\uFF0Cdocker\u7684\u914D\u7F6E\u6587\u4EF6\u7684\u4FEE\u6539"],["chore","\u6539\u53D8\u6784\u5EFA\u6D41\u7A0B\u3001\u6216\u8005\u589E\u52A0\u4F9D\u8D56\u5E93\u3001\u5DE5\u5177\u7B49"],["revert","\u56DE\u6EDA\u5230\u4E0A\u4E00\u4E2A\u7248\u672C"]],gitCommitScopes:[["projects","\u9879\u76EE\u642D\u5EFA"],["components","\u7EC4\u4EF6\u76F8\u5173"],["hooks","hook \u76F8\u5173"],["utils","utils \u76F8\u5173"],["types","ts\u7C7B\u578B\u76F8\u5173"],["styles","\u6837\u5F0F\u76F8\u5173"],["deps","\u9879\u76EE\u4F9D\u8D56"],["auth","\u5BF9 auth \u4FEE\u6539"],["release","\u7248\u672C\u53D1\u5E03"],["other","\u5176\u4ED6\u4FEE\u6539"]],ncuCommandArgs:["--deep","-u"],changelogOptions:{},prettierWriteGlob:[`!**/${Iu}`,"!*.min.*","!CHANGELOG.md","!dist","!LICENSE*","!output","!coverage","!public","!temp","!package-lock.json","!pnpm-lock.yaml","!yarn.lock","!.github","!__snapshots__","!node_modules"],lintStagedConfig:{[Iu]:"eslint --fix","*":"soy prettier-write"}};async function se(u,t=process.cwd()){const e={overrides:u,name:"ppg",defaults:oe,cwd:t,packageJson:["name"]},{config:a}=await Wu(e),i=await Tu(e);return Object.assign(a||{},i)}const re="0.0.34";async function ce(u,t){const e=u.map(([s,l])=>{const h=`${`${s}:`.padEnd(12)}${l}`;return{name:s,message:h}}),a=t.map(([s,l])=>({name:s,message:`${s.padEnd(12)} (${l})`})),i=await E.prompt([{name:"types",type:"select",message:"\u8BF7\u9009\u62E9\u63D0\u4EA4\u7C7B\u578B",choices:e},{name:"scopes",type:"select",message:"\u9009\u62E9\u4E00\u4E2Ascope",choices:a},{name:"description",type:"text",message:"\u8BF7\u8F93\u5165\u63D0\u4EA4\u63CF\u8FF0",required:!0}]),o=`${i.types}(${i.scopes}): ${i.description}`;c("git",["commit","-m",o],{stdio:"inherit"})}async function Ou(u=""){let t=u;if(t||(t=await c("git",["remote","get-url",m.useRemote])),!t)return r("\u6CA1\u6709\u53EF\u6253\u5F00\u7684\u7F51\u5740(\uFF3E\uFF0D\uFF3E)");const e=await import("open");w(`\u6253\u5F00\u5730\u5740: ${t}`);try{await e.default(t,{wait:!0}),d("Default browser opened successfully.")}catch(a){r(`Unable to open the default browser:${a}`)}return!0}const le=async()=>{if(await G(),await n.setVersionNumber(),!await $u())return;await Z();const u=await _t();await N(n.projectMainBranch,n.originBranch),await C();const t=X();if(!t)return;const e=await Jt(u),a=await bu();await bt({projectId:a,gitlabToken:t,originBranch:e,targetBranch:u}),await C()},Fe=async()=>{await G(),await n.setVersionNumber(),await Z(),await N(n.projectMainBranch,n.originBranch),await N(n.originBranch,n.versionMainBranch),await C(),await L(n.versionMainBranch)},pe=async()=>{await n.setVersionNumber(),await uu(),await St()},me=async()=>{await n.setVersionNumber(),await eu(),b("\u51C6\u5907\u68C0\u6D4B..."),await H(),d(`\u68C0\u6D4B\u5B8C\u6210,${n.versionNumber} \u7248\u672C\u7684\u5206\u652F\u5168\u90E8\u5DF2\u5408\u5E76\u5230\u4E3B\u5206\u652F`),await C()},he=async()=>{await n.setVersionNumber(),await eu(),await H(),await jt(),await xu()},Ee=async()=>{await n.setVersionNumber(),await eu(),await H(),["fhd_miniprogram_monorepo"].includes(n.projectName)?(r(`\u5728gitlab\u4E2D\u63D0\u4EA4\u5408\u5E76\u8BF7\u6C42\uFF0C\u5C06 ${n.versionMainBranch} \u5408\u5E76\u5230 ${n.projectMainBranch}`),await Ou()):await It()},de=async()=>{await y.checkout(n.projectMainBranch).pull(),await n.setVersionNumber("\u8BF7\u8F93\u5165\u4FEE\u590D\u7684\u7248\u672C\u53F7"),await Ut()},we=async()=>{await G(),await kt(),await n.setVersionNumber("\u8BF7\u8F93\u5165\u8FC1\u79FB\u7684\u76EE\u6807\u7248\u672C\u53F7"),await uu(),await Ot()},ge=async()=>{await G(),await n.setVersionNumber(),await H(),await N(n.versionMainBranch,"test"),await Pt(),await C(),await L(n.versionMainBranch)};async function Be(u){await n.init();const t=await wt(u);switch(t){case f.mq:await le();break;case f.merge:await Fe();break;case f.new:await pe();break;case f.check:await me();break;case f.build:await he();break;case f.publish:await Ee();break;case f.fix:await de();break;case f.move:await we();break;case f.test:await ge();break;default:r(`\u6CA1\u6709\u4EFB\u4F55\u811A\u672C\u53EF\u6267\u884C ${t}`)}await ae(!1)}async function fe(){const u=await c("git",["rev-parse"]),t=p.join(u,".git","COMMIT_EDITMSG"),e=Eu(t,{encoding:"utf8"});if(!/(?<type>[a-z]+)(\((?<scope>[a-z]+)\))?(?<breaking>!)?:(?<description>.+)/i.test(e))throw new Error(`${F.bgRed(" ERROR ")} ${F.red(`Git\u63D0\u4EA4\u4FE1\u606F\u4E0D\u7B26\u5408 Git Conventional Message \u89C4\u8303! `)}${F.green("\u63A8\u8350\u4F7F\u7528\u547D\u4EE4 pnpm commit \u751F\u6210\u7B26\u5408\u89C4\u8303\u7684Git\u63D0\u4EA4\u4FE1\u606F")}`)}async function Ce(){await st({files:["**/package.json","!**/node_modules"],all:!0,tag:!0,commit:"chore(projects): release v%s",push:!0})}var B=(u=>(u[u.WEChAT=0]="WEChAT",u[u.ALIPAY=1]="ALIPAY",u[u.STATIC=2]="STATIC",u[u.AD_STATIC=3]="AD_STATIC",u[u.PL_OPERATOR=4]="PL_OPERATOR",u[u.SAAS_MERCHANT=5]="SAAS_MERCHANT",u))(B||{});const v=()=>{const u=process.env.HOME;if(!u)return r("\u6CA1\u6709\u627E\u5230\u7CFB\u7EDF\u9ED8\u8BA4\u8DEF\u5F84"),"";const t=p.join(u,"fhdUploadFile.json");return D.existsSync(t)||D.writeJSONSync(t,{}),t},De=()=>{const u=v();return D.readJsonSync(u)},ye={0:"wxFileRoot",1:"aliFileRoot",2:"staticFileRoot",4:"ploperatorFileRoot",5:"saasMerchantFileRoot",3:"adStaticFileRoot"},x=async(u,t)=>{const e=v(),a=D.readJsonSync(e),i=ye[u];if(t&&D.existsSync(J(t))?a[i]=J(t):t&&r(`\u8DEF\u5F84\u4E0D\u5B58\u5728 ${t}`),!a[i]){const{pathRoot:o}=await E.prompt([{name:"pathRoot",type:"text",message:"\u8BF7\u8F93\u5165\u8DEF\u5F84",required:!0}]);return x(u,o)}return a[i]},cu="chc\u6821\u9A8C\u6587\u4EF6.zip",Lu="static.zip",Uu="welfare.zip",_u="saas.zip",lu=async(u,t)=>{const e=p.join(u,".."),a=p.resolve(u);if(!du(a))return r(`${a}\u4E0D\u5B58\u5728`),!1;const i=wu(p.join(e,t)),o=Du("zip",{zlib:{level:9}});if(o.on("error",s=>{throw r(` archiveSaas error-> ${JSON.stringify(s)}`),s}),i.on("close",()=>{d(`\u6587\u4EF6 \u538B\u7F29\u5305\u521B\u5EFA\u5B8C\u6210\uFF0C\u6587\u4EF6\u5927\u5C0F: ${o.pointer()} \u5B57\u8282`)}),i.on("error",s=>{throw r(` archive zip error-> ${JSON.stringify(s)}`),s}),o.pipe(i),!t.split(".")[0])throw"\u6CA1\u6709\u6587\u4EF6\u540D\u79F0";o.directory(a,t.split(".")[0]),o.finalize(),await ru()},Ju=async u=>{const t=p.join(u,".."),e=p.resolve(u);if(!du(e))return r(`${e}\u4E0D\u5B58\u5728`),!1;const a=wu(p.join(t,cu)),i=Du("zip",{zlib:{level:9}});a.on("close",()=>{d(`\u6821\u9A8C\u6587\u4EF6 \u538B\u7F29\u5305\u521B\u5EFA\u5B8C\u6210\uFF0C\u6587\u4EF6\u5927\u5C0F: ${i.pointer()} \u5B57\u8282`)}),i.on("error",l=>{throw r(` archiveCheck error-> ${JSON.stringify(l)}`),l});const o=new Set;function s(l){Qu(l).forEach(h=>{const g=p.join(l,h);if(Xu(g).isDirectory())s(g);else if([".html",".txt"].includes(p.extname(h))){if(o.has(h))return;o.add(h),i.append(ut(g),{name:p.basename(h)})}})}s(e),i.pipe(a),i.finalize(),await ru()};var Ae=Object.defineProperty,$e=(u,t,e)=>t in u?Ae(u,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):u[t]=e,qu=(u,t,e)=>($e(u,typeof t!="symbol"?t+"":t,e),e);class Vu{constructor(){qu(this,"token",""),qu(this,"axiosInstance"),this.axiosInstance=new K({}),this.axiosInstance.interceptors.request.use(t=>{const e=t.data instanceof Cu;if(t.method==="post"&&!e){const a=t.data||{};a.token=a.token||this.token,a.referer="mgrapi",t.data=Bu(a)}else if(t.method==="get"){const a={...t.params||{}};t.params={...a,token:a.token||this.token,referer:"mgrapi"}}return t}),this.axiosInstance.interceptors.response.use(t=>{const e=JSON.parse(t.data||"{}"),a=e.rcode===0;return{...t,data:{...e||{},isSuccess:a}}})}setToken(t=""){this.token=t}}new Vu;var be=Object.defineProperty,ve=(u,t,e)=>t in u?be(u,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):u[t]=e,$=(u,t,e)=>(ve(u,typeof t!="symbol"?t+"":t,e),e);const Re={[B.WEChAT]:[49,48,41],[B.ALIPAY]:[49,48],[B.STATIC]:[36],[B.PL_OPERATOR]:[52],[B.SAAS_MERCHANT]:[41],[B.AD_STATIC]:[37]},U=[{id:49,name:"chc\u9A8C\u8BC1\u6587\u4EF6",productName:"fhdchcstatic",uploadZipFileName:cu,uploadDesc:"SaaS\u5C0F\u7A0B\u5E8F\u6821\u9A8C\u6587\u4EF6\u4E0A\u4F20"},{id:48,name:"img1\u9A8C\u8BC1\u6587\u4EF6",productName:"fhdostatic",uploadDesc:"SaaS\u5C0F\u7A0B\u5E8F\u6821\u9A8C\u6587\u4EF6\u4E0A\u4F20",uploadZipFileName:cu},{id:41,name:"\u5BC4\u5FEB\u9012\u9759\u6001\u8D44\u6E90",productName:"jkdstatic",uploadDesc:"SaaS\u5C0F\u7A0B\u5E8F\u6821\u9A8C\u6587\u4EF6\u4E0A\u4F20",uploadZipFileName:_u},{id:36,name:"\u98CE\u706B\u9012\u5BC4\u9012\u9759\u6001\u8D44\u6E90-static",productName:"fhdostatic",uploadDesc:"\u56FE\u7247\u4E0A\u4F20",uploadZipFileName:Lu},{id:52,name:"\u5BC4\u9012\u8FD0\u8425\u7CFB\u7EDF",productName:"ploperator",uploadDesc:"\u90E8\u7F72\u7EFC\u5408\u8FD0\u8425\u7CFB\u7EDF",uploadZipFileName:""},{id:37,name:"\u5E7F\u544A\u9759\u6001\u8D44\u6E90",productName:"fhdostatic",uploadDesc:"\u56FE\u7247\u4E0A\u4F20",uploadZipFileName:Uu}];class T{constructor(t){$(this,"uploadRequest",new Vu),$(this,"localUploadInfo",De()),$(this,"publishFileRoot",""),$(this,"configFilePath",v()),$(this,"uploadInfoList",[]),$(this,"currentPlatfrom"),$(this,"initUploadInfoList",async()=>{const{data:{data:e,isSuccess:a}}=await this.uploadRequest.axiosInstance.get("https://mgrapi.fhd001.com/mgr/rdc/staticResource/getUserStaticResourceDirectoryList.do");if(!a)throw r(JSON.stringify(e)),new Error("\u83B7\u53D6\u4E0A\u4F20\u914D\u7F6E\u5931\u8D25");const i=U.map(o=>{const s=e.find(g=>g.id===o.id);if(!s?.lastStaticResourcePublishLog?.version)return console.info("\u7EBF\u4E0A\u914D\u7F6E\u4E0D\u5B58\u5728:",o.name,",id:",o.id),!1;const{version:l}=s?.lastStaticResourcePublishLog||{},h=rt(l,"patch")||"";return{...o,oldPublishVersion:l,newPublishVersion:h}}).filter(Boolean);this.uploadInfoList=i}),$(this,"publicZip",async e=>{const{data:{data:a,isSuccess:i}}=await this.uploadRequest.axiosInstance.post("https://mgrapi.fhd001.com/mgr/common/upload/createUploadToken",{fileName:e.uploadZipFileName,isPrivate:!0});if(!i)throw r(`${e.name} \u83B7\u53D6\u4E0A\u4F20token errorinfo -> ${JSON.stringify(a)}`),new Error("\u4E0A\u4F20\u5931\u8D25");const o=new Cu;if(!e.uploadZipFileName.trim())throw new Error("\u6587\u4EF6\u540D\u4E3A\u7A7A");const s=p.join(this.publishFileRoot,e.uploadZipFileName),l=mu(s);o.append("files[]",l,{filename:e.uploadZipFileName.split(".")[0]}),o.append("token",a);const h={headers:{Referer:"https://oss.fhd001.com/",Origin:"https://oss.fhd001.com"}},{data:{data:g,isSuccess:_}}=await this.uploadRequest.axiosInstance.post("https://download.fhd001.com/upload",o,h);if(_)d(`${e.name} \u4E0A\u4F20\u6210\u529F`);else throw r(`${e.name} \u4E0A\u4F20\u5931\u8D25 errorinfo -> ${JSON.stringify(g)}`),console.log("\u{1F3F7}\uFE0F index.ts ~ error => ",g),new Error("\u4E0A\u4F20\u5931\u8D25");const{data:{data:Zu,isSuccess:Gu}}=await this.uploadRequest.axiosInstance.post("https://mgrapi.fhd001.com/mgr/rdc/staticResource/staticResourcePublish.do",{staticResourceDirectoryId:e.id,version:e.newPublishVersion,description:e.uploadDesc,ossFilePath:g});if(!Gu)throw r(`${e.name} \u53D1\u5E03\u5931\u8D25 errorinfo -> ${JSON.stringify(Zu)}`),new Error("\u53D1\u5E03\u5931\u8D25");d(`${e.name} \u53D1\u5E03\u6210\u529F`)}),$(this,"uploadEntry",async()=>{await this.initUploadInfoList();const e=Re[this.currentPlatfrom],a=this.uploadInfoList.filter(i=>e.includes(i.id));await Promise.all(a.map(i=>this.publicZip(i)))}),$(this,"initToken",async e=>{if(e){const{data:{isSuccess:i}}=await this.uploadRequest.axiosInstance.get("https://mgrapi.fhd001.com/mgr/rdc/staticResource/getUserStaticResourceDirectoryList.do",{params:{token:e}});if(i)return d("token \u6821\u9A8C\u901A\u8FC7"),this.uploadRequest.setToken(e),this.localUploadInfo.token=e,this.writeConfigFile(),e;r("token \u65E0\u6548\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165")}const{inputToken:a}=await E.prompt([{name:"inputToken",type:"text",message:"\u8BF7\u8F93\u5165\u706B\u82B1\u6D3Etoken",required:!0}]);return this.initToken(a)}),this.currentPlatfrom=t}writeConfigFile(){Ku(this.configFilePath,this.localUploadInfo)}async wxMain(t){this.localUploadInfo.wxFileRoot=await x(this.currentPlatfrom,t),this.publishFileRoot=p.join(this.localUploadInfo.wxFileRoot,".."),await lu(this.localUploadInfo.wxFileRoot,_u),await Ju(this.localUploadInfo.wxFileRoot);const e=v(),a=D.readJsonSync(e);await this.initToken(a.token),await this.uploadEntry(),w("\u4E0A\u4F20\u5B8C\u6210\u4E86!")}async aliMain(t){this.localUploadInfo.aliFileRoot=await x(this.currentPlatfrom,t),this.publishFileRoot=p.join(this.localUploadInfo.aliFileRoot,".."),await Ju(this.localUploadInfo.aliFileRoot);const e=v(),a=D.readJsonSync(e);await this.initToken(a.token),await this.uploadEntry(),w("\u4E0A\u4F20\u5B8C\u6210\u4E86!")}async staticMain(t){this.localUploadInfo.staticFileRoot=await x(this.currentPlatfrom,t),this.publishFileRoot=p.join(this.localUploadInfo.aliFileRoot,".."),await lu(this.localUploadInfo.staticFileRoot,Lu);const e=v(),a=D.readJsonSync(e);await this.initToken(a.token);const i=U.find(s=>s.id===36);if(!i)throw new Error("\u672A\u627E\u5230\u9759\u6001\u8D44\u6E90\u9879\u76EE");const{desc:o}=await E.prompt([{name:"desc",type:"text",message:"\u8BF7\u8F93\u5165\u4E0A\u4F20\u63CF\u8FF0\u4FE1\u606F",required:!0,initial:i.uploadDesc}]);i.uploadDesc=o,await this.uploadEntry(),w("\u4E0A\u4F20\u5B8C\u6210\u4E86!")}async staticAdMain(t){this.localUploadInfo.adStaticFileRoot=await x(this.currentPlatfrom,t),this.publishFileRoot=p.join(this.localUploadInfo.adStaticFileRoot,".."),await lu(this.localUploadInfo.adStaticFileRoot,Uu);const e=v(),a=D.readJsonSync(e);await this.initToken(a.token);const i=U.find(s=>s.id===37);if(!i)throw new Error("\u672A\u627E\u5230\u9759\u6001\u8D44\u6E90\u9879\u76EE");const{desc:o}=await E.prompt([{name:"desc",type:"text",message:"\u8BF7\u8F93\u5165\u4E0A\u4F20\u63CF\u8FF0\u4FE1\u606F",required:!0,initial:i.uploadDesc}]);i.uploadDesc=o,await this.uploadEntry(),w("\u4E0A\u4F20\u5B8C\u6210\u4E86!")}async plOperatorMain(t){this.localUploadInfo.ploperatorFileRoot=await x(this.currentPlatfrom,t);const e=hu(p.resolve(this.localUploadInfo.ploperatorFileRoot));if(!e.length)return r(`${this.localUploadInfo.ploperatorFileRoot} \u76EE\u5F55\u4E0B\u6CA1\u6709\u6587\u4EF6`);this.publishFileRoot=p.resolve(this.localUploadInfo.ploperatorFileRoot);const a=v(),i=D.readJsonSync(a);await this.initToken(i.token);const o=U.find(h=>h.id===52);if(!o)throw new Error("\u672A\u627E\u5230\u9759\u6001\u8D44\u6E90\u9879\u76EE");const{fileName:s,desc:l}=await E.prompt([{name:"fileName",type:"select",message:"\u8BF7\u9009\u62E9\u4E0A\u4F20\u7684\u538B\u7F29\u5305",required:!0,choices:e},{name:"desc",type:"text",message:"\u8BF7\u8F93\u5165\u53D1\u5E03\u63CF\u8FF0\u4FE1\u606F",required:!0,initial:"\u53D1\u5E03\u7EFC\u5408\u8FD0\u8425\u7CFB\u7EDF"}]);o.uploadDesc=l,o.uploadZipFileName=s,await this.uploadEntry(),w("\u4E0A\u4F20\u5B8C\u6210\u4E86!")}async saasMerchantMain(t){this.localUploadInfo.saasMerchantFileRoot=await x(this.currentPlatfrom,t);const e=hu(p.resolve(this.localUploadInfo.saasMerchantFileRoot));if(!e.length)return r(`${this.localUploadInfo.saasMerchantFileRoot} \u76EE\u5F55\u4E0B\u6CA1\u6709\u6587\u4EF6`);this.publishFileRoot=p.resolve(this.localUploadInfo.saasMerchantFileRoot);const a=v(),i=D.readJsonSync(a);await this.initToken(i.token);const o=U.find(h=>h.id===41);if(!o)throw new Error("\u672A\u627E\u5230\u9759\u6001\u8D44\u6E90\u9879\u76EE");const{fileName:s,desc:l}=await E.prompt([{name:"fileName",type:"select",message:"\u8BF7\u9009\u62E9\u4E0A\u4F20\u7684\u538B\u7F29\u5305",required:!0,choices:e},{name:"desc",type:"text",message:"\u8BF7\u8F93\u5165\u53D1\u5E03\u63CF\u8FF0\u4FE1\u606F",required:!0,initial:"\u53D1\u5E03SaaS\u5546\u6237\u540E\u53F0"}]);o.uploadDesc=l,o.uploadZipFileName=s,await this.uploadEntry(),w("\u4E0A\u4F20\u5B8C\u6210\u4E86!")}}async function ke(){const u=await se(),t=zu("ppg");t.version(re).help();const e={"git-commit":{desc:"\u521B\u5EFA\u4E00\u4E2A\u7B26\u5408 Conventional Commit \u89C4\u8303\u7684\u63D0\u4EA4\u4FE1\u606F",alias:"gc",action:async()=>{try{await ce(u.gitCommitTypes,u.gitCommitScopes)}catch{A()}}},"git-version [actionType]":{desc:"\u7248\u672C\u5206\u652F\u64CD\u4F5C",alias:"gv",action:async a=>{try{await Be(a)}catch(i){C(),b(JSON.stringify(i)),A()}}},"git-commit-verify":{desc:"\u68C0\u6D4B\u6700\u8FD1\u7684\u4E00\u6B21commit\u4FE1\u606F\u662F\u5426\u7B26\u5408 Conventional Commit\u89C4\u8303",alias:"gcv",action:async()=>{await fe()}},"ping [ip]":{desc:"ping ip/\u57DF\u540D",alias:"p",options:[["-m, --more","Whether to ping multiple ips",{default:!1}]],action:async(a,i)=>{await Wt(i.more,a)}},"delete-tag [tagName]":{desc:"\u5220\u9664\u8FDC\u7A0Btag",alias:"dt",action:async a=>{await pt(a)}},"public-verify-vx [fileRoot]":{desc:"\u5C06\u6821\u9A8C\u6587\u4EF6\u53D1\u5E03\u5230\u8FDC\u7A0B-\u5FAE\u4FE1",alias:"pvv",action:async a=>{await new T(B.WEChAT).wxMain(a)}},"public-verify-ali [fileRoot]":{desc:"\u5C06\u6821\u9A8C\u6587\u4EF6\u53D1\u5E03\u5230\u8FDC\u7A0B-\u652F\u4ED8\u5B9D/\u6296\u97F3",alias:"pva",action:async a=>{await new T(B.ALIPAY).aliMain(a)}},"public-static [fileRoot]":{desc:"\u5C06\u5BC4\u9012\u9759\u6001\u8D44\u6E90\u53D1\u5E03\u5230\u8FDC\u7A0B",alias:"ps",action:async a=>{await new T(B.STATIC).staticMain(a)}},"public-ad [fileRoot]":{desc:"\u5C06\u5E7F\u544A\u6001\u8D44\u6E90\u53D1\u5E03\u5230\u8FDC\u7A0B",alias:"pa",action:async a=>{await new T(B.AD_STATIC).staticAdMain(a)}},"public-ploperator [fileRoot]":{desc:"\u90E8\u7F72\u7EFC\u5408\u8FD0\u8425\u7CFB\u7EDF",alias:"ppl",action:async a=>{await new T(B.PL_OPERATOR).plOperatorMain(a)}},"public-merchant [fileRoot]":{desc:"\u90E8\u7F72SaaS\u5546\u6237\u540E\u53F0",alias:"ppm",action:async a=>{await new T(B.SAAS_MERCHANT).saasMerchantMain(a)}},open:{desc:"\u5728\u6D4F\u89C8\u5668\u6253\u5F00\u5F53\u524D\u4ED3\u5E93",alias:"o",action:async()=>{await Ou()}},release:{desc:"\u53D1\u5E03\uFF1A\u66F4\u65B0\u7248\u672C\u53F7\u3001\u751F\u6210changelog\u3001\u63D0\u4EA4\u4EE3\u7801",alias:"r",action:async()=>{await Ce()}}};for await(const[a,{options:i,desc:o,action:s,alias:l=a.replace(/\s.+/gi,"")}]of Object.entries(e)){const h=t.command(a,o).action(s).alias(l);i&&i.length&&i.forEach(g=>{h.option(...g)})}t.command("test","\u8FD9\u662F\u4E00\u4E2A\u63CF\u8FF0").alias("tt").option("-r, --recursive","Remove recursively",{default:!1}).action((a,i)=>{console.log(a,i)}),t.parse()}ke();