create-abi
Version:
Interactive CLI for create Abi.js projects.
3 lines (2 loc) • 8.15 kB
JavaScript
"use strict";var L=Object.create;var y=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var H=(e,n)=>{for(var t in n)y(e,t,{get:n[t],enumerable:!0})},E=(e,n,t,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of G(n))!Y.call(e,i)&&i!==t&&y(e,i,{get:()=>n[i],enumerable:!(s=z(n,i))||s.enumerable});return e};var d=(e,n,t)=>(t=e!=null?L(F(e)):{},E(n||!e||!e.__esModule?y(t,"default",{value:e,enumerable:!0}):t,e)),q=e=>E(y({},"__esModule",{value:!0}),e);var un={};H(un,{Command:()=>x,Program:()=>k});module.exports=q(un);var D=d(require("yargs"),1),_=require("yargs/helpers");var a=require("@clack/prompts"),r=require("kleur/colors"),o=require("@clack/prompts");function K(){return process.platform!=="win32"?process.env.TERM!=="linux":!!process.env.CI||!!process.env.WT_SESSION||!!process.env.TERMINUS_SUBLIME||process.env.ConEmuTask==="{cmd::Cmder}"||process.env.TERM_PROGRAM==="Terminus-Sublime"||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"||process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var p=K(),b={success:p?"\u2705":"[OK]",error:p?"\u274C":"[ERROR]",info:p?"\u2139\uFE0F":"[INFO]",warning:p?"\u26A0\uFE0F":"[WARN]",debug:p?"\u{1F41E}":"[DEBUG]",verbose:p?"\u{1F50D}":"[DETAILS]",line:p?"\u2500\u2500":"----"},g={red:r.red,green:r.green,blue:r.blue,yellow:r.yellow,magenta:r.magenta,cyan:r.cyan,gray:r.gray,grey:r.grey,white:r.white,black:r.black},c={red:r.bgRed,green:r.bgGreen,blue:r.bgBlue,yellow:r.bgYellow,magenta:r.bgMagenta,cyan:r.bgCyan,white:r.bgWhite,black:r.bgBlack},l={reset:r.reset,bold:r.bold,dim:r.dim,italic:r.italic,underline:r.underline,inverse:r.inverse,hidden:r.hidden,strikethrough:r.strikethrough};function Z(e){return(0,r.green)(`${b.success} ${e}`)}function N(e){return(0,r.red)(`${b.error} ${e}`)}function Q(e){return(0,r.blue)(`${b.info} ${e}`)}function X(e){return(0,r.yellow)(`${b.warning} ${e}`)}function R(e){a.log.info(Q(e))}function $(e){a.log.success(Z(e))}function B(e){a.log.step(e)}function M(e){a.log.warn(X(e))}function U(e){a.log.error(N(e))}function h(e){console.error(`${I()}${N(e)}${I()}`),process.exit(1)}function I(e=1){return`
`.repeat(e)}async function v(e,n,t){let s=t&&await(0,a.text)({message:e,placeholder:n,defaultValue:n})||n;return s!==n&&m(s),s}async function T(e,n,t,s){let i=s&&await(0,a.select)({message:e,options:n,initialValue:t})||t;return i!==t&&m(i),i}async function C(e,n,t,s,i){let u=i===!0&&!n?!1:s===!0&&n===void 0?!0:t?await(0,a.confirm)({message:e,initialValue:n}):n;return u!==n&&S(u),u}function m(e,n){V(e,n?t=>P(t)&&n(t):P,"string")}function S(e){V(e,tn,"boolean")}function V(e,n,t){nn(e,n,t,typeof e)}function nn(e,n,t,s){en(e)&&h("Operation canceled."),n(e)||h(`Invalid input${t?`: ${t} expected`:""}${s?`, ${s} provided`:""}.`)}function P(e){return typeof e=="string"||e instanceof String}function tn(e){return typeof e=="boolean"}function en(e){return(0,a.isCancel)(e)||typeof e=="symbol"}var w=d(require("fs"),1),rn=d(require("os"),1),f=d(require("path"),1),A=require("url"),O=require("fs-extra/esm"),sn=d(require("panam/pm"),1),gn={},on=an(),pn=f.default.dirname(on);function an(){let t=new Error().stack?.match(/^Error\s+at[^\r\n]+\s+at *(?:[^\r\n(]+\((.+?)(?::\d+:\d+)?\)|(.+?)(?::\d+:\d+)?) *([\r\n]|$)/),s=t?.[1]||t?.[2];return s?.startsWith("file://")?(0,A.fileURLToPath)(s):s||(0,A.fileURLToPath)(gn.url)}function J(){return!!(process.env.CI||process.env.GITHUB_ACTIONS)}function W(){return!1}var x=class{constructor(n,t){this.signature=n;this.description=t}arguments=new Map;options=new Map;examples=new Set;#n="";setArgument(n,t){return this.arguments.set(n,t),this}getArgument(n){return this.arguments.get(n)}hasArgument(n){return this.arguments.has(n)}argument(n,t){return t?this.setArgument(n,t):this.getArgument(n)}setOption(n,t){return this.options.set(n,t),this}getOption(n){return this.options.get(n)}hasOption(n){return this.options.has(n)}option(n,t){return t?this.setOption(n,t):this.getOption(n)}addExample(n,t){return this.examples.add({command:n,description:t}),this}getExample(n){return this.examples.values().find(t=>t.command===n||t.description===n)}example(n,t){return t?this.addExample(n,t):this.getExample(n)}getExamples(){return this.examples.values().toArray()}setUsage(n){return this.#n=n,this}getUsage(){return this.#n}usage(n){return n?this.setUsage(n):this.getUsage()}},k=class{constructor(n,t){this.name=n;this.version=t;this.configure()}#n=!1;#r=!1;#t=!1;#e=!1;#s={};commands=new Set;aliases=new Set;interactions=new Map;configure(){}addCommand(n,t){let s=new x(n,t);return this.#t&&s.option("yes",{alias:"y",type:"boolean",desc:"Skip all prompts by accepting defaults"}),this.#e&&s.option("no",{alias:"n",type:"boolean",desc:"Skip all prompts by declining defaults"}),this.commands.add(s),s}getCommand(n){return this.commands.values().find(t=>t.signature===n||t.description===n)}command(n,t){return t?this.addCommand(n,t):this.getCommand(n)}getCommands(){return this.commands.values().toArray()}strict(n=!0){return this.#n=n,this}conflict(n,t){return this.#s[n]=t,this}interactive(n=!0){return this.#r=n,this}useYes(n=!0){return this.#t=n,this}useNo(n=!0){return this.#e=n,this}addAlias(n,t){return this.aliases.add({shortName:n,longName:t}),this}getAlias(n){return this.aliases.values().find(t=>t.shortName===n||t.longName===n)}alias(n,t){return t?this.addAlias(n,t):this.getAlias(n)}getAliases(){return this.aliases.values().toArray()}async run(n=process.argv){let t=(0,_.hideBin)(n),s=this.parse(t),i;return this.isIt()?i=await this.interact(s):i=this.validate(s),await this.execute(i)}isIt(){return this.#r&&!(W()||J())}intercept(n,t){return this.setInteraction(n,t)}async interact(n){return this.validate(n)}parse(n){let t=(0,D.default)(n);t.scriptName(this.name),this.#n&&t.strict(),this.#t&&this.#e&&t.conflicts("yes","no"),this.#i(t),t.version(this.version);for(let[i,u]of Object.entries(this.#s))t.conflicts(i,u);for(let{shortName:i,longName:u}of this.aliases)t.alias(i,u);return t.argv}#i(n){for(let t of this.commands)this.#o(n,t)}#o(n,t){n.command(t.signature,t.description,s=>{this.#a(n,t.arguments),this.#u(n,t.options),this.#l(n,t.examples),s.usage(t.usage())})}#a(n,t){for(let[s,i]of t)this.#g(n,s,i)}#g(n,t,s){n.positional(t,s)}#u(n,t){for(let[s,i]of t)this.#c(n,s,i)}#c(n,t,s){n.option(t,s)}#l(n,t){for(let s of t)this.#p(n,s.command,s.description)}#p(n,t,s){n.example(t,s)}getInteraction(n){for(let t of this.interactions.keys())if(n.includes(t)||RegExp(t).test(n))return this.interactions.get(t)}setInteraction(n,t){return this.interactions.set(n,t),this}async scanBoolean(n,t,s){let i=this.getInteraction(t);return i!==void 0?(S(i),i):s!==void 0?C(t,s,this.isIt(),this.#t&&n.yes,this.#e&&n.no):C(t,void 0,this.isIt(),this.#t&&n.yes,this.#e&&n.no)}async scanString(n,t){let s=this.getInteraction(n);return s!==void 0?(m(s),s):t?v(n,t,this.isIt()):v(n,void 0,this.isIt())}async scanChoice(n,t,s){let i=this.getInteraction(n);return i!==void 0?(m(i,u=>t.find(j=>j.value===u)!==void 0),i):s?T(n,t,s,this.isIt()):T(n,t,void 0,this.isIt())}panic(n){h(n)}cancel(n){(0,o.cancel)(n)}intro(n){(0,o.intro)(n)}outro(n){(0,o.outro)(n)}note(n,t){(0,o.note)(n,t)}spinner(){return(0,o.spinner)()}info(n){R(n)}warn(n){M(n)}error(n){U(n)}step(n){B(n)}success(n){$(n)}red(n){return g.red(n)}green(n){return g.green(n)}blue(n){return g.blue(n)}yellow(n){return g.yellow(n)}magenta(n){return g.magenta(n)}cyan(n){return g.cyan(n)}gray(n){return g.gray(n)}grey(n){return g.grey(n)}white(n){return g.white(n)}black(n){return g.black(n)}bgRed(n){return c.red(n)}bgGreen(n){return c.green(n)}bgBlue(n){return c.blue(n)}bgYellow(n){return c.yellow(n)}bgMagenta(n){return c.magenta(n)}bgCyan(n){return c.cyan(n)}bgWhite(n){return c.white(n)}bgBlack(n){return c.black(n)}reset(n){return l.reset(n)}dim(n){return l.dim(n)}bold(n){return l.bold(n)}italic(n){return l.italic(n)}underline(n){return l.underline(n)}inverse(n){return l.inverse(n)}hidden(n){return l.hidden(n)}strikethrough(n){return l.strikethrough(n)}};0&&(module.exports={Command,Program});