create-qorechain-dapp 0.5.0 → 0.5.1

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/dist/index.js CHANGED
@@ -937,7 +937,7 @@ function scaffold(options) {
937
937
  }
938
938
 
939
939
  // src/index.ts
940
- var VERSION = "0.1.0";
940
+ var VERSION = "0.5.1";
941
941
  function isEmptyOrMissing(dir) {
942
942
  if (!existsSync2(dir)) return true;
943
943
  return readdirSync2(dir).length === 0;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js","../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../src/index.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/eastasianwidth@0.2.0/node_modules/eastasianwidth/eastasianwidth.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/emoji-regex@9.2.2/node_modules/emoji-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/string-width@5.1.2/node_modules/string-width/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/wrap-ansi@8.1.0/node_modules/wrap-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/prompt.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/confirm.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/group-multiselect.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/multi-select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/password.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select-key.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/text.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/utils.ts","../../node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs","../src/templates.ts","../src/args.ts","../src/scaffold.ts"],"sourcesContent":["'use strict';\n\nconst ESC = '\\x1B';\nconst CSI = `${ESC}[`;\nconst beep = '\\u0007';\n\nconst cursor = {\n to(x, y) {\n if (!y) return `${CSI}${x + 1}G`;\n return `${CSI}${y + 1};${x + 1}H`;\n },\n move(x, y) {\n let ret = '';\n\n if (x < 0) ret += `${CSI}${-x}D`;\n else if (x > 0) ret += `${CSI}${x}C`;\n\n if (y < 0) ret += `${CSI}${-y}A`;\n else if (y > 0) ret += `${CSI}${y}B`;\n\n return ret;\n },\n up: (count = 1) => `${CSI}${count}A`,\n down: (count = 1) => `${CSI}${count}B`,\n forward: (count = 1) => `${CSI}${count}C`,\n backward: (count = 1) => `${CSI}${count}D`,\n nextLine: (count = 1) => `${CSI}E`.repeat(count),\n prevLine: (count = 1) => `${CSI}F`.repeat(count),\n left: `${CSI}G`,\n hide: `${CSI}?25l`,\n show: `${CSI}?25h`,\n save: `${ESC}7`,\n restore: `${ESC}8`\n}\n\nconst scroll = {\n up: (count = 1) => `${CSI}S`.repeat(count),\n down: (count = 1) => `${CSI}T`.repeat(count)\n}\n\nconst erase = {\n screen: `${CSI}2J`,\n up: (count = 1) => `${CSI}1J`.repeat(count),\n down: (count = 1) => `${CSI}J`.repeat(count),\n line: `${CSI}2K`,\n lineEnd: `${CSI}K`,\n lineStart: `${CSI}1K`,\n lines(count) {\n let clear = '';\n for (let i = 0; i < count; i++)\n clear += this.line + (i < count - 1 ? cursor.up() : '');\n if (count)\n clear += cursor.left;\n return clear;\n }\n}\n\nmodule.exports = { cursor, scroll, erase, beep };\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","/**\n * `create-qorechain-dapp` entry point.\n *\n * Parses flags (non-interactive / CI mode) and falls back to interactive prompts\n * for any missing inputs. All scaffolding side effects are delegated to the pure\n * {@link scaffold} function in `./scaffold`.\n */\nimport { existsSync, readdirSync } from \"node:fs\";\nimport { basename, resolve } from \"node:path\";\n\nimport {\n cancel,\n intro,\n isCancel,\n log,\n note,\n outro,\n select,\n text,\n} from \"@clack/prompts\";\nimport pc from \"picocolors\";\n\nimport { ArgError, helpText, parseArgs } from \"./args.js\";\nimport {\n scaffold,\n type Network,\n type PackageManager,\n} from \"./scaffold.js\";\nimport { findTemplate, TEMPLATES, templateIdList } from \"./templates.js\";\n\nconst VERSION = \"0.1.0\";\n\nfunction isEmptyOrMissing(dir: string): boolean {\n if (!existsSync(dir)) return true;\n return readdirSync(dir).length === 0;\n}\n\n/** Validate a directory name segment for a project name fallback. */\nfunction defaultProjectName(dir: string): string {\n const base = basename(resolve(dir));\n // npm package names: lowercase, no spaces.\n return base\n .toLowerCase()\n .replace(/[^a-z0-9-~._]/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .replace(/-+/g, \"-\") || \"qorechain-dapp\";\n}\n\nasync function promptDir(initial?: string): Promise<string> {\n if (initial) return initial;\n const value = await text({\n message: \"Where should we create your project?\",\n placeholder: \"./my-qorechain-dapp\",\n defaultValue: \"./my-qorechain-dapp\",\n validate: (v) => {\n const dir = v || \"./my-qorechain-dapp\";\n if (!isEmptyOrMissing(resolve(dir))) {\n return `Directory ${dir} already exists and is not empty.`;\n }\n return undefined;\n },\n });\n if (isCancel(value)) bail();\n return (value as string) || \"./my-qorechain-dapp\";\n}\n\nasync function promptTemplate(initial?: string): Promise<string> {\n if (initial) {\n if (!findTemplate(initial)) {\n cancel(`Unknown template \"${initial}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n return initial;\n }\n const value = await select({\n message: \"Pick a template\",\n options: TEMPLATES.map((t) => ({\n value: t.id,\n label: t.label,\n hint: t.hint,\n })),\n });\n if (isCancel(value)) bail();\n return value as string;\n}\n\nasync function promptNetwork(initial?: Network): Promise<Network> {\n if (initial) return initial;\n const value = await select({\n message: \"Which network?\",\n options: [\n { value: \"testnet\", label: \"testnet\", hint: \"qorechain-diana\" },\n { value: \"mainnet\", label: \"mainnet\", hint: \"qorechain-vladi\" },\n ],\n initialValue: \"testnet\",\n });\n if (isCancel(value)) bail();\n return value as Network;\n}\n\nasync function promptPackageManager(\n initial?: PackageManager,\n): Promise<PackageManager> {\n if (initial) return initial;\n const value = await select({\n message: \"Package manager?\",\n options: [\n { value: \"pnpm\", label: \"pnpm\" },\n { value: \"npm\", label: \"npm\" },\n { value: \"yarn\", label: \"yarn\" },\n ],\n initialValue: \"pnpm\",\n });\n if (isCancel(value)) bail();\n return value as PackageManager;\n}\n\nfunction bail(): never {\n cancel(\"Operation cancelled.\");\n process.exit(0);\n}\n\nfunction nextSteps(\n dir: string,\n pm: PackageManager,\n installed: boolean,\n template: string,\n): string {\n const lines: string[] = [`cd ${dir}`];\n if (!installed) lines.push(`${pm} install`);\n const run = pm === \"npm\" ? \"npm run\" : pm;\n if (template === \"fullstack-web\") {\n lines.push(`${run} dev`);\n } else {\n lines.push(`${run} deploy # see README for prerequisites`);\n }\n return lines.join(\"\\n\");\n}\n\nasync function main(): Promise<void> {\n const argv = process.argv.slice(2);\n let parsed;\n try {\n parsed = parseArgs(argv);\n } catch (err) {\n if (err instanceof ArgError) {\n console.error(pc.red(err.message));\n console.error(`\\nRun ${pc.cyan(\"create-qorechain-dapp --help\")} for usage.`);\n process.exit(1);\n }\n throw err;\n }\n\n if (parsed.help) {\n console.log(helpText());\n return;\n }\n if (parsed.version) {\n console.log(VERSION);\n return;\n }\n\n intro(pc.bgCyan(pc.black(\" create-qorechain-dapp \")));\n\n // Resolve each input: flags first, then prompts (unless --yes fills defaults).\n const dir = parsed.dir ?? (parsed.yes ? \"./my-qorechain-dapp\" : await promptDir());\n const template =\n parsed.template ??\n (parsed.yes ? TEMPLATES[0].id : await promptTemplate());\n // Validate the (possibly flag-provided) template eagerly.\n if (!findTemplate(template)) {\n cancel(`Unknown template \"${template}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n const network =\n parsed.network ?? (parsed.yes ? \"testnet\" : await promptNetwork());\n const packageManager =\n parsed.packageManager ??\n (parsed.yes ? \"pnpm\" : await promptPackageManager());\n\n const projectName = defaultProjectName(dir);\n\n // In interactive mode, default install to the flag (true unless --no-install).\n const install = parsed.install;\n\n try {\n if (install) log.step(\"Scaffolding and installing dependencies…\");\n else log.step(\"Scaffolding…\");\n\n const result = scaffold({\n template,\n targetDir: dir,\n projectName,\n packageManager,\n network,\n install,\n local: parsed.local,\n });\n\n if (parsed.local) {\n note(\n \"Dependencies were rewritten to local file: links into this monorepo.\\n\" +\n \"Build the workspace packages first (pnpm -r build at the repo root).\",\n \"Local mode\",\n );\n }\n\n note(nextSteps(dir, packageManager, result.installed, template), \"Next steps\");\n outro(pc.green(`Done! Created ${projectName} at ${result.targetDir}`));\n } catch (err) {\n cancel(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nmain().catch((err: unknown) => {\n console.error(err instanceof Error ? err.stack ?? err.message : err);\n process.exit(1);\n});\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","var eaw = {};\n\nif ('undefined' == typeof module) {\n window.eastasianwidth = eaw;\n} else {\n module.exports = eaw;\n}\n\neaw.eastAsianWidth = function(character) {\n var x = character.charCodeAt(0);\n var y = (character.length == 2) ? character.charCodeAt(1) : 0;\n var codePoint = x;\n if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) {\n x &= 0x3FF;\n y &= 0x3FF;\n codePoint = (x << 10) | y;\n codePoint += 0x10000;\n }\n\n if ((0x3000 == codePoint) ||\n (0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) {\n return 'F';\n }\n if ((0x20A9 == codePoint) ||\n (0xFF61 <= codePoint && codePoint <= 0xFFBE) ||\n (0xFFC2 <= codePoint && codePoint <= 0xFFC7) ||\n (0xFFCA <= codePoint && codePoint <= 0xFFCF) ||\n (0xFFD2 <= codePoint && codePoint <= 0xFFD7) ||\n (0xFFDA <= codePoint && codePoint <= 0xFFDC) ||\n (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) {\n return 'H';\n }\n if ((0x1100 <= codePoint && codePoint <= 0x115F) ||\n (0x11A3 <= codePoint && codePoint <= 0x11A7) ||\n (0x11FA <= codePoint && codePoint <= 0x11FF) ||\n (0x2329 <= codePoint && codePoint <= 0x232A) ||\n (0x2E80 <= codePoint && codePoint <= 0x2E99) ||\n (0x2E9B <= codePoint && codePoint <= 0x2EF3) ||\n (0x2F00 <= codePoint && codePoint <= 0x2FD5) ||\n (0x2FF0 <= codePoint && codePoint <= 0x2FFB) ||\n (0x3001 <= codePoint && codePoint <= 0x303E) ||\n (0x3041 <= codePoint && codePoint <= 0x3096) ||\n (0x3099 <= codePoint && codePoint <= 0x30FF) ||\n (0x3105 <= codePoint && codePoint <= 0x312D) ||\n (0x3131 <= codePoint && codePoint <= 0x318E) ||\n (0x3190 <= codePoint && codePoint <= 0x31BA) ||\n (0x31C0 <= codePoint && codePoint <= 0x31E3) ||\n (0x31F0 <= codePoint && codePoint <= 0x321E) ||\n (0x3220 <= codePoint && codePoint <= 0x3247) ||\n (0x3250 <= codePoint && codePoint <= 0x32FE) ||\n (0x3300 <= codePoint && codePoint <= 0x4DBF) ||\n (0x4E00 <= codePoint && codePoint <= 0xA48C) ||\n (0xA490 <= codePoint && codePoint <= 0xA4C6) ||\n (0xA960 <= codePoint && codePoint <= 0xA97C) ||\n (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n (0xD7B0 <= codePoint && codePoint <= 0xD7C6) ||\n (0xD7CB <= codePoint && codePoint <= 0xD7FB) ||\n (0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n (0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n (0xFE30 <= codePoint && codePoint <= 0xFE52) ||\n (0xFE54 <= codePoint && codePoint <= 0xFE66) ||\n (0xFE68 <= codePoint && codePoint <= 0xFE6B) ||\n (0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n (0x1F200 <= codePoint && codePoint <= 0x1F202) ||\n (0x1F210 <= codePoint && codePoint <= 0x1F23A) ||\n (0x1F240 <= codePoint && codePoint <= 0x1F248) ||\n (0x1F250 <= codePoint && codePoint <= 0x1F251) ||\n (0x20000 <= codePoint && codePoint <= 0x2F73F) ||\n (0x2B740 <= codePoint && codePoint <= 0x2FFFD) ||\n (0x30000 <= codePoint && codePoint <= 0x3FFFD)) {\n return 'W';\n }\n if ((0x0020 <= codePoint && codePoint <= 0x007E) ||\n (0x00A2 <= codePoint && codePoint <= 0x00A3) ||\n (0x00A5 <= codePoint && codePoint <= 0x00A6) ||\n (0x00AC == codePoint) ||\n (0x00AF == codePoint) ||\n (0x27E6 <= codePoint && codePoint <= 0x27ED) ||\n (0x2985 <= codePoint && codePoint <= 0x2986)) {\n return 'Na';\n }\n if ((0x00A1 == codePoint) ||\n (0x00A4 == codePoint) ||\n (0x00A7 <= codePoint && codePoint <= 0x00A8) ||\n (0x00AA == codePoint) ||\n (0x00AD <= codePoint && codePoint <= 0x00AE) ||\n (0x00B0 <= codePoint && codePoint <= 0x00B4) ||\n (0x00B6 <= codePoint && codePoint <= 0x00BA) ||\n (0x00BC <= codePoint && codePoint <= 0x00BF) ||\n (0x00C6 == codePoint) ||\n (0x00D0 == codePoint) ||\n (0x00D7 <= codePoint && codePoint <= 0x00D8) ||\n (0x00DE <= codePoint && codePoint <= 0x00E1) ||\n (0x00E6 == codePoint) ||\n (0x00E8 <= codePoint && codePoint <= 0x00EA) ||\n (0x00EC <= codePoint && codePoint <= 0x00ED) ||\n (0x00F0 == codePoint) ||\n (0x00F2 <= codePoint && codePoint <= 0x00F3) ||\n (0x00F7 <= codePoint && codePoint <= 0x00FA) ||\n (0x00FC == codePoint) ||\n (0x00FE == codePoint) ||\n (0x0101 == codePoint) ||\n (0x0111 == codePoint) ||\n (0x0113 == codePoint) ||\n (0x011B == codePoint) ||\n (0x0126 <= codePoint && codePoint <= 0x0127) ||\n (0x012B == codePoint) ||\n (0x0131 <= codePoint && codePoint <= 0x0133) ||\n (0x0138 == codePoint) ||\n (0x013F <= codePoint && codePoint <= 0x0142) ||\n (0x0144 == codePoint) ||\n (0x0148 <= codePoint && codePoint <= 0x014B) ||\n (0x014D == codePoint) ||\n (0x0152 <= codePoint && codePoint <= 0x0153) ||\n (0x0166 <= codePoint && codePoint <= 0x0167) ||\n (0x016B == codePoint) ||\n (0x01CE == codePoint) ||\n (0x01D0 == codePoint) ||\n (0x01D2 == codePoint) ||\n (0x01D4 == codePoint) ||\n (0x01D6 == codePoint) ||\n (0x01D8 == codePoint) ||\n (0x01DA == codePoint) ||\n (0x01DC == codePoint) ||\n (0x0251 == codePoint) ||\n (0x0261 == codePoint) ||\n (0x02C4 == codePoint) ||\n (0x02C7 == codePoint) ||\n (0x02C9 <= codePoint && codePoint <= 0x02CB) ||\n (0x02CD == codePoint) ||\n (0x02D0 == codePoint) ||\n (0x02D8 <= codePoint && codePoint <= 0x02DB) ||\n (0x02DD == codePoint) ||\n (0x02DF == codePoint) ||\n (0x0300 <= codePoint && codePoint <= 0x036F) ||\n (0x0391 <= codePoint && codePoint <= 0x03A1) ||\n (0x03A3 <= codePoint && codePoint <= 0x03A9) ||\n (0x03B1 <= codePoint && codePoint <= 0x03C1) ||\n (0x03C3 <= codePoint && codePoint <= 0x03C9) ||\n (0x0401 == codePoint) ||\n (0x0410 <= codePoint && codePoint <= 0x044F) ||\n (0x0451 == codePoint) ||\n (0x2010 == codePoint) ||\n (0x2013 <= codePoint && codePoint <= 0x2016) ||\n (0x2018 <= codePoint && codePoint <= 0x2019) ||\n (0x201C <= codePoint && codePoint <= 0x201D) ||\n (0x2020 <= codePoint && codePoint <= 0x2022) ||\n (0x2024 <= codePoint && codePoint <= 0x2027) ||\n (0x2030 == codePoint) ||\n (0x2032 <= codePoint && codePoint <= 0x2033) ||\n (0x2035 == codePoint) ||\n (0x203B == codePoint) ||\n (0x203E == codePoint) ||\n (0x2074 == codePoint) ||\n (0x207F == codePoint) ||\n (0x2081 <= codePoint && codePoint <= 0x2084) ||\n (0x20AC == codePoint) ||\n (0x2103 == codePoint) ||\n (0x2105 == codePoint) ||\n (0x2109 == codePoint) ||\n (0x2113 == codePoint) ||\n (0x2116 == codePoint) ||\n (0x2121 <= codePoint && codePoint <= 0x2122) ||\n (0x2126 == codePoint) ||\n (0x212B == codePoint) ||\n (0x2153 <= codePoint && codePoint <= 0x2154) ||\n (0x215B <= codePoint && codePoint <= 0x215E) ||\n (0x2160 <= codePoint && codePoint <= 0x216B) ||\n (0x2170 <= codePoint && codePoint <= 0x2179) ||\n (0x2189 == codePoint) ||\n (0x2190 <= codePoint && codePoint <= 0x2199) ||\n (0x21B8 <= codePoint && codePoint <= 0x21B9) ||\n (0x21D2 == codePoint) ||\n (0x21D4 == codePoint) ||\n (0x21E7 == codePoint) ||\n (0x2200 == codePoint) ||\n (0x2202 <= codePoint && codePoint <= 0x2203) ||\n (0x2207 <= codePoint && codePoint <= 0x2208) ||\n (0x220B == codePoint) ||\n (0x220F == codePoint) ||\n (0x2211 == codePoint) ||\n (0x2215 == codePoint) ||\n (0x221A == codePoint) ||\n (0x221D <= codePoint && codePoint <= 0x2220) ||\n (0x2223 == codePoint) ||\n (0x2225 == codePoint) ||\n (0x2227 <= codePoint && codePoint <= 0x222C) ||\n (0x222E == codePoint) ||\n (0x2234 <= codePoint && codePoint <= 0x2237) ||\n (0x223C <= codePoint && codePoint <= 0x223D) ||\n (0x2248 == codePoint) ||\n (0x224C == codePoint) ||\n (0x2252 == codePoint) ||\n (0x2260 <= codePoint && codePoint <= 0x2261) ||\n (0x2264 <= codePoint && codePoint <= 0x2267) ||\n (0x226A <= codePoint && codePoint <= 0x226B) ||\n (0x226E <= codePoint && codePoint <= 0x226F) ||\n (0x2282 <= codePoint && codePoint <= 0x2283) ||\n (0x2286 <= codePoint && codePoint <= 0x2287) ||\n (0x2295 == codePoint) ||\n (0x2299 == codePoint) ||\n (0x22A5 == codePoint) ||\n (0x22BF == codePoint) ||\n (0x2312 == codePoint) ||\n (0x2460 <= codePoint && codePoint <= 0x24E9) ||\n (0x24EB <= codePoint && codePoint <= 0x254B) ||\n (0x2550 <= codePoint && codePoint <= 0x2573) ||\n (0x2580 <= codePoint && codePoint <= 0x258F) ||\n (0x2592 <= codePoint && codePoint <= 0x2595) ||\n (0x25A0 <= codePoint && codePoint <= 0x25A1) ||\n (0x25A3 <= codePoint && codePoint <= 0x25A9) ||\n (0x25B2 <= codePoint && codePoint <= 0x25B3) ||\n (0x25B6 <= codePoint && codePoint <= 0x25B7) ||\n (0x25BC <= codePoint && codePoint <= 0x25BD) ||\n (0x25C0 <= codePoint && codePoint <= 0x25C1) ||\n (0x25C6 <= codePoint && codePoint <= 0x25C8) ||\n (0x25CB == codePoint) ||\n (0x25CE <= codePoint && codePoint <= 0x25D1) ||\n (0x25E2 <= codePoint && codePoint <= 0x25E5) ||\n (0x25EF == codePoint) ||\n (0x2605 <= codePoint && codePoint <= 0x2606) ||\n (0x2609 == codePoint) ||\n (0x260E <= codePoint && codePoint <= 0x260F) ||\n (0x2614 <= codePoint && codePoint <= 0x2615) ||\n (0x261C == codePoint) ||\n (0x261E == codePoint) ||\n (0x2640 == codePoint) ||\n (0x2642 == codePoint) ||\n (0x2660 <= codePoint && codePoint <= 0x2661) ||\n (0x2663 <= codePoint && codePoint <= 0x2665) ||\n (0x2667 <= codePoint && codePoint <= 0x266A) ||\n (0x266C <= codePoint && codePoint <= 0x266D) ||\n (0x266F == codePoint) ||\n (0x269E <= codePoint && codePoint <= 0x269F) ||\n (0x26BE <= codePoint && codePoint <= 0x26BF) ||\n (0x26C4 <= codePoint && codePoint <= 0x26CD) ||\n (0x26CF <= codePoint && codePoint <= 0x26E1) ||\n (0x26E3 == codePoint) ||\n (0x26E8 <= codePoint && codePoint <= 0x26FF) ||\n (0x273D == codePoint) ||\n (0x2757 == codePoint) ||\n (0x2776 <= codePoint && codePoint <= 0x277F) ||\n (0x2B55 <= codePoint && codePoint <= 0x2B59) ||\n (0x3248 <= codePoint && codePoint <= 0x324F) ||\n (0xE000 <= codePoint && codePoint <= 0xF8FF) ||\n (0xFE00 <= codePoint && codePoint <= 0xFE0F) ||\n (0xFFFD == codePoint) ||\n (0x1F100 <= codePoint && codePoint <= 0x1F10A) ||\n (0x1F110 <= codePoint && codePoint <= 0x1F12D) ||\n (0x1F130 <= codePoint && codePoint <= 0x1F169) ||\n (0x1F170 <= codePoint && codePoint <= 0x1F19A) ||\n (0xE0100 <= codePoint && codePoint <= 0xE01EF) ||\n (0xF0000 <= codePoint && codePoint <= 0xFFFFD) ||\n (0x100000 <= codePoint && codePoint <= 0x10FFFD)) {\n return 'A';\n }\n\n return 'N';\n};\n\neaw.characterLength = function(character) {\n var code = this.eastAsianWidth(character);\n if (code == 'F' || code == 'W' || code == 'A') {\n return 2;\n } else {\n return 1;\n }\n};\n\n// Split a string considering surrogate-pairs.\nfunction stringToArray(string) {\n return string.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g) || [];\n}\n\neaw.length = function(string) {\n var characters = stringToArray(string);\n var len = 0;\n for (var i = 0; i < characters.length; i++) {\n len = len + this.characterLength(characters[i]);\n }\n return len;\n};\n\neaw.slice = function(text, start, end) {\n textLen = eaw.length(text)\n start = start ? start : 0;\n end = end ? end : 1;\n if (start < 0) {\n start = textLen + start;\n }\n if (end < 0) {\n end = textLen + end;\n }\n var result = '';\n var eawLen = 0;\n var chars = stringToArray(text);\n for (var i = 0; i < chars.length; i++) {\n var char = chars[i];\n var charLen = eaw.length(char);\n if (eawLen >= start - (charLen == 2 ? 1 : 0)) {\n if (eawLen + charLen <= end) {\n result += char;\n } else {\n break;\n }\n }\n eawLen += charLen;\n }\n return result;\n};\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\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])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\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\\uDF7C\\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\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\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\\uDF7C\\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\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\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\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\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-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*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\\u26A7\\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-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\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[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport eastAsianWidth from 'eastasianwidth';\nimport emojiRegex from 'emoji-regex';\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\toptions = {\n\t\tambiguousIsNarrow: true,\n\t\t...options\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\tconst ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;\n\tlet width = 0;\n\n\tfor (const character of string) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (codePoint >= 0x300 && codePoint <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst code = eastAsianWidth.eastAsianWidth(character);\n\t\tswitch (code) {\n\t\t\tcase 'F':\n\t\t\tcase 'W':\n\t\t\t\twidth += 2;\n\t\t\t\tbreak;\n\t\t\tcase 'A':\n\t\t\t\twidth += ambiguousCharacterWidth;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\twidth += 1;\n\t\t}\n\t}\n\n\treturn width;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\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\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;\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 isInsideLinkEscape = 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\tisInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\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 = string => {\n\tconst words = string.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 string;\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 returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\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].trimStart();\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(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst pre = [...rows.join('\\n')];\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(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 type { Key, ReadLine } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport readline from 'node:readline';\nimport { Readable, Writable } from 'node:stream';\nimport { WriteStream } from 'node:tty';\nimport { cursor, erase } from 'sisteransi';\nimport wrap from 'wrap-ansi';\n\nfunction diffLines(a: string, b: string) {\n\tif (a === b) return;\n\n\tconst aLines = a.split('\\n');\n\tconst bLines = b.split('\\n');\n\tconst diff: number[] = [];\n\n\tfor (let i = 0; i < Math.max(aLines.length, bLines.length); i++) {\n\t\tif (aLines[i] !== bLines[i]) diff.push(i);\n\t}\n\n\treturn diff;\n}\n\nconst cancel = Symbol('clack:cancel');\nexport function isCancel(value: unknown): value is symbol {\n\treturn value === cancel;\n}\n\nfunction setRawMode(input: Readable, value: boolean) {\n\tif ((input as typeof stdin).isTTY) (input as typeof stdin).setRawMode(value);\n}\n\nconst aliases = new Map([\n\t['k', 'up'],\n\t['j', 'down'],\n\t['h', 'left'],\n\t['l', 'right'],\n]);\nconst keys = new Set(['up', 'down', 'left', 'right', 'space', 'enter']);\n\nexport interface PromptOptions<Self extends Prompt> {\n\trender(this: Omit<Self, 'prompt'>): string | void;\n\tplaceholder?: string;\n\tinitialValue?: any;\n\tvalidate?: ((value: any) => string | void) | undefined;\n\tinput?: Readable;\n\toutput?: Writable;\n\tdebug?: boolean;\n}\n\nexport type State = 'initial' | 'active' | 'cancel' | 'submit' | 'error';\n\nexport default class Prompt {\n\tprotected input: Readable;\n\tprotected output: Writable;\n\tprivate rl!: ReadLine;\n\tprivate opts: Omit<PromptOptions<Prompt>, 'render' | 'input' | 'output'>;\n\tprivate _track: boolean = false;\n\tprivate _render: (context: Omit<Prompt, 'prompt'>) => string | void;\n\tprotected _cursor: number = 0;\n\n\tpublic state: State = 'initial';\n\tpublic value: any;\n\tpublic error: string = '';\n\n\tconstructor(\n\t\t{ render, input = stdin, output = stdout, ...opts }: PromptOptions<Prompt>,\n\t\ttrackValue: boolean = true\n\t) {\n\t\tthis.opts = opts;\n\t\tthis.onKeypress = this.onKeypress.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.render = this.render.bind(this);\n\t\tthis._render = render.bind(this);\n\t\tthis._track = trackValue;\n\n\t\tthis.input = input;\n\t\tthis.output = output;\n\t}\n\n\tpublic prompt() {\n\t\tconst sink = new WriteStream(0);\n\t\tsink._write = (chunk, encoding, done) => {\n\t\t\tif (this._track) {\n\t\t\t\tthis.value = this.rl.line.replace(/\\t/g, '');\n\t\t\t\tthis._cursor = this.rl.cursor;\n\t\t\t\tthis.emit('value', this.value);\n\t\t\t}\n\t\t\tdone();\n\t\t};\n\t\tthis.input.pipe(sink);\n\n\t\tthis.rl = readline.createInterface({\n\t\t\tinput: this.input,\n\t\t\toutput: sink,\n\t\t\ttabSize: 2,\n\t\t\tprompt: '',\n\t\t\tescapeCodeTimeout: 50,\n\t\t});\n\t\treadline.emitKeypressEvents(this.input, this.rl);\n\t\tthis.rl.prompt();\n\t\tif (this.opts.initialValue !== undefined && this._track) {\n\t\t\tthis.rl.write(this.opts.initialValue);\n\t\t}\n\n\t\tthis.input.on('keypress', this.onKeypress);\n\t\tsetRawMode(this.input, true);\n\t\tthis.output.on('resize', this.render);\n\n\t\tthis.render();\n\n\t\treturn new Promise<string | symbol>((resolve, reject) => {\n\t\t\tthis.once('submit', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(this.value);\n\t\t\t});\n\t\t\tthis.once('cancel', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(cancel);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate subscribers = new Map<string, { cb: (...args: any) => any; once?: boolean }[]>();\n\tpublic on(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic once(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb, once: true });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic emit(event: string, ...data: any[]) {\n\t\tconst cbs = this.subscribers.get(event) ?? [];\n\t\tconst cleanup: (() => void)[] = [];\n\t\tfor (const subscriber of cbs) {\n\t\t\tsubscriber.cb(...data);\n\t\t\tif (subscriber.once) {\n\t\t\t\tcleanup.push(() => cbs.splice(cbs.indexOf(subscriber), 1));\n\t\t\t}\n\t\t}\n\t\tfor (const cb of cleanup) {\n\t\t\tcb();\n\t\t}\n\t}\n\tprivate unsubscribe() {\n\t\tthis.subscribers.clear();\n\t}\n\n\tprivate onKeypress(char: string, key?: Key) {\n\t\tif (this.state === 'error') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tif (key?.name && !this._track && aliases.has(key.name)) {\n\t\t\tthis.emit('cursor', aliases.get(key.name));\n\t\t}\n\t\tif (key?.name && keys.has(key.name)) {\n\t\t\tthis.emit('cursor', key.name);\n\t\t}\n\t\tif (char && (char.toLowerCase() === 'y' || char.toLowerCase() === 'n')) {\n\t\t\tthis.emit('confirm', char.toLowerCase() === 'y');\n\t\t}\n\t\tif (char === '\\t' && this.opts.placeholder) {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.rl.write(this.opts.placeholder);\n\t\t\t\tthis.emit('value', this.opts.placeholder);\n\t\t\t}\n\t\t}\n\t\tif (char) {\n\t\t\tthis.emit('key', char.toLowerCase());\n\t\t}\n\n\t\tif (key?.name === 'return') {\n\t\t\tif (this.opts.validate) {\n\t\t\t\tconst problem = this.opts.validate(this.value);\n\t\t\t\tif (problem) {\n\t\t\t\t\tthis.error = problem;\n\t\t\t\t\tthis.state = 'error';\n\t\t\t\t\tthis.rl.write(this.value);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.state !== 'error') {\n\t\t\t\tthis.state = 'submit';\n\t\t\t}\n\t\t}\n\t\tif (char === '\\x03') {\n\t\t\tthis.state = 'cancel';\n\t\t}\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.emit('finalize');\n\t\t}\n\t\tthis.render();\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprotected close() {\n\t\tthis.input.unpipe();\n\t\tthis.input.removeListener('keypress', this.onKeypress);\n\t\tthis.output.write('\\n');\n\t\tsetRawMode(this.input, false);\n\t\tthis.rl.close();\n\t\tthis.emit(`${this.state}`, this.value);\n\t\tthis.unsubscribe();\n\t}\n\n\tprivate restoreCursor() {\n\t\tconst lines =\n\t\t\twrap(this._prevFrame, process.stdout.columns, { hard: true }).split('\\n').length - 1;\n\t\tthis.output.write(cursor.move(-999, lines * -1));\n\t}\n\n\tprivate _prevFrame = '';\n\tprivate render() {\n\t\tconst frame = wrap(this._render(this) ?? '', process.stdout.columns, { hard: true });\n\t\tif (frame === this._prevFrame) return;\n\n\t\tif (this.state === 'initial') {\n\t\t\tthis.output.write(cursor.hide);\n\t\t} else {\n\t\t\tconst diff = diffLines(this._prevFrame, frame);\n\t\t\tthis.restoreCursor();\n\t\t\t// If a single line has changed, only update that line\n\t\t\tif (diff && diff?.length === 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.lines(1));\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tthis.output.write(lines[diffLine]);\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\tthis.output.write(cursor.move(0, lines.length - diffLine - 1));\n\t\t\t\treturn;\n\t\t\t\t// If many lines have changed, rerender everything past the first line\n\t\t\t} else if (diff && diff?.length > 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.down());\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tconst newLines = lines.slice(diffLine);\n\t\t\t\tthis.output.write(newLines.join('\\n'));\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.output.write(erase.down());\n\t\t}\n\n\t\tthis.output.write(frame);\n\t\tif (this.state === 'initial') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tthis._prevFrame = frame;\n\t}\n}\n","import { cursor } from 'sisteransi';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface ConfirmOptions extends PromptOptions<ConfirmPrompt> {\n\tactive: string;\n\tinactive: string;\n\tinitialValue?: boolean;\n}\nexport default class ConfirmPrompt extends Prompt {\n\tget cursor() {\n\t\treturn this.value ? 0 : 1;\n\t}\n\n\tprivate get _value() {\n\t\treturn this.cursor === 0;\n\t}\n\n\tconstructor(opts: ConfirmOptions) {\n\t\tsuper(opts, false);\n\t\tthis.value = opts.initialValue ? true : false;\n\n\t\tthis.on('value', () => {\n\t\t\tthis.value = this._value;\n\t\t});\n\n\t\tthis.on('confirm', (confirm) => {\n\t\t\tthis.output.write(cursor.move(0, -1));\n\t\t\tthis.value = confirm;\n\t\t\tthis.state = 'submit';\n\t\t\tthis.close();\n\t\t});\n\n\t\tthis.on('cursor', () => {\n\t\t\tthis.value = !this.value;\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface GroupMultiSelectOptions<T extends { value: any }>\n\textends PromptOptions<GroupMultiSelectPrompt<T>> {\n\toptions: Record<string, T[]>;\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class GroupMultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: (T & { group: string | boolean })[];\n\tcursor: number = 0;\n\n\tgetGroupItems(group: string): T[] {\n\t\treturn this.options.filter((o) => o.group === group);\n\t}\n\n\tisGroupSelected(group: string) {\n\t\tconst items = this.getGroupItems(group);\n\t\treturn items.every((i) => this.value.includes(i.value));\n\t}\n\n\tprivate toggleValue() {\n\t\tconst item = this.options[this.cursor];\n\t\tif (item.group === true) {\n\t\t\tconst group = item.value;\n\t\t\tconst groupedItems = this.getGroupItems(group);\n\t\t\tif (this.isGroupSelected(group)) {\n\t\t\t\tthis.value = this.value.filter(\n\t\t\t\t\t(v: string) => groupedItems.findIndex((i) => i.value === v) === -1\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.value = [...this.value, ...groupedItems.map((i) => i.value)];\n\t\t\t}\n\t\t\tthis.value = Array.from(new Set(this.value));\n\t\t} else {\n\t\t\tconst selected = this.value.includes(item.value);\n\t\t\tthis.value = selected\n\t\t\t\t? this.value.filter((v: T['value']) => v !== item.value)\n\t\t\t\t: [...this.value, item.value];\n\t\t}\n\t}\n\n\tconstructor(opts: GroupMultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\t\tconst { options } = opts;\n\t\tthis.options = Object.entries(options).flatMap(([key, option]) => [\n\t\t\t{ value: key, group: true, label: key },\n\t\t\t...option.map((opt) => ({ ...opt, group: key })),\n\t\t]) as any;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface MultiSelectOptions<T extends { value: any }> extends PromptOptions<MultiSelectPrompt<T>> {\n\toptions: T[];\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class MultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor].value;\n\t}\n\n\tprivate toggleAll() {\n\t\tconst allSelected = this.value.length === this.options.length;\n\t\tthis.value = allSelected ? [] : this.options.map((v) => v.value);\n\t}\n\n\tprivate toggleValue() {\n\t\tconst selected = this.value.includes(this._value);\n\t\tthis.value = selected\n\t\t\t? this.value.filter((value: T['value']) => value !== this._value)\n\t\t\t: [...this.value, this._value];\n\t}\n\n\tconstructor(opts: MultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\t\tthis.on('key', (char) => {\n\t\t\tif (char === 'a') {\n\t\t\t\tthis.toggleAll();\n\t\t\t}\n\t\t});\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface PasswordOptions extends PromptOptions<PasswordPrompt> {\n\tmask?: string;\n}\nexport default class PasswordPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tprivate _mask = '•';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tget masked() {\n\t\treturn this.value.replaceAll(/./g, this._mask);\n\t}\n\tconstructor({ mask, ...opts }: PasswordOptions) {\n\t\tsuper(opts);\n\t\tthis._mask = mask ?? '•';\n\n\t\tthis.on('finalize', () => {\n\t\t\tthis.valueWithCursor = this.masked;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.masked}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.masked.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.masked.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectOptions<T extends { value: any }> extends PromptOptions<SelectPrompt<T>> {\n\toptions: T[];\n\tinitialValue?: T['value'];\n}\nexport default class SelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor];\n\t}\n\n\tprivate changeValue() {\n\t\tthis.value = this._value.value;\n\t}\n\n\tconstructor(opts: SelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.cursor = this.options.findIndex(({ value }) => value === opts.initialValue);\n\t\tif (this.cursor === -1) this.cursor = 0;\n\t\tthis.changeValue();\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.changeValue();\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectKeyOptions<T extends { value: any }> extends PromptOptions<SelectKeyPrompt<T>> {\n\toptions: T[];\n}\nexport default class SelectKeyPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tconstructor(opts: SelectKeyOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tconst keys = this.options.map(({ value: [initial] }) => initial?.toLowerCase());\n\t\tthis.cursor = Math.max(keys.indexOf(opts.initialValue), 0);\n\n\t\tthis.on('key', (key) => {\n\t\t\tif (!keys.includes(key)) return;\n\t\t\tconst value = this.options.find(({ value: [initial] }) => initial?.toLowerCase() === key);\n\t\t\tif (value) {\n\t\t\t\tthis.value = value.value;\n\t\t\t\tthis.state = 'submit';\n\t\t\t\tthis.emit('submit');\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\nexport interface TextOptions extends PromptOptions<TextPrompt> {\n\tplaceholder?: string;\n\tdefaultValue?: string;\n}\n\nexport default class TextPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tconstructor(opts: TextOptions) {\n\t\tsuper(opts);\n\n\t\tthis.on('finalize', () => {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.value = opts.defaultValue;\n\t\t\t}\n\t\t\tthis.valueWithCursor = this.value;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.value}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.value.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.value.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import type { Key } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport * as readline from 'node:readline';\nimport { cursor } from 'sisteransi';\n\nconst isWindows = globalThis.process.platform.startsWith('win');\n\nexport function block({\n\tinput = stdin,\n\toutput = stdout,\n\toverwrite = true,\n\thideCursor = true,\n} = {}) {\n\tconst rl = readline.createInterface({\n\t\tinput,\n\t\toutput,\n\t\tprompt: '',\n\t\ttabSize: 1,\n\t});\n\treadline.emitKeypressEvents(input, rl);\n\tif (input.isTTY) input.setRawMode(true);\n\n\tconst clear = (data: Buffer, { name }: Key) => {\n\t\tconst str = String(data);\n\t\tif (str === '\\x03') {\n\t\t\tif (hideCursor) output.write(cursor.show);\n\t\t\tprocess.exit(0);\n\t\t\treturn;\n\t\t}\n\t\tif (!overwrite) return;\n\t\tlet dx = name === 'return' ? 0 : -1;\n\t\tlet dy = name === 'return' ? -1 : 0;\n\n\t\treadline.moveCursor(output, dx, dy, () => {\n\t\t\treadline.clearLine(output, 1, () => {\n\t\t\t\tinput.once('keypress', clear);\n\t\t\t});\n\t\t});\n\t};\n\tif (hideCursor) output.write(cursor.hide);\n\tinput.once('keypress', clear);\n\n\treturn () => {\n\t\tinput.off('keypress', clear);\n\t\tif (hideCursor) output.write(cursor.show);\n\n\t\t// Prevent Windows specific issues: https://github.com/natemoo-re/clack/issues/176\n\t\tif (input.isTTY && !isWindows) input.setRawMode(false);\n\n\t\t// @ts-expect-error fix for https://github.com/nodejs/node/issues/31762#issuecomment-1441223907\n\t\trl.terminal = false;\n\t\trl.close();\n\t};\n}\n","import{TextPrompt as V,PasswordPrompt as j,ConfirmPrompt as N,SelectPrompt as k,SelectKeyPrompt as W,MultiSelectPrompt as D,GroupMultiSelectPrompt as L,isCancel as G,block as F}from\"@clack/core\";export{isCancel}from\"@clack/core\";import h from\"node:process\";import e from\"picocolors\";import{cursor as T,erase as A}from\"sisteransi\";function q(){return h.platform!==\"win32\"?h.env.TERM!==\"linux\":Boolean(h.env.CI)||Boolean(h.env.WT_SESSION)||Boolean(h.env.TERMINUS_SUBLIME)||h.env.ConEmuTask===\"{cmd::Cmder}\"||h.env.TERM_PROGRAM===\"Terminus-Sublime\"||h.env.TERM_PROGRAM===\"vscode\"||h.env.TERM===\"xterm-256color\"||h.env.TERM===\"alacritty\"||h.env.TERMINAL_EMULATOR===\"JetBrains-JediTerm\"}const _=q(),o=(r,n)=>_?r:n,H=o(\"\\u25C6\",\"*\"),I=o(\"\\u25A0\",\"x\"),x=o(\"\\u25B2\",\"x\"),S=o(\"\\u25C7\",\"o\"),K=o(\"\\u250C\",\"T\"),a=o(\"\\u2502\",\"|\"),d=o(\"\\u2514\",\"\\u2014\"),b=o(\"\\u25CF\",\">\"),E=o(\"\\u25CB\",\" \"),C=o(\"\\u25FB\",\"[\\u2022]\"),w=o(\"\\u25FC\",\"[+]\"),M=o(\"\\u25FB\",\"[ ]\"),U=o(\"\\u25AA\",\"\\u2022\"),B=o(\"\\u2500\",\"-\"),Z=o(\"\\u256E\",\"+\"),z=o(\"\\u251C\",\"+\"),X=o(\"\\u256F\",\"+\"),J=o(\"\\u25CF\",\"\\u2022\"),Y=o(\"\\u25C6\",\"*\"),Q=o(\"\\u25B2\",\"!\"),ee=o(\"\\u25A0\",\"x\"),y=r=>{switch(r){case\"initial\":case\"active\":return e.cyan(H);case\"cancel\":return e.red(I);case\"error\":return e.yellow(x);case\"submit\":return e.green(S)}},te=r=>new V({validate:r.validate,placeholder:r.placeholder,defaultValue:r.defaultValue,initialValue:r.initialValue,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=r.placeholder?e.inverse(r.placeholder[0])+e.dim(r.placeholder.slice(1)):e.inverse(e.hidden(\"_\")),t=this.value?this.valueWithCursor:i;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(this.value||r.placeholder)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(this.value??\"\"))}${this.value?.trim()?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${t}\n${e.cyan(d)}\n`}}}).prompt(),re=r=>new j({validate:r.validate,mask:r.mask??U,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=this.valueWithCursor,t=this.masked;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(t)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(t??\"\"))}${t?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${i}\n${e.cyan(d)}\n`}}}).prompt(),se=r=>{const n=r.active??\"Yes\",i=r.inactive??\"No\";return new N({active:n,inactive:i,initialValue:r.initialValue??!0,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,s=this.value?n:i;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${e.dim(s)}`;case\"cancel\":return`${t}${e.gray(a)} ${e.strikethrough(e.dim(s))}\n${e.gray(a)}`;default:return`${t}${e.cyan(a)} ${this.value?`${e.green(b)} ${n}`:`${e.dim(E)} ${e.dim(n)}`} ${e.dim(\"/\")} ${this.value?`${e.dim(E)} ${e.dim(i)}`:`${e.green(b)} ${i}`}\n${e.cyan(d)}\n`}}}).prompt()},ie=r=>{const n=(t,s)=>{const c=t.label??String(t.value);return s===\"active\"?`${e.green(b)} ${c} ${t.hint?e.dim(`(${t.hint})`):\"\"}`:s===\"selected\"?`${e.dim(c)}`:s===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:`${e.dim(E)} ${e.dim(c)}`};let i=0;return new k({options:r.options,initialValue:r.initialValue,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"selected\")}`;case\"cancel\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"cancelled\")}\n${e.gray(a)}`;default:{const s=r.maxItems===void 0?1/0:Math.max(r.maxItems,5);this.cursor>=i+s-3?i=Math.max(Math.min(this.cursor-s+3,this.options.length-s),0):this.cursor<i+2&&(i=Math.max(this.cursor-2,0));const c=s<this.options.length&&i>0,l=s<this.options.length&&i+s<this.options.length;return`${t}${e.cyan(a)} ${this.options.slice(i,i+s).map((u,m,$)=>m===0&&c?e.dim(\"...\"):m===$.length-1&&l?e.dim(\"...\"):n(u,m+i===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}}).prompt()},ne=r=>{const n=(i,t=\"inactive\")=>{const s=i.label??String(i.value);return t===\"selected\"?`${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active\"?`${e.bgCyan(e.gray(` ${i.value} `))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:`${e.gray(e.bgWhite(e.inverse(` ${i.value} `)))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`};return new W({options:r.options,initialValue:r.initialValue,render(){const i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${n(this.options.find(t=>t.value===this.value),\"selected\")}`;case\"cancel\":return`${i}${e.gray(a)} ${n(this.options[0],\"cancelled\")}\n${e.gray(a)}`;default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>n(t,s===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ae=r=>{const n=(i,t)=>{const s=i.label??String(i.value);return t===\"active\"?`${e.cyan(C)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"selected\"?`${e.green(w)} ${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active-selected\"?`${e.green(w)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(s)}`:`${e.dim(M)} ${e.dim(s)}`};return new D({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))||e.dim(\"none\")}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return i+e.yellow(a)+\" \"+this.options.map((s,c)=>{const l=this.value.includes(s.value),u=c===this.cursor;return u&&l?n(s,\"active-selected\"):l?n(s,\"selected\"):n(s,u?\"active\":\"inactive\")}).join(`\n${e.yellow(a)} `)+`\n`+t+`\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>{const c=this.value.includes(t.value),l=s===this.cursor;return l&&c?n(t,\"active-selected\"):c?n(t,\"selected\"):n(t,l?\"active\":\"inactive\")}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ce=r=>{const n=(i,t,s=[])=>{const c=i.label??String(i.value),l=typeof i.group==\"string\",u=l&&(s[s.indexOf(i)+1]??{group:!0}),m=l&&u.group===!0,$=l?`${m?d:a} `:\"\";return t===\"active\"?`${e.dim($)}${e.cyan(C)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"group-active\"?`${$}${e.cyan(C)} ${e.dim(c)}`:t===\"group-active-selected\"?`${$}${e.green(w)} ${e.dim(c)}`:t===\"selected\"?`${e.dim($)}${e.green(w)} ${e.dim(c)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:t===\"active-selected\"?`${e.dim($)}${e.green(w)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(c)}`:`${e.dim($)}${e.dim(M)} ${e.dim(c)}`};return new L({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return`${i}${e.yellow(a)} ${this.options.map((s,c,l)=>{const u=this.value.includes(s.value)||s.group===!0&&this.isGroupSelected(`${s.value}`),m=c===this.cursor;return!m&&typeof s.group==\"string\"&&this.options[this.cursor].value===s.group?n(s,u?\"group-active-selected\":\"group-active\",l):m&&u?n(s,\"active-selected\",l):u?n(s,\"selected\",l):n(s,m?\"active\":\"inactive\",l)}).join(`\n${e.yellow(a)} `)}\n${t}\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s,c)=>{const l=this.value.includes(t.value)||t.group===!0&&this.isGroupSelected(`${t.value}`),u=s===this.cursor;return!u&&typeof t.group==\"string\"&&this.options[this.cursor].value===t.group?n(t,l?\"group-active-selected\":\"group-active\",c):u&&l?n(t,\"active-selected\",c):l?n(t,\"selected\",c):n(t,u?\"active\":\"inactive\",c)}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},R=r=>r.replace(me(),\"\"),le=(r=\"\",n=\"\")=>{const i=`\n${r}\n`.split(`\n`),t=R(n).length,s=Math.max(i.reduce((l,u)=>(u=R(u),u.length>l?u.length:l),0),t)+2,c=i.map(l=>`${e.gray(a)} ${e.dim(l)}${\" \".repeat(s-R(l).length)}${e.gray(a)}`).join(`\n`);process.stdout.write(`${e.gray(a)}\n${e.green(S)} ${e.reset(n)} ${e.gray(B.repeat(Math.max(s-t-1,1))+Z)}\n${c}\n${e.gray(z+B.repeat(s+2)+X)}\n`)},ue=(r=\"\")=>{process.stdout.write(`${e.gray(d)} ${e.red(r)}\n\n`)},oe=(r=\"\")=>{process.stdout.write(`${e.gray(K)} ${r}\n`)},$e=(r=\"\")=>{process.stdout.write(`${e.gray(a)}\n${e.gray(d)} ${r}\n\n`)},f={message:(r=\"\",{symbol:n=e.gray(a)}={})=>{const i=[`${e.gray(a)}`];if(r){const[t,...s]=r.split(`\n`);i.push(`${n} ${t}`,...s.map(c=>`${e.gray(a)} ${c}`))}process.stdout.write(`${i.join(`\n`)}\n`)},info:r=>{f.message(r,{symbol:e.blue(J)})},success:r=>{f.message(r,{symbol:e.green(Y)})},step:r=>{f.message(r,{symbol:e.green(S)})},warn:r=>{f.message(r,{symbol:e.yellow(Q)})},warning:r=>{f.warn(r)},error:r=>{f.message(r,{symbol:e.red(ee)})}},de=()=>{const r=_?[\"\\u25D2\",\"\\u25D0\",\"\\u25D3\",\"\\u25D1\"]:[\"\\u2022\",\"o\",\"O\",\"0\"],n=_?80:120;let i,t,s=!1,c=\"\";const l=(v=\"\")=>{s=!0,i=F(),c=v.replace(/\\.+$/,\"\"),process.stdout.write(`${e.gray(a)}\n`);let g=0,p=0;t=setInterval(()=>{const O=e.magenta(r[g]),P=\".\".repeat(Math.floor(p)).slice(0,3);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${O} ${c}${P}`),g=g+1<r.length?g+1:0,p=p<r.length?p+.125:0},n)},u=(v=\"\",g=0)=>{c=v??c,s=!1,clearInterval(t);const p=g===0?e.green(S):g===1?e.red(I):e.red(x);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${p} ${c}\n`),i()},m=(v=\"\")=>{c=v??c},$=v=>{const g=v>1?\"Something went wrong\":\"Canceled\";s&&u(g,v)};return process.on(\"uncaughtExceptionMonitor\",()=>$(2)),process.on(\"unhandledRejection\",()=>$(2)),process.on(\"SIGINT\",()=>$(1)),process.on(\"SIGTERM\",()=>$(1)),process.on(\"exit\",$),{start:l,stop:u,message:m}};function me(){const r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"].join(\"|\");return new RegExp(r,\"g\")}const he=async(r,n)=>{const i={},t=Object.keys(r);for(const s of t){const c=r[s],l=await c({results:i})?.catch(u=>{throw u});if(typeof n?.onCancel==\"function\"&&G(l)){i[s]=\"canceled\",n.onCancel({results:i});continue}i[s]=l}return i};export{ue as cancel,se as confirm,he as group,ce as groupMultiselect,oe as intro,f as log,ae as multiselect,le as note,$e as outro,re as password,ie as select,ne as selectKey,de as spinner,te as text};\n","/**\n * Template registry.\n *\n * Each entry describes a starter template that lives in the monorepo's\n * `templates/<dir>` directory (copied into this package at build time). The\n * registry is structured so more languages/templates can be added later without\n * touching the scaffolding logic.\n */\n\n/** A language a template targets. Only TypeScript ships today. */\nexport type TemplateLanguage = \"typescript\";\n\n/** A scaffoldable starter template. */\nexport interface TemplateInfo {\n /** Registry id and on-disk directory name under `templates/`. */\n id: string;\n /** Short human label shown in the interactive picker. */\n label: string;\n /** One-line description. */\n hint: string;\n /** Source language. */\n language: TemplateLanguage;\n}\n\n/** All templates the CLI can scaffold. */\nexport const TEMPLATES: readonly TemplateInfo[] = [\n {\n id: \"evm-solidity\",\n label: \"EVM + Solidity\",\n hint: \"A Solidity contract with a viem deploy/interact script using @qorechain/evm.\",\n language: \"typescript\",\n },\n {\n id: \"fullstack-web\",\n label: \"Full-stack web (Vite + React)\",\n hint: \"A minimal Vite + React dApp using @qorechain/sdk to read balances and tokenomics.\",\n language: \"typescript\",\n },\n {\n id: \"rollup-app\",\n label: \"Rollup + multilayer app\",\n hint: \"A rollup + sidechain/paychain app using the RollupClient and multilayer helper from @qorechain/sdk.\",\n language: \"typescript\",\n },\n] as const;\n\n/** Look up a template by id, or `undefined` if unknown. */\nexport function findTemplate(id: string): TemplateInfo | undefined {\n return TEMPLATES.find((t) => t.id === id);\n}\n\n/** Comma-separated list of valid template ids, for error messages. */\nexport function templateIdList(): string {\n return TEMPLATES.map((t) => t.id).join(\", \");\n}\n","/**\n * Hand-rolled, dependency-free argument parser for the CLI. Kept separate from\n * the prompt I/O so it can be unit-tested directly.\n */\nimport type { Network, PackageManager } from \"./scaffold.js\";\nimport { TEMPLATES } from \"./templates.js\";\n\n/** Parsed CLI arguments. */\nexport interface ParsedArgs {\n /** Positional target directory (project dir), if given. */\n dir?: string;\n /** `--template <name>`. */\n template?: string;\n /** `--network <testnet|mainnet>`. */\n network?: Network;\n /** `--package-manager <pnpm|npm|yarn>`. */\n packageManager?: PackageManager;\n /** `--yes`: skip prompts, use defaults. */\n yes: boolean;\n /** `--no-install`: skip dependency install. */\n install: boolean;\n /** `--local`: rewrite @qorechain/* deps to file: links into the monorepo. */\n local: boolean;\n /** `--help`. */\n help: boolean;\n /** `--version`. */\n version: boolean;\n}\n\nconst VALID_PM: readonly PackageManager[] = [\"pnpm\", \"npm\", \"yarn\"];\nconst VALID_NETWORK: readonly Network[] = [\"testnet\", \"mainnet\"];\n\n/** Thrown for malformed CLI input; carries a user-facing message. */\nexport class ArgError extends Error {}\n\nfunction expectValue(name: string, value: string | undefined): string {\n if (value === undefined) throw new ArgError(`Missing value for ${name}.`);\n return value;\n}\n\n/**\n * Parse argv (excluding `node` and the script path). Throws {@link ArgError}\n * on malformed input.\n */\nexport function parseArgs(argv: readonly string[]): ParsedArgs {\n const out: ParsedArgs = {\n yes: false,\n install: true,\n local: false,\n help: false,\n version: false,\n };\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i];\n switch (arg) {\n case \"-h\":\n case \"--help\":\n out.help = true;\n break;\n case \"-v\":\n case \"--version\":\n out.version = true;\n break;\n case \"-y\":\n case \"--yes\":\n out.yes = true;\n break;\n case \"--install\":\n out.install = true;\n break;\n case \"--no-install\":\n out.install = false;\n break;\n case \"--local\":\n out.local = true;\n break;\n case \"--template\":\n case \"-t\":\n out.template = expectValue(\"--template\", argv[++i]);\n break;\n case \"--network\":\n out.network = parseNetwork(expectValue(\"--network\", argv[++i]));\n break;\n case \"--package-manager\":\n case \"--pm\":\n out.packageManager = parsePackageManager(\n expectValue(\"--package-manager\", argv[++i]),\n );\n break;\n default: {\n if (arg.startsWith(\"--template=\")) {\n out.template = arg.slice(\"--template=\".length);\n } else if (arg.startsWith(\"--network=\")) {\n out.network = parseNetwork(arg.slice(\"--network=\".length));\n } else if (arg.startsWith(\"--package-manager=\")) {\n out.packageManager = parsePackageManager(\n arg.slice(\"--package-manager=\".length),\n );\n } else if (arg.startsWith(\"-\")) {\n throw new ArgError(`Unknown option: ${arg}`);\n } else if (out.dir === undefined) {\n out.dir = arg;\n } else {\n throw new ArgError(`Unexpected argument: ${arg}`);\n }\n }\n }\n }\n\n return out;\n}\n\nfunction parsePackageManager(value: string): PackageManager {\n if ((VALID_PM as readonly string[]).includes(value)) {\n return value as PackageManager;\n }\n throw new ArgError(\n `Invalid --package-manager \"${value}\". Expected one of: ${VALID_PM.join(\", \")}.`,\n );\n}\n\nfunction parseNetwork(value: string): Network {\n if ((VALID_NETWORK as readonly string[]).includes(value)) {\n return value as Network;\n }\n throw new ArgError(\n `Invalid --network \"${value}\". Expected one of: ${VALID_NETWORK.join(\", \")}.`,\n );\n}\n\n/** The `--help` text. */\nexport function helpText(): string {\n const templates = TEMPLATES.map(\n (t) => ` ${t.id.padEnd(16)} ${t.hint}`,\n ).join(\"\\n\");\n return `create-qorechain-dapp — scaffold a new QoreChain dApp.\n\nUsage:\n npm create qorechain-dapp <dir> [options]\n npx create-qorechain-dapp <dir> [options]\n\nArguments:\n <dir> Target directory for the new project.\n\nOptions:\n -t, --template <name> Template to use. One of:\n${templates}\n --network <name> Network preset: testnet | mainnet.\n --package-manager <pm> Package manager: pnpm | npm | yarn.\n -y, --yes Skip prompts and use defaults.\n --no-install Do not install dependencies after scaffolding.\n --local Rewrite @qorechain/* deps to local file: links\n into this monorepo (for local/dev use before the\n packages are published to npm).\n -h, --help Show this help.\n -v, --version Print the version.\n\nExamples:\n npm create qorechain-dapp my-dapp -- --template evm-solidity\n npx create-qorechain-dapp my-dapp --template fullstack-web --yes\n npx create-qorechain-dapp my-dapp -t evm-solidity --local --no-install\n`;\n}\n","/**\n * Core scaffolding logic — pure and unit-testable, with no prompt I/O.\n *\n * `scaffold(...)` copies a template into a target directory, rewrites the\n * template's package.json name, generates `.env` from `.env.example`, optionally\n * rewrites `@qorechain/*` deps to local `file:` links, and optionally runs a\n * package-manager install. All side effects are confined to the target dir\n * (plus an optional `spawn` for install), so tests can drive it against a temp\n * dir with `install: false`.\n */\nimport { spawnSync } from \"node:child_process\";\nimport {\n cpSync,\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { findTemplate, templateIdList } from \"./templates.js\";\n\n/** Supported package managers. */\nexport type PackageManager = \"pnpm\" | \"npm\" | \"yarn\";\n\n/** Supported networks. */\nexport type Network = \"testnet\" | \"mainnet\";\n\n/** Options for {@link scaffold}. */\nexport interface ScaffoldOptions {\n /** Template id (must exist in the registry). */\n template: string;\n /** Absolute or relative target directory to create the project in. */\n targetDir: string;\n /** Project name written into the generated package.json. */\n projectName: string;\n /** Package manager to record/use. Defaults to `pnpm`. */\n packageManager?: PackageManager;\n /** Network preset. Defaults to `testnet`. */\n network?: Network;\n /** Run the package manager install after copying. Defaults to `false`. */\n install?: boolean;\n /**\n * Rewrite `@qorechain/*` dependencies to `file:` links into this monorepo so\n * the scaffolded project is runnable locally before the packages are\n * published. Defaults to `false` (keeps the published `^x.y.z` ranges).\n */\n local?: boolean;\n /**\n * Override the directory templates are resolved from. Primarily for tests.\n * When unset, templates are located relative to this package (see\n * {@link resolveTemplatesRoot}).\n */\n templatesRoot?: string;\n /**\n * Monorepo root used to compute `file:` links when `local` is set. Defaults\n * to the resolved repo root relative to this package.\n */\n monorepoRoot?: string;\n}\n\n/** Result of a successful {@link scaffold}. */\nexport interface ScaffoldResult {\n /** Absolute path to the created project. */\n targetDir: string;\n /** Whether install was run. */\n installed: boolean;\n /** Relative paths of the files written (sorted). */\n files: string[];\n}\n\nconst here = dirname(fileURLToPath(import.meta.url));\n\n/**\n * Locate the bundled `templates/` directory. Works both from source (where\n * templates live at the repo root, two levels up from `cli/src`) and from the\n * built/published package (where `copy-templates` placed them at `<pkg>/templates`).\n */\nexport function resolveTemplatesRoot(): string {\n // Built/published layout: dist/index.js → ../templates\n const bundled = resolve(here, \"..\", \"templates\");\n if (existsSync(bundled) && existsSync(join(bundled, \"evm-solidity\"))) {\n return bundled;\n }\n // Source layout: cli/src → ../../templates\n const sourceLevel = resolve(here, \"..\", \"..\", \"templates\");\n if (existsSync(sourceLevel) && existsSync(join(sourceLevel, \"evm-solidity\"))) {\n return sourceLevel;\n }\n // Fallback to the bundled path so the error message is actionable.\n return bundled;\n}\n\n/**\n * Locate the monorepo root (which contains `packages/`), used for `file:` links\n * in `--local` mode.\n */\nfunction resolveMonorepoRoot(): string {\n const candidates = [\n resolve(here, \"..\", \"..\"), // source: cli/src → repo root\n resolve(here, \"..\", \"..\", \"..\"), // dist/index.js variants\n ];\n for (const c of candidates) {\n if (existsSync(join(c, \"packages\", \"ts\", \"package.json\"))) return c;\n }\n return resolve(here, \"..\", \"..\");\n}\n\nconst COPY_SKIP = new Set([\"node_modules\", \"dist\", \".turbo\", \"coverage\"]);\n\n/** Recursively collect relative file paths under `root`. */\nfunction listFiles(root: string, base = root): string[] {\n const out: string[] = [];\n for (const entry of readdirSync(root, { withFileTypes: true })) {\n const full = join(root, entry.name);\n if (entry.isDirectory()) {\n out.push(...listFiles(full, base));\n } else {\n out.push(full.slice(base.length + 1));\n }\n }\n return out.sort();\n}\n\n/** Rewrite `@qorechain/*` deps in a parsed package.json to `file:` links. */\nfunction rewriteLocalDeps(\n pkg: Record<string, unknown>,\n monorepoRoot: string,\n): void {\n // Map of published package name → monorepo package dir.\n const localPackages: Record<string, string> = {\n \"@qorechain/sdk\": join(monorepoRoot, \"packages\", \"ts\"),\n \"@qorechain/evm\": join(monorepoRoot, \"packages\", \"evm\"),\n \"@qorechain/svm\": join(monorepoRoot, \"packages\", \"svm\"),\n };\n for (const section of [\"dependencies\", \"devDependencies\"] as const) {\n const deps = pkg[section] as Record<string, string> | undefined;\n if (!deps) continue;\n for (const name of Object.keys(deps)) {\n const dir = localPackages[name];\n if (dir) deps[name] = `file:${dir}`;\n }\n }\n}\n\n/** Install command for a given package manager. */\nfunction installCommand(pm: PackageManager): { cmd: string; args: string[] } {\n return { cmd: pm, args: [\"install\"] };\n}\n\n/**\n * Scaffold a project. Pure with respect to everything except the target dir\n * (and the optional install subprocess).\n *\n * @throws if the template is unknown or the target dir already exists and is\n * non-empty.\n */\nexport function scaffold(options: ScaffoldOptions): ScaffoldResult {\n const {\n template,\n projectName,\n packageManager = \"pnpm\",\n install = false,\n local = false,\n } = options;\n\n const info = findTemplate(template);\n if (!info) {\n throw new Error(\n `Unknown template \"${template}\". Available templates: ${templateIdList()}.`,\n );\n }\n\n const templatesRoot = options.templatesRoot ?? resolveTemplatesRoot();\n const templateDir = join(templatesRoot, info.id);\n if (!existsSync(templateDir)) {\n throw new Error(\n `Template \"${info.id}\" not found on disk at ${templateDir}. ` +\n `The package may be built incorrectly.`,\n );\n }\n\n const targetDir = resolve(options.targetDir);\n if (existsSync(targetDir)) {\n const entries = readdirSync(targetDir);\n if (entries.length > 0) {\n throw new Error(`Target directory is not empty: ${targetDir}`);\n }\n } else {\n mkdirSync(targetDir, { recursive: true });\n }\n\n // Copy template, skipping build artifacts.\n cpSync(templateDir, targetDir, {\n recursive: true,\n filter: (srcPath) => {\n const rel = srcPath.slice(templateDir.length + 1);\n const parts = rel.split(/[\\\\/]/);\n return !parts.some((p) => COPY_SKIP.has(p));\n },\n });\n\n // Rewrite package.json: name (+ optional local file: deps).\n const pkgPath = join(targetDir, \"package.json\");\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf8\")) as Record<\n string,\n unknown\n >;\n pkg.name = projectName;\n if (local) {\n rewriteLocalDeps(pkg, options.monorepoRoot ?? resolveMonorepoRoot());\n }\n writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + \"\\n\");\n }\n\n // Generate .env from .env.example if present and .env absent.\n const envExample = join(targetDir, \".env.example\");\n const envPath = join(targetDir, \".env\");\n if (existsSync(envExample) && !existsSync(envPath)) {\n writeFileSync(envPath, readFileSync(envExample, \"utf8\"));\n }\n\n let installed = false;\n if (install) {\n const { cmd, args } = installCommand(packageManager);\n const res = spawnSync(cmd, args, {\n cwd: targetDir,\n stdio: \"inherit\",\n shell: process.platform === \"win32\",\n });\n if (res.status !== 0) {\n throw new Error(\n `Install failed (${cmd} ${args.join(\" \")}) with exit code ${res.status ?? \"unknown\"}.`,\n );\n }\n installed = true;\n }\n\n return { targetDir, installed, files: listFiles(targetDir) };\n}\n"],"mappings":"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,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,SACUA,KAAV,SACA,SAAUA,KAAaA,KAAa,SACpC,SAAUA,KAAaA,KAAa,SACpC,SAAUA,KAAaA,KAAa,SACpC,SAAUA,KAAaA,KAAa,SACpC,SAAUA,KAAaA,KAAa,SAC1BA,KAAV,SACA,UAAWA,KAAaA,KAAa,UACrC,UAAWA,KAAaA,KAAa,UACrC,UAAWA,KAAaA,KAAa,UACrC,UAAWA,KAAaA,KAAa,UACrC,UAAWA,KAAaA,KAAa,UACrC,UAAWA,KAAaA,KAAa,WACrC,WAAYA,KAAaA,KAAa,UAClC,MAGF;EAAA,GAGTL,EAAI,kBAAkB,SAASE,GAAW;AACxC,QAAII,IAAO,KAAK,eAAeJ,CAAS;AACxC,WAAII,KAAQ,OAAOA,KAAQ,OAAOA,KAAQ,MACjC,IAEA;EAAA;AAKX,WAASC,EAAcT,GAAQ;AAC7B,WAAOA,EAAO,MAAM,kDAAkD,KAAK,CAAA;EAC7E;AAEAE,IAAI,SAAS,SAASF,GAAQ;AAG5B,aAFIU,IAAaD,EAAcT,CAAM,GACjCW,KAAM,GACDC,IAAI,GAAGA,IAAIF,EAAW,QAAQE,IACrCD,CAAAA,KAAMA,KAAM,KAAK,gBAAgBD,EAAWE,CAAC,CAAC;AAEhD,WAAOD;EAAAA,GAGTT,EAAI,QAAQ,SAASW,GAAMC,GAAOC,IAAK;AACrC,cAAUb,EAAI,OAAOW,CAAI,GACzBC,IAAQA,KAAgB,GACxBC,KAAMA,MAAY,GACdD,IAAQ,MACRA,IAAQ,UAAUA,IAElBC,KAAM,MACNA,KAAM,UAAUA;AAKpB,aAHIC,IAAS,IACTC,IAAS,GACTC,IAAQT,EAAcI,CAAI,GACrBD,KAAI,GAAGA,KAAIM,EAAM,QAAQN,MAAK;AACrC,UAAIO,KAAOD,EAAMN,EAAC,GACdQ,KAAUlB,EAAI,OAAOiB,EAAI;AAC7B,UAAIF,KAAUH,KAASM,MAAW,IAAI,IAAI,GACtC,KAAIH,IAASG,MAAWL,GACpBC,MAAUG;UAEV;AAGRF,WAAUG;IACd;AACE,WAAOJ;EAAAA;AAAAA,GAAAA,CAAAA;AAAAA,IAAAA,IAAAA,EAAAA;AAAAA,IAAAA,IAAAA,EAAAA,CAAAA;ACnTT,IAAAK,KAAiB,WAAY;AAE3B,SAAO;AACT;AAAA,IAAA,KAAA,EAAA,EAAA;ACDe,SAASC,EAAYtB,IAAQuB,IAAU,CAAA,GAAI;AAYzD,MAXI,OAAOvB,MAAW,YAAYA,GAAO,WAAW,MAIpDuB,IAAU,EACT,mBAAmB,MACnB,GAAGA,EACL,GAECvB,KAASD,EAAUC,EAAM,GAErBA,GAAO,WAAW,GACrB,QAAO;AAGRA,EAAAA,KAASA,GAAO,QAAQqB,GAAY,GAAE,IAAI;AAE1C,QAAMG,IAA0BD,EAAQ,oBAAoB,IAAI;AAChE,MAAIE,IAAQ;AAEZ,aAAWrB,KAAaJ,IAAQ;AAC/B,UAAMO,KAAYH,EAAU,YAAY,CAAC;AAQzC,QALIG,MAAa,MAASA,MAAa,OAAQA,MAAa,OAKxDA,MAAa,OAASA,MAAa,IACtC;AAID,YADamB,EAAe,eAAetB,CAAS,GACxC;MACX,KAAK;MACL,KAAK;AACJqB,aAAS;AACT;MACD,KAAK;AACJA,aAASD;AACT;MACD;AACCC,aAAS;IACV;EACD;AAED,SAAOA;AACR;ACrDA,IAAME,IAAyB;AAA/B,IAEMC,IAAa,CAACC,KAAS,MAAMrB,OAAQ,QAAUA,IAAOqB,EAAM;AAFlE,IAIMC,IAAc,CAACD,KAAS,MAAMrB,OAAQ,QAAU,KAAKqB,EAAM,MAAMrB,CAAI;AAJ3E,IAMMuB,IAAc,CAACF,KAAS,MAAM,CAACG,GAAKC,GAAOC,MAAS,QAAU,KAAKL,EAAM,MAAMG,CAAG,IAAIC,CAAK,IAAIC,CAAI;AANzG,IAQMC,IAAS,EACd,UAAU,EACT,OAAO,CAAC,GAAG,CAAC,GAEZ,MAAM,CAAC,GAAG,EAAE,GACZ,KAAK,CAAC,GAAG,EAAE,GACX,QAAQ,CAAC,GAAG,EAAE,GACd,WAAW,CAAC,GAAG,EAAE,GACjB,UAAU,CAAC,IAAI,EAAE,GACjB,SAAS,CAAC,GAAG,EAAE,GACf,QAAQ,CAAC,GAAG,EAAE,GACd,eAAe,CAAC,GAAG,EAAE,EACrB,GACD,OAAO,EACN,OAAO,CAAC,IAAI,EAAE,GACd,KAAK,CAAC,IAAI,EAAE,GACZ,OAAO,CAAC,IAAI,EAAE,GACd,QAAQ,CAAC,IAAI,EAAE,GACf,MAAM,CAAC,IAAI,EAAE,GACb,SAAS,CAAC,IAAI,EAAE,GAChB,MAAM,CAAC,IAAI,EAAE,GACb,OAAO,CAAC,IAAI,EAAE,GAGd,aAAa,CAAC,IAAI,EAAE,GACpB,MAAM,CAAC,IAAI,EAAE,GACb,MAAM,CAAC,IAAI,EAAE,GACb,WAAW,CAAC,IAAI,EAAE,GAClB,aAAa,CAAC,IAAI,EAAE,GACpB,cAAc,CAAC,IAAI,EAAE,GACrB,YAAY,CAAC,IAAI,EAAE,GACnB,eAAe,CAAC,IAAI,EAAE,GACtB,YAAY,CAAC,IAAI,EAAE,GACnB,aAAa,CAAC,IAAI,EAAE,EACpB,GACD,SAAS,EACR,SAAS,CAAC,IAAI,EAAE,GAChB,OAAO,CAAC,IAAI,EAAE,GACd,SAAS,CAAC,IAAI,EAAE,GAChB,UAAU,CAAC,IAAI,EAAE,GACjB,QAAQ,CAAC,IAAI,EAAE,GACf,WAAW,CAAC,IAAI,EAAE,GAClB,QAAQ,CAAC,IAAI,EAAE,GACf,SAAS,CAAC,IAAI,EAAE,GAGhB,eAAe,CAAC,KAAK,EAAE,GACvB,QAAQ,CAAC,KAAK,EAAE,GAChB,QAAQ,CAAC,KAAK,EAAE,GAChB,aAAa,CAAC,KAAK,EAAE,GACrB,eAAe,CAAC,KAAK,EAAE,GACvB,gBAAgB,CAAC,KAAK,EAAE,GACxB,cAAc,CAAC,KAAK,EAAE,GACtB,iBAAiB,CAAC,KAAK,EAAE,GACzB,cAAc,CAAC,KAAK,EAAE,GACtB,eAAe,CAAC,KAAK,EAAE,EACvB,EACF;AAE6B,OAAO,KAAKA,EAAO,QAAQ;AACjD,IAAMC,KAAuB,OAAO,KAAKD,EAAO,KAAK;AAArD,IACME,KAAuB,OAAO,KAAKF,EAAO,OAAO;AACpC,CAAC,GAAGC,IAAsB,GAAGC,EAAoB;AAE3E,SAASC,KAAiB;AACzB,QAAMC,KAAQ,oBAAI;AAElB,aAAW,CAACC,GAAWC,CAAK,KAAK,OAAO,QAAQN,CAAM,GAAG;AACxD,eAAW,CAACO,GAAWC,CAAK,KAAK,OAAO,QAAQF,CAAK,EACpDN,GAAOO,CAAS,IAAI,EACnB,MAAM,QAAUC,EAAM,CAAC,CAAC,KACxB,OAAO,QAAUA,EAAM,CAAC,CAAC,IAC7B,GAEGF,EAAMC,CAAS,IAAIP,EAAOO,CAAS,GAEnCH,GAAM,IAAII,EAAM,CAAC,GAAGA,EAAM,CAAC,CAAC;AAG7B,WAAO,eAAeR,GAAQK,GAAW,EACxC,OAAOC,GACP,YAAY,MACf,CAAG;EACD;AAED,SAAA,OAAO,eAAeN,GAAQ,SAAS,EACtC,OAAOI,IACP,YAAY,MACd,CAAE,GAEDJ,EAAO,MAAM,QAAQ,YACrBA,EAAO,QAAQ,QAAQ,YAEvBA,EAAO,MAAM,OAAOP,EAAAA,GACpBO,EAAO,MAAM,UAAUL,EAAAA,GACvBK,EAAO,MAAM,UAAUJ,EAAAA,GACvBI,EAAO,QAAQ,OAAOP,EAAWD,CAAsB,GACvDQ,EAAO,QAAQ,UAAUL,EAAYH,CAAsB,GAC3DQ,EAAO,QAAQ,UAAUJ,EAAYJ,CAAsB,GAG3D,OAAO,iBAAiBQ,GAAQ,EAC/B,cAAc,EACb,OAAO,CAACH,GAAKC,GAAOC,MAGfF,MAAQC,KAASA,MAAUC,IAC1BF,IAAM,IACF,KAGJA,IAAM,MACF,MAGD,KAAK,OAAQA,IAAM,KAAK,MAAO,EAAE,IAAI,MAGtC,KACH,KAAK,KAAK,MAAMA,IAAM,MAAM,CAAC,IAC7B,IAAI,KAAK,MAAMC,IAAQ,MAAM,CAAC,IAC/B,KAAK,MAAMC,IAAO,MAAM,CAAC,GAE7B,YAAY,MACZ,GACD,UAAU,EACT,OAAOU,OAAO;AACb,UAAMC,IAAU,yBAAyB,KAAKD,EAAI,SAAS,EAAE,CAAC;AAC9D,QAAI,CAACC,EACJ,QAAO,CAAC,GAAG,GAAG,CAAC;AAGhB,QAAI,CAACC,CAAW,IAAID;AAEhBC,MAAY,WAAW,MAC1BA,IAAc,CAAC,GAAGA,CAAW,EAAE,IAAI1C,CAAAA,OAAaA,KAAYA,EAAS,EAAE,KAAK,EAAE;AAG/E,UAAM2C,IAAU,OAAO,SAASD,GAAa,EAAE;AAE/C,WAAO,CAELC,KAAW,KAAM,KACjBA,KAAW,IAAK,KACjBA,IAAU,GAEf;EACI,GACD,YAAY,MACZ,GACD,cAAc,EACb,OAAOH,OAAOT,EAAO,aAAa,GAAGA,EAAO,SAASS,CAAG,CAAC,GACzD,YAAY,MACZ,GACD,eAAe,EACd,OAAOpC,OAAQ;AACd,QAAIA,IAAO,EACV,QAAO,KAAKA;AAGb,QAAIA,IAAO,GACV,QAAO,MAAMA,IAAO;AAGrB,QAAIwB,GACAC,GACAC;AAEJ,QAAI1B,KAAQ,IACXwB,OAASxB,IAAO,OAAO,KAAM,KAAK,KAClCyB,IAAQD,GACRE,IAAOF;SACD;AACNxB,WAAQ;AAER,YAAMwC,IAAYxC,IAAO;AAEzBwB,UAAM,KAAK,MAAMxB,IAAO,EAAE,IAAI,GAC9ByB,IAAQ,KAAK,MAAMe,IAAY,CAAC,IAAI,GACpCd,IAAQc,IAAY,IAAK;IACzB;AAED,UAAMC,KAAQ,KAAK,IAAIjB,GAAKC,GAAOC,CAAI,IAAI;AAE3C,QAAIe,OAAU,EACb,QAAO;AAIR,QAAIjC,IAAS,MAAO,KAAK,MAAMkB,CAAI,KAAK,IAAM,KAAK,MAAMD,CAAK,KAAK,IAAK,KAAK,MAAMD,CAAG;AAEtF,WAAIiB,OAAU,MACbjC,KAAU,KAGJA;EACP,GACD,YAAY,MACZ,GACD,WAAW,EACV,OAAO,CAACgB,GAAKC,GAAOC,MAASC,EAAO,cAAcA,EAAO,aAAaH,GAAKC,GAAOC,CAAI,CAAC,GACvF,YAAY,MACZ,GACD,WAAW,EACV,OAAOU,OAAOT,EAAO,cAAcA,EAAO,aAAaS,CAAG,CAAC,GAC3D,YAAY,MACZ,EACH,CAAE,GAEMT;AACR;AAEA,IAAMe,KAAaZ,GAAgB;AAAnC,ICxNMa,IAAU,oBAAI,IAAI,CACvB,QACA,MACD,CAAC;ADqND,ICnNMC,KAAW;ADmNjB,IClNMC,IAAmB;ADkNzB,ICjNMC,IAAW;ADiNjB,IChNMC,KAAW;ADgNjB,IC/MMC,IAAsB;AD+M5B,IC9MMC,IAAmB,GAAGF,EAAQ;AD8MpC,IC5MMG,IAAelD,CAAAA,OAAQ,GAAG2C,EAAQ,OAAQ,EAAC,KAAI,EAAG,KAAK,GAAGG,CAAQ,GAAG9C,EAAI,GAAGgD,CAAmB;AD4MrG,IC3MMG,IAAoBC,CAAAA,OAAO,GAAGT,EAAQ,OAAQ,EAAC,KAAI,EAAG,KAAK,GAAGM,CAAgB,GAAGG,EAAG,GAAGP,CAAgB;AD2M7G,ICvMMQ,KAAc7D,CAAAA,OAAUA,GAAO,MAAM,GAAG,EAAE,IAAII,OAAakB,EAAYlB,CAAS,CAAC;ADuMvF,ICnMM0D,IAAW,CAACC,IAAMC,GAAMC,MAAY;AACzC,QAAMvD,IAAa,CAAC,GAAGsD,CAAI;AAE3B,MAAIE,IAAiB,OACjBC,KAAqB,OACrBC,IAAU9C,EAAYvB,EAAUgE,GAAKA,GAAK,SAAS,CAAC,CAAC,CAAC;AAE1D,aAAW,CAACM,GAAOjE,CAAS,KAAKM,EAAW,QAAO,GAAI;AACtD,UAAM4D,KAAkBhD,EAAYlB,CAAS;AAc7C,QAZIgE,IAAUE,MAAmBL,IAChCF,GAAKA,GAAK,SAAS,CAAC,KAAK3D,KAEzB2D,GAAK,KAAK3D,CAAS,GACnBgE,IAAU,IAGPjB,EAAQ,IAAI/C,CAAS,MACxB8D,IAAiB,MACjBC,KAAqBzD,EAAW,MAAM2D,IAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,WAAWZ,CAAgB,IAGlFS,GAAgB;AACfC,MAAAA,KACC/D,MAAciD,MACjBa,IAAiB,OACjBC,KAAqB,SAEZ/D,MAAcoD,MACxBU,IAAiB;AAGlB;IACA;AAEDE,SAAWE,IAEPF,MAAYH,KAAWI,IAAQ3D,EAAW,SAAS,MACtDqD,GAAK,KAAK,EAAE,GACZK,IAAU;EAEX;AAIG,GAACA,KAAWL,GAAKA,GAAK,SAAS,CAAC,EAAE,SAAS,KAAKA,GAAK,SAAS,MACjEA,GAAKA,GAAK,SAAS,CAAC,KAAKA,GAAK,IAAA;AAEhC;ADmJA,IChJMQ,KAA+BvE,CAAAA,OAAU;AAC9C,QAAMwE,IAAQxE,GAAO,MAAM,GAAG;AAC9B,MAAIyE,IAAOD,EAAM;AAEjB,SAAOC,IAAO,KACT,EAAAnD,EAAYkD,EAAMC,IAAO,CAAC,CAAC,IAAI,KAInCA;AAGD,SAAIA,MAASD,EAAM,SACXxE,KAGDwE,EAAM,MAAM,GAAGC,CAAI,EAAE,KAAK,GAAG,IAAID,EAAM,MAAMC,CAAI,EAAE,KAAK,EAAE;AAClE;AD+HA,ICxHMC,KAAO,CAAC1E,IAAQiE,GAAS1C,IAAU,CAAA,MAAO;AAC/C,MAAIA,EAAQ,SAAS,SAASvB,GAAO,KAAM,MAAK,GAC/C,QAAO;AAGR,MAAI2E,IAAc,IACdC,GACAC;AAEJ,QAAMC,IAAUjB,GAAY7D,EAAM;AAClC,MAAI+D,IAAO,CAAC,EAAE;AAEd,aAAW,CAACM,IAAOL,EAAI,KAAKhE,GAAO,MAAM,GAAG,EAAE,QAAA,GAAW;AACpDuB,MAAQ,SAAS,UACpBwC,EAAKA,EAAK,SAAS,CAAC,IAAIA,EAAKA,EAAK,SAAS,CAAC,EAAE,UAAA;AAG/C,QAAIgB,KAAYzD,EAAYyC,EAAKA,EAAK,SAAS,CAAC,CAAC;AAgBjD,QAdIM,OAAU,MACTU,MAAad,MAAY1C,EAAQ,aAAa,SAASA,EAAQ,SAAS,WAE3EwC,EAAK,KAAK,EAAE,GACZgB,KAAY,KAGTA,KAAY,KAAKxD,EAAQ,SAAS,WACrCwC,EAAKA,EAAK,SAAS,CAAC,KAAK,KACzBgB,QAKExD,EAAQ,QAAQuD,EAAQT,EAAK,IAAIJ,GAAS;AAC7C,YAAMe,KAAoBf,IAAUc,IAC9BE,IAAyB,IAAI,KAAK,OAAOH,EAAQT,EAAK,IAAIW,KAAmB,KAAKf,CAAO;AAChE,WAAK,OAAOa,EAAQT,EAAK,IAAI,KAAKJ,CAAO,IAC3CgB,KAC5BlB,EAAK,KAAK,EAAE,GAGbD,EAASC,GAAMC,IAAMC,CAAO;AAC5B;IACA;AAED,QAAIc,KAAYD,EAAQT,EAAK,IAAIJ,KAAWc,KAAY,KAAKD,EAAQT,EAAK,IAAI,GAAG;AAChF,UAAI9C,EAAQ,aAAa,SAASwD,KAAYd,GAAS;AACtDH,UAASC,GAAMC,IAAMC,CAAO;AAC5B;MACA;AAEDF,QAAK,KAAK,EAAE;IACZ;AAED,QAAIgB,KAAYD,EAAQT,EAAK,IAAIJ,KAAW1C,EAAQ,aAAa,OAAO;AACvEuC,QAASC,GAAMC,IAAMC,CAAO;AAC5B;IACA;AAEDF,MAAKA,EAAK,SAAS,CAAC,KAAKC;EACzB;AAEGzC,IAAQ,SAAS,UACpBwC,IAAOA,EAAK,IAAImB,CAAAA,OAAOX,GAA6BW,EAAG,CAAC;AAGzD,QAAMC,IAAM,CAAC,GAAGpB,EAAK,KAAK;CAAI,CAAC;AAE/B,aAAW,CAACM,IAAOjE,EAAS,KAAK+E,EAAI,QAAO,GAAI;AAG/C,QAFAR,KAAevE,IAEX+C,EAAQ,IAAI/C,EAAS,GAAG;AAC3B,YAAM,EAAC,QAAAgF,GAAM,IAAI,IAAI,OAAO,QAAQ9B,CAAQ,oBAAoBG,CAAgB,aAAaJ,CAAgB,GAAG,EAAE,KAAK8B,EAAI,MAAMd,EAAK,EAAE,KAAK,EAAE,CAAC,KAAK,EAAC,QAAQ,CAAE,EAAA;AAChK,UAAIe,GAAO,SAAS,QAAW;AAC9B,cAAM5E,IAAO,OAAO,WAAW4E,GAAO,IAAI;AAC1CR,YAAapE,MAAS4C,KAAW,SAAY5C;MACjD,MAAc4E,CAAAA,GAAO,QAAQ,WACzBP,KAAYO,GAAO,IAAI,WAAW,IAAI,SAAYA,GAAO;IAE1D;AAED,UAAM5E,KAAO0C,GAAW,MAAM,IAAI,OAAO0B,CAAU,CAAC;AAEhDO,MAAId,KAAQ,CAAC,MAAM;KAClBQ,OACHF,KAAehB,EAAkB,EAAE,IAGhCiB,KAAcpE,OACjBmE,KAAejB,EAAalD,EAAI,MAEvBJ,OAAc;MACpBwE,KAAcpE,OACjBmE,KAAejB,EAAakB,CAAU,IAGnCC,OACHF,KAAehB,EAAkBkB,EAAS;EAG5C;AAED,SAAOF;AACR;AAGe,SAASU,EAASrF,IAAQiE,GAAS1C,GAAS;AAC1D,SAAO,OAAOvB,EAAM,EAClB,UAAW,EACX,QAAQ,SAAS;CAAI,EACrB,MAAM;CAAI,EACV,IAAIsF,OAAQZ,GAAKY,GAAMrB,GAAS1C,CAAO,CAAC,EACxC,KAAK;CAAI;AACZ;ACnNA,IAAAgE,KAAA,OAAA;AAAA,IAAAC,KAAA,CAAAC,IAAAC,GAAAzF,MAAAyF,KAAAD,KAAAF,GAAAE,IAAAC,GAAA,EAAA,YAAA,MAAA,cAAA,MAAA,UAAA,MAAA,OAAAzF,EAAA,CAAA,IAAAwF,GAAAC,CAAA,IAAAzF;AAAA,IAAA0F,IAAA,CAAAF,IAAAC,GAAAzF,OAAAuF,GAAAC,IAAA,OAAAC,KAAA,WAAAA,IAAA,KAAAA,GAAAzF,CAAA,GAAAA;AAOA,SAAS2F,GAAUC,IAAWC,GAAW;AACxC,MAAID,OAAMC,EAAG;AAEb,QAAMC,IAASF,GAAE,MAAM;CAAI,GACrBG,IAASF,EAAE,MAAM;CAAI,GACrBG,IAAiB,CAAA;AAEvB,WAASrF,KAAI,GAAGA,KAAI,KAAK,IAAImF,EAAO,QAAQC,EAAO,MAAM,GAAGpF,KACvDmF,GAAOnF,EAAC,MAAMoF,EAAOpF,EAAC,KAAGqF,EAAK,KAAKrF,EAAC;AAGzC,SAAOqF;AACR;AAEA,IAAMC,IAAS,uBAAO,cAAc;AAC7B,SAASC,GAASlD,IAAiC;AACzD,SAAOA,OAAUiD;AAClB;AAEA,SAASE,EAAWC,IAAiBpD,GAAgB;AAC/CoD,EAAAA,GAAuB,SAAQA,GAAuB,WAAWpD,CAAK;AAC5E;AAEA,IAAMqD,IAAU,oBAAI,IAAI,CACvB,CAAC,KAAK,IAAI,GACV,CAAC,KAAK,MAAM,GACZ,CAAC,KAAK,MAAM,GACZ,CAAC,KAAK,OAAO,CACd,CAAC;AALD,IAMMC,KAAO,oBAAI,IAAI,CAAC,MAAM,QAAQ,QAAQ,SAAS,SAAS,OAAO,CAAC;AAcjDC,IAAAA,IAAAA,MAAO;EAa3B,YACC,EAAE,QAAAC,GAAQ,OAAAJ,IAAQK,GAAO,QAAAC,IAASC,GAAQ,GAAGC,EAAK,GAClDC,KAAsB,MACrB;AAfFC,MAAA,MAAU,OAAA,GACVA,EAAA,MAAU,QAAA,GACVA,EAAA,MAAQ,IAAA,GACRA,EAAA,MAAQ,MACRA,GAAAA,EAAA,MAAQ,UAAkB,KAAA,GAC1BA,EAAA,MAAQ,SAAA,GACRA,EAAA,MAAU,WAAkB,CAAA,GAE5BA,EAAA,MAAO,SAAe,SACtBA,GAAAA,EAAA,MAAO,OACPA,GAAAA,EAAA,MAAO,SAAgB,EAAA,GAgEvBA,EAAA,MAAQ,eAAc,oBAAI,KAAA,GA4F1BA,EAAA,MAAQ,cAAa,EAAA,GAtJpB,KAAK,OAAOF,GACZ,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,QAAQ,KAAK,MAAM,KAAK,IAAI,GACjC,KAAK,SAAS,KAAK,OAAO,KAAK,IAAI,GACnC,KAAK,UAAUJ,EAAO,KAAK,IAAI,GAC/B,KAAK,SAASK,IAEd,KAAK,QAAQT,GACb,KAAK,SAASM;EACf;EAEO,SAAS;AACf,UAAMK,IAAO,IAAIC,EAAY,CAAC;AAC9B,WAAAD,EAAK,SAAS,CAACE,GAAOC,GAAUC,MAAS;AACpC,WAAK,WACR,KAAK,QAAQ,KAAK,GAAG,KAAK,QAAQ,OAAO,EAAE,GAC3C,KAAK,UAAU,KAAK,GAAG,QACvB,KAAK,KAAK,SAAS,KAAK,KAAK,IAE9BA,EACD;IAAA,GACA,KAAK,MAAM,KAAKJ,CAAI,GAEpB,KAAK,KAAKK,EAAS,gBAAgB,EAClC,OAAO,KAAK,OACZ,QAAQL,GACR,SAAS,GACT,QAAQ,IACR,mBAAmB,GACpB,CAAC,GACDK,EAAS,mBAAmB,KAAK,OAAO,KAAK,EAAE,GAC/C,KAAK,GAAG,OAAO,GACX,KAAK,KAAK,iBAAiB,UAAa,KAAK,UAChD,KAAK,GAAG,MAAM,KAAK,KAAK,YAAY,GAGrC,KAAK,MAAM,GAAG,YAAY,KAAK,UAAU,GACzCjB,EAAW,KAAK,OAAO,IAAI,GAC3B,KAAK,OAAO,GAAG,UAAU,KAAK,MAAM,GAEpC,KAAK,OAAA,GAEE,IAAI,QAAyB,CAACkB,GAASC,MAAW;AACxD,WAAK,KAAK,UAAU,MAAM;AACzB,aAAK,OAAO,MAAMC,kBAAAA,OAAO,IAAI,GAC7B,KAAK,OAAO,IAAI,UAAU,KAAK,MAAM,GACrCpB,EAAW,KAAK,OAAO,KAAK,GAC5BkB,EAAQ,KAAK,KAAK;MACnB,CAAC,GACD,KAAK,KAAK,UAAU,MAAM;AACzB,aAAK,OAAO,MAAME,kBAAAA,OAAO,IAAI,GAC7B,KAAK,OAAO,IAAI,UAAU,KAAK,MAAM,GACrCpB,EAAW,KAAK,OAAO,KAAK,GAC5BkB,EAAQpB,CAAM;MACf,CAAC;IACF,CAAC;EACF;EAGO,GAAGuB,GAAeC,GAA2B;AACnD,UAAMC,IAAM,KAAK,YAAY,IAAIF,CAAK,KAAK,CAAA;AAC3CE,MAAI,KAAK,EAAE,IAAAD,EAAG,CAAC,GACf,KAAK,YAAY,IAAID,GAAOE,CAAG;EAChC;EACO,KAAKF,GAAeC,GAA2B;AACrD,UAAMC,IAAM,KAAK,YAAY,IAAIF,CAAK,KAAK,CAAA;AAC3CE,MAAI,KAAK,EAAE,IAAAD,GAAI,MAAM,KAAK,CAAC,GAC3B,KAAK,YAAY,IAAID,GAAOE,CAAG;EAChC;EACO,KAAKF,MAAkBG,GAAa;AAC1C,UAAMC,IAAM,KAAK,YAAY,IAAIJ,CAAK,KAAK,CAAA,GACrCK,IAA0B,CAChC;AAAA,eAAWC,MAAcF,EACxBE,CAAAA,GAAW,GAAG,GAAGH,CAAI,GACjBG,GAAW,QACdD,EAAQ,KAAK,MAAMD,EAAI,OAAOA,EAAI,QAAQE,EAAU,GAAG,CAAC,CAAC;AAG3D,eAAWL,MAAMI,EAChBJ,CAAAA,GAEF;EAAA;EACQ,cAAc;AACrB,SAAK,YAAY,MAAM;EACxB;EAEQ,WAAWvG,GAAc6G,GAAW;AAuB3C,QAtBI,KAAK,UAAU,YAClB,KAAK,QAAQ,WAEVA,GAAK,QAAQ,CAAC,KAAK,UAAU1B,EAAQ,IAAI0B,EAAI,IAAI,KACpD,KAAK,KAAK,UAAU1B,EAAQ,IAAI0B,EAAI,IAAI,CAAC,GAEtCA,GAAK,QAAQzB,GAAK,IAAIyB,EAAI,IAAI,KACjC,KAAK,KAAK,UAAUA,EAAI,IAAI,GAEzB7G,MAASA,EAAK,YAAY,MAAM,OAAOA,EAAK,YAAA,MAAkB,QACjE,KAAK,KAAK,WAAWA,EAAK,YAAA,MAAkB,GAAG,GAE5CA,MAAS,OAAQ,KAAK,KAAK,gBACzB,KAAK,UACT,KAAK,GAAG,MAAM,KAAK,KAAK,WAAW,GACnC,KAAK,KAAK,SAAS,KAAK,KAAK,WAAW,KAGtCA,KACH,KAAK,KAAK,OAAOA,EAAK,YAAA,CAAa,GAGhC6G,GAAK,SAAS,UAAU;AAC3B,UAAI,KAAK,KAAK,UAAU;AACvB,cAAMC,IAAU,KAAK,KAAK,SAAS,KAAK,KAAK;AACzCA,cACH,KAAK,QAAQA,GACb,KAAK,QAAQ,SACb,KAAK,GAAG,MAAM,KAAK,KAAK;MAE1B;AACI,WAAK,UAAU,YAClB,KAAK,QAAQ;IAEf;AACI9G,UAAS,QACZ,KAAK,QAAQ,YAEV,KAAK,UAAU,YAAY,KAAK,UAAU,aAC7C,KAAK,KAAK,UAAU,GAErB,KAAK,OAAA,IACD,KAAK,UAAU,YAAY,KAAK,UAAU,aAC7C,KAAK,MAAA;EAEP;EAEU,QAAQ;AACjB,SAAK,MAAM,OAAO,GAClB,KAAK,MAAM,eAAe,YAAY,KAAK,UAAU,GACrD,KAAK,OAAO,MAAM;CAAI,GACtBiF,EAAW,KAAK,OAAO,KAAK,GAC5B,KAAK,GAAG,MAAM,GACd,KAAK,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,GACrC,KAAK,YAAA;EACN;EAEQ,gBAAgB;AACvB,UAAM8B,IACLC,EAAK,KAAK,YAAY,QAAQ,OAAO,SAAS,EAAE,MAAM,KAAK,CAAC,EAAE,MAAM;CAAI,EAAE,SAAS;AACpF,SAAK,OAAO,MAAMX,kBAAAA,OAAO,KAAK,MAAMU,IAAQ,EAAE,CAAC;EAChD;EAGQ,SAAS;AAChB,UAAME,IAAQD,EAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,QAAQ,OAAO,SAAS,EAAE,MAAM,KAAK,CAAC;AACnF,QAAIC,MAAU,KAAK,YAEnB;AAAI,UAAA,KAAK,UAAU,UAClB,MAAK,OAAO,MAAMZ,kBAAAA,OAAO,IAAI;WACvB;AACN,cAAMvB,IAAOL,GAAU,KAAK,YAAYwC,CAAK;AAG7C,YAFA,KAAK,cAAc,GAEfnC,KAAQA,GAAM,WAAW,GAAG;AAC/B,gBAAMoC,IAAWpC,EAAK,CAAC;AACvB,eAAK,OAAO,MAAMuB,kBAAAA,OAAO,KAAK,GAAGa,CAAQ,CAAC,GAC1C,KAAK,OAAO,MAAMC,kBAAAA,MAAM,MAAM,CAAC,CAAC;AAChC,gBAAMJ,IAAQE,EAAM,MAAM;CAAI;AAC9B,eAAK,OAAO,MAAMF,EAAMG,CAAQ,CAAC,GACjC,KAAK,aAAaD,GAClB,KAAK,OAAO,MAAMZ,kBAAAA,OAAO,KAAK,GAAGU,EAAM,SAASG,IAAW,CAAC,CAAC;AAC7D;QAED,WAAWpC,KAAQA,GAAM,SAAS,GAAG;AACpC,gBAAMoC,IAAWpC,EAAK,CAAC;AACvB,eAAK,OAAO,MAAMuB,kBAAAA,OAAO,KAAK,GAAGa,CAAQ,CAAC,GAC1C,KAAK,OAAO,MAAMC,kBAAAA,MAAM,KAAM,CAAA;AAE9B,gBAAMC,IADQH,EAAM,MAAM;CAAI,EACP,MAAMC,CAAQ;AACrC,eAAK,OAAO,MAAME,EAAS,KAAK;CAAI,CAAC,GACrC,KAAK,aAAaH;AAClB;QACD;AAEA,aAAK,OAAO,MAAME,kBAAAA,MAAM,KAAA,CAAM;MAC/B;AAEA,WAAK,OAAO,MAAMF,CAAK,GACnB,KAAK,UAAU,cAClB,KAAK,QAAQ,WAEd,KAAK,aAAaA;IAAAA;EACnB;AACD;AIpOA,IAAA,KAAA,OAAA;AAAA,IAAA,KAAA,CAAAI,IAAA,GAAA,MAAA,KAAAA,KAAA,GAAAA,IAAA,GAAA,EAAA,YAAA,MAAA,cAAA,MAAA,UAAA,MAAA,OAAA,EAAA,CAAA,IAAAA,GAAA,CAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,GAAA,OAAA,GAAAA,IAAA,OAAA,KAAA,WAAA,IAAA,KAAA,GAAA,CAAA,GAAA;AC1BA,IAAAC,KAAA,cAAoEC,EAAO;EAY1E,YAAYC,GAAwB;AACnC,UAAMA,GAAM,KAAK,GAZlBC,EAAA,MAAA,SAAA,GACAA,EAAA,MAAA,UAAiB,CAahB,GAAA,KAAK,UAAUD,EAAK,SACpB,KAAK,SAAS,KAAK,QAAQ,UAAU,CAAC,EAAE,OAAAE,EAAM,MAAMA,MAAUF,EAAK,YAAY,GAC3E,KAAK,WAAW,OAAI,KAAK,SAAS,IACtC,KAAK,YAAY,GAEjB,KAAK,GAAG,UAAWG,OAAQ;AAC1B,cAAQA,GAAK;QACZ,KAAK;QACL,KAAK;AACJ,eAAK,SAAS,KAAK,WAAW,IAAI,KAAK,QAAQ,SAAS,IAAI,KAAK,SAAS;AAC1E;QACD,KAAK;QACL,KAAK;AACJ,eAAK,SAAS,KAAK,WAAW,KAAK,QAAQ,SAAS,IAAI,IAAI,KAAK,SAAS;AAC1E;MACF;AACA,WAAK,YACN;IAAA,CAAC;EACF;EA7BA,IAAY,SAAS;AACpB,WAAO,KAAK,QAAQ,KAAK,MAAM;EAChC;EAEQ,cAAc;AACrB,SAAK,QAAQ,KAAK,OAAO;EAC1B;AAwBD;ACdA,IAAA,KAAA,OAAA;AAAA,IAAA,KAAA,CAAAC,IAAA,GAAA,MAAA,KAAAA,KAAA,GAAAA,IAAA,GAAA,EAAA,YAAA,MAAA,cAAA,MAAA,UAAA,MAAA,OAAA,EAAA,CAAA,IAAAA,GAAA,CAAA,IAAA;AAAA,IAAA,KAAA,CAAAA,IAAA,GAAA,OAAA,GAAAA,IAAA,OAAA,KAAA,WAAA,IAAA,KAAA,GAAA,CAAA,GAAA;AClBqBC,IAAAA,KAAAA,cAAmBC,EAAO;EAK9C,YAAYC,GAAmB;AAC9B,UAAMA,CAAI,GALXC,GAAA,MAAkB,mBAAA,EAAA,GAOjB,KAAK,GAAG,YAAY,MAAM;AACpB,WAAK,UACT,KAAK,QAAQD,EAAK,eAEnB,KAAK,kBAAkB,KAAK;IAC7B,CAAC,GACD,KAAK,GAAG,SAAS,MAAM;AACtB,UAAI,KAAK,UAAU,KAAK,MAAM,OAC7B,MAAK,kBAAkB,GAAG,KAAK,KAAK,GAAGE,kBAAAA,QAAM,QAAQA,kBAAAA,QAAM,OAAO,GAAG,CAAC,CAAC;WACjE;AACN,cAAMC,IAAK,KAAK,MAAM,MAAM,GAAG,KAAK,MAAM,GACpCC,IAAK,KAAK,MAAM,MAAM,KAAK,MAAM;AACvC,aAAK,kBAAkB,GAAGD,CAAE,GAAGD,kBAAAA,QAAM,QAAQE,EAAG,CAAC,CAAC,CAAC,GAAGA,EAAG,MAAM,CAAC,CAAC;MAClE;IACD,CAAC;EACF;EArBA,IAAI,SAAS;AACZ,WAAO,KAAK;EACb;AAoBD;AC1BA,IAAMC,KAAY,WAAW,QAAQ,SAAS,WAAW,KAAK;;;ACNmM,IAAAC,qBAAa;AAAa,IAAAC,qBAAkC;AAAxF,OAAO,OAAM;AAAwF,SAASC,KAAG;AAAC,SAAO,EAAE,aAAW,UAAQ,EAAE,IAAI,SAAO,UAAQ,QAAQ,EAAE,IAAI,EAAE,KAAG,QAAQ,EAAE,IAAI,UAAU,KAAG,QAAQ,EAAE,IAAI,gBAAgB,KAAG,EAAE,IAAI,eAAa,kBAAgB,EAAE,IAAI,iBAAe,sBAAoB,EAAE,IAAI,iBAAe,YAAU,EAAE,IAAI,SAAO,oBAAkB,EAAE,IAAI,SAAO,eAAa,EAAE,IAAI,sBAAoB;AAAoB;AAAC,IAAMC,KAAED,GAAE;AAAV,IAAY,IAAE,CAACE,IAAE,MAAID,KAAEC,KAAE;AAAzB,IAA2B,IAAE,EAAE,UAAS,GAAG;AAA3C,IAA6CC,KAAE,EAAE,UAAS,GAAG;AAA7D,IAA+DC,KAAE,EAAE,UAAS,GAAG;AAA/E,IAAiFC,KAAE,EAAE,UAAS,GAAG;AAAjG,IAAmG,IAAE,EAAE,UAAS,GAAG;AAAnH,IAAqHC,KAAE,EAAE,UAAS,GAAG;AAArI,IAAuIC,KAAE,EAAE,UAAS,QAAQ;AAA5J,IAA8JC,KAAE,EAAE,UAAS,GAAG;AAA9K,IAAgL,IAAE,EAAE,UAAS,GAAG;AAAhM,IAAkM,IAAE,EAAE,UAAS,UAAU;AAAzN,IAA2NC,KAAE,EAAE,UAAS,KAAK;AAA7O,IAA+OC,KAAE,EAAE,UAAS,KAAK;AAAjQ,IAAmQC,KAAE,EAAE,UAAS,QAAQ;AAAxR,IAA0R,IAAE,EAAE,UAAS,GAAG;AAA1S,IAA4SC,KAAE,EAAE,UAAS,GAAG;AAA5T,IAA8TC,KAAE,EAAE,UAAS,GAAG;AAA9U,IAAgVC,KAAE,EAAE,UAAS,GAAG;AAAhW,IAAkWC,KAAE,EAAE,UAAS,QAAQ;AAAvX,IAAyX,IAAE,EAAE,UAAS,GAAG;AAAzY,IAA2YC,KAAE,EAAE,UAAS,GAAG;AAA3Z,IAA6Z,KAAG,EAAE,UAAS,GAAG;AAA9a,IAAgbC,KAAE,CAAAf,OAAG;AAAC,UAAOA,IAAE;AAAA,IAAC,KAAI;AAAA,IAAU,KAAI;AAAS,aAAO,mBAAAgB,QAAE,KAAK,CAAC;AAAA,IAAE,KAAI;AAAS,aAAO,mBAAAA,QAAE,IAAIf,EAAC;AAAA,IAAE,KAAI;AAAQ,aAAO,mBAAAe,QAAE,OAAOd,EAAC;AAAA,IAAE,KAAI;AAAS,aAAO,mBAAAc,QAAE,MAAMb,EAAC;AAAA,EAAC;AAAC;AAAvkB,IAAykB,KAAG,CAAAH,OAAG,IAAI,GAAE,EAAC,UAASA,GAAE,UAAS,aAAYA,GAAE,aAAY,cAAaA,GAAE,cAAa,cAAaA,GAAE,cAAa,SAAQ;AAAC,QAAM,IAAE,GAAG,mBAAAgB,QAAE,KAAKZ,EAAC,CAAC;AAAA,EACj4CW,GAAE,KAAK,KAAK,CAAC,KAAKf,GAAE,OAAO;AAAA,GAC3B,IAAEA,GAAE,cAAY,mBAAAgB,QAAE,QAAQhB,GAAE,YAAY,CAAC,CAAC,IAAE,mBAAAgB,QAAE,IAAIhB,GAAE,YAAY,MAAM,CAAC,CAAC,IAAE,mBAAAgB,QAAE,QAAQ,mBAAAA,QAAE,OAAO,GAAG,CAAC,GAAE,IAAE,KAAK,QAAM,KAAK,kBAAgB;AAAE,UAAO,KAAK,OAAM;AAAA,IAAC,KAAI;AAAQ,aAAM,GAAG,EAAE,KAAK,CAAC;AAAA,EACvL,mBAAAA,QAAE,OAAOZ,EAAC,CAAC,KAAK,CAAC;AAAA,EACjB,mBAAAY,QAAE,OAAOX,EAAC,CAAC,KAAK,mBAAAW,QAAE,OAAO,KAAK,KAAK,CAAC;AAAA;AAAA,IACpC,KAAI;AAAS,aAAM,GAAG,CAAC,GAAG,mBAAAA,QAAE,KAAKZ,EAAC,CAAC,KAAK,mBAAAY,QAAE,IAAI,KAAK,SAAOhB,GAAE,WAAW,CAAC;AAAA,IAAG,KAAI;AAAS,aAAM,GAAG,CAAC,GAAG,mBAAAgB,QAAE,KAAKZ,EAAC,CAAC,KAAK,mBAAAY,QAAE,cAAc,mBAAAA,QAAE,IAAI,KAAK,SAAO,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,KAAK,IAAE;AAAA,IAC/K,mBAAAA,QAAE,KAAKZ,EAAC,IAAE,EAAE;AAAA,IAAG;AAAQ,aAAM,GAAG,CAAC,GAAG,mBAAAY,QAAE,KAAKZ,EAAC,CAAC,KAAK,CAAC;AAAA,EACnD,mBAAAY,QAAE,KAAKX,EAAC,CAAC;AAAA;AAAA,EACV;AAAC,EAAC,CAAC,EAAE,OAAO;AAR6pB,IAqB1pB,KAAG,CAAAY,OAAG;AAAC,QAAM,IAAE,CAAC,GAAE,MAAI;AAAC,UAAMC,KAAE,EAAE,SAAO,OAAO,EAAE,KAAK;AAAE,WAAO,MAAI,WAAS,GAAG,mBAAAC,QAAE,MAAMC,EAAC,CAAC,IAAIF,EAAC,IAAI,EAAE,OAAK,mBAAAC,QAAE,IAAI,IAAI,EAAE,IAAI,GAAG,IAAE,EAAE,KAAG,MAAI,aAAW,GAAG,mBAAAA,QAAE,IAAID,EAAC,CAAC,KAAG,MAAI,cAAY,GAAG,mBAAAC,QAAE,cAAc,mBAAAA,QAAE,IAAID,EAAC,CAAC,CAAC,KAAG,GAAG,mBAAAC,QAAE,IAAI,CAAC,CAAC,IAAI,mBAAAA,QAAE,IAAID,EAAC,CAAC;AAAA,EAAE;AAAE,MAAI,IAAE;AAAE,SAAO,IAAI,GAAE,EAAC,SAAQD,GAAE,SAAQ,cAAaA,GAAE,cAAa,SAAQ;AAAC,UAAM,IAAE,GAAG,mBAAAE,QAAE,KAAKE,EAAC,CAAC;AAAA,EACzVC,GAAE,KAAK,KAAK,CAAC,KAAKL,GAAE,OAAO;AAAA;AAC3B,YAAO,KAAK,OAAM;AAAA,MAAC,KAAI;AAAS,eAAM,GAAG,CAAC,GAAG,mBAAAE,QAAE,KAAKE,EAAC,CAAC,KAAK,EAAE,KAAK,QAAQ,KAAK,MAAM,GAAE,UAAU,CAAC;AAAA,MAAG,KAAI;AAAS,eAAM,GAAG,CAAC,GAAG,mBAAAF,QAAE,KAAKE,EAAC,CAAC,KAAK,EAAE,KAAK,QAAQ,KAAK,MAAM,GAAE,WAAW,CAAC;AAAA,EACrL,mBAAAF,QAAE,KAAKE,EAAC,CAAC;AAAA,MAAG,SAAQ;AAAC,cAAM,IAAEJ,GAAE,aAAW,SAAO,IAAE,IAAE,KAAK,IAAIA,GAAE,UAAS,CAAC;AAAE,aAAK,UAAQ,IAAE,IAAE,IAAE,IAAE,KAAK,IAAI,KAAK,IAAI,KAAK,SAAO,IAAE,GAAE,KAAK,QAAQ,SAAO,CAAC,GAAE,CAAC,IAAE,KAAK,SAAO,IAAE,MAAI,IAAE,KAAK,IAAI,KAAK,SAAO,GAAE,CAAC;AAAG,cAAMC,KAAE,IAAE,KAAK,QAAQ,UAAQ,IAAE,GAAEK,KAAE,IAAE,KAAK,QAAQ,UAAQ,IAAE,IAAE,KAAK,QAAQ;AAAO,eAAM,GAAG,CAAC,GAAG,mBAAAJ,QAAE,KAAKE,EAAC,CAAC,KAAK,KAAK,QAAQ,MAAM,GAAE,IAAE,CAAC,EAAE,IAAI,CAAC,GAAEG,IAAEC,OAAID,OAAI,KAAGN,KAAE,mBAAAC,QAAE,IAAI,KAAK,IAAEK,OAAIC,GAAE,SAAO,KAAGF,KAAE,mBAAAJ,QAAE,IAAI,KAAK,IAAE,EAAE,GAAEK,KAAE,MAAI,KAAK,SAAO,WAAS,UAAU,CAAC,EAAE,KAAK;AAAA,EACxc,mBAAAL,QAAE,KAAKE,EAAC,CAAC,IAAI,CAAC;AAAA,EACd,mBAAAF,QAAE,KAAKO,EAAC,CAAC;AAAA;AAAA,MACV;AAAA,IAAC;AAAA,EAAC,EAAC,CAAC,EAAE,OAAO;AAAC;AA3B2pB,IAyD1pBC,KAAE,CAAAC,OAAGA,GAAE,QAAQ,GAAG,GAAE,EAAE;AAzDooB,IAyDloB,KAAG,CAACA,KAAE,IAAG,IAAE,OAAK;AAAC,QAAM,IAAE;AAAA,EAC/DA,EAAC;AAAA,EACD,MAAM;AAAA,CACP,GAAE,IAAED,GAAE,CAAC,EAAE,QAAO,IAAE,KAAK,IAAI,EAAE,OAAO,CAACE,IAAE,OAAK,IAAEF,GAAE,CAAC,GAAE,EAAE,SAAOE,KAAE,EAAE,SAAOA,KAAG,CAAC,GAAE,CAAC,IAAE,GAAEC,KAAE,EAAE,IAAI,CAAAD,OAAG,GAAG,mBAAAE,QAAE,KAAKC,EAAC,CAAC,KAAK,mBAAAD,QAAE,IAAIF,EAAC,CAAC,GAAG,IAAI,OAAO,IAAEF,GAAEE,EAAC,EAAE,MAAM,CAAC,GAAG,mBAAAE,QAAE,KAAKC,EAAC,CAAC,EAAE,EAAE,KAAK;AAAA,CACvK;AAAE,UAAQ,OAAO,MAAM,GAAG,mBAAAD,QAAE,KAAKC,EAAC,CAAC;AAAA,EAClC,mBAAAD,QAAE,MAAME,EAAC,CAAC,KAAK,mBAAAF,QAAE,MAAM,CAAC,CAAC,IAAI,mBAAAA,QAAE,KAAK,EAAE,OAAO,KAAK,IAAI,IAAE,IAAE,GAAE,CAAC,CAAC,IAAEG,EAAC,CAAC;AAAA,EAClEJ,EAAC;AAAA,EACD,mBAAAC,QAAE,KAAKI,KAAE,EAAE,OAAO,IAAE,CAAC,IAAEC,EAAC,CAAC;AAAA,CAC1B;AAAC;AAjEwqB,IAiEtqB,KAAG,CAACR,KAAE,OAAK;AAAC,UAAQ,OAAO,MAAM,GAAG,mBAAAG,QAAE,KAAKM,EAAC,CAAC,KAAK,mBAAAN,QAAE,IAAIH,EAAC,CAAC;AAAA;AAAA,CAE7D;AAAC;AAnEwqB,IAmEtqB,KAAG,CAACA,KAAE,OAAK;AAAC,UAAQ,OAAO,MAAM,GAAG,mBAAAG,QAAE,KAAK,CAAC,CAAC,KAAKH,EAAC;AAAA,CACtD;AAAC;AApEwqB,IAoEtqB,KAAG,CAACA,KAAE,OAAK;AAAC,UAAQ,OAAO,MAAM,GAAG,mBAAAG,QAAE,KAAKC,EAAC,CAAC;AAAA,EAC/C,mBAAAD,QAAE,KAAKM,EAAC,CAAC,KAAKT,EAAC;AAAA;AAAA,CAEhB;AAAC;AAvEwqB,IAuEtqBU,KAAE,EAAC,SAAQ,CAACV,KAAE,IAAG,EAAC,QAAO,IAAE,mBAAAG,QAAE,KAAKC,EAAC,EAAC,IAAE,CAAC,MAAI;AAAC,QAAM,IAAE,CAAC,GAAG,mBAAAD,QAAE,KAAKC,EAAC,CAAC,EAAE;AAAE,MAAGJ,IAAE;AAAC,UAAK,CAAC,GAAE,GAAG,CAAC,IAAEA,GAAE,MAAM;AAAA,CACpG;AAAE,MAAE,KAAK,GAAG,CAAC,KAAK,CAAC,IAAG,GAAG,EAAE,IAAI,CAAAE,OAAG,GAAG,mBAAAC,QAAE,KAAKC,EAAC,CAAC,KAAKF,EAAC,EAAE,CAAC;AAAA,EAAC;AAAC,UAAQ,OAAO,MAAM,GAAG,EAAE,KAAK;AAAA,CACxF,CAAC;AAAA,CACD;AAAC,GAAE,MAAK,CAAAF,OAAG;AAAC,EAAAU,GAAE,QAAQV,IAAE,EAAC,QAAO,mBAAAG,QAAE,KAAKQ,EAAC,EAAC,CAAC;AAAC,GAAE,SAAQ,CAAAX,OAAG;AAAC,EAAAU,GAAE,QAAQV,IAAE,EAAC,QAAO,mBAAAG,QAAE,MAAM,CAAC,EAAC,CAAC;AAAC,GAAE,MAAK,CAAAH,OAAG;AAAC,EAAAU,GAAE,QAAQV,IAAE,EAAC,QAAO,mBAAAG,QAAE,MAAME,EAAC,EAAC,CAAC;AAAC,GAAE,MAAK,CAAAL,OAAG;AAAC,EAAAU,GAAE,QAAQV,IAAE,EAAC,QAAO,mBAAAG,QAAE,OAAOS,EAAC,EAAC,CAAC;AAAC,GAAE,SAAQ,CAAAZ,OAAG;AAAC,EAAAU,GAAE,KAAKV,EAAC;AAAC,GAAE,OAAM,CAAAA,OAAG;AAAC,EAAAU,GAAE,QAAQV,IAAE,EAAC,QAAO,mBAAAG,QAAE,IAAI,EAAE,EAAC,CAAC;AAAC,EAAC;AAEqD,SAAS,KAAI;AAAC,QAAMU,KAAE,CAAC,gIAA+H,0DAA0D,EAAE,KAAK,GAAG;AAAE,SAAO,IAAI,OAAOA,IAAE,GAAG;AAAC;;;AjBxD7hB,IAAAC,qBAAe;;;AkBKR,IAAM,YAAqC;AAAA,EAChD;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AACF;AAGO,SAAS,aAAa,IAAsC;AACjE,SAAO,UAAU,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAC1C;AAGO,SAAS,iBAAyB;AACvC,SAAO,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,IAAI;AAC7C;;;ACzBA,IAAM,WAAsC,CAAC,QAAQ,OAAO,MAAM;AAClE,IAAM,gBAAoC,CAAC,WAAW,SAAS;AAGxD,IAAM,WAAN,cAAuB,MAAM;AAAC;AAErC,SAAS,YAAY,MAAc,OAAmC;AACpE,MAAI,UAAU,OAAW,OAAM,IAAI,SAAS,qBAAqB,IAAI,GAAG;AACxE,SAAO;AACT;AAMO,SAAS,UAAU,MAAqC;AAC7D,QAAM,MAAkB;AAAA,IACtB,KAAK;AAAA,IACL,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAEA,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,UAAM,MAAM,KAAK,CAAC;AAClB,YAAQ,KAAK;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACH,YAAI,OAAO;AACX;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,YAAI,UAAU;AACd;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,YAAI,MAAM;AACV;AAAA,MACF,KAAK;AACH,YAAI,UAAU;AACd;AAAA,MACF,KAAK;AACH,YAAI,UAAU;AACd;AAAA,MACF,KAAK;AACH,YAAI,QAAQ;AACZ;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,YAAI,WAAW,YAAY,cAAc,KAAK,EAAE,CAAC,CAAC;AAClD;AAAA,MACF,KAAK;AACH,YAAI,UAAU,aAAa,YAAY,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9D;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,YAAI,iBAAiB;AAAA,UACnB,YAAY,qBAAqB,KAAK,EAAE,CAAC,CAAC;AAAA,QAC5C;AACA;AAAA,MACF,SAAS;AACP,YAAI,IAAI,WAAW,aAAa,GAAG;AACjC,cAAI,WAAW,IAAI,MAAM,cAAc,MAAM;AAAA,QAC/C,WAAW,IAAI,WAAW,YAAY,GAAG;AACvC,cAAI,UAAU,aAAa,IAAI,MAAM,aAAa,MAAM,CAAC;AAAA,QAC3D,WAAW,IAAI,WAAW,oBAAoB,GAAG;AAC/C,cAAI,iBAAiB;AAAA,YACnB,IAAI,MAAM,qBAAqB,MAAM;AAAA,UACvC;AAAA,QACF,WAAW,IAAI,WAAW,GAAG,GAAG;AAC9B,gBAAM,IAAI,SAAS,mBAAmB,GAAG,EAAE;AAAA,QAC7C,WAAW,IAAI,QAAQ,QAAW;AAChC,cAAI,MAAM;AAAA,QACZ,OAAO;AACL,gBAAM,IAAI,SAAS,wBAAwB,GAAG,EAAE;AAAA,QAClD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,oBAAoB,OAA+B;AAC1D,MAAK,SAA+B,SAAS,KAAK,GAAG;AACnD,WAAO;AAAA,EACT;AACA,QAAM,IAAI;AAAA,IACR,8BAA8B,KAAK,uBAAuB,SAAS,KAAK,IAAI,CAAC;AAAA,EAC/E;AACF;AAEA,SAAS,aAAa,OAAwB;AAC5C,MAAK,cAAoC,SAAS,KAAK,GAAG;AACxD,WAAO;AAAA,EACT;AACA,QAAM,IAAI;AAAA,IACR,sBAAsB,KAAK,uBAAuB,cAAc,KAAK,IAAI,CAAC;AAAA,EAC5E;AACF;AAGO,SAAS,WAAmB;AACjC,QAAM,YAAY,UAAU;AAAA,IAC1B,CAAC,MAAM,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI;AAAA,EACzC,EAAE,KAAK,IAAI;AACX,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWP,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBX;;;ACzJA,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS,MAAM,eAAe;AACvC,SAAS,qBAAqB;AAqD9B,IAAM,OAAO,QAAQ,cAAc,YAAY,GAAG,CAAC;AAO5C,SAAS,uBAA+B;AAE7C,QAAM,UAAU,QAAQ,MAAM,MAAM,WAAW;AAC/C,MAAI,WAAW,OAAO,KAAK,WAAW,KAAK,SAAS,cAAc,CAAC,GAAG;AACpE,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,QAAQ,MAAM,MAAM,MAAM,WAAW;AACzD,MAAI,WAAW,WAAW,KAAK,WAAW,KAAK,aAAa,cAAc,CAAC,GAAG;AAC5E,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAMA,SAAS,sBAA8B;AACrC,QAAM,aAAa;AAAA,IACjB,QAAQ,MAAM,MAAM,IAAI;AAAA;AAAA,IACxB,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA;AAAA,EAChC;AACA,aAAWC,MAAK,YAAY;AAC1B,QAAI,WAAW,KAAKA,IAAG,YAAY,MAAM,cAAc,CAAC,EAAG,QAAOA;AAAA,EACpE;AACA,SAAO,QAAQ,MAAM,MAAM,IAAI;AACjC;AAEA,IAAM,YAAY,oBAAI,IAAI,CAAC,gBAAgB,QAAQ,UAAU,UAAU,CAAC;AAGxE,SAAS,UAAU,MAAc,OAAO,MAAgB;AACtD,QAAM,MAAgB,CAAC;AACvB,aAAW,SAAS,YAAY,MAAM,EAAE,eAAe,KAAK,CAAC,GAAG;AAC9D,UAAM,OAAO,KAAK,MAAM,MAAM,IAAI;AAClC,QAAI,MAAM,YAAY,GAAG;AACvB,UAAI,KAAK,GAAG,UAAU,MAAM,IAAI,CAAC;AAAA,IACnC,OAAO;AACL,UAAI,KAAK,KAAK,MAAM,KAAK,SAAS,CAAC,CAAC;AAAA,IACtC;AAAA,EACF;AACA,SAAO,IAAI,KAAK;AAClB;AAGA,SAAS,iBACP,KACA,cACM;AAEN,QAAM,gBAAwC;AAAA,IAC5C,kBAAkB,KAAK,cAAc,YAAY,IAAI;AAAA,IACrD,kBAAkB,KAAK,cAAc,YAAY,KAAK;AAAA,IACtD,kBAAkB,KAAK,cAAc,YAAY,KAAK;AAAA,EACxD;AACA,aAAW,WAAW,CAAC,gBAAgB,iBAAiB,GAAY;AAClE,UAAM,OAAO,IAAI,OAAO;AACxB,QAAI,CAAC,KAAM;AACX,eAAW,QAAQ,OAAO,KAAK,IAAI,GAAG;AACpC,YAAM,MAAM,cAAc,IAAI;AAC9B,UAAI,IAAK,MAAK,IAAI,IAAI,QAAQ,GAAG;AAAA,IACnC;AAAA,EACF;AACF;AAGA,SAAS,eAAe,IAAqD;AAC3E,SAAO,EAAE,KAAK,IAAI,MAAM,CAAC,SAAS,EAAE;AACtC;AASO,SAAS,SAAS,SAA0C;AACjE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,QAAQ;AAAA,EACV,IAAI;AAEJ,QAAM,OAAO,aAAa,QAAQ;AAClC,MAAI,CAAC,MAAM;AACT,UAAM,IAAI;AAAA,MACR,qBAAqB,QAAQ,2BAA2B,eAAe,CAAC;AAAA,IAC1E;AAAA,EACF;AAEA,QAAM,gBAAgB,QAAQ,iBAAiB,qBAAqB;AACpE,QAAM,cAAc,KAAK,eAAe,KAAK,EAAE;AAC/C,MAAI,CAAC,WAAW,WAAW,GAAG;AAC5B,UAAM,IAAI;AAAA,MACR,aAAa,KAAK,EAAE,0BAA0B,WAAW;AAAA,IAE3D;AAAA,EACF;AAEA,QAAM,YAAY,QAAQ,QAAQ,SAAS;AAC3C,MAAI,WAAW,SAAS,GAAG;AACzB,UAAM,UAAU,YAAY,SAAS;AACrC,QAAI,QAAQ,SAAS,GAAG;AACtB,YAAM,IAAI,MAAM,kCAAkC,SAAS,EAAE;AAAA,IAC/D;AAAA,EACF,OAAO;AACL,cAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAC1C;AAGA,SAAO,aAAa,WAAW;AAAA,IAC7B,WAAW;AAAA,IACX,QAAQ,CAAC,YAAY;AACnB,YAAM,MAAM,QAAQ,MAAM,YAAY,SAAS,CAAC;AAChD,YAAM,QAAQ,IAAI,MAAM,OAAO;AAC/B,aAAO,CAAC,MAAM,KAAK,CAAC,MAAM,UAAU,IAAI,CAAC,CAAC;AAAA,IAC5C;AAAA,EACF,CAAC;AAGD,QAAM,UAAU,KAAK,WAAW,cAAc;AAC9C,MAAI,WAAW,OAAO,GAAG;AACvB,UAAM,MAAM,KAAK,MAAM,aAAa,SAAS,MAAM,CAAC;AAIpD,QAAI,OAAO;AACX,QAAI,OAAO;AACT,uBAAiB,KAAK,QAAQ,gBAAgB,oBAAoB,CAAC;AAAA,IACrE;AACA,kBAAc,SAAS,KAAK,UAAU,KAAK,MAAM,CAAC,IAAI,IAAI;AAAA,EAC5D;AAGA,QAAM,aAAa,KAAK,WAAW,cAAc;AACjD,QAAM,UAAU,KAAK,WAAW,MAAM;AACtC,MAAI,WAAW,UAAU,KAAK,CAAC,WAAW,OAAO,GAAG;AAClD,kBAAc,SAAS,aAAa,YAAY,MAAM,CAAC;AAAA,EACzD;AAEA,MAAI,YAAY;AAChB,MAAI,SAAS;AACX,UAAM,EAAE,KAAK,KAAK,IAAI,eAAe,cAAc;AACnD,UAAM,MAAM,UAAU,KAAK,MAAM;AAAA,MAC/B,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAO,QAAQ,aAAa;AAAA,IAC9B,CAAC;AACD,QAAI,IAAI,WAAW,GAAG;AACpB,YAAM,IAAI;AAAA,QACR,mBAAmB,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,oBAAoB,IAAI,UAAU,SAAS;AAAA,MACrF;AAAA,IACF;AACA,gBAAY;AAAA,EACd;AAEA,SAAO,EAAE,WAAW,WAAW,OAAO,UAAU,SAAS,EAAE;AAC7D;;;ApBpNA,IAAM,UAAU;AAEhB,SAAS,iBAAiB,KAAsB;AAC9C,MAAI,CAACC,YAAW,GAAG,EAAG,QAAO;AAC7B,SAAOC,aAAY,GAAG,EAAE,WAAW;AACrC;AAGA,SAAS,mBAAmB,KAAqB;AAC/C,QAAM,OAAO,SAASC,SAAQ,GAAG,CAAC;AAElC,SAAO,KACJ,YAAY,EACZ,QAAQ,kBAAkB,GAAG,EAC7B,QAAQ,YAAY,EAAE,EACtB,QAAQ,OAAO,GAAG,KAAK;AAC5B;AAEA,eAAe,UAAU,SAAmC;AAC1D,MAAI,QAAS,QAAO;AACpB,QAAM,QAAQ,MAAM,GAAK;AAAA,IACvB,SAAS;AAAA,IACT,aAAa;AAAA,IACb,cAAc;AAAA,IACd,UAAU,CAACC,OAAM;AACf,YAAM,MAAMA,MAAK;AACjB,UAAI,CAAC,iBAAiBD,SAAQ,GAAG,CAAC,GAAG;AACnC,eAAO,aAAa,GAAG;AAAA,MACzB;AACA,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACD,MAAI,GAAS,KAAK,EAAG,MAAK;AAC1B,SAAQ,SAAoB;AAC9B;AAEA,eAAe,eAAe,SAAmC;AAC/D,MAAI,SAAS;AACX,QAAI,CAAC,aAAa,OAAO,GAAG;AAC1B,SAAO,qBAAqB,OAAO,iBAAiB,eAAe,CAAC,GAAG;AACvE,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,MAAM,GAAO;AAAA,IACzB,SAAS;AAAA,IACT,SAAS,UAAU,IAAI,CAAC,OAAO;AAAA,MAC7B,OAAO,EAAE;AAAA,MACT,OAAO,EAAE;AAAA,MACT,MAAM,EAAE;AAAA,IACV,EAAE;AAAA,EACJ,CAAC;AACD,MAAI,GAAS,KAAK,EAAG,MAAK;AAC1B,SAAO;AACT;AAEA,eAAe,cAAc,SAAqC;AAChE,MAAI,QAAS,QAAO;AACpB,QAAM,QAAQ,MAAM,GAAO;AAAA,IACzB,SAAS;AAAA,IACT,SAAS;AAAA,MACP,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,kBAAkB;AAAA,MAC9D,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,kBAAkB;AAAA,IAChE;AAAA,IACA,cAAc;AAAA,EAChB,CAAC;AACD,MAAI,GAAS,KAAK,EAAG,MAAK;AAC1B,SAAO;AACT;AAEA,eAAe,qBACb,SACyB;AACzB,MAAI,QAAS,QAAO;AACpB,QAAM,QAAQ,MAAM,GAAO;AAAA,IACzB,SAAS;AAAA,IACT,SAAS;AAAA,MACP,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,MAC/B,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,MAC7B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,IACjC;AAAA,IACA,cAAc;AAAA,EAChB,CAAC;AACD,MAAI,GAAS,KAAK,EAAG,MAAK;AAC1B,SAAO;AACT;AAEA,SAAS,OAAc;AACrB,KAAO,sBAAsB;AAC7B,UAAQ,KAAK,CAAC;AAChB;AAEA,SAAS,UACP,KACA,IACA,WACA,UACQ;AACR,QAAM,QAAkB,CAAC,MAAM,GAAG,EAAE;AACpC,MAAI,CAAC,UAAW,OAAM,KAAK,GAAG,EAAE,UAAU;AAC1C,QAAM,MAAM,OAAO,QAAQ,YAAY;AACvC,MAAI,aAAa,iBAAiB;AAChC,UAAM,KAAK,GAAG,GAAG,MAAM;AAAA,EACzB,OAAO;AACL,UAAM,KAAK,GAAG,GAAG,0CAA0C;AAAA,EAC7D;AACA,SAAO,MAAM,KAAK,IAAI;AACxB;AAEA,eAAe,OAAsB;AACnC,QAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;AACjC,MAAI;AACJ,MAAI;AACF,aAAS,UAAU,IAAI;AAAA,EACzB,SAAS,KAAK;AACZ,QAAI,eAAe,UAAU;AAC3B,cAAQ,MAAM,mBAAAE,QAAG,IAAI,IAAI,OAAO,CAAC;AACjC,cAAQ,MAAM;AAAA,MAAS,mBAAAA,QAAG,KAAK,8BAA8B,CAAC,aAAa;AAC3E,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM;AAAA,EACR;AAEA,MAAI,OAAO,MAAM;AACf,YAAQ,IAAI,SAAS,CAAC;AACtB;AAAA,EACF;AACA,MAAI,OAAO,SAAS;AAClB,YAAQ,IAAI,OAAO;AACnB;AAAA,EACF;AAEA,KAAM,mBAAAA,QAAG,OAAO,mBAAAA,QAAG,MAAM,yBAAyB,CAAC,CAAC;AAGpD,QAAM,MAAM,OAAO,QAAQ,OAAO,MAAM,wBAAwB,MAAM,UAAU;AAChF,QAAM,WACJ,OAAO,aACN,OAAO,MAAM,UAAU,CAAC,EAAE,KAAK,MAAM,eAAe;AAEvD,MAAI,CAAC,aAAa,QAAQ,GAAG;AAC3B,OAAO,qBAAqB,QAAQ,iBAAiB,eAAe,CAAC,GAAG;AACxE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,QAAM,UACJ,OAAO,YAAY,OAAO,MAAM,YAAY,MAAM,cAAc;AAClE,QAAM,iBACJ,OAAO,mBACN,OAAO,MAAM,SAAS,MAAM,qBAAqB;AAEpD,QAAM,cAAc,mBAAmB,GAAG;AAG1C,QAAM,UAAU,OAAO;AAEvB,MAAI;AACF,QAAI,QAAS,CAAAC,GAAI,KAAK,+CAA0C;AAAA,QAC3D,CAAAA,GAAI,KAAK,mBAAc;AAE5B,UAAM,SAAS,SAAS;AAAA,MACtB;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,OAAO;AAAA,IAChB,CAAC;AAED,QAAI,OAAO,OAAO;AAChB;AAAA,QACE;AAAA,QAEA;AAAA,MACF;AAAA,IACF;AAEA,OAAK,UAAU,KAAK,gBAAgB,OAAO,WAAW,QAAQ,GAAG,YAAY;AAC7E,OAAM,mBAAAD,QAAG,MAAM,iBAAiB,WAAW,OAAO,OAAO,SAAS,EAAE,CAAC;AAAA,EACvE,SAAS,KAAK;AACZ,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AACvD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,KAAK,EAAE,MAAM,CAAC,QAAiB;AAC7B,UAAQ,MAAM,eAAe,QAAQ,IAAI,SAAS,IAAI,UAAU,GAAG;AACnE,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":["x","y","f","existsSync","readdirSync","resolve","ansiRegex","onlyFirst","pattern","regex","stripAnsi","string","e","eaw","module","character","x","y","codePoint","code","stringToArray","characters","len","i","text","start","end","result","eawLen","chars","char","charLen","emojiRegex","stringWidth","options","ambiguousCharacterWidth","width","eastAsianWidth","ANSI_BACKGROUND_OFFSET","wrapAnsi16","offset","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","foregroundColorNames","backgroundColorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","integer","remainder","value","ansiStyles","ESCAPES","END_CODE","ANSI_ESCAPE_BELL","ANSI_CSI","ANSI_OSC","ANSI_SGR_TERMINATOR","ANSI_ESCAPE_LINK","wrapAnsiCode","wrapAnsiHyperlink","uri","wordLengths","wrapWord","rows","word","columns","isInsideEscape","isInsideLinkEscape","visible","index","characterLength","stringVisibleTrimSpacesRight","words","last","exec","returnValue","escapeCode","escapeUrl","lengths","rowLength","remainingColumns","breaksStartingThisLine","row","pre","groups","wrapAnsi","line","f","d","r","t","o","diffLines","a","b","aLines","bLines","diff","cancel","isCancel","setRawMode","input","aliases","keys","Prompt","render","stdin","output","stdout","opts","trackValue","__publicField","sink","WriteStream","chunk","encoding","done","readline","resolve","reject","cursor","event","cb","arr","data","cbs","cleanup","subscriber","key","problem","lines","wrap","frame","diffLine","erase","newLines","e","u$1","Prompt","opts","__publicField","value","key","e","TextPrompt","Prompt","opts","__publicField","color","s1","s2","isWindows","import_picocolors","import_sisteransi","q","_","r","I","x","S","a","d","b","w","M","U","Z","z","X","J","Q","y","e","r","c","e","b","a","y","l","m","$","d","R","r","l","c","e","a","S","Z","z","X","d","f","J","Q","r","import_picocolors","c","existsSync","readdirSync","resolve","v","pc","f"]}
