@liuli-util/cli 3.19.1 → 3.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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
  *