@libria/scaffold 0.2.0 → 0.2.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/.clean-publish.hash +1 -1
- package/dist/cli/cli.mjs +444 -3
- package/dist/cli/cli.mjs.map +1 -1
- package/dist/cli/index.cjs +242 -2
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +39 -8
- package/dist/cli/index.d.mts +39 -8
- package/dist/cli/index.mjs +198 -2
- package/dist/cli/index.mjs.map +1 -1
- package/package.json +7 -2
- package/dist/templates/angular/index.cjs +0 -20
- package/dist/templates/angular/index.cjs.map +0 -1
- package/dist/templates/angular/index.d.cts +0 -31
- package/dist/templates/angular/index.d.mts +0 -31
- package/dist/templates/angular/index.mjs +0 -20
- package/dist/templates/angular/index.mjs.map +0 -1
- package/dist/templates/angular/plugin.json +0 -5
- package/dist/templates/ts-lib/files/.prettierrc +0 -8
- package/dist/templates/ts-lib/files/LICENSE +0 -21
- package/dist/templates/ts-lib/files/README.md +0 -58
- package/dist/templates/ts-lib/files/eslint.config.mjs +0 -106
- package/dist/templates/ts-lib/files/package.json +0 -61
- package/dist/templates/ts-lib/files/src/index.ts +0 -31
- package/dist/templates/ts-lib/files/tests/my.test.ts +0 -44
- package/dist/templates/ts-lib/files/tsconfig.json +0 -22
- package/dist/templates/ts-lib/files/tsconfig.test.json +0 -8
- package/dist/templates/ts-lib/files/tsdown.config.ts +0 -10
- package/dist/templates/ts-lib/files/vitest.config.ts +0 -12
- package/dist/templates/ts-lib/index.cjs +0 -19
- package/dist/templates/ts-lib/index.cjs.map +0 -1
- package/dist/templates/ts-lib/index.d.cts +0 -29
- package/dist/templates/ts-lib/index.d.mts +0 -29
- package/dist/templates/ts-lib/index.mjs +0 -19
- package/dist/templates/ts-lib/index.mjs.map +0 -1
- package/dist/templates/ts-lib/plugin.json +0 -5
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{createRequire as e}from"node:module";import t from"path";import{fileURLToPath as n}from"url";import{exec as r}from"child_process";import{promisify as i}from"util";import a from"fs-extra";import{definePlugin as o}from"@libria/plugin-loader";import{AsyncLocalStorage as s,AsyncResource as c}from"node:async_hooks";import l from"node:process";import*as u from"node:readline";import{stripVTControlCharacters as d}from"node:util";var f=Object.create,p=Object.defineProperty,m=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyNames,g=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,v=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ee=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=h(t),a=0,o=i.length,s;a<o;a++)s=i[a],!_.call(e,s)&&s!==n&&p(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=m(t,s))||r.enumerable});return e},y=(e,t,n)=>(n=e==null?{}:f(g(e)),ee(t||!e||!e.__esModule?p(n,`default`,{value:e,enumerable:!0}):n,e)),b=e(import.meta.url);const te=e=>e.name===`backspace`,x=e=>e.name===`tab`,S=e=>e.name===`enter`||e.name===`return`;var ne=class extends Error{name=`AbortPromptError`;message=`Prompt was aborted`;constructor(e){super(),this.cause=e?.cause}},re=class extends Error{name=`CancelPromptError`;message=`Prompt was canceled`},C=class extends Error{name=`ExitPromptError`},ie=class extends Error{name=`HookError`},ae=class extends Error{name=`ValidationError`};const w=new s;function oe(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function se(e,t){let n=oe(e);return w.run(n,()=>{function e(e){n.handleChange=()=>{n.index=0,e()},n.handleChange()}return t(e)})}function T(){let e=w.getStore();if(!e)throw new ie(`[Inquirer] Hook functions can only be called from within a prompt`);return e}function E(){return T().rl}function D(e){return c.bind((...t)=>{let n=T(),r=!1,i=n.handleChange;n.handleChange=()=>{r=!0};let a=e(...t);return r&&i(),n.handleChange=i,a})}function O(e){let t=T(),{index:n}=t,r=e({get(){return t.hooks[n]},set(e){t.hooks[n]=e},initialized:n in t.hooks});return t.index++,r}function ce(){T().handleChange()}const k={queue(e){let t=T(),{index:n}=t;t.hooksEffect.push(()=>{t.hooksCleanup[n]?.();let r=e(E());if(r!=null&&typeof r!=`function`)throw new ae(`useEffect return value must be a cleanup function or nothing.`);t.hooksCleanup[n]=r})},run(){let e=T();D(()=>{e.hooksEffect.forEach(e=>{e()}),e.hooksEffect.length=0})()},clearAll(){let e=T();e.hooksCleanup.forEach(e=>{e?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function A(e){return O(t=>{let n=c.bind(function(e){t.get()!==e&&(t.set(e),ce())});if(t.initialized)return[t.get(),n];let r=typeof e==`function`?e():e;return t.set(r),[r,n]})}function j(e,t){O(n=>{let r=n.get();(!Array.isArray(r)||t.some((e,t)=>!Object.is(e,r[t])))&&k.queue(e),n.set(t)})}var le=v(((e,t)=>{let n=b(`node:tty`)?.WriteStream?.prototype?.hasColors?.()??!1,r=(e,t)=>{if(!n)return e=>e;let r=`\u001B[${e}m`,i=`\u001B[${t}m`;return e=>{let n=e+``,a=n.indexOf(i);if(a===-1)return r+n+i;let o=r,s=0,c=(t===22?i:``)+r;for(;a!==-1;)o+=n.slice(s,a)+c,s=a+i.length,a=n.indexOf(i,s);return o+=n.slice(s)+i,o}},i={};i.reset=r(0,0),i.bold=r(1,22),i.dim=r(2,22),i.italic=r(3,23),i.underline=r(4,24),i.overline=r(53,55),i.inverse=r(7,27),i.hidden=r(8,28),i.strikethrough=r(9,29),i.black=r(30,39),i.red=r(31,39),i.green=r(32,39),i.yellow=r(33,39),i.blue=r(34,39),i.magenta=r(35,39),i.cyan=r(36,39),i.white=r(37,39),i.gray=r(90,39),i.bgBlack=r(40,49),i.bgRed=r(41,49),i.bgGreen=r(42,49),i.bgYellow=r(43,49),i.bgBlue=r(44,49),i.bgMagenta=r(45,49),i.bgCyan=r(46,49),i.bgWhite=r(47,49),i.bgGray=r(100,49),i.redBright=r(91,39),i.greenBright=r(92,39),i.yellowBright=r(93,39),i.blueBright=r(94,39),i.magentaBright=r(95,39),i.cyanBright=r(96,39),i.whiteBright=r(97,39),i.bgRedBright=r(101,49),i.bgGreenBright=r(102,49),i.bgYellowBright=r(103,49),i.bgBlueBright=r(104,49),i.bgMagentaBright=r(105,49),i.bgCyanBright=r(106,49),i.bgWhiteBright=r(107,49),t.exports=i}));function ue(){return l.platform===`win32`?!!l.env.WT_SESSION||!!l.env.TERMINUS_SUBLIME||l.env.ConEmuTask===`{cmd::Cmder}`||l.env.TERM_PROGRAM===`Terminus-Sublime`||l.env.TERM_PROGRAM===`vscode`||l.env.TERM===`xterm-256color`||l.env.TERM===`alacritty`||l.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:l.env.TERM!==`linux`}const M={circleQuestionMark:`(?)`,questionMarkPrefix:`(?)`,square:`█`,squareDarkShade:`▓`,squareMediumShade:`▒`,squareLightShade:`░`,squareTop:`▀`,squareBottom:`▄`,squareLeft:`▌`,squareRight:`▐`,squareCenter:`■`,bullet:`●`,dot:`․`,ellipsis:`…`,pointerSmall:`›`,triangleUp:`▲`,triangleUpSmall:`▴`,triangleDown:`▼`,triangleDownSmall:`▾`,triangleLeftSmall:`◂`,triangleRightSmall:`▸`,home:`⌂`,heart:`♥`,musicNote:`♪`,musicNoteBeamed:`♫`,arrowUp:`↑`,arrowDown:`↓`,arrowLeft:`←`,arrowRight:`→`,arrowLeftRight:`↔`,arrowUpDown:`↕`,almostEqual:`≈`,notEqual:`≠`,lessOrEqual:`≤`,greaterOrEqual:`≥`,identical:`≡`,infinity:`∞`,subscriptZero:`₀`,subscriptOne:`₁`,subscriptTwo:`₂`,subscriptThree:`₃`,subscriptFour:`₄`,subscriptFive:`₅`,subscriptSix:`₆`,subscriptSeven:`₇`,subscriptEight:`₈`,subscriptNine:`₉`,oneHalf:`½`,oneThird:`⅓`,oneQuarter:`¼`,oneFifth:`⅕`,oneSixth:`⅙`,oneEighth:`⅛`,twoThirds:`⅔`,twoFifths:`⅖`,threeQuarters:`¾`,threeFifths:`⅗`,threeEighths:`⅜`,fourFifths:`⅘`,fiveSixths:`⅚`,fiveEighths:`⅝`,sevenEighths:`⅞`,line:`─`,lineBold:`━`,lineDouble:`═`,lineDashed0:`┄`,lineDashed1:`┅`,lineDashed2:`┈`,lineDashed3:`┉`,lineDashed4:`╌`,lineDashed5:`╍`,lineDashed6:`╴`,lineDashed7:`╶`,lineDashed8:`╸`,lineDashed9:`╺`,lineDashed10:`╼`,lineDashed11:`╾`,lineDashed12:`−`,lineDashed13:`–`,lineDashed14:`‐`,lineDashed15:`⁃`,lineVertical:`│`,lineVerticalBold:`┃`,lineVerticalDouble:`║`,lineVerticalDashed0:`┆`,lineVerticalDashed1:`┇`,lineVerticalDashed2:`┊`,lineVerticalDashed3:`┋`,lineVerticalDashed4:`╎`,lineVerticalDashed5:`╏`,lineVerticalDashed6:`╵`,lineVerticalDashed7:`╷`,lineVerticalDashed8:`╹`,lineVerticalDashed9:`╻`,lineVerticalDashed10:`╽`,lineVerticalDashed11:`╿`,lineDownLeft:`┐`,lineDownLeftArc:`╮`,lineDownBoldLeftBold:`┓`,lineDownBoldLeft:`┒`,lineDownLeftBold:`┑`,lineDownDoubleLeftDouble:`╗`,lineDownDoubleLeft:`╖`,lineDownLeftDouble:`╕`,lineDownRight:`┌`,lineDownRightArc:`╭`,lineDownBoldRightBold:`┏`,lineDownBoldRight:`┎`,lineDownRightBold:`┍`,lineDownDoubleRightDouble:`╔`,lineDownDoubleRight:`╓`,lineDownRightDouble:`╒`,lineUpLeft:`┘`,lineUpLeftArc:`╯`,lineUpBoldLeftBold:`┛`,lineUpBoldLeft:`┚`,lineUpLeftBold:`┙`,lineUpDoubleLeftDouble:`╝`,lineUpDoubleLeft:`╜`,lineUpLeftDouble:`╛`,lineUpRight:`└`,lineUpRightArc:`╰`,lineUpBoldRightBold:`┗`,lineUpBoldRight:`┖`,lineUpRightBold:`┕`,lineUpDoubleRightDouble:`╚`,lineUpDoubleRight:`╙`,lineUpRightDouble:`╘`,lineUpDownLeft:`┤`,lineUpBoldDownBoldLeftBold:`┫`,lineUpBoldDownBoldLeft:`┨`,lineUpDownLeftBold:`┥`,lineUpBoldDownLeftBold:`┩`,lineUpDownBoldLeftBold:`┪`,lineUpDownBoldLeft:`┧`,lineUpBoldDownLeft:`┦`,lineUpDoubleDownDoubleLeftDouble:`╣`,lineUpDoubleDownDoubleLeft:`╢`,lineUpDownLeftDouble:`╡`,lineUpDownRight:`├`,lineUpBoldDownBoldRightBold:`┣`,lineUpBoldDownBoldRight:`┠`,lineUpDownRightBold:`┝`,lineUpBoldDownRightBold:`┡`,lineUpDownBoldRightBold:`┢`,lineUpDownBoldRight:`┟`,lineUpBoldDownRight:`┞`,lineUpDoubleDownDoubleRightDouble:`╠`,lineUpDoubleDownDoubleRight:`╟`,lineUpDownRightDouble:`╞`,lineDownLeftRight:`┬`,lineDownBoldLeftBoldRightBold:`┳`,lineDownLeftBoldRightBold:`┯`,lineDownBoldLeftRight:`┰`,lineDownBoldLeftBoldRight:`┱`,lineDownBoldLeftRightBold:`┲`,lineDownLeftRightBold:`┮`,lineDownLeftBoldRight:`┭`,lineDownDoubleLeftDoubleRightDouble:`╦`,lineDownDoubleLeftRight:`╥`,lineDownLeftDoubleRightDouble:`╤`,lineUpLeftRight:`┴`,lineUpBoldLeftBoldRightBold:`┻`,lineUpLeftBoldRightBold:`┷`,lineUpBoldLeftRight:`┸`,lineUpBoldLeftBoldRight:`┹`,lineUpBoldLeftRightBold:`┺`,lineUpLeftRightBold:`┶`,lineUpLeftBoldRight:`┵`,lineUpDoubleLeftDoubleRightDouble:`╩`,lineUpDoubleLeftRight:`╨`,lineUpLeftDoubleRightDouble:`╧`,lineUpDownLeftRight:`┼`,lineUpBoldDownBoldLeftBoldRightBold:`╋`,lineUpDownBoldLeftBoldRightBold:`╈`,lineUpBoldDownLeftBoldRightBold:`╇`,lineUpBoldDownBoldLeftRightBold:`╊`,lineUpBoldDownBoldLeftBoldRight:`╉`,lineUpBoldDownLeftRight:`╀`,lineUpDownBoldLeftRight:`╁`,lineUpDownLeftBoldRight:`┽`,lineUpDownLeftRightBold:`┾`,lineUpBoldDownBoldLeftRight:`╂`,lineUpDownLeftBoldRightBold:`┿`,lineUpBoldDownLeftBoldRight:`╃`,lineUpBoldDownLeftRightBold:`╄`,lineUpDownBoldLeftBoldRight:`╅`,lineUpDownBoldLeftRightBold:`╆`,lineUpDoubleDownDoubleLeftDoubleRightDouble:`╬`,lineUpDoubleDownDoubleLeftRight:`╫`,lineUpDownLeftDoubleRightDouble:`╪`,lineCross:`╳`,lineBackslash:`╲`,lineSlash:`╱`},N={tick:`✔`,info:`ℹ`,warning:`⚠`,cross:`✘`,squareSmall:`◻`,squareSmallFilled:`◼`,circle:`◯`,circleFilled:`◉`,circleDotted:`◌`,circleDouble:`◎`,circleCircle:`ⓞ`,circleCross:`ⓧ`,circlePipe:`Ⓘ`,radioOn:`◉`,radioOff:`◯`,checkboxOn:`☒`,checkboxOff:`☐`,checkboxCircleOn:`ⓧ`,checkboxCircleOff:`Ⓘ`,pointer:`❯`,triangleUpOutline:`△`,triangleLeft:`◀`,triangleRight:`▶`,lozenge:`◆`,lozengeOutline:`◇`,hamburger:`☰`,smiley:`㋡`,mustache:`෴`,star:`★`,play:`▶`,nodejs:`⬢`,oneSeventh:`⅐`,oneNinth:`⅑`,oneTenth:`⅒`},de={tick:`√`,info:`i`,warning:`‼`,cross:`×`,squareSmall:`□`,squareSmallFilled:`■`,circle:`( )`,circleFilled:`(*)`,circleDotted:`( )`,circleDouble:`( )`,circleCircle:`(○)`,circleCross:`(×)`,circlePipe:`(│)`,radioOn:`(*)`,radioOff:`( )`,checkboxOn:`[×]`,checkboxOff:`[ ]`,checkboxCircleOn:`(×)`,checkboxCircleOff:`( )`,pointer:`>`,triangleUpOutline:`∆`,triangleLeft:`◄`,triangleRight:`►`,lozenge:`♦`,lozengeOutline:`◊`,hamburger:`≡`,smiley:`☺`,mustache:`┌─┐`,star:`✶`,play:`►`,nodejs:`♦`,oneSeventh:`1/7`,oneNinth:`1/9`,oneTenth:`1/10`},fe={...M,...N},pe={...M,...de};var me=ue()?fe:pe;Object.entries(N);var P=y(le(),1);const he={prefix:{idle:P.default.blue(`?`),done:P.default.green(me.tick)},spinner:{interval:80,frames:[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`].map(e=>P.default.yellow(e))},style:{answer:P.default.cyan,message:P.default.bold,error:e=>P.default.red(`> ${e}`),defaultAnswer:e=>P.default.dim(`(${e})`),help:P.default.dim,highlight:P.default.cyan,key:e=>P.default.cyan(P.default.bold(`<${e}>`))}};function F(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function I(...e){let t={};for(let n of e)for(let[e,r]of Object.entries(n)){let n=t[e];t[e]=F(n)&&F(r)?I(n,r):r}return t}function L(...e){return I(he,...e.filter(e=>e!=null))}function R({status:e=`idle`,theme:t}){let[n,r]=A(!1),[i,a]=A(0),{prefix:o,spinner:s}=L(t);return j(()=>{if(e===`loading`){let e,t=-1,n=setTimeout(()=>{r(!0),e=setInterval(()=>{t+=1,a(t%s.frames.length)},s.interval)},300);return()=>{clearTimeout(n),clearInterval(e)}}else r(!1)},[e]),n?s.frames[i]:typeof o==`string`?o:o[e===`loading`?`idle`:e]??o.idle}function ge(e){return A({current:e})[0]}function z(e){let t=ge(e);t.current=e,j(e=>{let n=!1,r=D((r,i)=>{n||t.current(i,e)});return e.input.on(`keypress`,r),()=>{n=!0,e.input.removeListener(`keypress`,r)}},[])}var _e=v(((e,t)=>{t.exports=r;function n(e){let t={defaultWidth:0,output:process.stdout,tty:b(`tty`)};return e?(Object.keys(t).forEach(function(n){e[n]||(e[n]=t[n])}),e):t}function r(e){let t=n(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let e=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(e)&&e!==0)return e}return t.defaultWidth}})),ve=v(((e,t)=>{t.exports=({onlyFirst:e=!1}={})=>{let t=[`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)`,`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))`].join(`|`);return new RegExp(t,e?void 0:`g`)}})),B=v(((e,t)=>{let n=ve();t.exports=e=>typeof e==`string`?e.replace(n(),``):e})),ye=v(((e,t)=>{let n=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);t.exports=n,t.exports.default=n})),be=v(((e,t)=>{t.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}})),xe=v(((e,t)=>{let n=B(),r=ye(),i=be(),a=e=>{if(typeof e!=`string`||e.length===0||(e=n(e),e.length===0))return 0;e=e.replace(i(),` `);let t=0;for(let n=0;n<e.length;n++){let i=e.codePointAt(n);i<=31||i>=127&&i<=159||i>=768&&i<=879||(i>65535&&n++,t+=r(i)?2:1)}return t};t.exports=a,t.exports.default=a})),Se=v(((e,t)=>{t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}})),V=v(((e,t)=>{let n=Se(),r={};for(let e of Object.keys(n))r[n[e]]=e;let i={rgb:{channels:3,labels:`rgb`},hsl:{channels:3,labels:`hsl`},hsv:{channels:3,labels:`hsv`},hwb:{channels:3,labels:`hwb`},cmyk:{channels:4,labels:`cmyk`},xyz:{channels:3,labels:`xyz`},lab:{channels:3,labels:`lab`},lch:{channels:3,labels:`lch`},hex:{channels:1,labels:[`hex`]},keyword:{channels:1,labels:[`keyword`]},ansi16:{channels:1,labels:[`ansi16`]},ansi256:{channels:1,labels:[`ansi256`]},hcg:{channels:3,labels:[`h`,`c`,`g`]},apple:{channels:3,labels:[`r16`,`g16`,`b16`]},gray:{channels:1,labels:[`gray`]}};t.exports=i;for(let e of Object.keys(i)){if(!(`channels`in i[e]))throw Error(`missing channels property: `+e);if(!(`labels`in i[e]))throw Error(`missing channel labels property: `+e);if(i[e].labels.length!==i[e].channels)throw Error(`channel and label counts mismatch: `+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],`channels`,{value:t}),Object.defineProperty(i[e],`labels`,{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s,c;a===i?s=0:t===a?s=(n-r)/o:n===a?s=2+(r-t)/o:r===a&&(s=4+(t-n)/o),s=Math.min(s*60,360),s<0&&(s+=360);let l=(i+a)/2;return c=a===i?0:l<=.5?o/(a+i):o/(2-a-i),[s,c*100,l*100]},i.rgb.hsv=function(e){let t,n,r,i,a,o=e[0]/255,s=e[1]/255,c=e[2]/255,l=Math.max(o,s,c),u=l-Math.min(o,s,c),d=function(e){return(l-e)/6/u+1/2};return u===0?(i=0,a=0):(a=u/l,t=d(o),n=d(s),r=d(c),o===l?i=r-n:s===l?i=1/3+t-r:c===l&&(i=2/3+n-t),i<0?i+=1:i>1&&--i),[i*360,a*100,l*100]},i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],a=i.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[a,o*100,r*100]},i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r),a=(1-t-i)/(1-i)||0,o=(1-n-i)/(1-i)||0,s=(1-r-i)/(1-i)||0;return[a*100,o*100,s*100,i*100]};function a(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=r[e];if(t)return t;let i=1/0,o;for(let t of Object.keys(n)){let r=n[t],s=a(e,r);s<i&&(i=s,o=t)}return o},i.keyword.rgb=function(e){return n[e]},i.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let i=t*.4124+n*.3576+r*.1805,a=t*.2126+n*.7152+r*.0722,o=t*.0193+n*.1192+r*.9505;return[i*100,a*100,o*100]},i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return n/=95.047,r/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,[116*r-16,500*(n-r),200*(r-a)]},i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i,a,o;if(n===0)return o=r*255,[o,o,o];i=r<.5?r*(1+n):r+n-r*n;let s=2*r-i,c=[0,0,0];for(let e=0;e<3;e++)a=t+1/3*-(e-1),a<0&&a++,a>1&&a--,o=6*a<1?s+(i-s)*6*a:2*a<1?i:3*a<2?s+(i-s)*(2/3-a)*6:s,c[e]=o*255;return c},i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=n,a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=a<=1?a:2-a;let o=(r+n)/2;return[t,(r===0?2*i/(a+i):2*n/(r+n))*100,o*100]},i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),c=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,c,o];case 1:return[s,r,o];case 2:return[o,r,c];case 3:return[o,s,r];case 4:return[c,o,r];case 5:return[r,o,s]}},i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01),a,o;o=(2-n)*r;let s=(2-n)*i;return a=n*i,a/=s<=1?s:2-s,a||=0,o/=2,[t,a*100,o*100]},i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i=n+r,a;i>1&&(n/=i,r/=i);let o=Math.floor(6*t),s=1-r;a=6*t-o,o&1&&(a=1-a);let c=n+a*(s-n),l,u,d;switch(o){default:case 6:case 0:l=s,u=c,d=n;break;case 1:l=c,u=s,d=n;break;case 2:l=n,u=s,d=c;break;case 3:l=n,u=c,d=s;break;case 4:l=c,u=n,d=s;break;case 5:l=s,u=n,d=c;break}return[l*255,u*255,d*255]},i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100,a=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,n*(1-i)+i),s=1-Math.min(1,r*(1-i)+i);return[a*255,o*255,s*255]},i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i,a,o;return i=t*3.2406+n*-1.5372+r*-.4986,a=t*-.9689+n*1.8758+r*.0415,o=t*.0557+n*-.204+r*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[i*255,a*255,o*255]},i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];return t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,[116*n-16,500*(t-n),200*(n-r)]},i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],i,a,o;a=(t+16)/116,i=n/500+a,o=a-r/200;let s=a**3,c=i**3,l=o**3;return a=s>.008856?s:(a-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,i*=95.047,a*=100,o*=108.883,[i,a,o]},i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],i;return i=Math.atan2(r,n)*360/2/Math.PI,i<0&&(i+=360),[t,Math.sqrt(n*n+r*r),i]},i.lch.lab=function(e){let t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},i.rgb.ansi16=function(e,t=null){let[n,r,a]=e,o=t===null?i.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let s=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return o===2&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5;return[(t&1)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){let t=(e-232)*10+8;return[t,t,t]}e-=16;let t;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},i.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return`000000`.substring(t.length)+t},i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split(``).map(e=>e+e).join(``));let r=parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=i-a,s,c;return s=o<1?a/(1-o):0,c=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,c/=6,c%=1,[c*360,o*100,s*100]},i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],r*100,i*100]},i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let i=[0,0,0],a=t%1*6,o=a%1,s=1-o,c=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return c=(1-n)*r,[(n*i[0]+c)*255,(n*i[1]+c)*255,(n*i[2]+c)*255]},i.hcg.hsv=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],r*100,n*100]},i.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],r*100,n*100]},i.hcg.hwb=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],(n-t)*100,(1-n)*100]},i.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return`000000`.substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}})),Ce=v(((e,t)=>{let n=V();function r(){let e={},t=Object.keys(n);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function i(e){let t=r(),i=[e];for(t[e].distance=0;i.length;){let e=i.pop(),r=Object.keys(n[e]);for(let n=r.length,a=0;a<n;a++){let n=r[a],o=t[n];o.distance===-1&&(o.distance=t[e].distance+1,o.parent=e,i.unshift(n))}}return t}function a(e,t){return function(n){return t(e(n))}}function o(e,t){let r=[t[e].parent,e],i=n[t[e].parent][e],o=t[e].parent;for(;t[o].parent;)r.unshift(t[o].parent),i=a(n[t[o].parent][o],i),o=t[o].parent;return i.conversion=r,i}t.exports=function(e){let t=i(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i<e;i++){let e=r[i];t[e].parent!==null&&(n[e]=o(e,t))}return n}})),we=v(((e,t)=>{let n=V(),r=Ce(),i={},a=Object.keys(n);function o(e){let t=function(...t){let n=t[0];return n==null?n:(n.length>1&&(t=n),e(t))};return`conversion`in e&&(t.conversion=e.conversion),t}function s(e){let t=function(...t){let n=t[0];if(n==null)return n;n.length>1&&(t=n);let r=e(t);if(typeof r==`object`)for(let e=r.length,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return`conversion`in e&&(t.conversion=e.conversion),t}a.forEach(e=>{i[e]={},Object.defineProperty(i[e],`channels`,{value:n[e].channels}),Object.defineProperty(i[e],`labels`,{value:n[e].labels});let t=r(e);Object.keys(t).forEach(n=>{let r=t[n];i[e][n]=s(r),i[e][n].raw=o(r)})}),t.exports=i})),Te=v(((e,t)=>{let n=(e,t)=>(...n)=>`\u001B[${e(...n)+t}m`,r=(e,t)=>(...n)=>{let r=e(...n);return`\u001B[${38+t};5;${r}m`},i=(e,t)=>(...n)=>{let r=e(...n);return`\u001B[${38+t};2;${r[0]};${r[1]};${r[2]}m`},a=e=>e,o=(e,t,n)=>[e,t,n],s=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{let r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},c,l=(e,t,n,r)=>{c===void 0&&(c=we());let i=r?10:0,a={};for(let[r,o]of Object.entries(c)){let s=r===`ansi16`?`ansi`:r;r===t?a[s]=e(n,i):typeof o==`object`&&(a[s]=e(o[t],i))}return a};function u(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[n,r]of Object.entries(t)){for(let[n,i]of Object.entries(r))t[n]={open:`\u001B[${i[0]}m`,close:`\u001B[${i[1]}m`},r[n]=t[n],e.set(i[0],i[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,`codes`,{value:e,enumerable:!1}),t.color.close=`\x1B[39m`,t.bgColor.close=`\x1B[49m`,s(t.color,`ansi`,()=>l(n,`ansi16`,a,!1)),s(t.color,`ansi256`,()=>l(r,`ansi256`,a,!1)),s(t.color,`ansi16m`,()=>l(i,`rgb`,o,!1)),s(t.bgColor,`ansi`,()=>l(n,`ansi16`,a,!0)),s(t.bgColor,`ansi256`,()=>l(r,`ansi256`,a,!0)),s(t.bgColor,`ansi16m`,()=>l(i,`rgb`,o,!0)),t}Object.defineProperty(t,`exports`,{enumerable:!0,get:u})})),Ee=v(((e,t)=>{let n=xe(),r=B(),i=Te(),a=new Set([`\x1B`,``]),o=e=>`${a.values().next().value}[${e}m`,s=e=>e.split(` `).map(e=>n(e)),c=(e,t,i)=>{let o=[...t],s=!1,c=n(r(e[e.length-1]));for(let[t,r]of o.entries()){let l=n(r);if(c+l<=i?e[e.length-1]+=r:(e.push(r),c=0),a.has(r))s=!0;else if(s&&r===`m`){s=!1;continue}s||(c+=l,c===i&&t<o.length-1&&(e.push(``),c=0))}!c&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},l=e=>{let t=e.split(` `),r=t.length;for(;r>0&&!(n(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(` `)+t.slice(r).join(``)},u=(e,t,r={})=>{if(r.trim!==!1&&e.trim()===``)return``;let u=``,d=``,f,p=s(e),m=[``];for(let[i,a]of e.split(` `).entries()){r.trim!==!1&&(m[m.length-1]=m[m.length-1].trimLeft());let e=n(m[m.length-1]);if(i!==0&&(e>=t&&(r.wordWrap===!1||r.trim===!1)&&(m.push(``),e=0),(e>0||r.trim===!1)&&(m[m.length-1]+=` `,e++)),r.hard&&p[i]>t){let n=t-e,r=1+Math.floor((p[i]-n-1)/t);Math.floor((p[i]-1)/t)<r&&m.push(``),c(m,a,t);continue}if(e+p[i]>t&&e>0&&p[i]>0){if(r.wordWrap===!1&&e<t){c(m,a,t);continue}m.push(``)}if(e+p[i]>t&&r.wordWrap===!1){c(m,a,t);continue}m[m.length-1]+=a}r.trim!==!1&&(m=m.map(l)),u=m.join(`
|
|
2
|
-
`);for(let[e,t]of[...u].entries()){if(d+=t,a.has(t)){let t=parseFloat(/\d[^m]*/.exec(u.slice(e,e+4)));f=t===39?null:t}let n=i.codes.get(Number(f));f&&n&&(u[e+1]===`
|
|
3
|
-
`?d+=o(n):t===`
|
|
4
|
-
`&&(d+=o(f)))}return d};t.exports=(e,t,n)=>String(e).normalize().replace(/\r\n/g,`
|
|
5
|
-
`).split(`
|
|
6
|
-
`).map(e=>u(e,t,n)).join(`
|
|
7
|
-
`)})),De=y(_e(),1),Oe=y(Ee(),1);function H(e,t){return e.split(`
|
|
8
|
-
`).flatMap(e=>(0,Oe.default)(e,t,{trim:!1,hard:!0}).split(`
|
|
9
|
-
`).map(e=>e.trimEnd())).join(`
|
|
10
|
-
`)}function ke(){return(0,De.default)({defaultWidth:80,output:E().output})}var Ae=v(((e,t)=>{let n=b(`stream`);t.exports=class extends n{#e=null;constructor(e={}){super(e),this.writable=this.readable=!0,this.muted=!1,this.on(`pipe`,this._onpipe),this.replace=e.replace,this._prompt=e.prompt||null,this._hadControl=!1}#t(e,t){return this._dest?this._dest[e]:this._src?this._src[e]:t}#n(e,...t){typeof this._dest?.[e]==`function`&&this._dest[e](...t),typeof this._src?.[e]==`function`&&this._src[e](...t)}get isTTY(){return this.#e===null?this.#t(`isTTY`,!1):this.#e}set isTTY(e){this.#e=e}get rows(){return this.#t(`rows`)}get columns(){return this.#t(`columns`)}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(e){this._src=e}pipe(e,t){return this._dest=e,super.pipe(e,t)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(e){if(this.muted){if(!this.replace)return!0;if(e.match(/^\u001b/))return e.indexOf(this._prompt)===0&&(e=e.slice(this._prompt.length),e=e.replace(/./g,this.replace),e=this._prompt+e),this._hadControl=!0,this.emit(`data`,e);this._prompt&&this._hadControl&&e.indexOf(this._prompt)===0&&(this._hadControl=!1,this.emit(`data`,this._prompt),e=e.slice(this._prompt.length)),e=e.toString().replace(/./g,this.replace)}this.emit(`data`,e)}end(e){this.muted&&(e=e&&this.replace?e.toString().replace(/./g,this.replace):null),e&&this.emit(`data`,e),this.emit(`end`)}destroy(...e){return this.#n(`destroy`,...e)}destroySoon(...e){return this.#n(`destroySoon`,...e)}close(...e){return this.#n(`close`,...e)}}}));const U=[];U.push(`SIGHUP`,`SIGINT`,`SIGTERM`),process.platform!==`win32`&&U.push(`SIGALRM`,`SIGABRT`,`SIGVTALRM`,`SIGXCPU`,`SIGXFSZ`,`SIGUSR2`,`SIGTRAP`,`SIGSYS`,`SIGQUIT`,`SIGIOT`),process.platform===`linux`&&U.push(`SIGIO`,`SIGPOLL`,`SIGPWR`,`SIGSTKFLT`);const W=e=>!!e&&typeof e==`object`&&typeof e.removeListener==`function`&&typeof e.emit==`function`&&typeof e.reallyExit==`function`&&typeof e.listeners==`function`&&typeof e.kill==`function`&&typeof e.pid==`number`&&typeof e.on==`function`,G=Symbol.for(`signal-exit emitter`),K=globalThis,je=Object.defineProperty.bind(Object);var Me=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(K[G])return K[G];je(K,G,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,t){this.listeners[e].push(t)}removeListener(e,t){let n=this.listeners[e],r=n.indexOf(t);r!==-1&&(r===0&&n.length===1?n.length=0:n.splice(r,1))}emit(e,t,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let r=!1;for(let i of this.listeners[e])r=i(t,n)===!0||r;return e===`exit`&&(r=this.emit(`afterExit`,t,n)||r),r}},q=class{};const Ne=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}});var Pe=class extends q{onExit(){return()=>{}}load(){}unload(){}},Fe=class extends q{#e=J.platform===`win32`?`SIGINT`:`SIGHUP`;#t=new Me;#n;#r;#i;#a={};#o=!1;constructor(e){super(),this.#n=e,this.#a={};for(let t of U)this.#a[t]=()=>{let n=this.#n.listeners(t),{count:r}=this.#t,i=e;if(typeof i.__signal_exit_emitter__==`object`&&typeof i.__signal_exit_emitter__.count==`number`&&(r+=i.__signal_exit_emitter__.count),n.length===r){this.unload();let n=this.#t.emit(`exit`,null,t),r=t===`SIGHUP`?this.#e:t;n||e.kill(e.pid,r)}};this.#i=e.reallyExit,this.#r=e.emit}onExit(e,t){if(!W(this.#n))return()=>{};this.#o===!1&&this.load();let n=t?.alwaysLast?`afterExit`:`exit`;return this.#t.on(n,e),()=>{this.#t.removeListener(n,e),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let e of U)try{let t=this.#a[e];t&&this.#n.on(e,t)}catch{}this.#n.emit=(e,...t)=>this.#c(e,...t),this.#n.reallyExit=e=>this.#s(e)}}unload(){this.#o&&(this.#o=!1,U.forEach(e=>{let t=this.#a[e];if(!t)throw Error(`Listener not defined for signal: `+e);try{this.#n.removeListener(e,t)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#i,--this.#t.count)}#s(e){return W(this.#n)?(this.#n.exitCode=e||0,this.#t.emit(`exit`,this.#n.exitCode,null),this.#i.call(this.#n,this.#n.exitCode)):0}#c(e,...t){let n=this.#r;if(e===`exit`&&W(this.#n)){typeof t[0]==`number`&&(this.#n.exitCode=t[0]);let r=n.call(this.#n,e,...t);return this.#t.emit(`exit`,this.#n.exitCode,null),r}else return n.call(this.#n,e,...t)}};const J=globalThis.process,{onExit:Ie,load:Le,unload:Re}=Ne(W(J)?new Fe(J):new Pe),Y=(e=1)=>e>0?`[${e}A`:``,X=(e=1)=>e>0?`[${e}B`:``,Z=(e,t)=>typeof t==`number`&&!Number.isNaN(t)?`[${t+1};${e+1}H`:`[${e+1}G`,ze=`\x1B[2K`,Be=e=>e>0?(ze+Y(1)).repeat(e-1)+ze+`\x1B[G`:``,Ve=e=>e.split(`
|
|
11
|
-
`).length,He=e=>e.split(`
|
|
12
|
-
`).pop()??``;var Ue=class{height=0;extraLinesUnderPrompt=0;cursorPos;rl;constructor(e){this.rl=e,this.cursorPos=e.getCursorPos()}write(e){this.rl.output.unmute(),this.rl.output.write(e),this.rl.output.mute()}render(e,t=``){let n=d(He(e)),r=n;this.rl.line.length>0&&(r=r.slice(0,-this.rl.line.length)),this.rl.setPrompt(r),this.cursorPos=this.rl.getCursorPos();let i=ke();e=H(e,i),t=H(t,i),n.length%i===0&&(e+=`
|
|
13
|
-
`);let a=e+(t?`
|
|
14
|
-
`+t:``),o=Math.floor(n.length/i)-this.cursorPos.rows+(t?Ve(t):0);o>0&&(a+=Y(o)),a+=Z(this.cursorPos.cols),this.write(X(this.extraLinesUnderPrompt)+Be(this.height)+a),this.extraLinesUnderPrompt=o,this.height=Ve(a)}checkCursorPos(){let e=this.rl.getCursorPos();e.cols!==this.cursorPos.cols&&(this.write(Z(e.cols)),this.cursorPos=e)}done({clearContent:e}){this.rl.setPrompt(``);let t=X(this.extraLinesUnderPrompt);t+=e?Be(this.height):`
|
|
15
|
-
`,t+=`\x1B[?25h`,this.write(t),this.rl.close()}},We=class extends Promise{static withResolver(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}},Ge=y(Ae(),1);function Ke(){let e=Error.prepareStackTrace,t=[];try{Error.prepareStackTrace=(e,n)=>{let r=n.slice(1);return t=r,r},Error().stack}catch{return t}return Error.prepareStackTrace=e,t}function qe(e){let t=Ke();return(n,r={})=>{let{input:i=process.stdin,signal:a}=r,o=new Set,s=new Ge.default;s.pipe(r.output??process.stdout);let l=u.createInterface({terminal:!0,input:i,output:s}),d=new Ue(l),{promise:f,resolve:p,reject:m}=We.withResolver(),h=()=>m(new re);if(a){let e=()=>m(new ne({cause:a.reason}));if(a.aborted)return e(),Object.assign(f,{cancel:h});a.addEventListener(`abort`,e),o.add(()=>a.removeEventListener(`abort`,e))}o.add(Ie((e,t)=>{m(new C(`User force closed the prompt with ${e} ${t}`))}));let g=()=>m(new C(`User force closed the prompt with SIGINT`));l.on(`SIGINT`,g),o.add(()=>l.removeListener(`SIGINT`,g));let _=()=>d.checkCursorPos();return l.input.on(`keypress`,_),o.add(()=>l.input.removeListener(`keypress`,_)),se(l,i=>{let a=c.bind(()=>k.clearAll());return l.on(`close`,a),o.add(()=>l.removeListener(`close`,a)),i(()=>{try{let r=e(n,e=>{setImmediate(()=>p(e))});if(r===void 0){let e=t[1]?.getFileName();throw Error(`Prompt functions must return a string.\n at ${e}`)}let[i,a]=typeof r==`string`?[r]:r;d.render(i,a),k.run()}catch(e){m(e)}}),Object.assign(f.then(e=>(k.clearAll(),e),e=>{throw k.clearAll(),e}).finally(()=>{o.forEach(e=>e()),d.done({clearContent:!!r.clearPromptOnDone}),s.end()}).then(()=>f),{cancel:h})})}}function Je(e,t){let n=t!==!1;return/^(y|yes)/i.test(e)?n=!0:/^(n|no)/i.test(e)&&(n=!1),n}function Ye(e){return e?`Yes`:`No`}var Q=qe((e,t)=>{let{transformer:n=Ye}=e,[r,i]=A(`idle`),[a,o]=A(``),s=L(e.theme),c=R({status:r,theme:s});z((s,c)=>{if(r===`idle`)if(S(s)){let r=Je(a,e.default);o(n(r)),i(`done`),t(r)}else if(x(s)){let t=Ye(!Je(a,e.default));c.clearLine(0),c.write(t),o(t)}else o(c.line)});let l=a,u=``;return r===`done`?l=s.style.answer(a):u=` ${s.style.defaultAnswer(e.default===!1?`y/N`:`Y/n`)}`,`${c} ${s.style.message(e.message,r)}${u} ${l}`});const Xe={validationFailureMode:`keep`};var $=qe((e,t)=>{let{prefill:n=`tab`}=e,r=L(Xe,e.theme),[i,a]=A(`idle`),[o=``,s]=A(e.default),[c,l]=A(),[u,d]=A(``),f=R({status:i,theme:r});async function p(t){let{required:n,pattern:r,patternError:i=`Invalid input`}=e;return n&&!t?`You must provide a value`:r&&!r.test(t)?i:typeof e.validate==`function`?await e.validate(t)||`You must provide a valid value`:!0}z(async(e,n)=>{if(i===`idle`)if(S(e)){let e=u||o;a(`loading`);let i=await p(e);i===!0?(d(e),a(`done`),t(e)):(r.validationFailureMode===`clear`?d(``):n.write(u),l(i),a(`idle`))}else te(e)&&!u?s(void 0):x(e)&&!u?(s(void 0),n.clearLine(0),n.write(o),d(o)):(d(n.line),l(void 0))}),j(e=>{n===`editable`&&o&&(e.write(o),d(o))},[]);let m=r.style.message(e.message,i),h=u;typeof e.transformer==`function`?h=e.transformer(u,{isFinal:i===`done`}):i===`done`&&(h=r.style.answer(u));let g;o&&i!==`done`&&!u&&(g=r.style.defaultAnswer(o));let _=``;return c&&(_=r.style.error(c)),[[f,m,g,h].filter(e=>e!==void 0).join(` `),_]});const Ze=i(r),Qe=t.dirname(n(import.meta.url)),$e=t.resolve(Qe,`files`);var et=o(`scaffold-template`,`ts-lib`,{argument:`ts-lib`,async execute(e){let t=await it(e);await nt(t),await at(t)}});async function tt(e,n){let{packageName:r,description:i,version:o,githubRepo:s,author:c}=n,l={"{PACKAGE_NAME}":r,"{DESCRIPTION}":i,"{VERSION}":o,"{GITHUB_REPO}":s,"{AUTHOR}":c};async function u(e){let n=await a.readdir(e);for(let r of n){let n=t.join(e,r);if((await a.stat(n)).isDirectory())await u(n);else if(/\.(ts|js|json|md|txt)$/i.test(r)){let e=await a.readFile(n,`utf-8`);for(let[t,n]of Object.entries(l))e=e.replaceAll(t,n);await a.writeFile(n,e,`utf-8`)}}}await u(e)}async function nt(e){let{name:n,dryRun:r,force:i}=e,o=t.resolve(process.cwd(),n);await a.pathExists(o)&&(i||(console.error(`Directory '${n}' already exists. Use --force to overwrite.`),process.exit(1)),r?console.log(`[dry-run] Would remove existing directory: ${o}`):(await a.remove(o),console.log(`Removed existing directory: ${o}`))),r?console.log(`[dry-run] Would create directory: ${o}`):(await a.ensureDir(o),console.log(`Created directory: ${o}`)),await rt($e,o,await a.readdir($e,{withFileTypes:!0}),r),r||await tt(o,e),r?console.log(`
|
|
16
|
-
[dry-run] No files were actually created.`):console.log(`\nProject '${n}' created successfully!`)}async function rt(e,n,r,i){for(let o of r){let r=t.join(e,o.name),s=t.join(n,o.name);o.isDirectory()?(i?console.log(`[dry-run] Would create directory: ${s}`):await a.ensureDir(s),await rt(r,s,await a.readdir(r,{withFileTypes:!0}),i)):o.isFile()&&(i?console.log(`[dry-run] Would copy: ${o.name}`):(await a.copy(r,s),console.log(`Copied: ${o.name}`)))}}async function it(e){let t=await $({message:`Package name:`,default:e.name}),n=await $({message:`Description:`}),r=await $({message:`Version:`,default:`0.0.0`}),i=await $({message:`Author:`});return{packageName:t,description:n,version:r,author:i,githubRepo:await $({message:`GitHub repository (owner/repo):`,default:`${i}/${t}`}),...e}}async function at(e){let{name:n,dryRun:r}=e,i=t.resolve(process.cwd(),n);if(r){console.log(`
|
|
17
|
-
[dry-run] Skipping post-process steps.`);return}if(await Q({message:`Initialize git repository?`,default:!0}))try{console.log(`Initializing git repository...`),await Ze(`git init`,{cwd:i}),console.log(`Git repository initialized.`)}catch(e){console.error(`Failed to initialize git repository:`,e.message)}let a=await Q({message:`Run npm install?`,default:!0});if(a)try{console.log(`Installing dependencies (this may take a moment)...`),await Ze(`npm install`,{cwd:i}),console.log(`Dependencies installed successfully.`)}catch(e){console.error(`Failed to install dependencies:`,e.message)}console.log(`
|
|
18
|
-
All done! Your project is ready.`),console.log(`\n cd ${n}`),a||console.log(` npm install`),console.log(` npm run build`),console.log(` npm test`)}export{et as default};
|
|
19
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["readline","process","colors","figures","readline","#isTTY","#destSrc","#proxy","process","#process","#sigListeners","#emitter","#hupSig","#originalProcessReallyExit","#originalProcessEmit","#loaded","#processEmit","#processReallyExit","MuteStream","onSignalExit","input","confirm"],"sources":["../../../src/core/scaffold-template-plugin.ts","../../../node_modules/@inquirer/core/dist/esm/lib/key.js","../../../node_modules/@inquirer/core/dist/esm/lib/errors.js","../../../node_modules/@inquirer/core/dist/esm/lib/hook-engine.js","../../../node_modules/@inquirer/core/dist/esm/lib/use-state.js","../../../node_modules/@inquirer/core/dist/esm/lib/use-effect.js","../../../node_modules/yoctocolors-cjs/index.js","../../../node_modules/@inquirer/figures/dist/esm/index.js","../../../node_modules/@inquirer/core/dist/esm/lib/theme.js","../../../node_modules/@inquirer/core/dist/esm/lib/make-theme.js","../../../node_modules/@inquirer/core/dist/esm/lib/use-prefix.js","../../../node_modules/@inquirer/core/dist/esm/lib/use-ref.js","../../../node_modules/@inquirer/core/dist/esm/lib/use-keypress.js","../../../node_modules/cli-width/index.js","../../../node_modules/ansi-regex/index.js","../../../node_modules/strip-ansi/index.js","../../../node_modules/is-fullwidth-code-point/index.js","../../../node_modules/emoji-regex/index.js","../../../node_modules/string-width/index.js","../../../node_modules/color-name/index.js","../../../node_modules/color-convert/conversions.js","../../../node_modules/color-convert/route.js","../../../node_modules/color-convert/index.js","../../../node_modules/ansi-styles/index.js","../../../node_modules/wrap-ansi/index.js","../../../node_modules/@inquirer/core/dist/esm/lib/utils.js","../../../node_modules/mute-stream/lib/index.js","../../../node_modules/signal-exit/dist/mjs/signals.js","../../../node_modules/signal-exit/dist/mjs/index.js","../../../node_modules/@inquirer/ansi/dist/esm/index.js","../../../node_modules/@inquirer/core/dist/esm/lib/screen-manager.js","../../../node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.js","../../../node_modules/@inquirer/core/dist/esm/lib/create-prompt.js","../../../node_modules/@inquirer/confirm/dist/esm/index.js","../../../node_modules/@inquirer/input/dist/esm/index.js","../../../templates/ts-lib/ts-lib.ts"],"sourcesContent":["import { ScaffoldTemplatePluginOptions } from './types';\r\n\r\nexport const SCAFFOLD_TEMPLATE_PLUGIN_TYPE = 'scaffold-template';\r\n\r\nexport interface ScaffoldTemplatePlugin {\r\n argument: string;\r\n\r\n execute(options: ScaffoldTemplatePluginOptions): Promise<void>;\r\n}\r\n","export const isUpKey = (key, keybindings = []) => \n// The up key\nkey.name === 'up' ||\n // Vim keybinding: hjkl keys map to left/down/up/right\n (keybindings.includes('vim') && key.name === 'k') ||\n // Emacs keybinding: Ctrl+P means \"previous\" in Emacs navigation conventions\n (keybindings.includes('emacs') && key.ctrl && key.name === 'p');\nexport const isDownKey = (key, keybindings = []) => \n// The down key\nkey.name === 'down' ||\n // Vim keybinding: hjkl keys map to left/down/up/right\n (keybindings.includes('vim') && key.name === 'j') ||\n // Emacs keybinding: Ctrl+N means \"next\" in Emacs navigation conventions\n (keybindings.includes('emacs') && key.ctrl && key.name === 'n');\nexport const isSpaceKey = (key) => key.name === 'space';\nexport const isBackspaceKey = (key) => key.name === 'backspace';\nexport const isTabKey = (key) => key.name === 'tab';\nexport const isNumberKey = (key) => '1234567890'.includes(key.name);\nexport const isEnterKey = (key) => key.name === 'enter' || key.name === 'return';\n","export class AbortPromptError extends Error {\n name = 'AbortPromptError';\n message = 'Prompt was aborted';\n constructor(options) {\n super();\n this.cause = options?.cause;\n }\n}\nexport class CancelPromptError extends Error {\n name = 'CancelPromptError';\n message = 'Prompt was canceled';\n}\nexport class ExitPromptError extends Error {\n name = 'ExitPromptError';\n}\nexport class HookError extends Error {\n name = 'HookError';\n}\nexport class ValidationError extends Error {\n name = 'ValidationError';\n}\n","/* eslint @typescript-eslint/no-explicit-any: [\"off\"] */\nimport { AsyncLocalStorage, AsyncResource } from 'node:async_hooks';\nimport { HookError, ValidationError } from \"./errors.js\";\nconst hookStorage = new AsyncLocalStorage();\nfunction createStore(rl) {\n const store = {\n rl,\n hooks: [],\n hooksCleanup: [],\n hooksEffect: [],\n index: 0,\n handleChange() { },\n };\n return store;\n}\n// Run callback in with the hook engine setup.\nexport function withHooks(rl, cb) {\n const store = createStore(rl);\n return hookStorage.run(store, () => {\n function cycle(render) {\n store.handleChange = () => {\n store.index = 0;\n render();\n };\n store.handleChange();\n }\n return cb(cycle);\n });\n}\n// Safe getStore utility that'll return the store or throw if undefined.\nfunction getStore() {\n const store = hookStorage.getStore();\n if (!store) {\n throw new HookError('[Inquirer] Hook functions can only be called from within a prompt');\n }\n return store;\n}\nexport function readline() {\n return getStore().rl;\n}\n// Merge state updates happening within the callback function to avoid multiple renders.\nexport function withUpdates(fn) {\n const wrapped = (...args) => {\n const store = getStore();\n let shouldUpdate = false;\n const oldHandleChange = store.handleChange;\n store.handleChange = () => {\n shouldUpdate = true;\n };\n const returnValue = fn(...args);\n if (shouldUpdate) {\n oldHandleChange();\n }\n store.handleChange = oldHandleChange;\n return returnValue;\n };\n return AsyncResource.bind(wrapped);\n}\nexport function withPointer(cb) {\n const store = getStore();\n const { index } = store;\n const pointer = {\n get() {\n return store.hooks[index];\n },\n set(value) {\n store.hooks[index] = value;\n },\n initialized: index in store.hooks,\n };\n const returnValue = cb(pointer);\n store.index++;\n return returnValue;\n}\nexport function handleChange() {\n getStore().handleChange();\n}\nexport const effectScheduler = {\n queue(cb) {\n const store = getStore();\n const { index } = store;\n store.hooksEffect.push(() => {\n store.hooksCleanup[index]?.();\n const cleanFn = cb(readline());\n if (cleanFn != null && typeof cleanFn !== 'function') {\n throw new ValidationError('useEffect return value must be a cleanup function or nothing.');\n }\n store.hooksCleanup[index] = cleanFn;\n });\n },\n run() {\n const store = getStore();\n withUpdates(() => {\n store.hooksEffect.forEach((effect) => {\n effect();\n });\n // Warning: Clean the hooks before exiting the `withUpdates` block.\n // Failure to do so means an updates would hit the same effects again.\n store.hooksEffect.length = 0;\n })();\n },\n clearAll() {\n const store = getStore();\n store.hooksCleanup.forEach((cleanFn) => {\n cleanFn?.();\n });\n store.hooksEffect.length = 0;\n store.hooksCleanup.length = 0;\n },\n};\n","import { AsyncResource } from 'node:async_hooks';\nimport { withPointer, handleChange } from \"./hook-engine.js\";\nexport function useState(defaultValue) {\n return withPointer((pointer) => {\n const setState = AsyncResource.bind(function setState(newValue) {\n // Noop if the value is still the same.\n if (pointer.get() !== newValue) {\n pointer.set(newValue);\n // Trigger re-render\n handleChange();\n }\n });\n if (pointer.initialized) {\n return [pointer.get(), setState];\n }\n const value = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n pointer.set(value);\n return [value, setState];\n });\n}\n","import { withPointer, effectScheduler } from \"./hook-engine.js\";\nexport function useEffect(cb, depArray) {\n withPointer((pointer) => {\n const oldDeps = pointer.get();\n const hasChanged = !Array.isArray(oldDeps) || depArray.some((dep, i) => !Object.is(dep, oldDeps[i]));\n if (hasChanged) {\n effectScheduler.queue(cb);\n }\n pointer.set(depArray);\n });\n}\n","const tty = require('node:tty'); // eslint-disable-line unicorn/prefer-module\n\n// eslint-disable-next-line no-warning-comments\n// TODO: Use a better method when it's added to Node.js (https://github.com/nodejs/node/pull/40240)\n// Lots of optionals here to support Deno.\nconst hasColors = tty?.WriteStream?.prototype?.hasColors?.() ?? false;\n\nconst format = (open, close) => {\n\tif (!hasColors) {\n\t\treturn input => input;\n\t}\n\n\tconst openCode = `\\u001B[${open}m`;\n\tconst closeCode = `\\u001B[${close}m`;\n\n\treturn input => {\n\t\tconst string = input + ''; // eslint-disable-line no-implicit-coercion -- This is faster.\n\t\tlet index = string.indexOf(closeCode);\n\n\t\tif (index === -1) {\n\t\t\t// Note: Intentionally not using string interpolation for performance reasons.\n\t\t\treturn openCode + string + closeCode;\n\t\t}\n\n\t\t// Handle nested colors.\n\n\t\t// We could have done this, but it's too slow (as of Node.js 22).\n\t\t// return openCode + string.replaceAll(closeCode, openCode) + closeCode;\n\n\t\tlet result = openCode;\n\t\tlet lastIndex = 0;\n\n\t\t// SGR 22 resets both bold (1) and dim (2). When we encounter a nested\n\t\t// close for styles that use 22, we need to re-open the outer style.\n\t\tconst reopenOnNestedClose = close === 22;\n\t\tconst replaceCode = (reopenOnNestedClose ? closeCode : '') + openCode;\n\n\t\twhile (index !== -1) {\n\t\t\tresult += string.slice(lastIndex, index) + replaceCode;\n\t\t\tlastIndex = index + closeCode.length;\n\t\t\tindex = string.indexOf(closeCode, lastIndex);\n\t\t}\n\n\t\tresult += string.slice(lastIndex) + closeCode;\n\n\t\treturn result;\n\t};\n};\n\nconst colors = {};\n\ncolors.reset = format(0, 0);\ncolors.bold = format(1, 22);\ncolors.dim = format(2, 22);\ncolors.italic = format(3, 23);\ncolors.underline = format(4, 24);\ncolors.overline = format(53, 55);\ncolors.inverse = format(7, 27);\ncolors.hidden = format(8, 28);\ncolors.strikethrough = format(9, 29);\n\ncolors.black = format(30, 39);\ncolors.red = format(31, 39);\ncolors.green = format(32, 39);\ncolors.yellow = format(33, 39);\ncolors.blue = format(34, 39);\ncolors.magenta = format(35, 39);\ncolors.cyan = format(36, 39);\ncolors.white = format(37, 39);\ncolors.gray = format(90, 39);\n\ncolors.bgBlack = format(40, 49);\ncolors.bgRed = format(41, 49);\ncolors.bgGreen = format(42, 49);\ncolors.bgYellow = format(43, 49);\ncolors.bgBlue = format(44, 49);\ncolors.bgMagenta = format(45, 49);\ncolors.bgCyan = format(46, 49);\ncolors.bgWhite = format(47, 49);\ncolors.bgGray = format(100, 49);\n\ncolors.redBright = format(91, 39);\ncolors.greenBright = format(92, 39);\ncolors.yellowBright = format(93, 39);\ncolors.blueBright = format(94, 39);\ncolors.magentaBright = format(95, 39);\ncolors.cyanBright = format(96, 39);\ncolors.whiteBright = format(97, 39);\n\ncolors.bgRedBright = format(101, 49);\ncolors.bgGreenBright = format(102, 49);\ncolors.bgYellowBright = format(103, 49);\ncolors.bgBlueBright = format(104, 49);\ncolors.bgMagentaBright = format(105, 49);\ncolors.bgCyanBright = format(106, 49);\ncolors.bgWhiteBright = format(107, 49);\n\nmodule.exports = colors; // eslint-disable-line unicorn/prefer-module\n","// process.env dot-notation access prints:\n// Property 'TERM' comes from an index signature, so it must be accessed with ['TERM'].ts(4111)\n/* eslint dot-notation: [\"off\"] */\nimport process from 'node:process';\n// Ported from is-unicode-supported\nfunction isUnicodeSupported() {\n if (process.platform !== 'win32') {\n return process.env['TERM'] !== 'linux'; // Linux console (kernel)\n }\n return (Boolean(process.env['WT_SESSION']) || // Windows Terminal\n Boolean(process.env['TERMINUS_SUBLIME']) || // Terminus (<0.2.27)\n process.env['ConEmuTask'] === '{cmd::Cmder}' || // ConEmu and cmder\n process.env['TERM_PROGRAM'] === 'Terminus-Sublime' ||\n process.env['TERM_PROGRAM'] === 'vscode' ||\n process.env['TERM'] === 'xterm-256color' ||\n process.env['TERM'] === 'alacritty' ||\n process.env['TERMINAL_EMULATOR'] === 'JetBrains-JediTerm');\n}\n// Ported from figures\nconst common = {\n circleQuestionMark: '(?)',\n questionMarkPrefix: '(?)',\n square: '█',\n squareDarkShade: '▓',\n squareMediumShade: '▒',\n squareLightShade: '░',\n squareTop: '▀',\n squareBottom: '▄',\n squareLeft: '▌',\n squareRight: '▐',\n squareCenter: '■',\n bullet: '●',\n dot: '․',\n ellipsis: '…',\n pointerSmall: '›',\n triangleUp: '▲',\n triangleUpSmall: '▴',\n triangleDown: '▼',\n triangleDownSmall: '▾',\n triangleLeftSmall: '◂',\n triangleRightSmall: '▸',\n home: '⌂',\n heart: '♥',\n musicNote: '♪',\n musicNoteBeamed: '♫',\n arrowUp: '↑',\n arrowDown: '↓',\n arrowLeft: '←',\n arrowRight: '→',\n arrowLeftRight: '↔',\n arrowUpDown: '↕',\n almostEqual: '≈',\n notEqual: '≠',\n lessOrEqual: '≤',\n greaterOrEqual: '≥',\n identical: '≡',\n infinity: '∞',\n subscriptZero: '₀',\n subscriptOne: '₁',\n subscriptTwo: '₂',\n subscriptThree: '₃',\n subscriptFour: '₄',\n subscriptFive: '₅',\n subscriptSix: '₆',\n subscriptSeven: '₇',\n subscriptEight: '₈',\n subscriptNine: '₉',\n oneHalf: '½',\n oneThird: '⅓',\n oneQuarter: '¼',\n oneFifth: '⅕',\n oneSixth: '⅙',\n oneEighth: '⅛',\n twoThirds: '⅔',\n twoFifths: '⅖',\n threeQuarters: '¾',\n threeFifths: '⅗',\n threeEighths: '⅜',\n fourFifths: '⅘',\n fiveSixths: '⅚',\n fiveEighths: '⅝',\n sevenEighths: '⅞',\n line: '─',\n lineBold: '━',\n lineDouble: '═',\n lineDashed0: '┄',\n lineDashed1: '┅',\n lineDashed2: '┈',\n lineDashed3: '┉',\n lineDashed4: '╌',\n lineDashed5: '╍',\n lineDashed6: '╴',\n lineDashed7: '╶',\n lineDashed8: '╸',\n lineDashed9: '╺',\n lineDashed10: '╼',\n lineDashed11: '╾',\n lineDashed12: '−',\n lineDashed13: '–',\n lineDashed14: '‐',\n lineDashed15: '⁃',\n lineVertical: '│',\n lineVerticalBold: '┃',\n lineVerticalDouble: '║',\n lineVerticalDashed0: '┆',\n lineVerticalDashed1: '┇',\n lineVerticalDashed2: '┊',\n lineVerticalDashed3: '┋',\n lineVerticalDashed4: '╎',\n lineVerticalDashed5: '╏',\n lineVerticalDashed6: '╵',\n lineVerticalDashed7: '╷',\n lineVerticalDashed8: '╹',\n lineVerticalDashed9: '╻',\n lineVerticalDashed10: '╽',\n lineVerticalDashed11: '╿',\n lineDownLeft: '┐',\n lineDownLeftArc: '╮',\n lineDownBoldLeftBold: '┓',\n lineDownBoldLeft: '┒',\n lineDownLeftBold: '┑',\n lineDownDoubleLeftDouble: '╗',\n lineDownDoubleLeft: '╖',\n lineDownLeftDouble: '╕',\n lineDownRight: '┌',\n lineDownRightArc: '╭',\n lineDownBoldRightBold: '┏',\n lineDownBoldRight: '┎',\n lineDownRightBold: '┍',\n lineDownDoubleRightDouble: '╔',\n lineDownDoubleRight: '╓',\n lineDownRightDouble: '╒',\n lineUpLeft: '┘',\n lineUpLeftArc: '╯',\n lineUpBoldLeftBold: '┛',\n lineUpBoldLeft: '┚',\n lineUpLeftBold: '┙',\n lineUpDoubleLeftDouble: '╝',\n lineUpDoubleLeft: '╜',\n lineUpLeftDouble: '╛',\n lineUpRight: '└',\n lineUpRightArc: '╰',\n lineUpBoldRightBold: '┗',\n lineUpBoldRight: '┖',\n lineUpRightBold: '┕',\n lineUpDoubleRightDouble: '╚',\n lineUpDoubleRight: '╙',\n lineUpRightDouble: '╘',\n lineUpDownLeft: '┤',\n lineUpBoldDownBoldLeftBold: '┫',\n lineUpBoldDownBoldLeft: '┨',\n lineUpDownLeftBold: '┥',\n lineUpBoldDownLeftBold: '┩',\n lineUpDownBoldLeftBold: '┪',\n lineUpDownBoldLeft: '┧',\n lineUpBoldDownLeft: '┦',\n lineUpDoubleDownDoubleLeftDouble: '╣',\n lineUpDoubleDownDoubleLeft: '╢',\n lineUpDownLeftDouble: '╡',\n lineUpDownRight: '├',\n lineUpBoldDownBoldRightBold: '┣',\n lineUpBoldDownBoldRight: '┠',\n lineUpDownRightBold: '┝',\n lineUpBoldDownRightBold: '┡',\n lineUpDownBoldRightBold: '┢',\n lineUpDownBoldRight: '┟',\n lineUpBoldDownRight: '┞',\n lineUpDoubleDownDoubleRightDouble: '╠',\n lineUpDoubleDownDoubleRight: '╟',\n lineUpDownRightDouble: '╞',\n lineDownLeftRight: '┬',\n lineDownBoldLeftBoldRightBold: '┳',\n lineDownLeftBoldRightBold: '┯',\n lineDownBoldLeftRight: '┰',\n lineDownBoldLeftBoldRight: '┱',\n lineDownBoldLeftRightBold: '┲',\n lineDownLeftRightBold: '┮',\n lineDownLeftBoldRight: '┭',\n lineDownDoubleLeftDoubleRightDouble: '╦',\n lineDownDoubleLeftRight: '╥',\n lineDownLeftDoubleRightDouble: '╤',\n lineUpLeftRight: '┴',\n lineUpBoldLeftBoldRightBold: '┻',\n lineUpLeftBoldRightBold: '┷',\n lineUpBoldLeftRight: '┸',\n lineUpBoldLeftBoldRight: '┹',\n lineUpBoldLeftRightBold: '┺',\n lineUpLeftRightBold: '┶',\n lineUpLeftBoldRight: '┵',\n lineUpDoubleLeftDoubleRightDouble: '╩',\n lineUpDoubleLeftRight: '╨',\n lineUpLeftDoubleRightDouble: '╧',\n lineUpDownLeftRight: '┼',\n lineUpBoldDownBoldLeftBoldRightBold: '╋',\n lineUpDownBoldLeftBoldRightBold: '╈',\n lineUpBoldDownLeftBoldRightBold: '╇',\n lineUpBoldDownBoldLeftRightBold: '╊',\n lineUpBoldDownBoldLeftBoldRight: '╉',\n lineUpBoldDownLeftRight: '╀',\n lineUpDownBoldLeftRight: '╁',\n lineUpDownLeftBoldRight: '┽',\n lineUpDownLeftRightBold: '┾',\n lineUpBoldDownBoldLeftRight: '╂',\n lineUpDownLeftBoldRightBold: '┿',\n lineUpBoldDownLeftBoldRight: '╃',\n lineUpBoldDownLeftRightBold: '╄',\n lineUpDownBoldLeftBoldRight: '╅',\n lineUpDownBoldLeftRightBold: '╆',\n lineUpDoubleDownDoubleLeftDoubleRightDouble: '╬',\n lineUpDoubleDownDoubleLeftRight: '╫',\n lineUpDownLeftDoubleRightDouble: '╪',\n lineCross: '╳',\n lineBackslash: '╲',\n lineSlash: '╱',\n};\nconst specialMainSymbols = {\n tick: '✔',\n info: 'ℹ',\n warning: '⚠',\n cross: '✘',\n squareSmall: '◻',\n squareSmallFilled: '◼',\n circle: '◯',\n circleFilled: '◉',\n circleDotted: '◌',\n circleDouble: '◎',\n circleCircle: 'ⓞ',\n circleCross: 'ⓧ',\n circlePipe: 'Ⓘ',\n radioOn: '◉',\n radioOff: '◯',\n checkboxOn: '☒',\n checkboxOff: '☐',\n checkboxCircleOn: 'ⓧ',\n checkboxCircleOff: 'Ⓘ',\n pointer: '❯',\n triangleUpOutline: '△',\n triangleLeft: '◀',\n triangleRight: '▶',\n lozenge: '◆',\n lozengeOutline: '◇',\n hamburger: '☰',\n smiley: '㋡',\n mustache: '෴',\n star: '★',\n play: '▶',\n nodejs: '⬢',\n oneSeventh: '⅐',\n oneNinth: '⅑',\n oneTenth: '⅒',\n};\nconst specialFallbackSymbols = {\n tick: '√',\n info: 'i',\n warning: '‼',\n cross: '×',\n squareSmall: '□',\n squareSmallFilled: '■',\n circle: '( )',\n circleFilled: '(*)',\n circleDotted: '( )',\n circleDouble: '( )',\n circleCircle: '(○)',\n circleCross: '(×)',\n circlePipe: '(│)',\n radioOn: '(*)',\n radioOff: '( )',\n checkboxOn: '[×]',\n checkboxOff: '[ ]',\n checkboxCircleOn: '(×)',\n checkboxCircleOff: '( )',\n pointer: '>',\n triangleUpOutline: '∆',\n triangleLeft: '◄',\n triangleRight: '►',\n lozenge: '♦',\n lozengeOutline: '◊',\n hamburger: '≡',\n smiley: '☺',\n mustache: '┌─┐',\n star: '✶',\n play: '►',\n nodejs: '♦',\n oneSeventh: '1/7',\n oneNinth: '1/9',\n oneTenth: '1/10',\n};\nexport const mainSymbols = {\n ...common,\n ...specialMainSymbols,\n};\nexport const fallbackSymbols = {\n ...common,\n ...specialFallbackSymbols,\n};\nconst shouldUseMain = isUnicodeSupported();\nconst figures = shouldUseMain\n ? mainSymbols\n : fallbackSymbols;\nexport default figures;\nconst replacements = Object.entries(specialMainSymbols);\n// On terminals which do not support Unicode symbols, substitute them to other symbols\nexport const replaceSymbols = (string, { useFallback = !shouldUseMain } = {}) => {\n if (useFallback) {\n for (const [key, mainSymbol] of replacements) {\n const fallbackSymbol = fallbackSymbols[key];\n if (!fallbackSymbol) {\n throw new Error(`Unable to find fallback for ${key}`);\n }\n string = string.replaceAll(mainSymbol, fallbackSymbol);\n }\n }\n return string;\n};\n","import colors from 'yoctocolors-cjs';\nimport figures from '@inquirer/figures';\nexport const defaultTheme = {\n prefix: {\n idle: colors.blue('?'),\n done: colors.green(figures.tick),\n },\n spinner: {\n interval: 80,\n frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'].map((frame) => colors.yellow(frame)),\n },\n style: {\n answer: colors.cyan,\n message: colors.bold,\n error: (text) => colors.red(`> ${text}`),\n defaultAnswer: (text) => colors.dim(`(${text})`),\n help: colors.dim,\n highlight: colors.cyan,\n key: (text) => colors.cyan(colors.bold(`<${text}>`)),\n },\n};\n","import { defaultTheme } from \"./theme.js\";\nfunction isPlainObject(value) {\n if (typeof value !== 'object' || value === null)\n return false;\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\nfunction deepMerge(...objects) {\n const output = {};\n for (const obj of objects) {\n for (const [key, value] of Object.entries(obj)) {\n const prevValue = output[key];\n output[key] =\n isPlainObject(prevValue) && isPlainObject(value)\n ? deepMerge(prevValue, value)\n : value;\n }\n }\n return output;\n}\nexport function makeTheme(...themes) {\n const themesToMerge = [\n defaultTheme,\n ...themes.filter((theme) => theme != null),\n ];\n return deepMerge(...themesToMerge);\n}\n","import { useState } from \"./use-state.js\";\nimport { useEffect } from \"./use-effect.js\";\nimport { makeTheme } from \"./make-theme.js\";\nexport function usePrefix({ status = 'idle', theme, }) {\n const [showLoader, setShowLoader] = useState(false);\n const [tick, setTick] = useState(0);\n const { prefix, spinner } = makeTheme(theme);\n useEffect(() => {\n if (status === 'loading') {\n let tickInterval;\n let inc = -1;\n // Delay displaying spinner by 300ms, to avoid flickering\n const delayTimeout = setTimeout(() => {\n setShowLoader(true);\n tickInterval = setInterval(() => {\n inc = inc + 1;\n setTick(inc % spinner.frames.length);\n }, spinner.interval);\n }, 300);\n return () => {\n clearTimeout(delayTimeout);\n clearInterval(tickInterval);\n };\n }\n else {\n setShowLoader(false);\n }\n }, [status]);\n if (showLoader) {\n return spinner.frames[tick];\n }\n // There's a delay before we show the loader. So we want to ignore `loading` here, and pass idle instead.\n const iconName = status === 'loading' ? 'idle' : status;\n return typeof prefix === 'string' ? prefix : (prefix[iconName] ?? prefix['idle']);\n}\n","import { useState } from \"./use-state.js\";\nexport function useRef(val) {\n return useState({ current: val })[0];\n}\n","import { useRef } from \"./use-ref.js\";\nimport { useEffect } from \"./use-effect.js\";\nimport { withUpdates } from \"./hook-engine.js\";\nexport function useKeypress(userHandler) {\n const signal = useRef(userHandler);\n signal.current = userHandler;\n useEffect((rl) => {\n let ignore = false;\n const handler = withUpdates((_input, event) => {\n if (ignore)\n return;\n void signal.current(event, rl);\n });\n rl.input.on('keypress', handler);\n return () => {\n ignore = true;\n rl.input.removeListener('keypress', handler);\n };\n }, []);\n}\n","'use strict';\n\nmodule.exports = cliWidth;\n\nfunction normalizeOpts(options) {\n const defaultOpts = {\n defaultWidth: 0,\n output: process.stdout,\n tty: require('tty'),\n };\n\n if (!options) {\n return defaultOpts;\n }\n\n Object.keys(defaultOpts).forEach(function (key) {\n if (!options[key]) {\n options[key] = defaultOpts[key];\n }\n });\n\n return options;\n}\n\nfunction cliWidth(options) {\n const opts = normalizeOpts(options);\n\n if (opts.output.getWindowSize) {\n return opts.output.getWindowSize()[0] || opts.defaultWidth;\n }\n\n if (opts.tty.getWindowSize) {\n return opts.tty.getWindowSize()[1] || opts.defaultWidth;\n }\n\n if (opts.output.columns) {\n return opts.output.columns;\n }\n\n if (process.env.CLI_WIDTH) {\n const width = parseInt(process.env.CLI_WIDTH, 10);\n\n if (!isNaN(width) && width !== 0) {\n return width;\n }\n }\n\n return opts.defaultWidth;\n}\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","/* eslint-disable yoda */\n'use strict';\n\nconst isFullwidthCodePoint = codePoint => {\n\tif (Number.isNaN(codePoint)) {\n\t\treturn false;\n\t}\n\n\t// Code points are derived from:\n\t// http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt\n\tif (\n\t\tcodePoint >= 0x1100 && (\n\t\t\tcodePoint <= 0x115F || // Hangul Jamo\n\t\t\tcodePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n\t\t\tcodePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET\n\t\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t\t(0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||\n\t\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t\t(0x3250 <= codePoint && codePoint <= 0x4DBF) ||\n\t\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t\t(0x4E00 <= codePoint && codePoint <= 0xA4C6) ||\n\t\t\t// Hangul Jamo Extended-A\n\t\t\t(0xA960 <= codePoint && codePoint <= 0xA97C) ||\n\t\t\t// Hangul Syllables\n\t\t\t(0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n\t\t\t// CJK Compatibility Ideographs\n\t\t\t(0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n\t\t\t// Vertical Forms\n\t\t\t(0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n\t\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t\t(0xFE30 <= codePoint && codePoint <= 0xFE6B) ||\n\t\t\t// Halfwidth and Fullwidth Forms\n\t\t\t(0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n\t\t\t(0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||\n\t\t\t// Kana Supplement\n\t\t\t(0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n\t\t\t// Enclosed Ideographic Supplement\n\t\t\t(0x1F200 <= codePoint && codePoint <= 0x1F251) ||\n\t\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t\t(0x20000 <= codePoint && codePoint <= 0x3FFFD)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\nmodule.exports = isFullwidthCodePoint;\nmodule.exports.default = isFullwidthCodePoint;\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","'use strict';\nconst stripAnsi = require('strip-ansi');\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst emojiRegex = require('emoji-regex');\n\nconst stringWidth = string => {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), ' ');\n\n\tlet width = 0;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst code = string.codePointAt(i);\n\n\t\t// Ignore control characters\n\t\tif (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (code >= 0x300 && code <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Surrogates\n\t\tif (code > 0xFFFF) {\n\t\t\ti++;\n\t\t}\n\n\t\twidth += isFullwidthCodePoint(code) ? 2 : 1;\n\t}\n\n\treturn width;\n};\n\nmodule.exports = stringWidth;\n// TODO: remove this in the next major version\nmodule.exports.default = stringWidth;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\nconst stringWidth = require('string-width');\nconst stripAnsi = require('strip-ansi');\nconst ansiStyles = require('ansi-styles');\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B'\n]);\n\nconst END_CODE = 39;\n\nconst wrapAnsi = code => `${ESCAPES.values().next().value}[${code}m`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows[rows.length - 1]));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\t\t} else if (isInsideEscape && character === 'm') {\n\t\t\tisInsideEscape = false;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = str => {\n\tconst words = str.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn str;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode\n//\n// 'hard' will never allow a string to take up more than columns characters\n//\n// 'soft' allows long words to expand past the column length\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet pre = '';\n\tlet ret = '';\n\tlet escapeCode;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows[rows.length - 1].trimLeft();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows[rows.length - 1]);\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(stringVisibleTrimSpacesRight);\n\t}\n\n\tpre = rows.join('\\n');\n\n\tfor (const [index, character] of [...pre].entries()) {\n\t\tret += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst code = parseFloat(/\\d[^m]*/.exec(pre.slice(index, index + 4)));\n\t\t\tescapeCode = code === END_CODE ? null : code;\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (escapeCode && code) {\n\t\t\tif (pre[index + 1] === '\\n') {\n\t\t\t\tret += wrapAnsi(code);\n\t\t\t} else if (character === '\\n') {\n\t\t\t\tret += wrapAnsi(escapeCode);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ret;\n};\n\n// For each newline, invoke the method separately\nmodule.exports = (string, columns, options) => {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replace(/\\r\\n/g, '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n};\n","import cliWidth from 'cli-width';\nimport wrapAnsi from 'wrap-ansi';\nimport { readline } from \"./hook-engine.js\";\n/**\n * Force line returns at specific width. This function is ANSI code friendly and it'll\n * ignore invisible codes during width calculation.\n * @param {string} content\n * @param {number} width\n * @return {string}\n */\nexport function breakLines(content, width) {\n return content\n .split('\\n')\n .flatMap((line) => wrapAnsi(line, width, { trim: false, hard: true })\n .split('\\n')\n .map((str) => str.trimEnd()))\n .join('\\n');\n}\n/**\n * Returns the width of the active readline, or 80 as default value.\n * @returns {number}\n */\nexport function readlineWidth() {\n return cliWidth({ defaultWidth: 80, output: readline().output });\n}\n","const Stream = require('stream')\n\nclass MuteStream extends Stream {\n #isTTY = null\n\n constructor (opts = {}) {\n super(opts)\n this.writable = this.readable = true\n this.muted = false\n this.on('pipe', this._onpipe)\n this.replace = opts.replace\n\n // For readline-type situations\n // This much at the start of a line being redrawn after a ctrl char\n // is seen (such as backspace) won't be redrawn as the replacement\n this._prompt = opts.prompt || null\n this._hadControl = false\n }\n\n #destSrc (key, def) {\n if (this._dest) {\n return this._dest[key]\n }\n if (this._src) {\n return this._src[key]\n }\n return def\n }\n\n #proxy (method, ...args) {\n if (typeof this._dest?.[method] === 'function') {\n this._dest[method](...args)\n }\n if (typeof this._src?.[method] === 'function') {\n this._src[method](...args)\n }\n }\n\n get isTTY () {\n if (this.#isTTY !== null) {\n return this.#isTTY\n }\n return this.#destSrc('isTTY', false)\n }\n\n // basically just get replace the getter/setter with a regular value\n set isTTY (val) {\n this.#isTTY = val\n }\n\n get rows () {\n return this.#destSrc('rows')\n }\n\n get columns () {\n return this.#destSrc('columns')\n }\n\n mute () {\n this.muted = true\n }\n\n unmute () {\n this.muted = false\n }\n\n _onpipe (src) {\n this._src = src\n }\n\n pipe (dest, options) {\n this._dest = dest\n return super.pipe(dest, options)\n }\n\n pause () {\n if (this._src) {\n return this._src.pause()\n }\n }\n\n resume () {\n if (this._src) {\n return this._src.resume()\n }\n }\n\n write (c) {\n if (this.muted) {\n if (!this.replace) {\n return true\n }\n // eslint-disable-next-line no-control-regex\n if (c.match(/^\\u001b/)) {\n if (c.indexOf(this._prompt) === 0) {\n c = c.slice(this._prompt.length)\n c = c.replace(/./g, this.replace)\n c = this._prompt + c\n }\n this._hadControl = true\n return this.emit('data', c)\n } else {\n if (this._prompt && this._hadControl &&\n c.indexOf(this._prompt) === 0) {\n this._hadControl = false\n this.emit('data', this._prompt)\n c = c.slice(this._prompt.length)\n }\n c = c.toString().replace(/./g, this.replace)\n }\n }\n this.emit('data', c)\n }\n\n end (c) {\n if (this.muted) {\n if (c && this.replace) {\n c = c.toString().replace(/./g, this.replace)\n } else {\n c = null\n }\n }\n if (c) {\n this.emit('data', c)\n }\n this.emit('end')\n }\n\n destroy (...args) {\n return this.#proxy('destroy', ...args)\n }\n\n destroySoon (...args) {\n return this.#proxy('destroySoon', ...args)\n }\n\n close (...args) {\n return this.#proxy('close', ...args)\n }\n}\n\nmodule.exports = MuteStream\n","/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals = [];\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM');\nif (process.platform !== 'win32') {\n signals.push('SIGALRM', 'SIGABRT', 'SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n );\n}\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT');\n}\n//# sourceMappingURL=signals.js.map","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js';\nexport { signals };\nconst processOk = (process) => !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function';\nconst kExitEmitter = Symbol.for('signal-exit emitter');\nconst global = globalThis;\nconst ObjectDefineProperty = Object.defineProperty.bind(Object);\n// teeny special purpose ee\nclass Emitter {\n emitted = {\n afterExit: false,\n exit: false,\n };\n listeners = {\n afterExit: [],\n exit: [],\n };\n count = 0;\n id = Math.random();\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter];\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n }\n on(ev, fn) {\n this.listeners[ev].push(fn);\n }\n removeListener(ev, fn) {\n const list = this.listeners[ev];\n const i = list.indexOf(fn);\n /* c8 ignore start */\n if (i === -1) {\n return;\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0;\n }\n else {\n list.splice(i, 1);\n }\n }\n emit(ev, code, signal) {\n if (this.emitted[ev]) {\n return false;\n }\n this.emitted[ev] = true;\n let ret = false;\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret;\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret;\n }\n return ret;\n }\n}\nclass SignalExitBase {\n}\nconst signalExitWrap = (handler) => {\n return {\n onExit(cb, opts) {\n return handler.onExit(cb, opts);\n },\n load() {\n return handler.load();\n },\n unload() {\n return handler.unload();\n },\n };\n};\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => { };\n }\n load() { }\n unload() { }\n}\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP';\n /* c8 ignore stop */\n #emitter = new Emitter();\n #process;\n #originalProcessEmit;\n #originalProcessReallyExit;\n #sigListeners = {};\n #loaded = false;\n constructor(process) {\n super();\n this.#process = process;\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {};\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig);\n let { count } = this.#emitter;\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process;\n if (typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number') {\n count += p.__signal_exit_emitter__.count;\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload();\n const ret = this.#emitter.emit('exit', null, sig);\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig;\n if (!ret)\n process.kill(process.pid, s);\n /* c8 ignore stop */\n }\n };\n }\n this.#originalProcessReallyExit = process.reallyExit;\n this.#originalProcessEmit = process.emit;\n }\n onExit(cb, opts) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => { };\n }\n /* c8 ignore stop */\n if (this.#loaded === false) {\n this.load();\n }\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit';\n this.#emitter.on(ev, cb);\n return () => {\n this.#emitter.removeListener(ev, cb);\n if (this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0) {\n this.unload();\n }\n };\n }\n load() {\n if (this.#loaded) {\n return;\n }\n this.#loaded = true;\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1;\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig];\n if (fn)\n this.#process.on(sig, fn);\n }\n catch (_) { }\n }\n this.#process.emit = (ev, ...a) => {\n return this.#processEmit(ev, ...a);\n };\n this.#process.reallyExit = (code) => {\n return this.#processReallyExit(code);\n };\n }\n unload() {\n if (!this.#loaded) {\n return;\n }\n this.#loaded = false;\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig];\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig);\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener);\n /* c8 ignore start */\n }\n catch (_) { }\n /* c8 ignore stop */\n });\n this.#process.emit = this.#originalProcessEmit;\n this.#process.reallyExit = this.#originalProcessReallyExit;\n this.#emitter.count -= 1;\n }\n #processReallyExit(code) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0;\n }\n this.#process.exitCode = code || 0;\n /* c8 ignore stop */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);\n }\n #processEmit(ev, ...args) {\n const og = this.#originalProcessEmit;\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0];\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args);\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n /* c8 ignore stop */\n return ret;\n }\n else {\n return og.call(this.#process, ev, ...args);\n }\n }\n}\nconst process = globalThis.process;\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const { \n/**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\nonExit, \n/**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nload, \n/**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nunload, } = signalExitWrap(processOk(process) ? new SignalExit(process) : new SignalExitFallback());\n//# sourceMappingURL=index.js.map","const ESC = '\\u001B[';\n/** Move cursor to first column */\nexport const cursorLeft = ESC + 'G';\n/** Hide the cursor */\nexport const cursorHide = ESC + '?25l';\n/** Show the cursor */\nexport const cursorShow = ESC + '?25h';\n/** Move cursor up by count rows */\nexport const cursorUp = (rows = 1) => (rows > 0 ? `${ESC}${rows}A` : '');\n/** Move cursor down by count rows */\nexport const cursorDown = (rows = 1) => rows > 0 ? `${ESC}${rows}B` : '';\n/** Move cursor to position (x, y) */\nexport const cursorTo = (x, y) => {\n if (typeof y === 'number' && !Number.isNaN(y)) {\n return `${ESC}${y + 1};${x + 1}H`;\n }\n return `${ESC}${x + 1}G`;\n};\nconst eraseLine = ESC + '2K';\n/** Erase the specified number of lines above the cursor */\nexport const eraseLines = (lines) => lines > 0 ? (eraseLine + cursorUp(1)).repeat(lines - 1) + eraseLine + cursorLeft : '';\n","import { stripVTControlCharacters } from 'node:util';\nimport { breakLines, readlineWidth } from \"./utils.js\";\nimport { cursorDown, cursorUp, cursorTo, cursorShow, eraseLines } from '@inquirer/ansi';\nconst height = (content) => content.split('\\n').length;\nconst lastLine = (content) => content.split('\\n').pop() ?? '';\nexport default class ScreenManager {\n // These variables are keeping information to allow correct prompt re-rendering\n height = 0;\n extraLinesUnderPrompt = 0;\n cursorPos;\n rl;\n constructor(rl) {\n this.rl = rl;\n this.cursorPos = rl.getCursorPos();\n }\n write(content) {\n this.rl.output.unmute();\n this.rl.output.write(content);\n this.rl.output.mute();\n }\n render(content, bottomContent = '') {\n // Write message to screen and setPrompt to control backspace\n const promptLine = lastLine(content);\n const rawPromptLine = stripVTControlCharacters(promptLine);\n // Remove the rl.line from our prompt. We can't rely on the content of\n // rl.line (mainly because of the password prompt), so just rely on it's\n // length.\n let prompt = rawPromptLine;\n if (this.rl.line.length > 0) {\n prompt = prompt.slice(0, -this.rl.line.length);\n }\n this.rl.setPrompt(prompt);\n // SetPrompt will change cursor position, now we can get correct value\n this.cursorPos = this.rl.getCursorPos();\n const width = readlineWidth();\n content = breakLines(content, width);\n bottomContent = breakLines(bottomContent, width);\n // Manually insert an extra line if we're at the end of the line.\n // This prevent the cursor from appearing at the beginning of the\n // current line.\n if (rawPromptLine.length % width === 0) {\n content += '\\n';\n }\n let output = content + (bottomContent ? '\\n' + bottomContent : '');\n /**\n * Re-adjust the cursor at the correct position.\n */\n // We need to consider parts of the prompt under the cursor as part of the bottom\n // content in order to correctly cleanup and re-render.\n const promptLineUpDiff = Math.floor(rawPromptLine.length / width) - this.cursorPos.rows;\n const bottomContentHeight = promptLineUpDiff + (bottomContent ? height(bottomContent) : 0);\n // Return cursor to the input position (on top of the bottomContent)\n if (bottomContentHeight > 0)\n output += cursorUp(bottomContentHeight);\n // Return cursor to the initial left offset.\n output += cursorTo(this.cursorPos.cols);\n /**\n * Render and store state for future re-rendering\n */\n this.write(cursorDown(this.extraLinesUnderPrompt) + eraseLines(this.height) + output);\n this.extraLinesUnderPrompt = bottomContentHeight;\n this.height = height(output);\n }\n checkCursorPos() {\n const cursorPos = this.rl.getCursorPos();\n if (cursorPos.cols !== this.cursorPos.cols) {\n this.write(cursorTo(cursorPos.cols));\n this.cursorPos = cursorPos;\n }\n }\n done({ clearContent }) {\n this.rl.setPrompt('');\n let output = cursorDown(this.extraLinesUnderPrompt);\n output += clearContent ? eraseLines(this.height) : '\\n';\n output += cursorShow;\n this.write(output);\n this.rl.close();\n }\n}\n","// TODO: Remove this class once Node 22 becomes the minimum supported version.\nexport class PromisePolyfill extends Promise {\n // Available starting from Node 22\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers\n static withResolver() {\n let resolve;\n let reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve: resolve, reject: reject };\n }\n}\n","import * as readline from 'node:readline';\nimport { AsyncResource } from 'node:async_hooks';\nimport MuteStream from 'mute-stream';\nimport { onExit as onSignalExit } from 'signal-exit';\nimport ScreenManager from \"./screen-manager.js\";\nimport { PromisePolyfill } from \"./promise-polyfill.js\";\nimport { withHooks, effectScheduler } from \"./hook-engine.js\";\nimport { AbortPromptError, CancelPromptError, ExitPromptError } from \"./errors.js\";\nfunction getCallSites() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _prepareStackTrace = Error.prepareStackTrace;\n let result = [];\n try {\n Error.prepareStackTrace = (_, callSites) => {\n const callSitesWithoutCurrent = callSites.slice(1);\n result = callSitesWithoutCurrent;\n return callSitesWithoutCurrent;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n new Error().stack;\n }\n catch {\n // An error will occur if the Node flag --frozen-intrinsics is used.\n // https://nodejs.org/api/cli.html#--frozen-intrinsics\n return result;\n }\n Error.prepareStackTrace = _prepareStackTrace;\n return result;\n}\nexport function createPrompt(view) {\n const callSites = getCallSites();\n const prompt = (config, context = {}) => {\n // Default `input` to stdin\n const { input = process.stdin, signal } = context;\n const cleanups = new Set();\n // Add mute capabilities to the output\n const output = new MuteStream();\n output.pipe(context.output ?? process.stdout);\n const rl = readline.createInterface({\n terminal: true,\n input,\n output,\n });\n const screen = new ScreenManager(rl);\n const { promise, resolve, reject } = PromisePolyfill.withResolver();\n const cancel = () => reject(new CancelPromptError());\n if (signal) {\n const abort = () => reject(new AbortPromptError({ cause: signal.reason }));\n if (signal.aborted) {\n abort();\n return Object.assign(promise, { cancel });\n }\n signal.addEventListener('abort', abort);\n cleanups.add(() => signal.removeEventListener('abort', abort));\n }\n cleanups.add(onSignalExit((code, signal) => {\n reject(new ExitPromptError(`User force closed the prompt with ${code} ${signal}`));\n }));\n // SIGINT must be explicitly handled by the prompt so the ExitPromptError can be handled.\n // Otherwise, the prompt will stop and in some scenarios never resolve.\n // Ref issue #1741\n const sigint = () => reject(new ExitPromptError(`User force closed the prompt with SIGINT`));\n rl.on('SIGINT', sigint);\n cleanups.add(() => rl.removeListener('SIGINT', sigint));\n // Re-renders only happen when the state change; but the readline cursor could change position\n // and that also requires a re-render (and a manual one because we mute the streams).\n // We set the listener after the initial workLoop to avoid a double render if render triggered\n // by a state change sets the cursor to the right position.\n const checkCursorPos = () => screen.checkCursorPos();\n rl.input.on('keypress', checkCursorPos);\n cleanups.add(() => rl.input.removeListener('keypress', checkCursorPos));\n return withHooks(rl, (cycle) => {\n // The close event triggers immediately when the user press ctrl+c. SignalExit on the other hand\n // triggers after the process is done (which happens after timeouts are done triggering.)\n // We triggers the hooks cleanup phase on rl `close` so active timeouts can be cleared.\n const hooksCleanup = AsyncResource.bind(() => effectScheduler.clearAll());\n rl.on('close', hooksCleanup);\n cleanups.add(() => rl.removeListener('close', hooksCleanup));\n cycle(() => {\n try {\n const nextView = view(config, (value) => {\n setImmediate(() => resolve(value));\n });\n // Typescript won't allow this, but not all users rely on typescript.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (nextView === undefined) {\n const callerFilename = callSites[1]?.getFileName();\n throw new Error(`Prompt functions must return a string.\\n at ${callerFilename}`);\n }\n const [content, bottomContent] = typeof nextView === 'string' ? [nextView] : nextView;\n screen.render(content, bottomContent);\n effectScheduler.run();\n }\n catch (error) {\n reject(error);\n }\n });\n return Object.assign(promise\n .then((answer) => {\n effectScheduler.clearAll();\n return answer;\n }, (error) => {\n effectScheduler.clearAll();\n throw error;\n })\n // Wait for the promise to settle, then cleanup.\n .finally(() => {\n cleanups.forEach((cleanup) => cleanup());\n screen.done({ clearContent: Boolean(context.clearPromptOnDone) });\n output.end();\n })\n // Once cleanup is done, let the expose promise resolve/reject to the internal one.\n .then(() => promise), { cancel });\n });\n };\n return prompt;\n}\n","import { createPrompt, useState, useKeypress, isEnterKey, isTabKey, usePrefix, makeTheme, } from '@inquirer/core';\nfunction getBooleanValue(value, defaultValue) {\n let answer = defaultValue !== false;\n if (/^(y|yes)/i.test(value))\n answer = true;\n else if (/^(n|no)/i.test(value))\n answer = false;\n return answer;\n}\nfunction boolToString(value) {\n return value ? 'Yes' : 'No';\n}\nexport default createPrompt((config, done) => {\n const { transformer = boolToString } = config;\n const [status, setStatus] = useState('idle');\n const [value, setValue] = useState('');\n const theme = makeTheme(config.theme);\n const prefix = usePrefix({ status, theme });\n useKeypress((key, rl) => {\n if (status !== 'idle')\n return;\n if (isEnterKey(key)) {\n const answer = getBooleanValue(value, config.default);\n setValue(transformer(answer));\n setStatus('done');\n done(answer);\n }\n else if (isTabKey(key)) {\n const answer = boolToString(!getBooleanValue(value, config.default));\n rl.clearLine(0); // Remove the tab character.\n rl.write(answer);\n setValue(answer);\n }\n else {\n setValue(rl.line);\n }\n });\n let formattedValue = value;\n let defaultValue = '';\n if (status === 'done') {\n formattedValue = theme.style.answer(value);\n }\n else {\n defaultValue = ` ${theme.style.defaultAnswer(config.default === false ? 'y/N' : 'Y/n')}`;\n }\n const message = theme.style.message(config.message, status);\n return `${prefix} ${message}${defaultValue} ${formattedValue}`;\n});\n","import { createPrompt, useState, useKeypress, useEffect, usePrefix, isBackspaceKey, isEnterKey, isTabKey, makeTheme, } from '@inquirer/core';\nconst inputTheme = {\n validationFailureMode: 'keep',\n};\nexport default createPrompt((config, done) => {\n const { prefill = 'tab' } = config;\n const theme = makeTheme(inputTheme, config.theme);\n const [status, setStatus] = useState('idle');\n const [defaultValue = '', setDefaultValue] = useState(config.default);\n const [errorMsg, setError] = useState();\n const [value, setValue] = useState('');\n const prefix = usePrefix({ status, theme });\n async function validate(value) {\n const { required, pattern, patternError = 'Invalid input' } = config;\n if (required && !value) {\n return 'You must provide a value';\n }\n if (pattern && !pattern.test(value)) {\n return patternError;\n }\n if (typeof config.validate === 'function') {\n return (await config.validate(value)) || 'You must provide a valid value';\n }\n return true;\n }\n useKeypress(async (key, rl) => {\n // Ignore keypress while our prompt is doing other processing.\n if (status !== 'idle') {\n return;\n }\n if (isEnterKey(key)) {\n const answer = value || defaultValue;\n setStatus('loading');\n const isValid = await validate(answer);\n if (isValid === true) {\n setValue(answer);\n setStatus('done');\n done(answer);\n }\n else {\n if (theme.validationFailureMode === 'clear') {\n setValue('');\n }\n else {\n // Reset the readline line value to the previous value. On line event, the value\n // get cleared, forcing the user to re-enter the value instead of fixing it.\n rl.write(value);\n }\n setError(isValid);\n setStatus('idle');\n }\n }\n else if (isBackspaceKey(key) && !value) {\n setDefaultValue(undefined);\n }\n else if (isTabKey(key) && !value) {\n setDefaultValue(undefined);\n rl.clearLine(0); // Remove the tab character.\n rl.write(defaultValue);\n setValue(defaultValue);\n }\n else {\n setValue(rl.line);\n setError(undefined);\n }\n });\n // If prefill is set to 'editable' cut out the default value and paste into current state and the user's cli buffer\n // They can edit the value immediately instead of needing to press 'tab'\n useEffect((rl) => {\n if (prefill === 'editable' && defaultValue) {\n rl.write(defaultValue);\n setValue(defaultValue);\n }\n }, []);\n const message = theme.style.message(config.message, status);\n let formattedValue = value;\n if (typeof config.transformer === 'function') {\n formattedValue = config.transformer(value, { isFinal: status === 'done' });\n }\n else if (status === 'done') {\n formattedValue = theme.style.answer(value);\n }\n let defaultStr;\n if (defaultValue && status !== 'done' && !value) {\n defaultStr = theme.style.defaultAnswer(defaultValue);\n }\n let error = '';\n if (errorMsg) {\n error = theme.style.error(errorMsg);\n }\n return [\n [prefix, message, defaultStr, formattedValue]\n .filter((v) => v !== undefined)\n .join(' '),\n error,\n ];\n});\n","import path from 'path';\r\nimport { fileURLToPath } from 'url';\r\nimport { exec } from 'child_process';\r\nimport { promisify } from 'util';\r\nimport fs from 'fs-extra';\r\nimport {definePlugin} from \"@libria/plugin-loader\";\r\nimport {SCAFFOLD_TEMPLATE_PLUGIN_TYPE, ScaffoldTemplatePlugin, ScaffoldTemplatePluginOptions} from \"../../src\";\r\nimport {input, confirm} from \"@inquirer/prompts\";\r\nimport {TsLibInitialOptions} from \"./types\";\r\n\r\nconst execAsync = promisify(exec);\r\n\r\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\r\nconst FILES_DIR = path.resolve(__dirname, 'files');\r\nexport default definePlugin<ScaffoldTemplatePlugin>(SCAFFOLD_TEMPLATE_PLUGIN_TYPE, 'ts-lib', {\r\n argument: 'ts-lib',\r\n async execute(options: ScaffoldTemplatePluginOptions): Promise<void> {\r\n const userOptions = await getInitialUserOptions(options);\r\n await generateProject(userOptions);\r\n await postProcess(userOptions);\r\n }\r\n})\r\n\r\nasync function replacePlaceholders(targetDir: string, options: TsLibInitialOptions) {\r\n const { packageName, description, version, githubRepo, author } = options;\r\n\r\n const replacements: Record<string, string> = {\r\n '{PACKAGE_NAME}': packageName,\r\n '{DESCRIPTION}': description,\r\n '{VERSION}': version,\r\n '{GITHUB_REPO}': githubRepo,\r\n '{AUTHOR}': author,\r\n };\r\n\r\n async function replaceInFiles(folder: string) {\r\n const entries = await fs.readdir(folder);\r\n for (const entry of entries) {\r\n const fullPath = path.join(folder, entry);\r\n const stat = await fs.stat(fullPath);\r\n if (stat.isDirectory()) {\r\n await replaceInFiles(fullPath);\r\n } else if (/\\.(ts|js|json|md|txt)$/i.test(entry)) {\r\n let content = await fs.readFile(fullPath, 'utf-8');\r\n for (const [placeholder, value] of Object.entries(replacements)) {\r\n content = content.replaceAll(placeholder, value);\r\n }\r\n await fs.writeFile(fullPath, content, 'utf-8');\r\n }\r\n }\r\n }\r\n\r\n await replaceInFiles(targetDir);\r\n}\r\n\r\nasync function generateProject(options: TsLibInitialOptions): Promise<void> {\r\n const { name, dryRun, force } = options;\r\n const targetDir = path.resolve(process.cwd(), name);\r\n\r\n // Check if target directory exists\r\n if (await fs.pathExists(targetDir)) {\r\n if (!force) {\r\n console.error(`Directory '${name}' already exists. Use --force to overwrite.`);\r\n process.exit(1);\r\n }\r\n if (dryRun) {\r\n console.log(`[dry-run] Would remove existing directory: ${targetDir}`);\r\n } else {\r\n await fs.remove(targetDir);\r\n console.log(`Removed existing directory: ${targetDir}`);\r\n }\r\n }\r\n\r\n // Create target directory\r\n if (dryRun) {\r\n console.log(`[dry-run] Would create directory: ${targetDir}`);\r\n } else {\r\n await fs.ensureDir(targetDir);\r\n console.log(`Created directory: ${targetDir}`);\r\n }\r\n\r\n // Copy all files from files directory to target\r\n const entries = await fs.readdir(FILES_DIR, { withFileTypes: true });\r\n await copyEntries(FILES_DIR, targetDir, entries, dryRun);\r\n\r\n if (!dryRun) {\r\n await replacePlaceholders(targetDir, options);\r\n }\r\n\r\n if (dryRun) {\r\n console.log('\\n[dry-run] No files were actually created.');\r\n } else {\r\n console.log(`\\nProject '${name}' created successfully!`);\r\n }\r\n}\r\n\r\nasync function copyEntries(\r\n sourceDir: string,\r\n targetDir: string,\r\n entries: fs.Dirent[],\r\n dryRun?: boolean\r\n): Promise<void> {\r\n for (const entry of entries) {\r\n const sourcePath = path.join(sourceDir, entry.name);\r\n const targetPath = path.join(targetDir, entry.name);\r\n\r\n if (entry.isDirectory()) {\r\n if (dryRun) {\r\n console.log(`[dry-run] Would create directory: ${targetPath}`);\r\n } else {\r\n await fs.ensureDir(targetPath);\r\n }\r\n // Recursively copy directory contents\r\n const subEntries = await fs.readdir(sourcePath, { withFileTypes: true });\r\n await copyEntries(sourcePath, targetPath, subEntries, dryRun);\r\n } else if (entry.isFile()) {\r\n if (dryRun) {\r\n console.log(`[dry-run] Would copy: ${entry.name}`);\r\n } else {\r\n await fs.copy(sourcePath, targetPath);\r\n console.log(`Copied: ${entry.name}`);\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nasync function getInitialUserOptions(options: ScaffoldTemplatePluginOptions): Promise<TsLibInitialOptions> {\r\n const packageName = await input({\r\n message: 'Package name:',\r\n default: options.name,\r\n });\r\n\r\n const description = await input({\r\n message: 'Description:',\r\n });\r\n\r\n const version = await input({\r\n message: 'Version:',\r\n default: '0.0.0',\r\n });\r\n\r\n const author = await input({\r\n message: 'Author:',\r\n });\r\n\r\n const githubRepo = await input({\r\n message: 'GitHub repository (owner/repo):',\r\n default: `${author}/${packageName}`,\r\n });\r\n\r\n return {\r\n packageName,\r\n description,\r\n version,\r\n author,\r\n githubRepo,\r\n ...options,\r\n };\r\n}\r\n\r\nasync function postProcess(options: TsLibInitialOptions): Promise<void> {\r\n const { name, dryRun } = options;\r\n const targetDir = path.resolve(process.cwd(), name);\r\n\r\n if (dryRun) {\r\n console.log('\\n[dry-run] Skipping post-process steps.');\r\n return;\r\n }\r\n\r\n const runGitInit = await confirm({\r\n message: 'Initialize git repository?',\r\n default: true,\r\n });\r\n\r\n if (runGitInit) {\r\n try {\r\n console.log('Initializing git repository...');\r\n await execAsync('git init', { cwd: targetDir });\r\n console.log('Git repository initialized.');\r\n } catch (error) {\r\n console.error('Failed to initialize git repository:', (error as Error).message);\r\n }\r\n }\r\n\r\n const runNpmInstall = await confirm({\r\n message: 'Run npm install?',\r\n default: true,\r\n });\r\n\r\n if (runNpmInstall) {\r\n try {\r\n console.log('Installing dependencies (this may take a moment)...');\r\n await execAsync('npm install', { cwd: targetDir });\r\n console.log('Dependencies installed successfully.');\r\n } catch (error) {\r\n console.error('Failed to install dependencies:', (error as Error).message);\r\n }\r\n }\r\n\r\n console.log('\\nAll done! Your project is ready.');\r\n console.log(`\\n cd ${name}`);\r\n if (!runNpmInstall) {\r\n console.log(' npm install');\r\n }\r\n console.log(' npm run build');\r\n console.log(' npm test');\r\n}"],"x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"mappings":"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"}
|