@liuli-util/cli 3.19.1 → 3.19.2

Sign up to get free protection for your applications and to get access to all the features.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 rxliuli
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/bin.js CHANGED
@@ -121,7 +121,7 @@ function print() { __p += __j.call(arguments, '') }
121
121
  catch {}
122
122
  `})),t.onResolve({filter:/\.node$/,namespace:"node-file"},r=>({path:r.path,namespace:"file"}));let e=t.initialOptions;e.loader=e.loader||{},e.loader[".node"]="file"}}}function aA(){return{name:"esbuild-plugin-node-externals",setup(t){t.onResolve({filter:/(^node:)/},e=>({path:e.path.slice(5),external:!0}))}}}function OU(t){return["// ==UserScript==",...Object.entries(t).map(([e,r])=>Array.isArray(r)?r.map(i=>`// @${e} ${i}`):`// @${e} ${r}`).flat(),"// ==/UserScript=="].join(`
123
123
  `)+`
124
- `}function oA(){return{name:"esbuild-plugin-userjs",async setup(t){let e=await(0,$y.readJson)(nA.default.resolve(t.initialOptions.absWorkingDir,"package.json"));if(!e.userjs)throw new Error("userjs is not supported");t.initialOptions.banner||(t.initialOptions.banner={}),t.initialOptions.banner.js=OU(e.userjs)}}}var kR=Se(lO()),DR=Se(aR());function oR(t,e,r=null){let i,n=r;return async function(...s){return new Promise(o=>{i&&clearTimeout(i),i=setTimeout(()=>o(n=t(...s)),e),setTimeout(()=>o(n),e)})}}var CR=Se(bR());function _R(t){return(t.startsWith("@")?t.slice(t.indexOf("/")+1):t).split("-").map(r=>r.slice(0,1).toUpperCase()+r.slice(1).toLowerCase()).join("")}var vi=class{constructor(e){this.options=e}set isWatch(e){this.options.isWatch=e}static async getDeps(e){let r=await(0,cn.readJson)(ar.resolve(e,"package.json"));return Object.keys({...r.dependencies,...r.devDependencies,...r.peerDependencies})}static async getPlatform(e){let r=ar.resolve(e,"tsconfig.json");if(await(0,cn.pathExists)(r)&&(0,CR.parse)(await(0,cn.readFile)(r,"utf-8"))?.compilerOptions?.lib?.some(s=>s.toLowerCase()==="dom"))return"browser";let i=ar.resolve(e,"package.json");if(await(0,cn.pathExists)(i)){let n=await(0,cn.readJson)(i);if(Object.keys(n.devDependencies??{}).includes("@types/node"))return"node"}return"neutral"}static getWatchOptions(e){return{pattern:"src/**/*.ts",options:{cwd:e,ignore:"**/__tests__/**/*"}}}async genDTS(){let e=this.options.base,{pattern:r,options:i}=vi.getWatchOptions(this.options.base),n=new wR.Project({tsConfigFilePath:ar.resolve(e,"tsconfig.json"),skipAddingFilesFromTsConfig:!0,compilerOptions:{emitDeclarationOnly:!0,noEmit:!1,incremental:this.options.isWatch}}),s=(await(0,ER.promise)(r,i)).map(o=>ar.resolve(e,o));n.addSourceFilesAtPaths(s),await n.emit({emitOnlyDtsFiles:!0})}getBuildUserJSOption(){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.user.js"),format:"iife",bundle:!0,external:[...vi.globalExternal],platform:"browser",plugins:[oA()],incremental:this.options.isWatch,absWorkingDir:this.options.base}}getBuildCjsOption({deps:e,platform:r}){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.js"),format:"cjs",sourcemap:!0,bundle:!0,external:[...vi.globalExternal,...e],platform:r,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch}}getBuildESMOption({deps:e,platform:r}){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.esm.js"),format:"esm",sourcemap:!0,bundle:!0,external:[...vi.globalExternal,...e],platform:r,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch}}getBuildIifeOption({platform:e,globalName:r}){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.iife.js"),format:"iife",sourcemap:!0,bundle:!0,external:[...vi.globalExternal],platform:e,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch,globalName:r}}getBuildCliOption({platform:e}){let r=vi.getPlugins(e);return{entryPoints:[ar.resolve(this.options.base,"./src/bin.ts")],outfile:ar.resolve(this.options.base,"./dist/bin.js"),format:"cjs",sourcemap:!0,platform:e,bundle:!0,banner:{js:"#!/usr/bin/env node"},external:[...vi.globalExternal],plugins:r,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch}}static getPlugins(e){let r=[];return e==="node"&&r.push(aA(),sA()),r}async build(e){await(0,Qv.build)(e)}async getTasks(){let e=await vi.getDeps(this.options.base),r=await vi.getPlatform(this.options.base);return{esm:{title:"\u6784\u5EFA esm",task:()=>this.build(this.getBuildESMOption({deps:e,platform:r}))},cjs:{title:"\u6784\u5EFA cjs",task:()=>this.build(this.getBuildCjsOption({deps:e,platform:r}))},iife:{title:"\u6784\u5EFA iife",task:async()=>await this.build(this.getBuildIifeOption({platform:r,globalName:_R((await(0,cn.readJson)(ar.resolve(this.options.base,"./package.json"))).name)}))},cli:{title:"\u6784\u5EFA cli",task:()=>(0,Qv.build)(this.getBuildCliOption({deps:e,platform:r}))},dts:{title:"\u751F\u6210\u7C7B\u578B\u5B9A\u4E49",task:()=>this.genDTS()},userjs:{title:"\u6253\u5305 userjs",task:()=>this.build(this.getBuildUserJSOption())}}}static async execTask(e,r){let i=Date.now();e.add(r.title,{text:r.title});try{await r.task(),e.succeed(r.title,{text:`${r.title}: ${Date.now()-i}ms`})}catch{e.fail(r.title,{text:r.title})}}async execTasks(e){let r=async()=>{let s=Date.now(),o=new DR.default;await Promise.all(e.map(async l=>vi.execTask(o,l))),console.log(`\u6784\u5EFA\u5B8C\u6210: ${Date.now()-s}ms`)};if(!this.options.isWatch){await(0,cn.remove)(ar.resolve(this.options.base,"dist")),await r();return}let{pattern:i,options:n}=vi.getWatchOptions(this.options.base);await new Promise((s,o)=>{(0,kR.watch)(i,n).on("error",o).on("all",oR(r,10))})}},Vd=vi;du(Vd,"globalExternal",["esbuild","pnpapi","ts-morph","ssh2"]);var SR=Se(require("path")),Ni=new Vd({base:SR.default.resolve(),isWatch:!1}),AR=new Iu.Command("build").addCommand(new Iu.Command("lib").description("\u4F7F\u7528 esbulid \u5C06 ts lib \u6253\u5305\u5230 dist \u76EE\u5F55\uFF0C\u683C\u5F0F\u4E3A esm/cjs").option("-w --watch","\u76D1\u89C6\u6A21\u5F0F").action(async t=>{Ni.isWatch=!!t.watch;let e=await Ni.getTasks();await Ni.execTasks([e.esm,e.cjs,e.dts])}).alias("pkg")).addCommand(new Iu.Command("cli").description("\u4F7F\u7528 esbulid \u5C06 ts cli \u6253\u5305\u5230 dist \u76EE\u5F55\uFF0C\u683C\u5F0F\u4E3A cjs\uFF0C\u5E76\u4E14\u6346\u7ED1\u4F9D\u8D56").option("-w, --watch","\u76D1\u89C6\u6A21\u5F0F").action(async t=>{Ni.isWatch=!!t.watch;let e=await Ni.getTasks();await Ni.execTasks([e.cli,e.esm,e.cjs,e.dts])})).addCommand(["iife","cli","esm","cjs","dts"].reduce((t,e)=>(t.addCommand(new Iu.Command(e).description(`\u5355\u72EC\u6784\u5EFA ${e}`).option("-w --watch","\u76D1\u89C6\u6A21\u5F0F").action(async r=>{Ni.isWatch=!!r.watch;let i=await Ni.getTasks();await Ni.execTasks([i[e]])})),t),new Iu.Command("single").description("\u5355\u72EC\u6784\u5EFA\u67D0\u79CD\u7C7B\u578B\u7684 bundle").option("-t, --target <target...>","\u6784\u5EFA\u76EE\u6807\uFF0C\u662F\u4E00\u4E2A\u6570\u7EC4\uFF0C\u53EF\u4EE5\u4F7F\u7528 , \u5206\u5272").option("-w, --watch","\u76D1\u89C6\u6A21\u5F0F").action(async t=>{Ni.isWatch=!!t.watch;let e=await Ni.getTasks();await Ni.execTasks(t.target.flatMap(r=>r.split(",")).map(r=>e[r]))})));var np=Se(pu());var Rn=Se(require("path")),pr=Se(Ys()),ip=Se(_b());var bi=Se(Ys()),oa=Se(require("path")),Eb=Se(TP());var nY="@liuli-util/prettier-standard-config",sY="0.2.0",aY=".prettierrc.json",oY="index.d.ts",uY="MIT",lY={access:"public",registry:"https://registry.npmjs.org/"},cY={prettier:"^2.4.1"},fY={prettier:"^2"},PP={name:nY,version:sY,main:aY,types:oY,license:uY,publishConfig:lY,devDependencies:cY,peerDependencies:fY};var hY="@liuli-util/eslint-config-ts",dY="0.4.0",pY=".eslintrc.json",mY="MIT",gY={access:"public",registry:"https://registry.npmjs.org/"},yY={type:"git",url:"https://github.com/rxliuli/liuli-tools",directory:"libs/eslint-config-ts"},vY={"@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0",eslint:"^8.9.0","eslint-config-prettier":"^8.3.0","eslint-plugin-unused-imports":"^2.0.0"},bY={typescript:">=4"},$P={name:hY,version:dY,main:pY,license:mY,publishConfig:gY,repository:yY,dependencies:vY,peerDependencies:bY};var _Y="@liuli-util/eslint-config-react-ts",wY="0.2.1",EY=".eslintrc.json",kY="MIT",DY={access:"public",registry:"https://registry.npmjs.org/"},CY={type:"git",url:"https://github.com/rxliuli/liuli-tools",directory:"libs/eslint-config-react-ts"},SY={"@liuli-util/eslint-config-ts":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0",eslint:"^8.9.0","eslint-config-prettier":"^8.3.0","eslint-plugin-react-hooks":"^4.3.0"},AY={typescript:">=4"},FP={name:_Y,version:wY,main:EY,license:kY,publishConfig:DY,repository:CY,dependencies:SY,peerDependencies:AY};var xY="@liuli-util/commitlint-standard-config",OY="0.1.6",RY=".commitlintrc.json",TY="MIT",PY={access:"public",registry:"https://registry.npmjs.org/"},$Y={"@commitlint/config-conventional":"^13.1.0"},FY={"@commitlint/cli":"^12.1.4"},IP={name:xY,version:OY,main:RY,license:TY,publishConfig:PY,dependencies:$Y,peerDependencies:FY};var BP=Se(_b());var Vc=Se(Ys()),ju=Se(require("path"));function MP(t,e,r=i=>i){return t.reduce((i,n,s,o)=>i.set(e(n,s,o),r(n,s,o)),new Map)}function NP(t,e){return t?t.includes(e)?t:t+" && "+e:e}var qP=Se(require("path"));function wb(t,e){let r=e(t);function i(n){if(n)return t;let s=qP.default.dirname(t);return s===t?null:wb(s,e)}return r instanceof Promise?r.then(i):i(r)}var Li;(function(s){s.Filter="filter",s.Map="map",s.ForEach="forEach",s.Reduce="reduce",s.FlatMap="flatMap"})(Li||(Li={}));var Bu=class{constructor(e,r){this.type=e;this.args=r;this.type=e,this.args=r}};du(Bu,"Type",Li);var dn=class{constructor(e){this.arr=e}static reduce(e,r,i){return e.reduce((n,s,o)=>n.then(l=>r(l,s,o)),Promise.resolve(i))}static map(e,r){return Promise.all(e.map((i,n)=>r(i,n)))}static async filter(e,r){let i=[];return await dn.map(e,async(n,s)=>{await r(n,s)&&i.push(n)}),i}static async flatMap(e,r){return(await Promise.all(e.map((i,n)=>r(i,n)))).flatMap(i=>i)}static async forEach(e,r){await dn.map(e,r)}tasks=[];map(e){return this.tasks.push(new Bu(Li.Map,[e])),this}flatMap(e){return this.tasks.push(new Bu(Li.FlatMap,[e])),this}filter(e){return this.tasks.push(new Bu(Li.Filter,[e])),this}async forEach(e){this.tasks.push(new Bu(Li.Map,[e])),await this}then(e,r){let i=this.value();return i.then(n=>(e&&e(i),n)).catch(n=>{throw r&&r(n),n}),i}async value(){let e=this.arr;for(let r of this.tasks)switch(r.type){case Li.Filter:e=await dn.filter(e,r.args[0]);break;case Li.Map:e=await dn.map(e,r.args[0]);break;case Li.FlatMap:e=await dn.flatMap(e,r.args[0]);break;case Li.ForEach:await dn.forEach(e,r.args[0]);return;case Li.Reduce:return await dn.reduce(e,r.args[0],r.args[1])}return e}};async function _s(t=process.cwd()){return await(0,Vc.pathExists)(ju.resolve(t,"./package.json"))}async function wo(t=process.cwd()){return await _s(t)?!!(await(0,Vc.readJson)(ju.resolve(t,"./package.json"))).workspaces:!1}async function tp(t=process.cwd()){return!await _s(t)||await wo(t)?!1:await wb(ju.dirname(t),wo)!==null}async function rp(t,e=process.cwd()){if(!await _s(e))return!1;let r=await(0,Vc.readJson)(ju.resolve(e,"./package.json")),i=new Set(Object.keys({...r.dependencies,...r.devDependencies}));return t.every(n=>i.has(n))}var LP=Se(require("path")),Hu=class{};du(Hu,"RootPath",LP.default.resolve(__dirname,".."));async function Eo(t,e){let r=oa.default.resolve(t,"./package.json");await(0,bi.writeJson)(r,(0,Eb.merge)(await(0,bi.readJson)(r),e),{spaces:2})}var Kc=class{constructor(e){this.base=e}syncConfigs=[{type:"workspaces",handler:async()=>{let e=oa.default.resolve(this.base,"./package.json"),r=oa.default.resolve(this.base,"lerna.json"),i=await(0,bi.readJson)(e),n=await(0,bi.readJson)(r);n.packages=i.workspaces,await(0,bi.writeJson)(r,n,{spaces:2})},when:wo},{type:"prettier",handler:async()=>{await Eo(this.base,{prettier:"@liuli-util/prettier-standard-config",devDependencies:{prettier:"^2.3.2","@liuli-util/prettier-standard-config":`^${PP.version}`}})},async when(){return await _s()&&(await wo()||!await tp())}},{type:"commitlint",handler:async()=>{await Eo(this.base,{"simple-git-hooks":{"commit-msg":"yarn commitlint --edit $1"},commitlint:{extends:["@liuli-util/commitlint-standard-config"]},devDependencies:{"@commitlint/cli":"^12.1.4","@liuli-util/commitlint-standard-config":`^${IP.version}`}})},async when(){return await _s()&&(await wo()||!await tp())}},{type:"gitignore",handler:async()=>{let e=oa.default.resolve(this.base,".gitignore");await(0,bi.writeFile)(e,await(0,bi.readFile)(oa.default.resolve(Hu.RootPath,"_gitignore"),"utf-8"))}},{type:"eslint-ts",handler:async()=>{await Eo(this.base,{eslintConfig:{extends:["@liuli-util/eslint-config-ts"]},devDependencies:{"@liuli-util/eslint-config-ts":`^${$P.version}`}})},async when(){return await _s()&&!await rp(["vue"])&&!await rp(["react"])}},{type:"eslint-react-ts",handler:async()=>{await Eo(this.base,{eslintConfig:{extends:["@liuli-util/eslint-config-react-ts"]},devDependencies:{"@liuli-util/eslint-config-react-ts":`^${FP.version}`}})},async when(){return await _s()&&await rp(["react"])}},{type:"jest",handler:async()=>{await Eo(this.base,{jest:{preset:"ts-jest",testMatch:["<rootDir>/src/**/__tests__/*.test.ts"]},devDependencies:{jest:"^27.4.3","ts-jest":"^27.0.7"}})}},{type:"simplehooks",handler:async()=>{let e=await(0,bi.readJson)(oa.default.resolve(this.base,"./package.json")),r={};e.prettier&&(r["src/**/*.{ts,tsx,js,jsx,css,vue}"]=["prettier --write","git add"]),e.eslintConfig&&(r["src/**/*.{ts,tsx,js,jsx}"]=["eslint --fix --quiet","git add"]);let i={scripts:{postinstall:NP(e?.scripts?.postinstall,"npx simple-git-hooks")},"simple-git-hooks":{"pre-commit":"yarn lint-staged"},"lint-staged":r,devDependencies:{"simple-git-hooks":"^2.5.1","lint-staged":"^11.1.1"}};e.commitlint&&(i=(0,Eb.merge)(i,{"simple-git-hooks":{"commit-msg":"yarn commitlint --edit $1"}})),await Eo(this.base,i)},async when(){return await _s()&&(await wo()||!await tp())}}];async sync(){let{sync:e}=await(0,bi.readJson)(oa.default.resolve(this.base,"package.json"));if(!e)return;let r=this.syncConfigs.filter(i=>e.includes(i.type));for(let i of r)await i.handler()}async init(){let e=MP(await dn.filter(this.syncConfigs,async i=>i.when?await i.when():!0),i=>i.type),r=await(0,BP.prompt)({type:"multiselect",message:"\u8BF7\u9009\u62E9\u9700\u8981\u540C\u6B65\u7684\u914D\u7F6E\u9879",name:"sync",choices:[...e.keys()]});await Eo(this.base,{sync:r.sync})}};var ko;(function(r){r.Cli="cli",r.Lib="lib"})(ko||(ko={}));var Uu=class{async generate(e){if(!e.dest){let{dest:n}=await(0,ip.prompt)({name:"dest",type:"input",message:"\u8BF7\u8F93\u5165\u9879\u76EE\u540D",validate(s){return s.trim()!==""}});e.dest=Rn.default.resolve(n)}if(!e.template){let{template:n}=await(0,ip.prompt)({name:"template",type:"select",message:"\u8BF7\u9009\u62E9\u6A21\u677F",choices:[ko.Lib,ko.Cli]});e.template=n}let r=Rn.default.resolve(Hu.RootPath,`templates/${e.template}`),i=Rn.default.resolve(e.dest);if(await(0,pr.pathExists)(i)&&(await(0,pr.readdir)(i)).some(n=>(0,pr.pathExists)(n))){let{override:n}=await(0,ip.prompt)({name:"override",type:"confirm",initial:!0,message:"\u76EE\u6807\u4F4D\u7F6E\u4E0D\u662F\u4E00\u4E2A\u7A7A\u76EE\u5F55\uFF0C\u786E\u8BA4\u8981\u8986\u76D6\u4E48\uFF1F"});if(!n)return}if(await(0,pr.remove)(i),await(0,pr.copy)(r,i,{filter:n=>Rn.default.basename(n)!=="node_modules"}),await Uu.updatePackageJSON(i),await Uu.updateReadme(i),e.initSync){let n=new Kc(Rn.default.resolve(e.dest));await n.init(),await n.sync()}}static async updatePackageJSON(e){let r=Rn.default.resolve(e,"package.json");await(0,pr.writeJSON)(r,{...await(0,pr.readJSON)(r),name:Rn.default.basename(e)},{spaces:2})}static async updateReadme(e){let r=Rn.default.resolve(e,"README.md"),i=await(0,pr.readFile)(r,"utf-8");i=i.replace("template",Rn.default.basename(e)),await(0,pr.writeFile)(r,i)}};var IY=new Uu,jP=new np.Option("--template [template]","\u6A21\u677F\u7C7B\u578B").choices([ko.Lib,ko.Cli]);jP.required=!0;var HP=new np.Command().command("generate [dest]").description("\u751F\u6210\u4E00\u4E9B\u521D\u59CB\u9879\u76EE").addOption(jP).action(async(t,e)=>{await IY.generate({...e,dest:t,initSync:!0})});var kb=Se(pu());var Db=new Kc(process.cwd()),UP=new kb.Command("sync").description("\u540C\u6B65\u914D\u7F6E").action(async()=>{await Db.sync()}).addCommand(new kb.Command("init").description("\u521D\u59CB\u5316\u540C\u6B65\u914D\u7F6E").action(async()=>{await Db.init(),await Db.sync()}));var nL=Se(pu());var sp=class{static wrapOnEvent(e){let r={},i=new Promise(async(n,s)=>{await new Promise(o=>setTimeout(o,0));try{n(await e(r))}catch(o){s(o)}});return Reflect.set(i,"on",(n,s)=>(r[n]=s,i)),i}};var X3=Se(C$()),Pa=Se(require("path")),eL=Se(require("os")),$a=Se(Ys()),tL=Se(pM());var Ho=Se(require("os")),Dl=Se(require("path"));function mM(t){let e=process.env.XDG_CACHE_HOME||Dl.join(Ho.homedir(),".cache");return Dl.join(e,t)}function qne(t){return Dl.join(Ho.homedir(),"Library","Caches",t)}function Lne(t){let e=process.env.LOCALAPPDATA||Dl.join(Ho.homedir(),"AppData","Local");return Dl.join(e,t,"Cache")}var Bne=function(){switch(Ho.platform()){case"darwin":return qne;case"win32":return Lne;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return mM;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${Ho.platform()}" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`),mM}}();function gM(t){if(t.length===0)throw new Error("id cannot be empty");if(/[^0-9a-zA-Z-]/.test(t))throw new Error("id cannot contain special characters");return Bne(t)}var mg=Se(require("perf_hooks"));var J3=Se(wE()),Q3=Se(q3()),Z3=Se(Y3());function xE(t,e){let r=new J3.default({allErrors:!0,messages:!1});(0,Z3.default)(r);let i=r.validate(t,e);return i||Q3.default.zh(r.errors),[i,r.errorsText()]}var jf;(function(r){r.GhPages="gh-pages",r.Sftp="sftp"})(jf||(jf={}));var OE=class{constructor(e){this.options=e}deploy(){return sp.wrapOnEvent(async()=>{let e=new X3.default,r=await(0,$a.readFile)(Pa.resolve(eL.userInfo().homedir,".ssh/id_rsa"),"utf-8");await e.connect({...this.options.sshConfig,privateKey:r}),await e.mkdir(this.options.dest,!0),await e.uploadDir(Pa.resolve(this.options.cwd,this.options.dist),this.options.dest),await e.end()})}validate(){return xE({type:"object",properties:{debug:{type:"boolean"},cwd:{type:"string"},dist:{type:"string"},dest:{type:"string"},sshConfig:{type:"object",properties:{host:{type:"string"},username:{type:"string"}}}},required:["cwd","dist","dest","sshConfig","debug"]},this.options)}},RE=class{constructor(e){this.options=e}deploy(){let e=this.options.remote??"origin",r=this.options.branch??"gh-pages";return sp.wrapOnEvent(async i=>{let n=new mg.PerformanceObserver(g=>{this.options.debug&&console.log(g.getEntries())});n.observe({type:"mark"});function s(g){mg.performance.mark(g),i.process(g)}s("\u5F00\u59CB\u63A8\u9001");let o=(0,tL.default)(this.options.cwd);if(!this.options.repo){s("\u83B7\u53D6\u5F53\u524D\u9879\u76EE\u7684\u8FDC\u7AEF\u914D\u7F6E");let g=(await o.getRemotes(!0)).find(b=>b.name===e);if(!g)throw new Error("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F\u4E00\u4E2A git \u9879\u76EE\u6216\u6CA1\u6709\u914D\u7F6E git remote");this.options.repo=g.refs.fetch}let l=Pa.resolve(gM("liuli-cli"),"gh-pages"),c=this.options.repo.replace(new RegExp("[/:]","g"),"_"),h=Pa.resolve(l,c),d=!1;if(await(0,$a.pathExists)(h))await o.cwd(h),s("\u66F4\u65B0\u9879\u76EE"),await o.pull();else{s("\u514B\u9686\u9879\u76EE");try{await o.clone(this.options.repo,h,{"--branch":r,"--single-branch":null,"--depth":1})}catch{s(`\u672A\u627E\u5230 ${r} \u5206\u652F\uFF0C\u5C1D\u8BD5\u81EA\u52A8\u521B\u5EFA`),await o.clone(this.options.repo,h,{"--single-branch":null,"--depth":1}),await o.cwd(h),await o.checkout({"--orphan":r}),d=!0}}s("\u590D\u5236\u6587\u4EF6");let m=Pa.join(h,this.options.dest??"./");await(0,$a.mkdirp)(m),await(0,$a.copy)(Pa.resolve(this.options.cwd,this.options.dist),m),s("\u63D0\u4EA4\u6240\u6709\u6587\u4EF6"),await o.cwd(h),await o.add("-A"),(await o.status()).files.length===0?s("\u6CA1\u6709\u4EFB\u4F55\u63D0\u4EA4\uFF0C\u8DF3\u8FC7\u63D0\u4EA4"):await o.commit("Updates gh-pages by liuli-cli"),s("\u63A8\u9001\u5230\u8FDC\u7AEF"),(await o.status()).ahead>0||d?(await o.push(e,r),s("\u5B8C\u6210\u63A8\u9001")):s("\u6CA1\u6709\u66F4\u65B0\uFF0C\u8DF3\u8FC7\u63A8\u9001"),n.disconnect()})}validate(){return xE({type:"object",properties:{debug:{type:"boolean"},cwd:{type:"string"},dist:{type:"string"},dest:{type:"string",nullable:!0},repo:{type:"string",nullable:!0},remote:{type:"string",nullable:!0},branch:{type:"string",nullable:!0}},required:["debug","cwd","dist"]},this.options)}};var rL=Se(require("path")),gg=Se(Ys());async function Yle(t){let e=rL.resolve(t,"package.json");if(await(0,gg.pathExists)(e)){let r=(await(0,gg.readJson)(e)).deploy;if(!r)throw new Error("\u627E\u4E0D\u5230\u914D\u7F6E");return r}throw new Error("\u627E\u4E0D\u5230\u914D\u7F6E")}async function iL(t){let e=await Yle(t.cwd),r,i={...t,...e};switch(e.type){case jf.Sftp:r=new OE(i);break;case jf.GhPages:r=new RE(i);break;default:throw new Error("\u672A\u77E5\u7684\u90E8\u7F72\u9884\u8BBE\u7C7B\u578B "+e.type)}let[n,s]=r.validate();if(!n)throw new Error(s);await r.deploy().on("process",o=>{console.info(o)})}var sL=Se(require("path")),aL=new nL.Command("deploy").description("\u90E8\u7F72\u9879\u76EE\u5230\u8FDC\u7AEF").option("--debug","\u662F\u5426\u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F").action(t=>iL({cwd:sL.resolve(),debug:!!t.debug}));new oL.Command().addCommand(AR).addCommand(HP).addCommand(UP).addCommand(aL).parse();
124
+ `}function oA(){return{name:"esbuild-plugin-userjs",async setup(t){let e=await(0,$y.readJson)(nA.default.resolve(t.initialOptions.absWorkingDir,"package.json"));if(!e.userjs)throw new Error("userjs is not supported");t.initialOptions.banner||(t.initialOptions.banner={}),t.initialOptions.banner.js=OU(e.userjs)}}}var kR=Se(lO()),DR=Se(aR());function oR(t,e,r=null){let i,n=r;return async function(...s){return new Promise(o=>{i&&clearTimeout(i),i=setTimeout(()=>o(n=t(...s)),e),setTimeout(()=>o(n),e)})}}var CR=Se(bR());function _R(t){return(t.startsWith("@")?t.slice(t.indexOf("/")+1):t).split("-").map(r=>r.slice(0,1).toUpperCase()+r.slice(1).toLowerCase()).join("")}var vi=class{constructor(e){this.options=e}set isWatch(e){this.options.isWatch=e}static async getDeps(e){let r=await(0,cn.readJson)(ar.resolve(e,"package.json"));return Object.keys({...r.dependencies,...r.devDependencies,...r.peerDependencies})}static async getPlatform(e){let r=ar.resolve(e,"tsconfig.json");if(await(0,cn.pathExists)(r)&&(0,CR.parse)(await(0,cn.readFile)(r,"utf-8"))?.compilerOptions?.lib?.some(s=>s.toLowerCase()==="dom"))return"browser";let i=ar.resolve(e,"package.json");if(await(0,cn.pathExists)(i)){let n=await(0,cn.readJson)(i);if(Object.keys(n.devDependencies??{}).includes("@types/node"))return"node"}return"neutral"}static getWatchOptions(e){return{pattern:"src/**/*.ts",options:{cwd:e,ignore:"**/__tests__/**/*"}}}async genDTS(){let e=this.options.base,{pattern:r,options:i}=vi.getWatchOptions(this.options.base),n=new wR.Project({tsConfigFilePath:ar.resolve(e,"tsconfig.json"),skipAddingFilesFromTsConfig:!0,compilerOptions:{emitDeclarationOnly:!0,noEmit:!1,incremental:this.options.isWatch}}),s=(await(0,ER.promise)(r,i)).map(o=>ar.resolve(e,o));n.addSourceFilesAtPaths(s),await n.emit({emitOnlyDtsFiles:!0})}getBuildUserJSOption(){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.user.js"),format:"iife",bundle:!0,external:[...vi.globalExternal],platform:"browser",plugins:[oA()],incremental:this.options.isWatch,absWorkingDir:this.options.base}}getBuildCjsOption({deps:e,platform:r}){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.js"),format:"cjs",sourcemap:!0,bundle:!0,external:[...vi.globalExternal,...e],platform:r,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch}}getBuildESMOption({deps:e,platform:r}){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.esm.js"),format:"esm",sourcemap:!0,bundle:!0,external:[...vi.globalExternal,...e],platform:r,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch}}getBuildIifeOption({platform:e,globalName:r}){return{entryPoints:[ar.resolve(this.options.base,"./src/index.ts")],outfile:ar.resolve(this.options.base,"./dist/index.iife.js"),format:"iife",sourcemap:!0,bundle:!0,external:[...vi.globalExternal],platform:e,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch,globalName:r}}getBuildCliOption({platform:e}){let r=vi.getPlugins(e);return{entryPoints:[ar.resolve(this.options.base,"./src/bin.ts")],outfile:ar.resolve(this.options.base,"./dist/bin.js"),format:"cjs",sourcemap:!0,platform:e,bundle:!0,banner:{js:"#!/usr/bin/env node"},external:[...vi.globalExternal],plugins:r,minify:!this.options.isWatch,incremental:this.options.isWatch,metafile:this.options.isWatch}}static getPlugins(e){let r=[];return e==="node"&&r.push(aA(),sA()),r}async build(e){await(0,Qv.build)(e)}async getTasks(){let e=await vi.getDeps(this.options.base),r=await vi.getPlatform(this.options.base);return{esm:{title:"\u6784\u5EFA esm",task:()=>this.build(this.getBuildESMOption({deps:e,platform:r}))},cjs:{title:"\u6784\u5EFA cjs",task:()=>this.build(this.getBuildCjsOption({deps:e,platform:r}))},iife:{title:"\u6784\u5EFA iife",task:async()=>await this.build(this.getBuildIifeOption({platform:r,globalName:_R((await(0,cn.readJson)(ar.resolve(this.options.base,"./package.json"))).name)}))},cli:{title:"\u6784\u5EFA cli",task:()=>(0,Qv.build)(this.getBuildCliOption({deps:e,platform:r}))},dts:{title:"\u751F\u6210\u7C7B\u578B\u5B9A\u4E49",task:()=>this.genDTS()},userjs:{title:"\u6253\u5305 userjs",task:()=>this.build(this.getBuildUserJSOption())}}}static async execTask(e,r){let i=Date.now();e.add(r.title,{text:r.title});try{await r.task(),e.succeed(r.title,{text:`${r.title}: ${Date.now()-i}ms`})}catch{e.fail(r.title,{text:r.title})}}async execTasks(e){let r=async()=>{let s=Date.now(),o=new DR.default;await Promise.all(e.map(async l=>vi.execTask(o,l))),console.log(`\u6784\u5EFA\u5B8C\u6210: ${Date.now()-s}ms`)};if(!this.options.isWatch){await(0,cn.remove)(ar.resolve(this.options.base,"dist")),await r();return}let{pattern:i,options:n}=vi.getWatchOptions(this.options.base);await new Promise((s,o)=>{(0,kR.watch)(i,n).on("error",o).on("all",oR(r,10))})}},Vd=vi;du(Vd,"globalExternal",["esbuild","pnpapi","ts-morph","ssh2"]);var SR=Se(require("path")),Ni=new Vd({base:SR.default.resolve(),isWatch:!1}),AR=new Iu.Command("build").addCommand(new Iu.Command("lib").description("\u4F7F\u7528 esbulid \u5C06 ts lib \u6253\u5305\u5230 dist \u76EE\u5F55\uFF0C\u683C\u5F0F\u4E3A esm/cjs").option("-w --watch","\u76D1\u89C6\u6A21\u5F0F").action(async t=>{Ni.isWatch=!!t.watch;let e=await Ni.getTasks();await Ni.execTasks([e.esm,e.cjs,e.dts])}).alias("pkg")).addCommand(new Iu.Command("cli").description("\u4F7F\u7528 esbulid \u5C06 ts cli \u6253\u5305\u5230 dist \u76EE\u5F55\uFF0C\u683C\u5F0F\u4E3A cjs\uFF0C\u5E76\u4E14\u6346\u7ED1\u4F9D\u8D56").option("-w, --watch","\u76D1\u89C6\u6A21\u5F0F").action(async t=>{Ni.isWatch=!!t.watch;let e=await Ni.getTasks();await Ni.execTasks([e.cli,e.esm,e.cjs,e.dts])})).addCommand(["iife","cli","esm","cjs","dts"].reduce((t,e)=>(t.addCommand(new Iu.Command(e).description(`\u5355\u72EC\u6784\u5EFA ${e}`).option("-w --watch","\u76D1\u89C6\u6A21\u5F0F").action(async r=>{Ni.isWatch=!!r.watch;let i=await Ni.getTasks();await Ni.execTasks([i[e]])})),t),new Iu.Command("single").description("\u5355\u72EC\u6784\u5EFA\u67D0\u79CD\u7C7B\u578B\u7684 bundle").option("-t, --target <target...>","\u6784\u5EFA\u76EE\u6807\uFF0C\u662F\u4E00\u4E2A\u6570\u7EC4\uFF0C\u53EF\u4EE5\u4F7F\u7528 , \u5206\u5272").option("-w, --watch","\u76D1\u89C6\u6A21\u5F0F").action(async t=>{Ni.isWatch=!!t.watch;let e=await Ni.getTasks();await Ni.execTasks(t.target.flatMap(r=>r.split(",")).map(r=>e[r]))})));var np=Se(pu());var Rn=Se(require("path")),pr=Se(Ys()),ip=Se(_b());var bi=Se(Ys()),oa=Se(require("path")),Eb=Se(TP());var nY="@liuli-util/prettier-standard-config",sY="0.2.0",aY=".prettierrc.json",oY="index.d.ts",uY="MIT",lY={access:"public",registry:"https://registry.npmjs.org/"},cY={prettier:"^2.4.1"},fY={prettier:"^2"},PP={name:nY,version:sY,main:aY,types:oY,license:uY,publishConfig:lY,devDependencies:cY,peerDependencies:fY};var hY="@liuli-util/eslint-config-ts",dY="0.4.0",pY=".eslintrc.json",mY="MIT",gY={access:"public",registry:"https://registry.npmjs.org/"},yY={type:"git",url:"https://github.com/rxliuli/liuli-tools",directory:"libs/eslint-config-ts"},vY={"@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0",eslint:"^8.9.0","eslint-config-prettier":"^8.3.0","eslint-plugin-unused-imports":"^2.0.0"},bY={typescript:">=4"},$P={name:hY,version:dY,main:pY,license:mY,publishConfig:gY,repository:yY,dependencies:vY,peerDependencies:bY};var _Y="@liuli-util/eslint-config-react-ts",wY="0.2.1",EY=".eslintrc.json",kY="MIT",DY={access:"public",registry:"https://registry.npmjs.org/"},CY={type:"git",url:"https://github.com/rxliuli/liuli-tools",directory:"libs/eslint-config-react-ts"},SY={"@liuli-util/eslint-config-ts":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0",eslint:"^8.9.0","eslint-config-prettier":"^8.3.0","eslint-plugin-react-hooks":"^4.3.0"},AY={typescript:">=4"},FP={name:_Y,version:wY,main:EY,license:kY,publishConfig:DY,repository:CY,dependencies:SY,peerDependencies:AY};var xY="@liuli-util/commitlint-standard-config",OY="0.1.6",RY=".commitlintrc.json",TY="MIT",PY={access:"public",registry:"https://registry.npmjs.org/"},$Y={"@commitlint/config-conventional":"^13.1.0"},FY={"@commitlint/cli":"^12.1.4"},IP={name:xY,version:OY,main:RY,license:TY,publishConfig:PY,dependencies:$Y,peerDependencies:FY};var BP=Se(_b());var Vc=Se(Ys()),ju=Se(require("path"));function MP(t,e,r=i=>i){return t.reduce((i,n,s,o)=>i.set(e(n,s,o),r(n,s,o)),new Map)}function NP(t,e){return t?t.includes(e)?t:t+" && "+e:e}var qP=Se(require("path"));function wb(t,e){let r=e(t);function i(n){if(n)return t;let s=qP.default.dirname(t);return s===t?null:wb(s,e)}return r instanceof Promise?r.then(i):i(r)}var Li;(function(s){s.Filter="filter",s.Map="map",s.ForEach="forEach",s.Reduce="reduce",s.FlatMap="flatMap"})(Li||(Li={}));var Bu=class{constructor(e,r){this.type=e;this.args=r;this.type=e,this.args=r}};du(Bu,"Type",Li);var dn=class{constructor(e){this.arr=e}static reduce(e,r,i){return e.reduce((n,s,o)=>n.then(l=>r(l,s,o)),Promise.resolve(i))}static map(e,r){return Promise.all(e.map((i,n)=>r(i,n)))}static async filter(e,r){let i=[];return await dn.map(e,async(n,s)=>{await r(n,s)&&i.push(n)}),i}static async flatMap(e,r){return(await Promise.all(e.map((i,n)=>r(i,n)))).flatMap(i=>i)}static async forEach(e,r){await dn.map(e,r)}tasks=[];map(e){return this.tasks.push(new Bu(Li.Map,[e])),this}flatMap(e){return this.tasks.push(new Bu(Li.FlatMap,[e])),this}filter(e){return this.tasks.push(new Bu(Li.Filter,[e])),this}async forEach(e){this.tasks.push(new Bu(Li.Map,[e])),await this}then(e,r){let i=this.value();return i.then(n=>(e&&e(i),n)).catch(n=>{throw r&&r(n),n}),i}async value(){let e=this.arr;for(let r of this.tasks)switch(r.type){case Li.Filter:e=await dn.filter(e,r.args[0]);break;case Li.Map:e=await dn.map(e,r.args[0]);break;case Li.FlatMap:e=await dn.flatMap(e,r.args[0]);break;case Li.ForEach:await dn.forEach(e,r.args[0]);return;case Li.Reduce:return await dn.reduce(e,r.args[0],r.args[1])}return e}};async function _s(t=process.cwd()){return await(0,Vc.pathExists)(ju.resolve(t,"./package.json"))}async function wo(t=process.cwd()){return await _s(t)?!!(await(0,Vc.readJson)(ju.resolve(t,"./package.json"))).workspaces:!1}async function tp(t=process.cwd()){return!await _s(t)||await wo(t)?!1:await wb(ju.dirname(t),wo)!==null}async function rp(t,e=process.cwd()){if(!await _s(e))return!1;let r=await(0,Vc.readJson)(ju.resolve(e,"./package.json")),i=new Set(Object.keys({...r.dependencies,...r.devDependencies}));return t.every(n=>i.has(n))}var LP=Se(require("path")),Hu=class{};du(Hu,"RootPath",LP.default.resolve(__dirname,".."));async function Eo(t,e){let r=oa.default.resolve(t,"./package.json");await(0,bi.writeJson)(r,(0,Eb.merge)(await(0,bi.readJson)(r),e),{spaces:2})}var Kc=class{constructor(e){this.base=e}syncConfigs=[{type:"workspaces",handler:async()=>{let e=oa.default.resolve(this.base,"./package.json"),r=oa.default.resolve(this.base,"lerna.json"),i=await(0,bi.readJson)(e),n=await(0,bi.readJson)(r);n.packages=i.workspaces,await(0,bi.writeJson)(r,n,{spaces:2})},when:wo},{type:"prettier",handler:async()=>{await Eo(this.base,{prettier:"@liuli-util/prettier-standard-config",devDependencies:{prettier:"^2.3.2","@liuli-util/prettier-standard-config":`^${PP.version}`}})},async when(){return await _s()&&(await wo()||!await tp())}},{type:"commitlint",handler:async()=>{await Eo(this.base,{"simple-git-hooks":{"commit-msg":"yarn commitlint --edit $1"},commitlint:{extends:["@liuli-util/commitlint-standard-config"]},devDependencies:{"@commitlint/cli":"^12.1.4","@liuli-util/commitlint-standard-config":`^${IP.version}`}})},async when(){return await _s()&&(await wo()||!await tp())}},{type:"gitignore",handler:async()=>{let e=oa.default.resolve(this.base,".gitignore");await(0,bi.writeFile)(e,await(0,bi.readFile)(oa.default.resolve(Hu.RootPath,"_gitignore"),"utf-8"))}},{type:"eslint-ts",handler:async()=>{await Eo(this.base,{eslintConfig:{extends:["@liuli-util/eslint-config-ts"]},devDependencies:{"@liuli-util/eslint-config-ts":`^${$P.version}`}})},async when(){return await _s()&&!await rp(["vue"])&&!await rp(["react"])}},{type:"eslint-react-ts",handler:async()=>{await Eo(this.base,{eslintConfig:{extends:["@liuli-util/eslint-config-react-ts"]},devDependencies:{"@liuli-util/eslint-config-react-ts":`^${FP.version}`}})},async when(){return await _s()&&await rp(["react"])}},{type:"jest",handler:async()=>{await Eo(this.base,{jest:{preset:"ts-jest",testMatch:["<rootDir>/src/**/__tests__/*.test.ts"]},devDependencies:{jest:"^27.4.3","ts-jest":"^27.0.7"}})}},{type:"simplehooks",handler:async()=>{let e=await(0,bi.readJson)(oa.default.resolve(this.base,"./package.json")),r={};e.prettier&&(r["src/**/*.{ts,tsx,js,jsx,css,vue}"]=["prettier --write","git add"]),e.eslintConfig&&(r["src/**/*.{ts,tsx,js,jsx}"]=["eslint --fix --quiet","git add"]);let i={scripts:{postinstall:NP(e?.scripts?.postinstall,"npx simple-git-hooks")},"simple-git-hooks":{"pre-commit":"yarn lint-staged"},"lint-staged":r,devDependencies:{"simple-git-hooks":"^2.5.1","lint-staged":"^11.1.1"}};e.commitlint&&(i=(0,Eb.merge)(i,{"simple-git-hooks":{"commit-msg":"yarn commitlint --edit $1"}})),await Eo(this.base,i)},async when(){return await _s()&&(await wo()||!await tp())}}];async sync(){let{sync:e}=await(0,bi.readJson)(oa.default.resolve(this.base,"package.json"));if(!e)return;let r=this.syncConfigs.filter(i=>e.includes(i.type));for(let i of r)await i.handler()}async init(){let e=MP(await dn.filter(this.syncConfigs,async i=>i.when?await i.when():!0),i=>i.type),r=await(0,BP.prompt)({type:"multiselect",message:"\u8BF7\u9009\u62E9\u9700\u8981\u540C\u6B65\u7684\u914D\u7F6E\u9879",name:"sync",choices:[...e.keys()]});await Eo(this.base,{sync:r.sync})}};var ko;(function(r){r.Cli="cli",r.Lib="lib"})(ko||(ko={}));var Uu=class{async generate(e){if(!e.dest){let{dest:n}=await(0,ip.prompt)({name:"dest",type:"input",message:"\u8BF7\u8F93\u5165\u9879\u76EE\u540D",validate(s){return s.trim()!==""}});e.dest=Rn.default.resolve(n)}if(!e.template){let{template:n}=await(0,ip.prompt)({name:"template",type:"select",message:"\u8BF7\u9009\u62E9\u6A21\u677F",choices:[ko.Lib,ko.Cli]});e.template=n}let r=Rn.default.resolve(Hu.RootPath,`templates/${e.template}`),i=Rn.default.resolve(e.dest);if(await(0,pr.pathExists)(i)&&(await(0,pr.readdir)(i)).some(n=>(0,pr.pathExists)(n))){let{override:n}=await(0,ip.prompt)({name:"override",type:"confirm",initial:!0,message:"\u76EE\u6807\u4F4D\u7F6E\u4E0D\u662F\u4E00\u4E2A\u7A7A\u76EE\u5F55\uFF0C\u786E\u8BA4\u8981\u8986\u76D6\u4E48\uFF1F"});if(!n)return}if(await(0,pr.remove)(i),await(0,pr.copy)(r,i,{filter:n=>Rn.default.basename(n)!=="node_modules"}),await Uu.updatePackageJSON(i),await Uu.updateReadme(i),e.initSync){let n=new Kc(Rn.default.resolve(e.dest));await n.init(),await n.sync()}}static async updatePackageJSON(e){let r=Rn.default.resolve(e,"package.json");await(0,pr.writeJSON)(r,{...await(0,pr.readJSON)(r),name:Rn.default.basename(e)},{spaces:2})}static async updateReadme(e){let r=Rn.default.resolve(e,"README.md"),i=await(0,pr.readFile)(r,"utf-8");i=i.replace("template",Rn.default.basename(e)),await(0,pr.writeFile)(r,i)}};var IY=new Uu,jP=new np.Option("--template [template]","\u6A21\u677F\u7C7B\u578B").choices([ko.Lib,ko.Cli]);jP.required=!0;var HP=new np.Command().command("generate [dest]").description("\u751F\u6210\u4E00\u4E9B\u521D\u59CB\u9879\u76EE").addOption(jP).action(async(t,e)=>{await IY.generate({...e,dest:t,initSync:!0})});var kb=Se(pu());var Db=new Kc(process.cwd()),UP=new kb.Command("sync").description("\u540C\u6B65\u914D\u7F6E").action(async()=>{await Db.sync()}).addCommand(new kb.Command("init").description("\u521D\u59CB\u5316\u540C\u6B65\u914D\u7F6E").action(async()=>{await Db.init(),await Db.sync()}));var nL=Se(pu());var sp=class{static wrapOnEvent(e){let r={},i=new Promise(async(n,s)=>{await new Promise(o=>setTimeout(o,0));try{n(await e(r))}catch(o){s(o)}});return Reflect.set(i,"on",(n,s)=>(r[n]=s,i)),i}};var X3=Se(C$()),Pa=Se(require("path")),eL=Se(require("os")),$a=Se(Ys()),tL=Se(pM());var Ho=Se(require("os")),Dl=Se(require("path"));function mM(t){let e=process.env.XDG_CACHE_HOME||Dl.join(Ho.homedir(),".cache");return Dl.join(e,t)}function qne(t){return Dl.join(Ho.homedir(),"Library","Caches",t)}function Lne(t){let e=process.env.LOCALAPPDATA||Dl.join(Ho.homedir(),"AppData","Local");return Dl.join(e,t,"Cache")}var Bne=function(){switch(Ho.platform()){case"darwin":return qne;case"win32":return Lne;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return mM;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${Ho.platform()}" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`),mM}}();function gM(t){if(t.length===0)throw new Error("id cannot be empty");if(/[^0-9a-zA-Z-]/.test(t))throw new Error("id cannot contain special characters");return Bne(t)}var mg=Se(require("perf_hooks"));var J3=Se(wE()),Q3=Se(q3()),Z3=Se(Y3());function xE(t,e){let r=new J3.default({allErrors:!0,messages:!1});(0,Z3.default)(r);let i=r.validate(t,e);return i||Q3.default.zh(r.errors),[i,r.errorsText()]}var jf;(function(r){r.GhPages="gh-pages",r.Sftp="sftp"})(jf||(jf={}));var OE=class{constructor(e){this.options=e}deploy(){return sp.wrapOnEvent(async()=>{let e=new X3.default,r=await(0,$a.readFile)(Pa.resolve(eL.userInfo().homedir,".ssh/id_rsa"),"utf-8");await e.connect({...this.options.sshConfig,privateKey:r}),await e.mkdir(this.options.dest,!0),await e.uploadDir(Pa.resolve(this.options.cwd,this.options.dist),this.options.dest),await e.end()})}validate(){return xE({type:"object",properties:{debug:{type:"boolean"},cwd:{type:"string"},dist:{type:"string"},dest:{type:"string"},sshConfig:{type:"object",properties:{host:{type:"string"},username:{type:"string"}}}},required:["cwd","dist","dest","sshConfig","debug"]},this.options)}},RE=class{constructor(e){this.options=e}deploy(){let e=this.options.remote??"origin",r=this.options.branch??"gh-pages";return sp.wrapOnEvent(async i=>{let n=new mg.PerformanceObserver(g=>{this.options.debug&&console.log(g.getEntries())});n.observe({type:"mark"});function s(g){mg.performance.mark(g),i.process(g)}s("\u5F00\u59CB\u63A8\u9001");let o=(0,tL.default)(this.options.cwd);if(!this.options.repo){s("\u83B7\u53D6\u5F53\u524D\u9879\u76EE\u7684\u8FDC\u7AEF\u914D\u7F6E");let g=(await o.getRemotes(!0)).find(b=>b.name===e);if(!g)throw new Error("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F\u4E00\u4E2A git \u9879\u76EE\u6216\u6CA1\u6709\u914D\u7F6E git remote");this.options.repo=g.refs.fetch}let l=Pa.resolve(gM("liuli-cli"),"gh-pages"),c=this.options.repo.replace(new RegExp("[/:]","g"),"_"),h=Pa.resolve(l,c),d=!1;if(await(0,$a.pathExists)(h))await o.cwd(h),s("\u66F4\u65B0\u9879\u76EE"),await o.pull(e,r,{"--allow-unrelated-histories":null});else{s("\u514B\u9686\u9879\u76EE");try{await o.clone(this.options.repo,h,{"--branch":r,"--single-branch":null,"--depth":1})}catch{s(`\u672A\u627E\u5230 ${r} \u5206\u652F\uFF0C\u5C1D\u8BD5\u81EA\u52A8\u521B\u5EFA`),await o.clone(this.options.repo,h,{"--single-branch":null,"--depth":1}),await o.cwd(h),await o.checkout({"--orphan":r}),d=!0}}s("\u590D\u5236\u6587\u4EF6");let m=Pa.join(h,this.options.dest??"./");await(0,$a.mkdirp)(m),await(0,$a.copy)(Pa.resolve(this.options.cwd,this.options.dist),m),s("\u63D0\u4EA4\u6240\u6709\u6587\u4EF6"),await o.cwd(h),await o.add("-A"),(await o.status()).files.length===0?s("\u6CA1\u6709\u4EFB\u4F55\u63D0\u4EA4\uFF0C\u8DF3\u8FC7\u63D0\u4EA4"):await o.commit("Updates gh-pages by liuli-cli"),s("\u63A8\u9001\u5230\u8FDC\u7AEF"),await o.push(e,r),s("\u5B8C\u6210\u63A8\u9001"),n.disconnect()})}validate(){return xE({type:"object",properties:{debug:{type:"boolean"},cwd:{type:"string"},dist:{type:"string"},dest:{type:"string",nullable:!0},repo:{type:"string",nullable:!0},remote:{type:"string",nullable:!0},branch:{type:"string",nullable:!0}},required:["debug","cwd","dist"]},this.options)}};var rL=Se(require("path")),gg=Se(Ys());async function Yle(t){let e=rL.resolve(t,"package.json");if(await(0,gg.pathExists)(e)){let r=(await(0,gg.readJson)(e)).deploy;if(!r)throw new Error("\u627E\u4E0D\u5230\u914D\u7F6E");return r}throw new Error("\u627E\u4E0D\u5230\u914D\u7F6E")}async function iL(t){let e=await Yle(t.cwd),r,i={...t,...e};switch(e.type){case jf.Sftp:r=new OE(i);break;case jf.GhPages:r=new RE(i);break;default:throw new Error("\u672A\u77E5\u7684\u90E8\u7F72\u9884\u8BBE\u7C7B\u578B "+e.type)}let[n,s]=r.validate();if(!n)throw new Error(s);await r.deploy().on("process",o=>{console.info(o)})}var sL=Se(require("path")),aL=new nL.Command("deploy").description("\u90E8\u7F72\u9879\u76EE\u5230\u8FDC\u7AEF").option("--debug","\u662F\u5426\u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F").action(t=>iL({cwd:sL.resolve(),debug:!!t.debug}));new oL.Command().addCommand(AR).addCommand(HP).addCommand(UP).addCommand(aL).parse();
125
125
  /*!
126
126
  * fill-range <https://github.com/jonschlinkert/fill-range>
127
127
  *