1
+ {"version":3,"sources":["../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js","../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../src/index.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/eastasianwidth@0.2.0/node_modules/eastasianwidth/eastasianwidth.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/emoji-regex@9.2.2/node_modules/emoji-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/string-width@5.1.2/node_modules/string-width/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/wrap-ansi@8.1.0/node_modules/wrap-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/prompt.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/confirm.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/group-multiselect.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/multi-select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/password.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select-key.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/text.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/utils.ts","../../node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs","../src/templates.ts","../src/args.ts","../src/scaffold.ts"],"sourcesContent":["'use strict';\n\nconst ESC = '\\x1B';\nconst CSI = `${ESC}[`;\nconst beep = '\\u0007';\n\nconst cursor = {\n to(x, y) {\n if (!y) return `${CSI}${x + 1}G`;\n return `${CSI}${y + 1};${x + 1}H`;\n },\n move(x, y) {\n let ret = '';\n\n if (x < 0) ret += `${CSI}${-x}D`;\n else if (x > 0) ret += `${CSI}${x}C`;\n\n if (y < 0) ret += `${CSI}${-y}A`;\n else if (y > 0) ret += `${CSI}${y}B`;\n\n return ret;\n },\n up: (count = 1) => `${CSI}${count}A`,\n down: (count = 1) => `${CSI}${count}B`,\n forward: (count = 1) => `${CSI}${count}C`,\n backward: (count = 1) => `${CSI}${count}D`,\n nextLine: (count = 1) => `${CSI}E`.repeat(count),\n prevLine: (count = 1) => `${CSI}F`.repeat(count),\n left: `${CSI}G`,\n hide: `${CSI}?25l`,\n show: `${CSI}?25h`,\n save: `${ESC}7`,\n restore: `${ESC}8`\n}\n\nconst scroll = {\n up: (count = 1) => `${CSI}S`.repeat(count),\n down: (count = 1) => `${CSI}T`.repeat(count)\n}\n\nconst erase = {\n screen: `${CSI}2J`,\n up: (count = 1) => `${CSI}1J`.repeat(count),\n down: (count = 1) => `${CSI}J`.repeat(count),\n line: `${CSI}2K`,\n lineEnd: `${CSI}K`,\n lineStart: `${CSI}1K`,\n lines(count) {\n let clear = '';\n for (let i = 0; i < count; i++)\n clear += this.line + (i < count - 1 ? cursor.up() : '');\n if (count)\n clear += cursor.left;\n return clear;\n }\n}\n\nmodule.exports = { cursor, scroll, erase, beep };\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","/**\n * `create-qorechain-dapp` entry point.\n *\n * Parses flags (non-interactive / CI mode) and falls back to interactive prompts\n * for any missing inputs. All scaffolding side effects are delegated to the pure\n * {@link scaffold} function in `./scaffold`.\n */\nimport { existsSync, readdirSync } from \"node:fs\";\nimport { basename, resolve } from \"node:path\";\n\nimport {\n cancel,\n intro,\n isCancel,\n log,\n note,\n outro,\n select,\n text,\n} from \"@clack/prompts\";\nimport pc from \"picocolors\";\n\nimport { ArgError, helpText, parseArgs } from \"./args.js\";\nimport {\n scaffold,\n type Network,\n type PackageManager,\n} from \"./scaffold.js\";\nimport { findTemplate, TEMPLATES, templateIdList } from \"./templates.js\";\n\nconst VERSION = \"0.5.1\";\n\nfunction isEmptyOrMissing(dir: string): boolean {\n if (!existsSync(dir)) return true;\n return readdirSync(dir).length === 0;\n}\n\n/** Validate a directory name segment for a project name fallback. */\nfunction defaultProjectName(dir: string): string {\n const base = basename(resolve(dir));\n // npm package names: lowercase, no spaces.\n return base\n .toLowerCase()\n .replace(/[^a-z0-9-~._]/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .replace(/-+/g, \"-\") || \"qorechain-dapp\";\n}\n\nasync function promptDir(initial?: string): Promise<string> {\n if (initial) return initial;\n const value = await text({\n message: \"Where should we create your project?\",\n placeholder: \"./my-qorechain-dapp\",\n defaultValue: \"./my-qorechain-dapp\",\n validate: (v) => {\n const dir = v || \"./my-qorechain-dapp\";\n if (!isEmptyOrMissing(resolve(dir))) {\n return `Directory ${dir} already exists and is not empty.`;\n }\n return undefined;\n },\n });\n if (isCancel(value)) bail();\n return (value as string) || \"./my-qorechain-dapp\";\n}\n\nasync function promptTemplate(initial?: string): Promise<string> {\n if (initial) {\n if (!findTemplate(initial)) {\n cancel(`Unknown template \"${initial}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n return initial;\n }\n const value = await select({\n message: \"Pick a template\",\n options: TEMPLATES.map((t) => ({\n value: t.id,\n label: t.label,\n hint: t.hint,\n })),\n });\n if (isCancel(value)) bail();\n return value as string;\n}\n\nasync function promptNetwork(initial?: Network): Promise<Network> {\n if (initial) return initial;\n const value = await select({\n message: \"Which network?\",\n options: [\n { value: \"testnet\", label: \"testnet\", hint: \"qorechain-diana\" },\n { value: \"mainnet\", label: \"mainnet\", hint: \"qorechain-vladi\" },\n ],\n initialValue: \"testnet\",\n });\n if (isCancel(value)) bail();\n return value as Network;\n}\n\nasync function promptPackageManager(\n initial?: PackageManager,\n): Promise<PackageManager> {\n if (initial) return initial;\n const value = await select({\n message: \"Package manager?\",\n options: [\n { value: \"pnpm\", label: \"pnpm\" },\n { value: \"npm\", label: \"npm\" },\n { value: \"yarn\", label: \"yarn\" },\n ],\n initialValue: \"pnpm\",\n });\n if (isCancel(value)) bail();\n return value as PackageManager;\n}\n\nfunction bail(): never {\n cancel(\"Operation cancelled.\");\n process.exit(0);\n}\n\nfunction nextSteps(\n dir: string,\n pm: PackageManager,\n installed: boolean,\n template: string,\n): string {\n const lines: string[] = [`cd ${dir}`];\n if (!installed) lines.push(`${pm} install`);\n const run = pm === \"npm\" ? \"npm run\" : pm;\n if (template === \"fullstack-web\") {\n lines.push(`${run} dev`);\n } else {\n lines.push(`${run} deploy # see README for prerequisites`);\n }\n return lines.join(\"\\n\");\n}\n\nasync function main(): Promise<void> {\n const argv = process.argv.slice(2);\n let parsed;\n try {\n parsed = parseArgs(argv);\n } catch (err) {\n if (err instanceof ArgError) {\n console.error(pc.red(err.message));\n console.error(`\\nRun ${pc.cyan(\"create-qorechain-dapp --help\")} for usage.`);\n process.exit(1);\n }\n throw err;\n }\n\n if (parsed.help) {\n console.log(helpText());\n return;\n }\n if (parsed.version) {\n console.log(VERSION);\n return;\n }\n\n intro(pc.bgCyan(pc.black(\" create-qorechain-dapp \")));\n\n // Resolve each input: flags first, then prompts (unless --yes fills defaults).\n const dir = parsed.dir ?? (parsed.yes ? \"./my-qorechain-dapp\" : await promptDir());\n const template =\n parsed.template ??\n (parsed.yes ? TEMPLATES[0].id : await promptTemplate());\n // Validate the (possibly flag-provided) template eagerly.\n if (!findTemplate(template)) {\n cancel(`Unknown template \"${template}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n const network =\n parsed.network ?? (parsed.yes ? \"testnet\" : await promptNetwork());\n const packageManager =\n parsed.packageManager ??\n (parsed.yes ? \"pnpm\" : await promptPackageManager());\n\n const projectName = defaultProjectName(dir);\n\n // In interactive mode, default install to the flag (true unless --no-install).\n const install = parsed.install;\n\n try {\n if (install) log.step(\"Scaffolding and installing dependencies…\");\n else log.step(\"Scaffolding…\");\n\n const result = scaffold({\n template,\n targetDir: dir,\n projectName,\n packageManager,\n network,\n install,\n local: parsed.local,\n });\n\n if (parsed.local) {\n note(\n \"Dependencies were rewritten to local file: links into this monorepo.\\n\" +\n \"Build the workspace packages first (pnpm -r build at the repo root).\",\n \"Local mode\",\n );\n }\n\n note(nextSteps(dir, packageManager, result.installed, template), \"Next steps\");\n outro(pc.green(`Done! Created ${projectName} at ${result.targetDir}`));\n } catch (err) {\n cancel(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nmain().catch((err: unknown) => {\n console.error(err instanceof Error ? err.stack ?? err.message : err);\n process.exit(1);\n});\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","var eaw = {};\n\nif ('undefined' == typeof module) {\n window.eastasianwidth = eaw;\n} else {\n module.exports = eaw;\n}\n\neaw.eastAsianWidth = function(character) {\n var x = character.charCodeAt(0);\n var y = (character.length == 2) ? character.charCodeAt(1) : 0;\n var codePoint = x;\n if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) {\n x &= 0x3FF;\n y &= 0x3FF;\n codePoint = (x << 10) | y;\n codePoint += 0x10000;\n }\n\n if ((0x3000 == codePoint) ||\n (0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) {\n return 'F';\n }\n if ((0x20A9 == codePoint) ||\n (0xFF61 <= codePoint && codePoint <= 0xFFBE) ||\n (0xFFC2 <= codePoint && codePoint <= 0xFFC7) ||\n (0xFFCA <= codePoint && codePoint <= 0xFFCF) ||\n (0xFFD2 <= codePoint && codePoint <= 0xFFD7) ||\n (0xFFDA <= codePoint && codePoint <= 0xFFDC) ||\n (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) {\n return 'H';\n }\n if ((0x1100 <= codePoint && codePoint <= 0x115F) ||\n (0x11A3 <= codePoint && codePoint <= 0x11A7) ||\n (0x11FA <= codePoint && codePoint <= 0x11FF) ||\n (0x2329 <= codePoint && codePoint <= 0x232A) ||\n (0x2E80 <= codePoint && codePoint <= 0x2E99) ||\n (0x2E9B <= codePoint && codePoint <= 0x2EF3) ||\n (0x2F00 <= codePoint && codePoint <= 0x2FD5) ||\n (0x2FF0 <= codePoint && codePoint <= 0x2FFB) ||\n (0x3001 <= codePoint && codePoint <= 0x303E) ||\n (0x3041 <= codePoint && codePoint <= 0x3096) ||\n (0x3099 <= codePoint && codePoint <= 0x30FF) ||\n (0x3105 <= codePoint && codePoint <= 0x312D) ||\n (0x3131 <= codePoint && codePoint <= 0x318E) ||\n (0x3190 <= codePoint && codePoint <= 0x31BA) ||\n (0x31C0 <= codePoint && codePoint <= 0x31E3) ||\n (0x31F0 <= codePoint && codePoint <= 0x321E) ||\n (0x3220 <= codePoint && codePoint <= 0x3247) ||\n (0x3250 <= codePoint && codePoint <= 0x32FE) ||\n (0x3300 <= codePoint && codePoint <= 0x4DBF) ||\n (0x4E00 <= codePoint && codePoint <= 0xA48C) ||\n (0xA490 <= codePoint && codePoint <= 0xA4C6) ||\n (0xA960 <= codePoint && codePoint <= 0xA97C) ||\n (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n (0xD7B0 <= codePoint && codePoint <= 0xD7C6) ||\n (0xD7CB <= codePoint && codePoint <= 0xD7FB) ||\n (0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n (0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n (0xFE30 <= codePoint && codePoint <= 0xFE52) ||\n (0xFE54 <= codePoint && codePoint <= 0xFE66) ||\n (0xFE68 <= codePoint && codePoint <= 0xFE6B) ||\n (0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n (0x1F200 <= codePoint && codePoint <= 0x1F202) ||\n (0x1F210 <= codePoint && codePoint <= 0x1F23A) ||\n (0x1F240 <= codePoint && codePoint <= 0x1F248) ||\n (0x1F250 <= codePoint && codePoint <= 0x1F251) ||\n (0x20000 <= codePoint && codePoint <= 0x2F73F) ||\n (0x2B740 <= codePoint && codePoint <= 0x2FFFD) ||\n (0x30000 <= codePoint && codePoint <= 0x3FFFD)) {\n return 'W';\n }\n if ((0x0020 <= codePoint && codePoint <= 0x007E) ||\n (0x00A2 <= codePoint && codePoint <= 0x00A3) ||\n (0x00A5 <= codePoint && codePoint <= 0x00A6) ||\n (0x00AC == codePoint) ||\n (0x00AF == codePoint) ||\n (0x27E6 <= codePoint && codePoint <= 0x27ED) ||\n (0x2985 <= codePoint && codePoint <= 0x2986)) {\n return 'Na';\n }\n if ((0x00A1 == codePoint) ||\n (0x00A4 == codePoint) ||\n (0x00A7 <= codePoint && codePoint <= 0x00A8) ||\n (0x00AA == codePoint) ||\n (0x00AD <= codePoint && codePoint <= 0x00AE) ||\n (0x00B0 <= codePoint && codePoint <= 0x00B4) ||\n (0x00B6 <= codePoint && codePoint <= 0x00BA) ||\n (0x00BC <= codePoint && codePoint <= 0x00BF) ||\n (0x00C6 == codePoint) ||\n (0x00D0 == codePoint) ||\n (0x00D7 <= codePoint && codePoint <= 0x00D8) ||\n (0x00DE <= codePoint && codePoint <= 0x00E1) ||\n (0x00E6 == codePoint) ||\n (0x00E8 <= codePoint && codePoint <= 0x00EA) ||\n (0x00EC <= codePoint && codePoint <= 0x00ED) ||\n (0x00F0 == codePoint) ||\n (0x00F2 <= codePoint && codePoint <= 0x00F3) ||\n (0x00F7 <= codePoint && codePoint <= 0x00FA) ||\n (0x00FC == codePoint) ||\n (0x00FE == codePoint) ||\n (0x0101 == codePoint) ||\n (0x0111 == codePoint) ||\n (0x0113 == codePoint) ||\n (0x011B == codePoint) ||\n (0x0126 <= codePoint && codePoint <= 0x0127) ||\n (0x012B == codePoint) ||\n (0x0131 <= codePoint && codePoint <= 0x0133) ||\n (0x0138 == codePoint) ||\n (0x013F <= codePoint && codePoint <= 0x0142) ||\n (0x0144 == codePoint) ||\n (0x0148 <= codePoint && codePoint <= 0x014B) ||\n (0x014D == codePoint) ||\n (0x0152 <= codePoint && codePoint <= 0x0153) ||\n (0x0166 <= codePoint && codePoint <= 0x0167) ||\n (0x016B == codePoint) ||\n (0x01CE == codePoint) ||\n (0x01D0 == codePoint) ||\n (0x01D2 == codePoint) ||\n (0x01D4 == codePoint) ||\n (0x01D6 == codePoint) ||\n (0x01D8 == codePoint) ||\n (0x01DA == codePoint) ||\n (0x01DC == codePoint) ||\n (0x0251 == codePoint) ||\n (0x0261 == codePoint) ||\n (0x02C4 == codePoint) ||\n (0x02C7 == codePoint) ||\n (0x02C9 <= codePoint && codePoint <= 0x02CB) ||\n (0x02CD == codePoint) ||\n (0x02D0 == codePoint) ||\n (0x02D8 <= codePoint && codePoint <= 0x02DB) ||\n (0x02DD == codePoint) ||\n (0x02DF == codePoint) ||\n (0x0300 <= codePoint && codePoint <= 0x036F) ||\n (0x0391 <= codePoint && codePoint <= 0x03A1) ||\n (0x03A3 <= codePoint && codePoint <= 0x03A9) ||\n (0x03B1 <= codePoint && codePoint <= 0x03C1) ||\n (0x03C3 <= codePoint && codePoint <= 0x03C9) ||\n (0x0401 == codePoint) ||\n (0x0410 <= codePoint && codePoint <= 0x044F) ||\n (0x0451 == codePoint) ||\n (0x2010 == codePoint) ||\n (0x2013 <= codePoint && codePoint <= 0x2016) ||\n (0x2018 <= codePoint && codePoint <= 0x2019) ||\n (0x201C <= codePoint && codePoint <= 0x201D) ||\n (0x2020 <= codePoint && codePoint <= 0x2022) ||\n (0x2024 <= codePoint && codePoint <= 0x2027) ||\n (0x2030 == codePoint) ||\n (0x2032 <= codePoint && codePoint <= 0x2033) ||\n (0x2035 == codePoint) ||\n (0x203B == codePoint) ||\n (0x203E == codePoint) ||\n (0x2074 == codePoint) ||\n (0x207F == codePoint) ||\n (0x2081 <= codePoint && codePoint <= 0x2084) ||\n (0x20AC == codePoint) ||\n (0x2103 == codePoint) ||\n (0x2105 == codePoint) ||\n (0x2109 == codePoint) ||\n (0x2113 == codePoint) ||\n (0x2116 == codePoint) ||\n (0x2121 <= codePoint && codePoint <= 0x2122) ||\n (0x2126 == codePoint) ||\n (0x212B == codePoint) ||\n (0x2153 <= codePoint && codePoint <= 0x2154) ||\n (0x215B <= codePoint && codePoint <= 0x215E) ||\n (0x2160 <= codePoint && codePoint <= 0x216B) ||\n (0x2170 <= codePoint && codePoint <= 0x2179) ||\n (0x2189 == codePoint) ||\n (0x2190 <= codePoint && codePoint <= 0x2199) ||\n (0x21B8 <= codePoint && codePoint <= 0x21B9) ||\n (0x21D2 == codePoint) ||\n (0x21D4 == codePoint) ||\n (0x21E7 == codePoint) ||\n (0x2200 == codePoint) ||\n (0x2202 <= codePoint && codePoint <= 0x2203) ||\n (0x2207 <= codePoint && codePoint <= 0x2208) ||\n (0x220B == codePoint) ||\n (0x220F == codePoint) ||\n (0x2211 == codePoint) ||\n (0x2215 == codePoint) ||\n (0x221A == codePoint) ||\n (0x221D <= codePoint && codePoint <= 0x2220) ||\n (0x2223 == codePoint) ||\n (0x2225 == codePoint) ||\n (0x2227 <= codePoint && codePoint <= 0x222C) ||\n (0x222E == codePoint) ||\n (0x2234 <= codePoint && codePoint <= 0x2237) ||\n (0x223C <= codePoint && codePoint <= 0x223D) ||\n (0x2248 == codePoint) ||\n (0x224C == codePoint) ||\n (0x2252 == codePoint) ||\n (0x2260 <= codePoint && codePoint <= 0x2261) ||\n (0x2264 <= codePoint && codePoint <= 0x2267) ||\n (0x226A <= codePoint && codePoint <= 0x226B) ||\n (0x226E <= codePoint && codePoint <= 0x226F) ||\n (0x2282 <= codePoint && codePoint <= 0x2283) ||\n (0x2286 <= codePoint && codePoint <= 0x2287) ||\n (0x2295 == codePoint) ||\n (0x2299 == codePoint) ||\n (0x22A5 == codePoint) ||\n (0x22BF == codePoint) ||\n (0x2312 == codePoint) ||\n (0x2460 <= codePoint && codePoint <= 0x24E9) ||\n (0x24EB <= codePoint && codePoint <= 0x254B) ||\n (0x2550 <= codePoint && codePoint <= 0x2573) ||\n (0x2580 <= codePoint && codePoint <= 0x258F) ||\n (0x2592 <= codePoint && codePoint <= 0x2595) ||\n (0x25A0 <= codePoint && codePoint <= 0x25A1) ||\n (0x25A3 <= codePoint && codePoint <= 0x25A9) ||\n (0x25B2 <= codePoint && codePoint <= 0x25B3) ||\n (0x25B6 <= codePoint && codePoint <= 0x25B7) ||\n (0x25BC <= codePoint && codePoint <= 0x25BD) ||\n (0x25C0 <= codePoint && codePoint <= 0x25C1) ||\n (0x25C6 <= codePoint && codePoint <= 0x25C8) ||\n (0x25CB == codePoint) ||\n (0x25CE <= codePoint && codePoint <= 0x25D1) ||\n (0x25E2 <= codePoint && codePoint <= 0x25E5) ||\n (0x25EF == codePoint) ||\n (0x2605 <= codePoint && codePoint <= 0x2606) ||\n (0x2609 == codePoint) ||\n (0x260E <= codePoint && codePoint <= 0x260F) ||\n (0x2614 <= codePoint && codePoint <= 0x2615) ||\n (0x261C == codePoint) ||\n (0x261E == codePoint) ||\n (0x2640 == codePoint) ||\n (0x2642 == codePoint) ||\n (0x2660 <= codePoint && codePoint <= 0x2661) ||\n (0x2663 <= codePoint && codePoint <= 0x2665) ||\n (0x2667 <= codePoint && codePoint <= 0x266A) ||\n (0x266C <= codePoint && codePoint <= 0x266D) ||\n (0x266F == codePoint) ||\n (0x269E <= codePoint && codePoint <= 0x269F) ||\n (0x26BE <= codePoint && codePoint <= 0x26BF) ||\n (0x26C4 <= codePoint && codePoint <= 0x26CD) ||\n (0x26CF <= codePoint && codePoint <= 0x26E1) ||\n (0x26E3 == codePoint) ||\n (0x26E8 <= codePoint && codePoint <= 0x26FF) ||\n (0x273D == codePoint) ||\n (0x2757 == codePoint) ||\n (0x2776 <= codePoint && codePoint <= 0x277F) ||\n (0x2B55 <= codePoint && codePoint <= 0x2B59) ||\n (0x3248 <= codePoint && codePoint <= 0x324F) ||\n (0xE000 <= codePoint && codePoint <= 0xF8FF) ||\n (0xFE00 <= codePoint && codePoint <= 0xFE0F) ||\n (0xFFFD == codePoint) ||\n (0x1F100 <= codePoint && codePoint <= 0x1F10A) ||\n (0x1F110 <= codePoint && codePoint <= 0x1F12D) ||\n (0x1F130 <= codePoint && codePoint <= 0x1F169) ||\n (0x1F170 <= codePoint && codePoint <= 0x1F19A) ||\n (0xE0100 <= codePoint && codePoint <= 0xE01EF) ||\n (0xF0000 <= codePoint && codePoint <= 0xFFFFD) ||\n (0x100000 <= codePoint && codePoint <= 0x10FFFD)) {\n return 'A';\n }\n\n return 'N';\n};\n\neaw.characterLength = function(character) {\n var code = this.eastAsianWidth(character);\n if (code == 'F' || code == 'W' || code == 'A') {\n return 2;\n } else {\n return 1;\n }\n};\n\n// Split a string considering surrogate-pairs.\nfunction stringToArray(string) {\n return string.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g) || [];\n}\n\neaw.length = function(string) {\n var characters = stringToArray(string);\n var len = 0;\n for (var i = 0; i < characters.length; i++) {\n len = len + this.characterLength(characters[i]);\n }\n return len;\n};\n\neaw.slice = function(text, start, end) {\n textLen = eaw.length(text)\n start = start ? start : 0;\n end = end ? end : 1;\n if (start < 0) {\n start = textLen + start;\n }\n if (end < 0) {\n end = textLen + end;\n }\n var result = '';\n var eawLen = 0;\n var chars = stringToArray(text);\n for (var i = 0; i < chars.length; i++) {\n var char = chars[i];\n var charLen = eaw.length(char);\n if (eawLen >= start - (charLen == 2 ? 1 : 0)) {\n if (eawLen + charLen <= end) {\n result += char;\n } else {\n break;\n }\n }\n eawLen += charLen;\n }\n return result;\n};\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\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])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\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\\uDF7C\\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\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\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\\uDF7C\\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\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\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\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\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-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*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\\u26A7\\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-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\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[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport eastAsianWidth from 'eastasianwidth';\nimport emojiRegex from 'emoji-regex';\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\toptions = {\n\t\tambiguousIsNarrow: true,\n\t\t...options\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\tconst ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;\n\tlet width = 0;\n\n\tfor (const character of string) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (codePoint >= 0x300 && codePoint <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst code = eastAsianWidth.eastAsianWidth(character);\n\t\tswitch (code) {\n\t\t\tcase 'F':\n\t\t\tcase 'W':\n\t\t\t\twidth += 2;\n\t\t\t\tbreak;\n\t\t\tcase 'A':\n\t\t\t\twidth += ambiguousCharacterWidth;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\twidth += 1;\n\t\t}\n\t}\n\n\treturn width;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\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\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;\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 isInsideLinkEscape = 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\tisInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\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 = string => {\n\tconst words = string.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 string;\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 returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\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].trimStart();\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(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst pre = [...rows.join('\\n')];\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(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 type { Key, ReadLine } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport readline from 'node:readline';\nimport { Readable, Writable } from 'node:stream';\nimport { WriteStream } from 'node:tty';\nimport { cursor, erase } from 'sisteransi';\nimport wrap from 'wrap-ansi';\n\nfunction diffLines(a: string, b: string) {\n\tif (a === b) return;\n\n\tconst aLines = a.split('\\n');\n\tconst bLines = b.split('\\n');\n\tconst diff: number[] = [];\n\n\tfor (let i = 0; i < Math.max(aLines.length, bLines.length); i++) {\n\t\tif (aLines[i] !== bLines[i]) diff.push(i);\n\t}\n\n\treturn diff;\n}\n\nconst cancel = Symbol('clack:cancel');\nexport function isCancel(value: unknown): value is symbol {\n\treturn value === cancel;\n}\n\nfunction setRawMode(input: Readable, value: boolean) {\n\tif ((input as typeof stdin).isTTY) (input as typeof stdin).setRawMode(value);\n}\n\nconst aliases = new Map([\n\t['k', 'up'],\n\t['j', 'down'],\n\t['h', 'left'],\n\t['l', 'right'],\n]);\nconst keys = new Set(['up', 'down', 'left', 'right', 'space', 'enter']);\n\nexport interface PromptOptions<Self extends Prompt> {\n\trender(this: Omit<Self, 'prompt'>): string | void;\n\tplaceholder?: string;\n\tinitialValue?: any;\n\tvalidate?: ((value: any) => string | void) | undefined;\n\tinput?: Readable;\n\toutput?: Writable;\n\tdebug?: boolean;\n}\n\nexport type State = 'initial' | 'active' | 'cancel' | 'submit' | 'error';\n\nexport default class Prompt {\n\tprotected input: Readable;\n\tprotected output: Writable;\n\tprivate rl!: ReadLine;\n\tprivate opts: Omit<PromptOptions<Prompt>, 'render' | 'input' | 'output'>;\n\tprivate _track: boolean = false;\n\tprivate _render: (context: Omit<Prompt, 'prompt'>) => string | void;\n\tprotected _cursor: number = 0;\n\n\tpublic state: State = 'initial';\n\tpublic value: any;\n\tpublic error: string = '';\n\n\tconstructor(\n\t\t{ render, input = stdin, output = stdout, ...opts }: PromptOptions<Prompt>,\n\t\ttrackValue: boolean = true\n\t) {\n\t\tthis.opts = opts;\n\t\tthis.onKeypress = this.onKeypress.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.render = this.render.bind(this);\n\t\tthis._render = render.bind(this);\n\t\tthis._track = trackValue;\n\n\t\tthis.input = input;\n\t\tthis.output = output;\n\t}\n\n\tpublic prompt() {\n\t\tconst sink = new WriteStream(0);\n\t\tsink._write = (chunk, encoding, done) => {\n\t\t\tif (this._track) {\n\t\t\t\tthis.value = this.rl.line.replace(/\\t/g, '');\n\t\t\t\tthis._cursor = this.rl.cursor;\n\t\t\t\tthis.emit('value', this.value);\n\t\t\t}\n\t\t\tdone();\n\t\t};\n\t\tthis.input.pipe(sink);\n\n\t\tthis.rl = readline.createInterface({\n\t\t\tinput: this.input,\n\t\t\toutput: sink,\n\t\t\ttabSize: 2,\n\t\t\tprompt: '',\n\t\t\tescapeCodeTimeout: 50,\n\t\t});\n\t\treadline.emitKeypressEvents(this.input, this.rl);\n\t\tthis.rl.prompt();\n\t\tif (this.opts.initialValue !== undefined && this._track) {\n\t\t\tthis.rl.write(this.opts.initialValue);\n\t\t}\n\n\t\tthis.input.on('keypress', this.onKeypress);\n\t\tsetRawMode(this.input, true);\n\t\tthis.output.on('resize', this.render);\n\n\t\tthis.render();\n\n\t\treturn new Promise<string | symbol>((resolve, reject) => {\n\t\t\tthis.once('submit', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(this.value);\n\t\t\t});\n\t\t\tthis.once('cancel', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(cancel);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate subscribers = new Map<string, { cb: (...args: any) => any; once?: boolean }[]>();\n\tpublic on(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic once(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb, once: true });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic emit(event: string, ...data: any[]) {\n\t\tconst cbs = this.subscribers.get(event) ?? [];\n\t\tconst cleanup: (() => void)[] = [];\n\t\tfor (const subscriber of cbs) {\n\t\t\tsubscriber.cb(...data);\n\t\t\tif (subscriber.once) {\n\t\t\t\tcleanup.push(() => cbs.splice(cbs.indexOf(subscriber), 1));\n\t\t\t}\n\t\t}\n\t\tfor (const cb of cleanup) {\n\t\t\tcb();\n\t\t}\n\t}\n\tprivate unsubscribe() {\n\t\tthis.subscribers.clear();\n\t}\n\n\tprivate onKeypress(char: string, key?: Key) {\n\t\tif (this.state === 'error') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tif (key?.name && !this._track && aliases.has(key.name)) {\n\t\t\tthis.emit('cursor', aliases.get(key.name));\n\t\t}\n\t\tif (key?.name && keys.has(key.name)) {\n\t\t\tthis.emit('cursor', key.name);\n\t\t}\n\t\tif (char && (char.toLowerCase() === 'y' || char.toLowerCase() === 'n')) {\n\t\t\tthis.emit('confirm', char.toLowerCase() === 'y');\n\t\t}\n\t\tif (char === '\\t' && this.opts.placeholder) {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.rl.write(this.opts.placeholder);\n\t\t\t\tthis.emit('value', this.opts.placeholder);\n\t\t\t}\n\t\t}\n\t\tif (char) {\n\t\t\tthis.emit('key', char.toLowerCase());\n\t\t}\n\n\t\tif (key?.name === 'return') {\n\t\t\tif (this.opts.validate) {\n\t\t\t\tconst problem = this.opts.validate(this.value);\n\t\t\t\tif (problem) {\n\t\t\t\t\tthis.error = problem;\n\t\t\t\t\tthis.state = 'error';\n\t\t\t\t\tthis.rl.write(this.value);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.state !== 'error') {\n\t\t\t\tthis.state = 'submit';\n\t\t\t}\n\t\t}\n\t\tif (char === '\\x03') {\n\t\t\tthis.state = 'cancel';\n\t\t}\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.emit('finalize');\n\t\t}\n\t\tthis.render();\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprotected close() {\n\t\tthis.input.unpipe();\n\t\tthis.input.removeListener('keypress', this.onKeypress);\n\t\tthis.output.write('\\n');\n\t\tsetRawMode(this.input, false);\n\t\tthis.rl.close();\n\t\tthis.emit(`${this.state}`, this.value);\n\t\tthis.unsubscribe();\n\t}\n\n\tprivate restoreCursor() {\n\t\tconst lines =\n\t\t\twrap(this._prevFrame, process.stdout.columns, { hard: true }).split('\\n').length - 1;\n\t\tthis.output.write(cursor.move(-999, lines * -1));\n\t}\n\n\tprivate _prevFrame = '';\n\tprivate render() {\n\t\tconst frame = wrap(this._render(this) ?? '', process.stdout.columns, { hard: true });\n\t\tif (frame === this._prevFrame) return;\n\n\t\tif (this.state === 'initial') {\n\t\t\tthis.output.write(cursor.hide);\n\t\t} else {\n\t\t\tconst diff = diffLines(this._prevFrame, frame);\n\t\t\tthis.restoreCursor();\n\t\t\t// If a single line has changed, only update that line\n\t\t\tif (diff && diff?.length === 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.lines(1));\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tthis.output.write(lines[diffLine]);\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\tthis.output.write(cursor.move(0, lines.length - diffLine - 1));\n\t\t\t\treturn;\n\t\t\t\t// If many lines have changed, rerender everything past the first line\n\t\t\t} else if (diff && diff?.length > 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.down());\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tconst newLines = lines.slice(diffLine);\n\t\t\t\tthis.output.write(newLines.join('\\n'));\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.output.write(erase.down());\n\t\t}\n\n\t\tthis.output.write(frame);\n\t\tif (this.state === 'initial') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tthis._prevFrame = frame;\n\t}\n}\n","import { cursor } from 'sisteransi';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface ConfirmOptions extends PromptOptions<ConfirmPrompt> {\n\tactive: string;\n\tinactive: string;\n\tinitialValue?: boolean;\n}\nexport default class ConfirmPrompt extends Prompt {\n\tget cursor() {\n\t\treturn this.value ? 0 : 1;\n\t}\n\n\tprivate get _value() {\n\t\treturn this.cursor === 0;\n\t}\n\n\tconstructor(opts: ConfirmOptions) {\n\t\tsuper(opts, false);\n\t\tthis.value = opts.initialValue ? true : false;\n\n\t\tthis.on('value', () => {\n\t\t\tthis.value = this._value;\n\t\t});\n\n\t\tthis.on('confirm', (confirm) => {\n\t\t\tthis.output.write(cursor.move(0, -1));\n\t\t\tthis.value = confirm;\n\t\t\tthis.state = 'submit';\n\t\t\tthis.close();\n\t\t});\n\n\t\tthis.on('cursor', () => {\n\t\t\tthis.value = !this.value;\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface GroupMultiSelectOptions<T extends { value: any }>\n\textends PromptOptions<GroupMultiSelectPrompt<T>> {\n\toptions: Record<string, T[]>;\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class GroupMultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: (T & { group: string | boolean })[];\n\tcursor: number = 0;\n\n\tgetGroupItems(group: string): T[] {\n\t\treturn this.options.filter((o) => o.group === group);\n\t}\n\n\tisGroupSelected(group: string) {\n\t\tconst items = this.getGroupItems(group);\n\t\treturn items.every((i) => this.value.includes(i.value));\n\t}\n\n\tprivate toggleValue() {\n\t\tconst item = this.options[this.cursor];\n\t\tif (item.group === true) {\n\t\t\tconst group = item.value;\n\t\t\tconst groupedItems = this.getGroupItems(group);\n\t\t\tif (this.isGroupSelected(group)) {\n\t\t\t\tthis.value = this.value.filter(\n\t\t\t\t\t(v: string) => groupedItems.findIndex((i) => i.value === v) === -1\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.value = [...this.value, ...groupedItems.map((i) => i.value)];\n\t\t\t}\n\t\t\tthis.value = Array.from(new Set(this.value));\n\t\t} else {\n\t\t\tconst selected = this.value.includes(item.value);\n\t\t\tthis.value = selected\n\t\t\t\t? this.value.filter((v: T['value']) => v !== item.value)\n\t\t\t\t: [...this.value, item.value];\n\t\t}\n\t}\n\n\tconstructor(opts: GroupMultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\t\tconst { options } = opts;\n\t\tthis.options = Object.entries(options).flatMap(([key, option]) => [\n\t\t\t{ value: key, group: true, label: key },\n\t\t\t...option.map((opt) => ({ ...opt, group: key })),\n\t\t]) as any;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface MultiSelectOptions<T extends { value: any }> extends PromptOptions<MultiSelectPrompt<T>> {\n\toptions: T[];\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class MultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor].value;\n\t}\n\n\tprivate toggleAll() {\n\t\tconst allSelected = this.value.length === this.options.length;\n\t\tthis.value = allSelected ? [] : this.options.map((v) => v.value);\n\t}\n\n\tprivate toggleValue() {\n\t\tconst selected = this.value.includes(this._value);\n\t\tthis.value = selected\n\t\t\t? this.value.filter((value: T['value']) => value !== this._value)\n\t\t\t: [...this.value, this._value];\n\t}\n\n\tconstructor(opts: MultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\t\tthis.on('key', (char) => {\n\t\t\tif (char === 'a') {\n\t\t\t\tthis.toggleAll();\n\t\t\t}\n\t\t});\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface PasswordOptions extends PromptOptions<PasswordPrompt> {\n\tmask?: string;\n}\nexport default class PasswordPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tprivate _mask = '•';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tget masked() {\n\t\treturn this.value.replaceAll(/./g, this._mask);\n\t}\n\tconstructor({ mask, ...opts }: PasswordOptions) {\n\t\tsuper(opts);\n\t\tthis._mask = mask ?? '•';\n\n\t\tthis.on('finalize', () => {\n\t\t\tthis.valueWithCursor = this.masked;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.masked}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.masked.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.masked.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectOptions<T extends { value: any }> extends PromptOptions<SelectPrompt<T>> {\n\toptions: T[];\n\tinitialValue?: T['value'];\n}\nexport default class SelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor];\n\t}\n\n\tprivate changeValue() {\n\t\tthis.value = this._value.value;\n\t}\n\n\tconstructor(opts: SelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.cursor = this.options.findIndex(({ value }) => value === opts.initialValue);\n\t\tif (this.cursor === -1) this.cursor = 0;\n\t\tthis.changeValue();\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.changeValue();\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectKeyOptions<T extends { value: any }> extends PromptOptions<SelectKeyPrompt<T>> {\n\toptions: T[];\n}\nexport default class SelectKeyPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tconstructor(opts: SelectKeyOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tconst keys = this.options.map(({ value: [initial] }) => initial?.toLowerCase());\n\t\tthis.cursor = Math.max(keys.indexOf(opts.initialValue), 0);\n\n\t\tthis.on('key', (key) => {\n\t\t\tif (!keys.includes(key)) return;\n\t\t\tconst value = this.options.find(({ value: [initial] }) => initial?.toLowerCase() === key);\n\t\t\tif (value) {\n\t\t\t\tthis.value = value.value;\n\t\t\t\tthis.state = 'submit';\n\t\t\t\tthis.emit('submit');\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\nexport interface TextOptions extends PromptOptions<TextPrompt> {\n\tplaceholder?: string;\n\tdefaultValue?: string;\n}\n\nexport default class TextPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tconstructor(opts: TextOptions) {\n\t\tsuper(opts);\n\n\t\tthis.on('finalize', () => {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.value = opts.defaultValue;\n\t\t\t}\n\t\t\tthis.valueWithCursor = this.value;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.value}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.value.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.value.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import type { Key } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport * as readline from 'node:readline';\nimport { cursor } from 'sisteransi';\n\nconst isWindows = globalThis.process.platform.startsWith('win');\n\nexport function block({\n\tinput = stdin,\n\toutput = stdout,\n\toverwrite = true,\n\thideCursor = true,\n} = {}) {\n\tconst rl = readline.createInterface({\n\t\tinput,\n\t\toutput,\n\t\tprompt: '',\n\t\ttabSize: 1,\n\t});\n\treadline.emitKeypressEvents(input, rl);\n\tif (input.isTTY) input.setRawMode(true);\n\n\tconst clear = (data: Buffer, { name }: Key) => {\n\t\tconst str = String(data);\n\t\tif (str === '\\x03') {\n\t\t\tif (hideCursor) output.write(cursor.show);\n\t\t\tprocess.exit(0);\n\t\t\treturn;\n\t\t}\n\t\tif (!overwrite) return;\n\t\tlet dx = name === 'return' ? 0 : -1;\n\t\tlet dy = name === 'return' ? -1 : 0;\n\n\t\treadline.moveCursor(output, dx, dy, () => {\n\t\t\treadline.clearLine(output, 1, () => {\n\t\t\t\tinput.once('keypress', clear);\n\t\t\t});\n\t\t});\n\t};\n\tif (hideCursor) output.write(cursor.hide);\n\tinput.once('keypress', clear);\n\n\treturn () => {\n\t\tinput.off('keypress', clear);\n\t\tif (hideCursor) output.write(cursor.show);\n\n\t\t// Prevent Windows specific issues: https://github.com/natemoo-re/clack/issues/176\n\t\tif (input.isTTY && !isWindows) input.setRawMode(false);\n\n\t\t// @ts-expect-error fix for https://github.com/nodejs/node/issues/31762#issuecomment-1441223907\n\t\trl.terminal = false;\n\t\trl.close();\n\t};\n}\n","import{TextPrompt as V,PasswordPrompt as j,ConfirmPrompt as N,SelectPrompt as k,SelectKeyPrompt as W,MultiSelectPrompt as D,GroupMultiSelectPrompt as L,isCancel as G,block as F}from\"@clack/core\";export{isCancel}from\"@clack/core\";import h from\"node:process\";import e from\"picocolors\";import{cursor as T,erase as A}from\"sisteransi\";function q(){return h.platform!==\"win32\"?h.env.TERM!==\"linux\":Boolean(h.env.CI)||Boolean(h.env.WT_SESSION)||Boolean(h.env.TERMINUS_SUBLIME)||h.env.ConEmuTask===\"{cmd::Cmder}\"||h.env.TERM_PROGRAM===\"Terminus-Sublime\"||h.env.TERM_PROGRAM===\"vscode\"||h.env.TERM===\"xterm-256color\"||h.env.TERM===\"alacritty\"||h.env.TERMINAL_EMULATOR===\"JetBrains-JediTerm\"}const _=q(),o=(r,n)=>_?r:n,H=o(\"\\u25C6\",\"*\"),I=o(\"\\u25A0\",\"x\"),x=o(\"\\u25B2\",\"x\"),S=o(\"\\u25C7\",\"o\"),K=o(\"\\u250C\",\"T\"),a=o(\"\\u2502\",\"|\"),d=o(\"\\u2514\",\"\\u2014\"),b=o(\"\\u25CF\",\">\"),E=o(\"\\u25CB\",\" \"),C=o(\"\\u25FB\",\"[\\u2022]\"),w=o(\"\\u25FC\",\"[+]\"),M=o(\"\\u25FB\",\"[ ]\"),U=o(\"\\u25AA\",\"\\u2022\"),B=o(\"\\u2500\",\"-\"),Z=o(\"\\u256E\",\"+\"),z=o(\"\\u251C\",\"+\"),X=o(\"\\u256F\",\"+\"),J=o(\"\\u25CF\",\"\\u2022\"),Y=o(\"\\u25C6\",\"*\"),Q=o(\"\\u25B2\",\"!\"),ee=o(\"\\u25A0\",\"x\"),y=r=>{switch(r){case\"initial\":case\"active\":return e.cyan(H);case\"cancel\":return e.red(I);case\"error\":return e.yellow(x);case\"submit\":return e.green(S)}},te=r=>new V({validate:r.validate,placeholder:r.placeholder,defaultValue:r.defaultValue,initialValue:r.initialValue,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=r.placeholder?e.inverse(r.placeholder[0])+e.dim(r.placeholder.slice(1)):e.inverse(e.hidden(\"_\")),t=this.value?this.valueWithCursor:i;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(this.value||r.placeholder)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(this.value??\"\"))}${this.value?.trim()?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${t}\n${e.cyan(d)}\n`}}}).prompt(),re=r=>new j({validate:r.validate,mask:r.mask??U,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=this.valueWithCursor,t=this.masked;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(t)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(t??\"\"))}${t?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${i}\n${e.cyan(d)}\n`}}}).prompt(),se=r=>{const n=r.active??\"Yes\",i=r.inactive??\"No\";return new N({active:n,inactive:i,initialValue:r.initialValue??!0,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,s=this.value?n:i;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${e.dim(s)}`;case\"cancel\":return`${t}${e.gray(a)} ${e.strikethrough(e.dim(s))}\n${e.gray(a)}`;default:return`${t}${e.cyan(a)} ${this.value?`${e.green(b)} ${n}`:`${e.dim(E)} ${e.dim(n)}`} ${e.dim(\"/\")} ${this.value?`${e.dim(E)} ${e.dim(i)}`:`${e.green(b)} ${i}`}\n${e.cyan(d)}\n`}}}).prompt()},ie=r=>{const n=(t,s)=>{const c=t.label??String(t.value);return s===\"active\"?`${e.green(b)} ${c} ${t.hint?e.dim(`(${t.hint})`):\"\"}`:s===\"selected\"?`${e.dim(c)}`:s===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:`${e.dim(E)} ${e.dim(c)}`};let i=0;return new k({options:r.options,initialValue:r.initialValue,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"selected\")}`;case\"cancel\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"cancelled\")}\n${e.gray(a)}`;default:{const s=r.maxItems===void 0?1/0:Math.max(r.maxItems,5);this.cursor>=i+s-3?i=Math.max(Math.min(this.cursor-s+3,this.options.length-s),0):this.cursor<i+2&&(i=Math.max(this.cursor-2,0));const c=s<this.options.length&&i>0,l=s<this.options.length&&i+s<this.options.length;return`${t}${e.cyan(a)} ${this.options.slice(i,i+s).map((u,m,$)=>m===0&&c?e.dim(\"...\"):m===$.length-1&&l?e.dim(\"...\"):n(u,m+i===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}}).prompt()},ne=r=>{const n=(i,t=\"inactive\")=>{const s=i.label??String(i.value);return t===\"selected\"?`${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active\"?`${e.bgCyan(e.gray(` ${i.value} `))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:`${e.gray(e.bgWhite(e.inverse(` ${i.value} `)))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`};return new W({options:r.options,initialValue:r.initialValue,render(){const i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${n(this.options.find(t=>t.value===this.value),\"selected\")}`;case\"cancel\":return`${i}${e.gray(a)} ${n(this.options[0],\"cancelled\")}\n${e.gray(a)}`;default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>n(t,s===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ae=r=>{const n=(i,t)=>{const s=i.label??String(i.value);return t===\"active\"?`${e.cyan(C)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"selected\"?`${e.green(w)} ${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active-selected\"?`${e.green(w)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(s)}`:`${e.dim(M)} ${e.dim(s)}`};return new D({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))||e.dim(\"none\")}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return i+e.yellow(a)+\" \"+this.options.map((s,c)=>{const l=this.value.includes(s.value),u=c===this.cursor;return u&&l?n(s,\"active-selected\"):l?n(s,\"selected\"):n(s,u?\"active\":\"inactive\")}).join(`\n${e.yellow(a)} `)+`\n`+t+`\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>{const c=this.value.includes(t.value),l=s===this.cursor;return l&&c?n(t,\"active-selected\"):c?n(t,\"selected\"):n(t,l?\"active\":\"inactive\")}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ce=r=>{const n=(i,t,s=[])=>{const c=i.label??String(i.value),l=typeof i.group==\"string\",u=l&&(s[s.indexOf(i)+1]??{group:!0}),m=l&&u.group===!0,$=l?`${m?d:a} `:\"\";return t===\"active\"?`${e.dim($)}${e.cyan(C)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"group-active\"?`${$}${e.cyan(C)} ${e.dim(c)}`:t===\"group-active-selected\"?`${$}${e.green(w)} ${e.dim(c)}`:t===\"selected\"?`${e.dim($)}${e.green(w)} ${e.dim(c)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:t===\"active-selected\"?`${e.dim($)}${e.green(w)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(c)}`:`${e.dim($)}${e.dim(M)} ${e.dim(c)}`};return new L({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return`${i}${e.yellow(a)} ${this.options.map((s,c,l)=>{const u=this.value.includes(s.value)||s.group===!0&&this.isGroupSelected(`${s.value}`),m=c===this.cursor;return!m&&typeof s.group==\"string\"&&this.options[this.cursor].value===s.group?n(s,u?\"group-active-selected\":\"group-active\",l):m&&u?n(s,\"active-selected\",l):u?n(s,\"selected\",l):n(s,m?\"active\":\"inactive\",l)}).join(`\n${e.yellow(a)} `)}\n${t}\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s,c)=>{const l=this.value.includes(t.value)||t.group===!0&&this.isGroupSelected(`${t.value}`),u=s===this.cursor;return!u&&typeof t.group==\"string\"&&this.options[this.cursor].value===t.group?n(t,l?\"group-active-selected\":\"group-active\",c):u&&l?n(t,\"active-selected\",c):l?n(t,\"selected\",c):n(t,u?\"active\":\"inactive\",c)}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},R=r=>r.replace(me(),\"\"),le=(r=\"\",n=\"\")=>{const i=`\n${r}\n`.split(`\n`),t=R(n).length,s=Math.max(i.reduce((l,u)=>(u=R(u),u.length>l?u.length:l),0),t)+2,c=i.map(l=>`${e.gray(a)} ${e.dim(l)}${\" \".repeat(s-R(l).length)}${e.gray(a)}`).join(`\n`);process.stdout.write(`${e.gray(a)}\n${e.green(S)} ${e.reset(n)} ${e.gray(B.repeat(Math.max(s-t-1,1))+Z)}\n${c}\n${e.gray(z+B.repeat(s+2)+X)}\n`)},ue=(r=\"\")=>{process.stdout.write(`${e.gray(d)} ${e.red(r)}\n\n`)},oe=(r=\"\")=>{process.stdout.write(`${e.gray(K)} ${r}\n`)},$e=(r=\"\")=>{process.stdout.write(`${e.gray(a)}\n${e.gray(d)} ${r}\n\n`)},f={message:(r=\"\",{symbol:n=e.gray(a)}={})=>{const i=[`${e.gray(a)}`];if(r){const[t,...s]=r.split(`\n`);i.push(`${n} ${t}`,...s.map(c=>`${e.gray(a)} ${c}`))}process.stdout.write(`${i.join(`\n`)}\n`)},info:r=>{f.message(r,{symbol:e.blue(J)})},success:r=>{f.message(r,{symbol:e.green(Y)})},step:r=>{f.message(r,{symbol:e.green(S)})},warn:r=>{f.message(r,{symbol:e.yellow(Q)})},warning:r=>{f.warn(r)},error:r=>{f.message(r,{symbol:e.red(ee)})}},de=()=>{const r=_?[\"\\u25D2\",\"\\u25D0\",\"\\u25D3\",\"\\u25D1\"]:[\"\\u2022\",\"o\",\"O\",\"0\"],n=_?80:120;let i,t,s=!1,c=\"\";const l=(v=\"\")=>{s=!0,i=F(),c=v.replace(/\\.+$/,\"\"),process.stdout.write(`${e.gray(a)}\n`);let g=0,p=0;t=setInterval(()=>{const O=e.magenta(r[g]),P=\".\".repeat(Math.floor(p)).slice(0,3);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${O} ${c}${P}`),g=g+1<r.length?g+1:0,p=p<r.length?p+.125:0},n)},u=(v=\"\",g=0)=>{c=v??c,s=!1,clearInterval(t);const p=g===0?e.green(S):g===1?e.red(I):e.red(x);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${p} ${c}\n`),i()},m=(v=\"\")=>{c=v??c},$=v=>{const g=v>1?\"Something went wrong\":\"Canceled\";s&&u(g,v)};return process.on(\"uncaughtExceptionMonitor\",()=>$(2)),process.on(\"unhandledRejection\",()=>$(2)),process.on(\"SIGINT\",()=>$(1)),process.on(\"SIGTERM\",()=>$(1)),process.on(\"exit\",$),{start:l,stop:u,message:m}};function me(){const r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"].join(\"|\");return new RegExp(r,\"g\")}const he=async(r,n)=>{const i={},t=Object.keys(r);for(const s of t){const c=r[s],l=await c({results:i})?.catch(u=>{throw u});if(typeof n?.onCancel==\"function\"&&G(l)){i[s]=\"canceled\",n.onCancel({results:i});continue}i[s]=l}return i};export{ue as cancel,se as confirm,he as group,ce as groupMultiselect,oe as intro,f as log,ae as multiselect,le as note,$e as outro,re as password,ie as select,ne as selectKey,de as spinner,te as text};\n","/**\n * Template registry.\n *\n * Each entry describes a starter template that lives in the monorepo's\n * `templates/<dir>` directory (copied into this package at build time). The\n * registry is structured so more languages/templates can be added later without\n * touching the scaffolding logic.\n */\n\n/** A language a template targets. Only TypeScript ships today. */\nexport type TemplateLanguage = \"typescript\";\n\n/** A scaffoldable starter template. */\nexport interface TemplateInfo {\n /** Registry id and on-disk directory name under `templates/`. */\n id: string;\n /** Short human label shown in the interactive picker. */\n label: string;\n /** One-line description. */\n hint: string;\n /** Source language. */\n language: TemplateLanguage;\n}\n\n/** All templates the CLI can scaffold. */\nexport const TEMPLATES: readonly TemplateInfo[] = [\n {\n id: \"evm-solidity\",\n label: \"EVM + Solidity\",\n hint: \"A Solidity contract with a viem deploy/interact script using @qorechain/evm.\",\n language: \"typescript\",\n },\n {\n id: \"fullstack-web\",\n label: \"Full-stack web (Vite + React)\",\n hint: \"A minimal Vite + React dApp using @qorechain/sdk to read balances and tokenomics.\",\n language: \"typescript\",\n },\n {\n id: \"rollup-app\",\n label: \"Rollup + multilayer app\",\n hint: \"A rollup + sidechain/paychain app using the RollupClient and multilayer helper from @qorechain/sdk.\",\n language: \"typescript\",\n },\n] as const;\n\n/** Look up a template by id, or `undefined` if unknown. */\nexport function findTemplate(id: string): TemplateInfo | undefined {\n return TEMPLATES.find((t) => t.id === id);\n}\n\n/** Comma-separated list of valid template ids, for error messages. */\nexport function templateIdList(): string {\n return TEMPLATES.map((t) => t.id).join(\", \");\n}\n","/**\n * Hand-rolled, dependency-free argument parser for the CLI. Kept separate from\n * the prompt I/O so it can be unit-tested directly.\n */\nimport type { Network, PackageManager } from \"./scaffold.js\";\nimport { TEMPLATES } from \"./templates.js\";\n\n/** Parsed CLI arguments. */\nexport interface ParsedArgs {\n /** Positional target directory (project dir), if given. */\n dir?: string;\n /** `--template <name>`. */\n template?: string;\n /** `--network <testnet|mainnet>`. */\n network?: Network;\n /** `--package-manager <pnpm|npm|yarn>`. */\n packageManager?: PackageManager;\n /** `--yes`: skip prompts, use defaults. */\n yes: boolean;\n /** `--no-install`: skip dependency install. */\n install: boolean;\n /** `--local`: rewrite @qorechain/* deps to file: links into the monorepo. */\n local: boolean;\n /** `--help`. */\n help: boolean;\n /** `--version`. */\n version: boolean;\n}\n\nconst VALID_PM: readonly PackageManager[] = [\"pnpm\", \"npm\", \"yarn\"];\nconst VALID_NETWORK: readonly Network[] = [\"testnet\", \"mainnet\"];\n\n/** Thrown for malformed CLI input; carries a user-facing message. */\nexport class ArgError extends Error {}\n\nfunction expectValue(name: string, value: string | undefined): string {\n if (value === undefined) throw new ArgError(`Missing value for ${name}.`);\n return value;\n}\n\n/**\n * Parse argv (excluding `node` and the script path). Throws {@link ArgError}\n * on malformed input.\n */\nexport function parseArgs(argv: readonly string[]): ParsedArgs {\n const out: ParsedArgs = {\n yes: false,\n install: true,\n local: false,\n help: false,\n version: false,\n };\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i];\n switch (arg) {\n case \"-h\":\n case \"--help\":\n out.help = true;\n break;\n case \"-v\":\n case \"--version\":\n out.version = true;\n break;\n case \"-y\":\n case \"--yes\":\n out.yes = true;\n break;\n case \"--install\":\n out.install = true;\n break;\n case \"--no-install\":\n out.install = false;\n break;\n case \"--local\":\n out.local = true;\n break;\n case \"--template\":\n case \"-t\":\n out.template = expectValue(\"--template\", argv[++i]);\n break;\n case \"--network\":\n out.network = parseNetwork(expectValue(\"--network\", argv[++i]));\n break;\n case \"--package-manager\":\n case \"--pm\":\n out.packageManager = parsePackageManager(\n expectValue(\"--package-manager\", argv[++i]),\n );\n break;\n default: {\n if (arg.startsWith(\"--template=\")) {\n out.template = arg.slice(\"--template=\".length);\n } else if (arg.startsWith(\"--network=\")) {\n out.network = parseNetwork(arg.slice(\"--network=\".length));\n } else if (arg.startsWith(\"--package-manager=\")) {\n out.packageManager = parsePackageManager(\n arg.slice(\"--package-manager=\".length),\n );\n } else if (arg.startsWith(\"-\")) {\n throw new ArgError(`Unknown option: ${arg}`);\n } else if (out.dir === undefined) {\n out.dir = arg;\n } else {\n throw new ArgError(`Unexpected argument: ${arg}`);\n }\n }\n }\n }\n\n return out;\n}\n\nfunction parsePackageManager(value: string): PackageManager {\n if ((VALID_PM as readonly string[]).includes(value)) {\n return value as PackageManager;\n }\n throw new ArgError(\n `Invalid --package-manager \"${value}\". Expected one of: ${VALID_PM.join(\", \")}.`,\n );\n}\n\nfunction parseNetwork(value: string): Network {\n if ((VALID_NETWORK as readonly string[]).includes(value)) {\n return value as Network;\n }\n throw new ArgError(\n `Invalid --network \"${value}\". Expected one of: ${VALID_NETWORK.join(\", \")}.`,\n );\n}\n\n/** The `--help` text. */\nexport function helpText(): string {\n const templates = TEMPLATES.map(\n (t) => ` ${t.id.padEnd(16)} ${t.hint}`,\n ).join(\"\\n\");\n return `create-qorechain-dapp — scaffold a new QoreChain dApp.\n\nUsage:\n npm create qorechain-dapp <dir> [options]\n npx create-qorechain-dapp <dir> [options]\n\nArguments:\n <dir> Target directory for the new project.\n\nOptions:\n -t, --template <name> Template to use. One of:\n${templates}\n --network <name> Network preset: testnet | mainnet.\n --package-manager <pm> Package manager: pnpm | npm | yarn.\n -y, --yes Skip prompts and use defaults.\n --no-install Do not install dependencies after scaffolding.\n --local Rewrite @qorechain/* deps to local file: links\n into this monorepo (for local/dev use before the\n packages are published to npm).\n -h, --help Show this help.\n -v, --version Print the version.\n\nExamples:\n npm create qorechain-dapp my-dapp -- --template evm-solidity\n npx create-qorechain-dapp my-dapp --template fullstack-web --yes\n npx create-qorechain-dapp my-dapp -t evm-solidity --local --no-install\n`;\n}\n","/**\n * Core scaffolding logic — pure and unit-testable, with no prompt I/O.\n *\n * `scaffold(...)` copies a template into a target directory, rewrites the\n * template's package.json name, generates `.env` from `.env.example`, optionally\n * rewrites `@qorechain/*` deps to local `file:` links, and optionally runs a\n * package-manager install. All side effects are confined to the target dir\n * (plus an optional `spawn` for install), so tests can drive it against a temp\n * dir with `install: false`.\n */\nimport { spawnSync } from \"node:child_process\";\nimport {\n cpSync,\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { findTemplate, templateIdList } from \"./templates.js\";\n\n/** Supported package managers. */\nexport type PackageManager = \"pnpm\" | \"npm\" | \"yarn\";\n\n/** Supported networks. */\nexport type Network = \"testnet\" | \"mainnet\";\n\n/** Options for {@link scaffold}. */\nexport interface ScaffoldOptions {\n /** Template id (must exist in the registry). */\n template: string;\n /** Absolute or relative target directory to create the project in. */\n targetDir: string;\n /** Project name written into the generated package.json. */\n projectName: string;\n /** Package manager to record/use. Defaults to `pnpm`. */\n packageManager?: PackageManager;\n /** Network preset. Defaults to `testnet`. */\n network?: Network;\n /** Run the package manager install after copying. Defaults to `false`. */\n install?: boolean;\n /**\n * Rewrite `@qorechain/*` dependencies to `file:` links into this monorepo so\n * the scaffolded project is runnable locally before the packages are\n * published. Defaults to `false` (keeps the published `^x.y.z` ranges).\n */\n local?: boolean;\n /**\n * Override the directory templates are resolved from. Primarily for tests.\n * When unset, templates are located relative to this package (see\n * {@link resolveTemplatesRoot}).\n */\n templatesRoot?: string;\n /**\n * Monorepo root used to compute `file:` links when `local` is set. Defaults\n * to the resolved repo root relative to this package.\n */\n monorepoRoot?: string;\n}\n\n/** Result of a successful {@link scaffold}. */\nexport interface ScaffoldResult {\n /** Absolute path to the created project. */\n targetDir: string;\n /** Whether install was run. */\n installed: boolean;\n /** Relative paths of the files written (sorted). */\n files: string[];\n}\n\nconst here = dirname(fileURLToPath(import.meta.url));\n\n/**\n * Locate the bundled `templates/` directory. Works both from source (where\n * templates live at the repo root, two levels up from `cli/src`) and from the\n * built/published package (where `copy-templates` placed them at `<pkg>/templates`).\n */\nexport function resolveTemplatesRoot(): string {\n // Built/published layout: dist/index.js → ../templates\n const bundled = resolve(here, \"..\", \"templates\");\n if (existsSync(bundled) && existsSync(join(bundled, \"evm-solidity\"))) {\n return bundled;\n }\n // Source layout: cli/src → ../../templates\n const sourceLevel = resolve(here, \"..\", \"..\", \"templates\");\n if (existsSync(sourceLevel) && existsSync(join(sourceLevel, \"evm-solidity\"))) {\n return sourceLevel;\n }\n // Fallback to the bundled path so the error message is actionable.\n return bundled;\n}\n\n/**\n * Locate the monorepo root (which contains `packages/`), used for `file:` links\n * in `--local` mode.\n */\nfunction resolveMonorepoRoot(): string {\n const candidates = [\n resolve(here, \"..\", \"..\"), // source: cli/src → repo root\n resolve(here, \"..\", \"..\", \"..\"), // dist/index.js variants\n ];\n for (const c of candidates) {\n if (existsSync(join(c, \"packages\", \"ts\", \"package.json\"))) return c;\n }\n return resolve(here, \"..\", \"..\");\n}\n\nconst COPY_SKIP = new Set([\"node_modules\", \"dist\", \".turbo\", \"coverage\"]);\n\n/** Recursively collect relative file paths under `root`. */\nfunction listFiles(root: string, base = root): string[] {\n const out: string[] = [];\n for (const entry of readdirSync(root, { withFileTypes: true })) {\n const full = join(root, entry.name);\n if (entry.isDirectory()) {\n out.push(...listFiles(full, base));\n } else {\n out.push(full.slice(base.length + 1));\n }\n }\n return out.sort();\n}\n\n/** Rewrite `@qorechain/*` deps in a parsed package.json to `file:` links. */\nfunction rewriteLocalDeps(\n pkg: Record<string, unknown>,\n monorepoRoot: string,\n): void {\n // Map of published package name → monorepo package dir.\n const localPackages: Record<string, string> = {\n \"@qorechain/sdk\": join(monorepoRoot, \"packages\", \"ts\"),\n \"@qorechain/evm\": join(monorepoRoot, \"packages\", \"evm\"),\n \"@qorechain/svm\": join(monorepoRoot, \"packages\", \"svm\"),\n };\n for (const section of [\"dependencies\", \"devDependencies\"] as const) {\n const deps = pkg[section] as Record<string, string> | undefined;\n if (!deps) continue;\n for (const name of Object.keys(deps)) {\n const dir = localPackages[name];\n if (dir) deps[name] = `file:${dir}`;\n }\n }\n}\n\n/** Install command for a given package manager. */\nfunction installCommand(pm: PackageManager): { cmd: string; args: string[] } {\n return { cmd: pm, args: [\"install\"] };\n}\n\n/**\n * Scaffold a project. Pure with respect to everything except the target dir\n * (and the optional install subprocess).\n *\n * @throws if the template is unknown or the target dir already exists and is\n * non-empty.\n */\nexport function scaffold(options: ScaffoldOptions): ScaffoldResult {\n const {\n template,\n projectName,\n packageManager = \"pnpm\",\n install = false,\n local = false,\n } = options;\n\n const info = findTemplate(template);\n if (!info) {\n throw new Error(\n `Unknown template \"${template}\". Available templates: ${templateIdList()}.`,\n );\n }\n\n const templatesRoot = options.templatesRoot ?? resolveTemplatesRoot();\n const templateDir = join(templatesRoot, info.id);\n if (!existsSync(templateDir)) {\n throw new Error(\n `Template \"${info.id}\" not found on disk at ${templateDir}. ` +\n `The package may be built incorrectly.`,\n );\n }\n\n const targetDir = resolve(options.targetDir);\n if (existsSync(targetDir)) {\n const entries = readdirSync(targetDir);\n if (entries.length > 0) {\n throw new Error(`Target directory is not empty: ${targetDir}`);\n }\n } else {\n mkdirSync(targetDir, { recursive: true });\n }\n\n // Copy template, skipping build artifacts.\n cpSync(templateDir, targetDir, {\n recursive: true,\n filter: (srcPath) => {\n const rel = srcPath.slice(templateDir.length + 1);\n const parts = rel.split(/[\\\\/]/);\n return !parts.some((p) => COPY_SKIP.has(p));\n },\n });\n\n // Rewrite package.json: name (+ optional local file: deps).\n const pkgPath = join(targetDir, \"package.json\");\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf8\")) as Record<\n string,\n unknown\n >;\n pkg.name = projectName;\n if (local) {\n rewriteLocalDeps(pkg, options.monorepoRoot ?? resolveMonorepoRoot());\n }\n writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + \"\\n\");\n }\n\n // Generate .env from .env.example if present and .env absent.\n const envExample = join(targetDir, \".env.example\");\n const envPath = join(targetDir, \".env\");\n if (existsSync(envExample) && !existsSync(envPath)) {\n writeFileSync(envPath, readFileSync(envExample, \"utf8\"));\n }\n\n let installed = false;\n if (install) {\n const { cmd, args } = installCommand(packageManager);\n const res = spawnSync(cmd, args, {\n cwd: targetDir,\n stdio: \"inherit\",\n shell: process.platform === \"win32\",\n });\n if (res.status !== 0) {\n throw new Error(\n `Install failed (${cmd} ${args.join(\" \")}) with exit code ${res.status ?? \"unknown\"}.`,\n );\n }\n installed = true;\n }\n\n return { targetDir, installed, files: listFiles(targetDir) };\n}\n"],"mappings":"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,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,Q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","names":["x","y","f","existsSync","readdirSync","resolve","ansiRegex","onlyFirst","pattern","regex","stripAnsi","string","e","eaw","module","character","x","y","codePoint","code","stringToArray","characters","len","i","text","start","end","result","eawLen","chars","char","charLen","emojiRegex","stringWidth","options","ambiguousCharacterWidth","width","eastAsianWidth","ANSI_BACKGROUND_OFFSET","wrapAnsi16","offset","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","foregroundColorNames","backgroundColorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","integer","remainder","value","ansiStyles","ESCAPES","END_CODE","ANSI_ESCAPE_BELL","ANSI_CSI","ANSI_OSC","ANSI_SGR_TERMINATOR","ANSI_ESCAPE_LINK","wrapAnsiCode","wrapAnsiHyperlink","uri","wordLengths","wrapWord","rows","word","columns","isInsideEscape","isInsideLinkEscape","visible","index","characterLength","stringVisibleTrimSpacesRight","words","last","exec","returnValue","escapeCode","escapeUrl","lengths","rowLength","remainingColumns","breaksStartingThisLine","row","pre","groups","wrapAnsi","line","f","d","r","t","o","diffLines","a","b","aLines","bLines","diff","cancel","isCancel","setRawMode","input","aliases","keys","Prompt","render","stdin","output","stdout","opts","trackValue","__publicField","sink","WriteStream","chunk","encoding","done","readline","resolve","reject","cursor","event","cb","arr","data","cbs","cleanup","subscriber","key","problem","lines","wrap","frame","diffLine","erase","newLines","e","u$1","Prompt","opts","__publicField","value","key","e","TextPrompt","Prompt","opts","__publicField","color","s1","s2","isWindows","import_picocolors","import_sisteransi","q","_","r","I","x","S","a","d","b","w","M","U","Z","z","X","J","Q","y","e","r","c","e","b","a","y","l","m","$","d","R","r","l","c","e","a","S","Z","z","X","d","f","J","Q","r","import_picocolors","c","existsSync","readdirSync","resolve","v","pc","f"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-qorechain-dapp",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Scaffold a new QoreChain dApp from an official starter template.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "QoreChain",
@@ -35,7 +35,7 @@ pnpm install
35
35
  pnpm start
36
36
 
37
37
  # broadcast + read against a live node
38
- QORE_RPC_URL=https://rpc.testnet.example \
38
+ QORE_RPC_URL=https://rpc-testnet.qore.host \
39
39
  QORE_MNEMONIC="<your funded testnet mnemonic>" QORE_BROADCAST=1 pnpm start
40
40
  ```
41
41