@aihu/compiler 0.1.1 → 0.1.3
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/README.md +7 -7
- package/bin/aihu-compile +0 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/bin/scribe-compile.exe +0 -0
- package/dist/prompt-U5ajztzG-DLuCt_-l.js +0 -46
- package/dist/prompt-U5ajztzG-DLuCt_-l.js.map +0 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ npm install @aihu/compiler
|
|
|
21
21
|
bun add @aihu/compiler
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
<sub><i>Auto-generated against `@aihu/compiler@0.1.
|
|
24
|
+
<sub><i>Auto-generated against `@aihu/compiler@0.1.2`.</i></sub>
|
|
25
25
|
|
|
26
26
|
<!-- END_AUTOGEN: install -->
|
|
27
27
|
|
|
@@ -32,12 +32,12 @@ bun add @aihu/compiler
|
|
|
32
32
|
|
|
33
33
|
| | |
|
|
34
34
|
|---|---|
|
|
35
|
-
| **Version** | `0.1.
|
|
35
|
+
| **Version** | `0.1.2` |
|
|
36
36
|
| **Tier** | D — Compiler — Single-File Component (.aihu) → Web Component |
|
|
37
37
|
| **Published files** | 5 entries |
|
|
38
38
|
| **License** | MIT |
|
|
39
39
|
|
|
40
|
-
<sub><i>Auto-generated against `@aihu/compiler@0.1.
|
|
40
|
+
<sub><i>Auto-generated against `@aihu/compiler@0.1.2`.</i></sub>
|
|
41
41
|
|
|
42
42
|
<!-- END_AUTOGEN: stats -->
|
|
43
43
|
|
|
@@ -50,7 +50,7 @@ bun add @aihu/compiler
|
|
|
50
50
|
|---|---|---|
|
|
51
51
|
| `.` | `./dist/index.js` | `—` |
|
|
52
52
|
|
|
53
|
-
<sub><i>Auto-generated against `@aihu/compiler@0.1.
|
|
53
|
+
<sub><i>Auto-generated against `@aihu/compiler@0.1.2`.</i></sub>
|
|
54
54
|
|
|
55
55
|
<!-- END_AUTOGEN: exports -->
|
|
56
56
|
|
|
@@ -63,7 +63,7 @@ bun add @aihu/compiler
|
|
|
63
63
|
|
|
64
64
|
- `vite` — `>=5.0.0`
|
|
65
65
|
|
|
66
|
-
<sub><i>Auto-generated against `@aihu/compiler@0.1.
|
|
66
|
+
<sub><i>Auto-generated against `@aihu/compiler@0.1.2`.</i></sub>
|
|
67
67
|
|
|
68
68
|
<!-- END_AUTOGEN: deps -->
|
|
69
69
|
|
|
@@ -77,7 +77,7 @@ bun add @aihu/compiler
|
|
|
77
77
|
- [Macro Vocabulary spec](../../docs/superpowers/specs/2026-05-02-spec-macro-vocabulary.md)
|
|
78
78
|
- [Aihu framework root](../../README.md)
|
|
79
79
|
|
|
80
|
-
<sub><i>Auto-generated against `@aihu/compiler@0.1.
|
|
80
|
+
<sub><i>Auto-generated against `@aihu/compiler@0.1.2`.</i></sub>
|
|
81
81
|
|
|
82
82
|
<!-- END_AUTOGEN: see-also -->
|
|
83
83
|
|
|
@@ -88,6 +88,6 @@ bun add @aihu/compiler
|
|
|
88
88
|
|
|
89
89
|
MIT — see [LICENSE](../../LICENSE).
|
|
90
90
|
|
|
91
|
-
<sub><i>Auto-generated against `@aihu/compiler@0.1.
|
|
91
|
+
<sub><i>Auto-generated against `@aihu/compiler@0.1.2`.</i></sub>
|
|
92
92
|
|
|
93
93
|
<!-- END_AUTOGEN: license -->
|
package/bin/aihu-compile
ADDED
|
Binary file
|
package/dist/index.d.ts
CHANGED
|
@@ -59,12 +59,18 @@ declare function _injectShadowMode(code: string, mode: 'open' | 'closed' | 'none
|
|
|
59
59
|
* **interactive** island (uses the signals reactivity system).
|
|
60
60
|
*
|
|
61
61
|
* The heuristic is intentionally conservative: any source-level reference
|
|
62
|
-
* to
|
|
63
|
-
* `'interactive'`. False positives (e.g. a string literal
|
|
64
|
-
* `signal(`) are tolerable — they only forfeit the static-island
|
|
62
|
+
* to a primitive that requires the `defineComponent` owner context flips
|
|
63
|
+
* the file to `'interactive'`. False positives (e.g. a string literal
|
|
64
|
+
* containing `signal(`) are tolerable — they only forfeit the static-island
|
|
65
65
|
* optimisation. False negatives are forbidden: a static-classified file
|
|
66
66
|
* MUST NOT depend on the signals runtime at execution time.
|
|
67
67
|
*
|
|
68
|
+
* Owner-requiring primitives covered:
|
|
69
|
+
* - `signal(`, `computed(`, `effect(`, `setSignal(` (signals runtime)
|
|
70
|
+
* - `onMount(`, `onCleanup(` (lifecycle hooks — throw `no owner` outside
|
|
71
|
+
* `defineComponent` because they push into the active owner's mount/
|
|
72
|
+
* cleanup queues)
|
|
73
|
+
*
|
|
68
74
|
* Plan 3.3 / acceptance criterion 1.
|
|
69
75
|
*
|
|
70
76
|
* @internal
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../js/index.ts"],"mappings":";UAoBU,UAAA;EAAA,SACC,IAAA;EACT,OAAA;EACA,SAAA,IACE,IAAA,UACA,EAAA,aACG,OAAA;IAAU,IAAA;IAAc,GAAA;EAAA;IAAiB,IAAA;IAAc,GAAA;EAAA;AAAA;;;;UAM7C,yBAAA;EANgD;;AAMjE;;;;;AAyCA;;;EA9BE,OAAA;EA8B8E;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../js/index.ts"],"mappings":";UAoBU,UAAA;EAAA,SACC,IAAA;EACT,OAAA;EACA,SAAA,IACE,IAAA,UACA,EAAA,aACG,OAAA;IAAU,IAAA;IAAc,GAAA;EAAA;IAAiB,IAAA;IAAc,GAAA;EAAA;AAAA;;;;UAM7C,yBAAA;EANgD;;AAMjE;;;;;AAyCA;;;EA9BE,OAAA;EA8B8E;AAgChF;;;;;AAgHA;;;;;AA2GA;;;;;EAvQE,UAAA;AAAA;;;;;;;;;AA2UF;iBA/TgB,iBAAA,CAAkB,IAAA,UAAc,IAAA;;;;AAmchD;;;;;;;;;;;;;;;;;;;iBAnagB,eAAA,CAAgB,YAAA;;;;;;;;;;;;;;;;;;;iBAgHhB,uBAAA,CAAwB,YAAA,UAAsB,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2G9C,kBAAA,CAAmB,YAAA,UAAsB,UAAA;;;;;iBAiDzC,SAAA,CAAU,MAAA,UAAgB,EAAA;EAAe,IAAA;EAAc,GAAA;AAAA;;;;;;;;iBAmBvD,iBAAA,CAAkB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoIlB,kBAAA,CAAmB,OAAA,GAAU,yBAAA,GAA4B,UAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{execFileSync as e}from"node:child_process";import{basename as t,dirname as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";const a=process.platform===`win32`?`.exe`:``,o=process.env.SCRIBE_COMPILE_BIN??r(n(i(import.meta.url)),`../bin/aihu-compile${a}`);function s(e,t){return e.replace(/(defineElement\(\s*['"][^'"]+['"]\s*,\s*defineComponent\([^]*\))\s*\)/,(e,n)=>`${n}, { shadowMode: '${t}' })`)}function c(e){return/\b(?:signal|computed|effect|setSignal)\s*\(/.test(e)?`interactive`:`static`}function l(e){let t=/defineElement\(\s*['"]([^'"]+)['"]/m.exec(e);return t?t[1]??null:null}function u(e,t){let n=e.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/runtime'/,(e,t)=>{let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`_hmrReplace`)||n.push(`_hmrReplace`),`import { ${n.join(`, `)} } from '@aihu/runtime'`}).replace(/\bdefineComponent\(/,`defineComponent(__aihu_setup__ = `),r=`
|
|
1
|
+
import{execFileSync as e}from"node:child_process";import{basename as t,dirname as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";const a=process.platform===`win32`?`.exe`:``,o=process.env.SCRIBE_COMPILE_BIN??r(n(i(import.meta.url)),`../bin/aihu-compile${a}`);function s(e,t){return e.replace(/(defineElement\(\s*['"][^'"]+['"]\s*,\s*defineComponent\([^]*\))\s*\)/,(e,n)=>`${n}, { shadowMode: '${t}' })`)}function c(e){return/\b(?:signal|computed|effect|setSignal|onMount|onCleanup)\s*\(/.test(e)?`interactive`:`static`}function l(e){let t=/defineElement\(\s*['"]([^'"]+)['"]/m.exec(e);return t?t[1]??null:null}function u(e,t){let n=e.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/runtime'/,(e,t)=>{let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`_hmrReplace`)||n.push(`_hmrReplace`),`import { ${n.join(`, `)} } from '@aihu/runtime'`}).replace(/\bdefineComponent\(/,`defineComponent(__aihu_setup__ = `),r=`
|
|
2
2
|
export { __aihu_setup__ as default }
|
|
3
3
|
|
|
4
4
|
if (typeof __DEV__ !== 'undefined' && __DEV__ && import.meta.hot) {
|
|
@@ -36,8 +36,7 @@ function __aihu_wrap_defer__<T extends typeof HTMLElement>(Ctor: T): T {
|
|
|
36
36
|
mount(__aihu_setup__({ host: root, element: this }), root)
|
|
37
37
|
}
|
|
38
38
|
})
|
|
39
|
-
`)}`}function p(n,r){return{code:e(o,[`--stdin`,`--tag`,t(r,`.aihu`),`--path`,r],{input:n,encoding:`utf8`}),map:null}}function m(e){let t;t=e.includes(`from '@aihu/arbor'`)?e.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/arbor'/,(e,t)=>{let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`mount`)||n.push(`mount`),`import { ${n.join(`, `)} } from '@aihu/arbor'`}):`import { mount } from '@aihu/arbor'
|
|
40
|
-
`+e,/import\s+\{[^}]*\}\s+from\s+'@aihu\/signals'/.test(t)?t=t.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/signals'/,(e,t)=>{if(e.startsWith(`import type`))return e;let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`signal`)||n.push(`signal`),`import { ${n.join(`, `)} } from '@aihu/signals'`}):/import.*from\s*'@aihu\/signals'/.test(t)?/import\s+type\s+\{[^}]*\}\s+from\s+'@aihu\/signals'/.test(t)&&!t.match(/import\s+\{[^}]*\}\s+from\s+'@aihu\/signals'/)&&(t=t.replace(/(import\s+type\s+\{[^}]*\}\s+from\s+'@aihu\/signals')/,(e,t)=>`${t}\nimport { signal } from '@aihu/signals'`)):t=t.replace(/import\s*\{[^}]*\}\s*from\s*'@aihu\/arbor'/,e=>`${e}\nimport { signal } from '@aihu/signals'`),t=t.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/runtime'/,(e,t)=>{let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`_setMount`)||n.push(`_setMount`),n.includes(`_setSignal`)||n.push(`_setSignal`),`import { ${n.join(`, `)} } from '@aihu/runtime'`});let n=t.split(`
|
|
39
|
+
`)}`}function p(n,r){return{code:e(o,[`--stdin`,`--tag`,t(r,`.aihu`),`--path`,r],{input:n,encoding:`utf8`}),map:null}}function m(e){let t;t=e.includes(`from '@aihu/arbor'`)?e.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/arbor'/,(e,t)=>{let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`mount`)||n.push(`mount`),`import { ${n.join(`, `)} } from '@aihu/arbor'`}):`import { mount } from '@aihu/arbor'\n${e}`,/import\s+\{[^}]*\}\s+from\s+'@aihu\/signals'/.test(t)?t=t.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/signals'/,(e,t)=>{if(e.startsWith(`import type`))return e;let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`signal`)||n.push(`signal`),`import { ${n.join(`, `)} } from '@aihu/signals'`}):/import.*from\s*'@aihu\/signals'/.test(t)?/import\s+type\s+\{[^}]*\}\s+from\s+'@aihu\/signals'/.test(t)&&!t.match(/import\s+\{[^}]*\}\s+from\s+'@aihu\/signals'/)&&(t=t.replace(/(import\s+type\s+\{[^}]*\}\s+from\s+'@aihu\/signals')/,(e,t)=>`${t}\nimport { signal } from '@aihu/signals'`)):t=t.replace(/import\s*\{[^}]*\}\s*from\s*'@aihu\/arbor'/,e=>`${e}\nimport { signal } from '@aihu/signals'`),t=t.replace(/import\s*\{([^}]*)\}\s*from\s*'@aihu\/runtime'/,(e,t)=>{let n=t.split(`,`).map(e=>e.trim()).filter(Boolean);return n.includes(`_setMount`)||n.push(`_setMount`),n.includes(`_setSignal`)||n.push(`_setSignal`),`import { ${n.join(`, `)} } from '@aihu/runtime'`});let n=t.split(`
|
|
41
40
|
`),r=-1;for(let e=n.length-1;e>=0;e--){let t=(n[e]??``).trim();if(t.startsWith(`import `)||t.startsWith(`import{`)){r=e;break}}return r!==-1&&(n.splice(r+1,0,`_setMount(mount)`,`_setSignal(signal)`,``),t=n.join(`
|
|
42
|
-
`)),t}function h(e){let t=e?.islands!==!1,n=e?.shadowMode;return{name:`aihu-compiler`,enforce:`pre`,transform(e,r){let i=r.split(`?`)[0];if(i.endsWith(`.aihu`))return(async()=>{let r=p(e,i),a=n==null?r.code:s(r.code,n),o=l(a),h;t&&o!==null&&c(a)===`static`?h=f(a,o):o===null?(h=a,h=m(h)):(h=u(a,o),h=d(h,o),h=m(h));try{let
|
|
41
|
+
`)),t}function h(e){let t=e?.islands!==!1,n=e?.shadowMode;return{name:`aihu-compiler`,enforce:`pre`,transform(e,r){let i=r.split(`?`)[0];if(i.endsWith(`.aihu`))return(async()=>{let r=p(e,i),a=n==null?r.code:s(r.code,n),o=l(a),h;t&&o!==null&&c(a)===`static`?h=f(a,o):o===null?(h=a,h=m(h)):(h=u(a,o),h=d(h,o),h=m(h));try{let e=await import(`vite`);return`transformWithOxc`in e&&typeof e.transformWithOxc==`function`?{code:h,moduleType:`ts`,map:null}:{code:(await e.transformWithEsbuild(h,`component.ts`,{target:`esnext`,sourcemap:!1})).code,map:null}}catch{return{code:h,map:null}}})()}}}export{d as _buildDeferredHydration,f as _buildStaticIsland,c as _classifyIsland,m as _injectAutoWiring,s as _injectShadowMode,h as aihuCompilerPlugin,p as transform};
|
|
43
42
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../js/index.ts"],"sourcesContent":["/**\n * @aihu/compiler — TypeScript wrapper around the aihu-compile Rust binary.\n *\n * Exports:\n * transform(source, id) — compile a single .aihu file to TypeScript\n * aihuCompilerPlugin() — Vite plugin that wires transform() into the build\n */\nimport { execFileSync } from 'node:child_process'\nimport { basename, dirname, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\n// Binary resolution: env var override, fallback to the bin/ directory written\n// by the postinstall hook (packages/compiler/bin/aihu-compile[.exe]).\nconst ext = process.platform === 'win32' ? '.exe' : ''\nconst binPath: string =\n process.env.SCRIBE_COMPILE_BIN ??\n resolve(dirname(fileURLToPath(import.meta.url)), `../bin/aihu-compile${ext}`)\n\n// Minimal VitePlugin interface — avoids importing from 'vite' at compile time.\n// Structurally compatible with Vite's Plugin type.\ninterface VitePlugin {\n readonly name: string\n enforce?: 'pre' | 'post'\n transform?: (\n code: string,\n id: string,\n ) => Promise<{ code: string; map: null }> | { code: string; map: null } | null | undefined\n}\n\n/**\n * Options for `aihuCompilerPlugin()` (Plan 3.3 — Islands).\n */\nexport interface AihuCompilerPluginOptions {\n /**\n * When `true` (default), components classified as `'static'` by\n * `_classifyIsland()` are emitted with a minimal HTML-only registration\n * shim that ships **zero** `@aihu/runtime` and `@aihu/signals` JS to\n * the browser. Components classified as `'interactive'` retain the\n * full runtime path.\n *\n * Setting `islands: false` opts every component back into the unified\n * runtime path (Plan 3.2 baseline behaviour).\n */\n islands?: boolean\n\n /**\n * Project-wide shadow-DOM mode applied to every `.aihu` SFC compiled\n * by this plugin instance. When set, the plugin post-processes the\n * compiled JS to inject `, { shadowMode: '<mode>' }` as the third arg\n * to the emitted `defineElement(tag, defineComponent(...))` call.\n *\n * - `'open'` — default browser behaviour (shadow root, externally readable).\n * - `'closed'` — shadow root, externally hidden.\n * - `'none'` — **no shadow root.** The component mounts into its own\n * element. Required for global utility-class CSS frameworks\n * like Tailwind, UnoCSS, Pico that rely on the cascade.\n *\n * Per-component override is not yet supported via SFC syntax (post-v1).\n * For per-component control today, hand-author the component with\n * `defineElement(tag, Ctor, { shadowMode: '...' })`.\n */\n shadowMode?: 'open' | 'closed' | 'none'\n}\n\n/**\n * Inject `{ shadowMode: '...' }` as the third argument to the emitted\n * `defineElement('tag', defineComponent(...))` call. The compiler emits\n * exactly two arguments today; this rewrites the closing of the\n * defineElement call to include the options object. Idempotent — leaves\n * code untouched when the closer is not in the expected shape.\n *\n * @internal\n */\nexport function _injectShadowMode(code: string, mode: 'open' | 'closed' | 'none'): string {\n // Match the trailing `))` that closes `defineElement(tag, defineComponent(setup))`.\n // The compiler always emits this exact two-paren close as the final tokens of\n // the defineElement call — we anchor on it and append the options object.\n // biome-ignore lint/correctness/noEmptyCharacterClassInRegex: [^] is valid JS — matches any char including newlines\n const re = /(defineElement\\(\\s*['\"][^'\"]+['\"]\\s*,\\s*defineComponent\\([^]*\\))\\s*\\)/\n const replaced = code.replace(re, (_m, inner: string) => `${inner}, { shadowMode: '${mode}' })`)\n return replaced\n}\n\n/**\n * Classify the compiled output of a single `.aihu` module as either a\n * **static** island (no reactive state — purely declarative DOM) or an\n * **interactive** island (uses the signals reactivity system).\n *\n * The heuristic is intentionally conservative: any source-level reference\n * to `signal(`, `computed(`, `effect(`, or `setSignal(` flips the file to\n * `'interactive'`. False positives (e.g. a string literal containing\n * `signal(`) are tolerable — they only forfeit the static-island\n * optimisation. False negatives are forbidden: a static-classified file\n * MUST NOT depend on the signals runtime at execution time.\n *\n * Plan 3.3 / acceptance criterion 1.\n *\n * @internal\n */\nexport function _classifyIsland(compiledCode: string): 'static' | 'interactive' {\n // Match call sites of the four reactive primitives. Use word-boundary\n // anchors so identifiers like `mySignal(` or `__effect(` do not trip the\n // heuristic. The `(` is required so that bare imports of the names in an\n // unused `import { signal }` line do not flip an otherwise-static module.\n return /\\b(?:signal|computed|effect|setSignal)\\s*\\(/.test(compiledCode) ? 'interactive' : 'static'\n}\n\n/**\n * Extract the custom element tag name from compiler-emitted code.\n * The compiler always emits `defineElement('tag-name', ...)` as the\n * first call — pull the first string literal argument.\n * Returns `null` if no `defineElement` call is found.\n * @internal\n */\nfunction _extractElementTag(code: string): string | null {\n const m = /defineElement\\(\\s*['\"]([^'\"]+)['\"]/m.exec(code)\n return m ? (m[1] ?? null) : null\n}\n\n/**\n * Instrument a compiled `.aihu` module with HMR support.\n *\n * The compiler always emits:\n *\n * import { defineComponent, defineElement } from '@aihu/runtime'\n * defineElement('tag', defineComponent((_ctx) => { ... }))\n *\n * This function:\n *\n * 1. Adds `_hmrReplace` to the `@aihu/runtime` import.\n * 2. Prepends a module-level slot variable `__aihu_setup__`.\n * 3. Rewrites the single `defineComponent(` call so the setup function\n * is captured via an assignment expression:\n * `defineComponent(__aihu_setup__ = ` (valid JS; assignment has\n * lower precedence than arrow fn, so `defineComponent` still\n * receives the function as its argument).\n * 4. Appends `export { __aihu_setup__ as default }` so that Vite's\n * `import.meta.hot.accept` callback receives the new setup via\n * `newModule.default` on hot reload.\n * 5. Appends the `import.meta.hot.accept` block, gated on `__DEV__`.\n *\n * The `__DEV__` guard ensures production bundlers (where they replace\n * `__DEV__` with `false`) dead-code-eliminate the entire HMR block.\n *\n * @internal\n */\nfunction _buildHmrCode(compiledCode: string, elementTag: string): string {\n // Step 1 — add _hmrReplace to the @aihu/runtime import.\n const withImport = compiledCode.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/runtime'/,\n (_m, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('_hmrReplace')) parts.push('_hmrReplace')\n return `import { ${parts.join(', ')} } from '@aihu/runtime'`\n },\n )\n\n // Step 2+3 — prepend slot variable and rewrite the defineComponent call.\n // Compiler emits exactly one `defineComponent(` followed by a function expr.\n // Rewrite: defineComponent(fn) → defineComponent(__aihu_setup__ = fn)\n // Assignment expression evaluates to `fn`, so defineComponent still\n // receives the setup function as its first argument unchanged.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const preamble = `let __aihu_setup__: ((ctx: any) => any) | undefined\\n`\n\n const patchedBody = withImport.replace(/\\bdefineComponent\\(/, 'defineComponent(__aihu_setup__ = ')\n\n const tag = JSON.stringify(elementTag)\n // Step 4+5 — postamble with default export and HMR acceptance.\n const postamble = `\nexport { __aihu_setup__ as default }\n\nif (typeof __DEV__ !== 'undefined' && __DEV__ && import.meta.hot) {\n import.meta.hot.accept((newModule) => {\n if (!newModule) return\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const newSetup = (newModule as any)['default']\n if (typeof newSetup !== 'function') return\n document.querySelectorAll(${tag}).forEach((el) => {\n _hmrReplace(el as HTMLElement, newSetup)\n })\n })\n}\n`\n\n return preamble + patchedBody + postamble\n}\n\n/**\n * Rewrite an interactive-island module so its `connectedCallback` waits\n * for the element to scroll into view before mounting. Plan 3.3 — applied\n * only when the consumer adds `defer` to the custom element tag (e.g.\n * `<my-counter defer>`); the runtime helper checks the attribute and\n * either mounts immediately or registers an `IntersectionObserver`.\n *\n * Implementation: the helper is added as a `_hydrateOnVisible` import\n * from `@aihu/runtime`, and the compiler-emitted `defineElement(...)`\n * call is wrapped in a `defineElement` that intercepts `connectedCallback`\n * to honour the `defer` attribute.\n *\n * The whole indirection is tree-shaken when no `.aihu` module reaches\n * this branch, because `_hydrateOnVisible` is exported from its own\n * sibling module inside `@aihu/runtime`.\n *\n * @internal\n */\nexport function _buildDeferredHydration(compiledCode: string, elementTag: string): string {\n // Add _hydrateOnVisible to the @aihu/runtime import.\n const withImport = compiledCode.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/runtime'/,\n (_m, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('_hydrateOnVisible')) parts.push('_hydrateOnVisible')\n return `import { ${parts.join(', ')} } from '@aihu/runtime'`\n },\n )\n\n // Wrap the class returned by defineComponent BEFORE defineElement\n // consumes it. The HTML spec caches lifecycle callbacks at\n // customElements.define() time, so we MUST mutate the prototype\n // before that call — not after. We accomplish this with a synchronous\n // helper invoked between defineComponent and defineElement.\n //\n // Source pattern (compiler-emitted):\n // defineElement('tag', defineComponent((_ctx) => { ... }))\n //\n // After this rewrite:\n // defineElement('tag', __aihu_wrap_defer__(defineComponent((_ctx) => { ... })))\n //\n // …with __aihu_wrap_defer__ defined in the appended preamble.\n const patched = withImport.replace(\n /defineElement\\(\\s*('[^']+'|\"[^\"]+\")\\s*,\\s*defineComponent\\(/,\n (_m, tagLit: string) => `defineElement(${tagLit}, __aihu_wrap_defer__(defineComponent(`,\n )\n // Match the closing `))` of the defineElement call. The HMR pass may\n // have inserted `__aihu_setup__ = ` before the inner function, but\n // the trailing `))` shape is unchanged. Replace exactly one occurrence\n // by anchoring on end-of-string trim; bail if the shape does not match.\n if (patched === withImport) {\n // The expected `defineElement(<tag>, defineComponent(` shape was not\n // present (e.g. compiler output changed). Skip defer wrapping rather\n // than emit broken code.\n return compiledCode\n }\n // Add a trailing `)` to balance the extra `(` from __aihu_wrap_defer__.\n // Source shape after _buildHmrCode is:\n // defineElement('tag', defineComponent(__aihu_setup__ = (_ctx) => {...}))\n // export { __aihu_setup__ as default }\n // if (typeof __DEV__ !== ...) { ... }\n // We must close BEFORE the export line. Match the first `))` followed\n // by a newline and `export` (or end-of-string for the unwrapped case).\n let balanced = patched.replace(/\\)\\s*\\)\\s*\\nexport\\s/, ')))\\nexport ')\n if (balanced === patched) {\n // No HMR postamble — the `))` is at end-of-string.\n balanced = patched.replace(/\\)\\s*\\)\\s*$/, ')))\\n')\n }\n if (balanced === patched) {\n // Could not find the matching `))` — bail out.\n return compiledCode\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const helper = `\n// Plan 3.3 (Islands) — defer attribute support. Wraps the constructor\n// returned by defineComponent so instances bearing the \\`defer\\` attribute\n// hydrate lazily via IntersectionObserver. Bare instances retain the\n// eager Plan 3.2 hydration path.\nfunction __aihu_wrap_defer__<T extends typeof HTMLElement>(Ctor: T): T {\n const orig = (Ctor.prototype as unknown as { connectedCallback?: () => void }).connectedCallback\n if (typeof orig !== 'function') return Ctor\n ;(Ctor.prototype as unknown as { connectedCallback: () => void }).connectedCallback = function (this: HTMLElement) {\n if (this.hasAttribute('defer')) {\n _hydrateOnVisible(this, () => orig.call(this))\n } else {\n orig.call(this)\n }\n }\n return Ctor\n}\n`\n void elementTag\n return helper + balanced\n}\n\n/**\n * Build a static-island shim for a compiled module.\n *\n * The compiled module emitted by the Rust codegen has the shape:\n *\n * import { branch, leaf, slot } from '@aihu/arbor'\n * import { defineComponent, defineElement } from '@aihu/runtime'\n * defineElement('tag', defineComponent((_ctx) => { return <tree> }))\n *\n * For a static island we know `<tree>` contains no `signal(`/`computed(`\n * calls. We can therefore:\n *\n * 1. Drop the `@aihu/runtime` import (saves ~600 B gz of defineComponent\n * + defineElement + bootstrap glue).\n * 2. Replace `defineElement(tag, defineComponent(setup))` with a tiny\n * inline class that mounts the tree directly via `mount()` (which the\n * arbor barrel already exports).\n * 3. Tag the file with a `// SCRIBE_STATIC_ISLAND` comment so consumers\n * can audit which routes shipped zero-JS-runtime.\n *\n * Falls back to the original code if the regex shape does not match\n * (defensive: a future compiler change must opt back into static-island\n * emission explicitly rather than silently break).\n *\n * @internal\n */\nexport function _buildStaticIsland(compiledCode: string, elementTag: string): string {\n // Confirm the shape we expect: a single defineElement(...) call wrapping\n // a single defineComponent(...) call. Bail out otherwise.\n const callRe = /defineElement\\(\\s*['\"][^'\"]+['\"]\\s*,\\s*defineComponent\\(/\n if (!callRe.test(compiledCode)) return compiledCode\n\n // Strip the `@aihu/runtime` import line entirely — static islands\n // don't reference defineComponent/defineElement after the rewrite.\n const withoutRuntimeImport = compiledCode.replace(\n /^\\s*import\\s*\\{[^}]*\\}\\s*from\\s*'@aihu\\/runtime'\\s*;?\\s*$/m,\n '',\n )\n\n // Ensure `mount` is imported from @aihu/arbor (it already exposes\n // branch/leaf/slot, so we just append `mount` to the existing list).\n const withArborMount = withoutRuntimeImport.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/arbor'/,\n (_m, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('mount')) parts.push('mount')\n return `import { ${parts.join(', ')} } from '@aihu/arbor'`\n },\n )\n\n // Replace `defineElement('tag', defineComponent((_ctx) => { ... }))`\n // with an inline `customElements.define` whose connectedCallback mounts\n // the static tree. The setup function is captured verbatim by replacing\n // the wrapping calls with anonymous-IIFE bookends.\n const tagJson = JSON.stringify(elementTag)\n const rewritten = withArborMount\n .replace(\n /defineElement\\(\\s*['\"][^'\"]+['\"]\\s*,\\s*defineComponent\\(/,\n `customElements.define(${tagJson}, class extends HTMLElement {\\n connectedCallback() {\\n const root = this.attachShadow({ mode: 'open' })\\n const __aihu_setup__ = (`,\n )\n .replace(\n /\\)\\s*\\)\\s*$/,\n `)\\n mount(__aihu_setup__({ host: root, element: this }), root)\\n }\\n})\\n`,\n )\n\n return `// SCRIBE_STATIC_ISLAND — zero @aihu/runtime references\\n${rewritten}`\n}\n\n/**\n * Compile a .aihu source string to TypeScript.\n * map is null — source maps are deferred to v1 (OQ-C8)\n */\nexport function transform(source: string, id: string): { code: string; map: null } {\n const stem = basename(id, '.aihu')\n const code = execFileSync(binPath, ['--stdin', '--tag', stem, '--path', id], {\n input: source,\n encoding: 'utf8',\n })\n return {\n code,\n map: null, // source maps deferred to v1 (OQ-C8)\n }\n}\n\n/**\n * Inject `_setMount(mount)` + `_setSignal(signal)` auto-wiring into a compiled\n * `.aihu` module. Adds the necessary symbols to existing imports and inserts\n * the boot calls right after the last `import` statement.\n *\n * @internal\n */\nexport function _injectAutoWiring(code: string): string {\n // 1. Add `mount` to the @aihu/arbor import (or create it).\n let result: string\n if (code.includes(\"from '@aihu/arbor'\")) {\n result = code.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/arbor'/,\n (_m: string, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('mount')) parts.push('mount')\n return `import { ${parts.join(', ')} } from '@aihu/arbor'`\n },\n )\n } else {\n result = `import { mount } from '@aihu/arbor'\\n` + code\n }\n\n // 2. Add `signal` to the non-type @aihu/signals import (or create it).\n // Note: `import\\s+\\{` does NOT match `import type {` (the regex needs `{` immediately\n // after whitespace, whereas `import type {` has `type` in between). No negation guard\n // is needed — the replace callback below already skips `import type` lines.\n if (/import\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals'/.test(result)) {\n // There IS a value import from signals — add `signal` if missing.\n result = result.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/signals'/,\n (_m: string, imports: string) => {\n // Skip type-only imports\n if (_m.startsWith('import type')) return _m\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('signal')) parts.push('signal')\n return `import { ${parts.join(', ')} } from '@aihu/signals'`\n },\n )\n } else if (!/import.*from\\s*'@aihu\\/signals'/.test(result)) {\n // No signals import at all — insert after arbor import\n result = result.replace(\n /import\\s*\\{[^}]*\\}\\s*from\\s*'@aihu\\/arbor'/,\n (m: string) => `${m}\\nimport { signal } from '@aihu/signals'`,\n )\n }\n // If only `import type { Signal }` exists, insert value import after it\n else if (\n /import\\s+type\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals'/.test(result) &&\n !result.match(/import\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals'/)\n ) {\n result = result.replace(\n /(import\\s+type\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals')/,\n (_m: string, typeImport: string) => `${typeImport}\\nimport { signal } from '@aihu/signals'`,\n )\n }\n\n // 3. Add `_setMount`, `_setSignal` to the @aihu/runtime import.\n result = result.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/runtime'/,\n (_m: string, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('_setMount')) parts.push('_setMount')\n if (!parts.includes('_setSignal')) parts.push('_setSignal')\n return `import { ${parts.join(', ')} } from '@aihu/runtime'`\n },\n )\n\n // 4. Insert boot calls after the last `import` statement.\n const lines = result.split('\\n')\n let lastImportIdx = -1\n for (let i = lines.length - 1; i >= 0; i--) {\n const t = (lines[i] ?? '').trim()\n if (t.startsWith('import ') || t.startsWith('import{')) {\n lastImportIdx = i\n break\n }\n }\n if (lastImportIdx !== -1) {\n lines.splice(lastImportIdx + 1, 0, '_setMount(mount)', '_setSignal(signal)', '')\n result = lines.join('\\n')\n }\n\n return result\n}\n\n/**\n * Vite plugin that compiles .aihu files to TypeScript during build and dev.\n *\n * Use `enforce: 'pre'` so the hook fires before Vite/Rollup's built-in\n * parsers attempt to process the raw .aihu content as JavaScript.\n *\n * @example\n * // vite.config.ts\n * import { aihuCompilerPlugin } from '@aihu/compiler'\n * export default { plugins: [aihuCompilerPlugin()] }\n *\n * **Known Limitation — Bun + Rollup4 ESM incompatibility (v0):**\n *\n * `bun vite build` fails in the `fixtures/vite-counter` fixture with two\n * cascading errors:\n *\n * 1. **Missing devDependency:** `vite` is declared only as an optional\n * `peerDependency` in `packages/compiler/package.json`. Bun does not\n * install optional peers automatically, so `bun vite build` exits\n * immediately with `Cannot find package 'vite'`.\n *\n * 2. **Bun + Rollup4 bridge:** Even with Vite installed, Bun processes\n * `vite.config.ts` through its own internal bundler before handing off\n * to Rollup4. When `@aihu/compiler` is resolved from the workspace\n * symlink (`dist/index.js`), Bun's ESM loader evaluates the module at\n * config-load time. The subprocess call inside `transform()` depends on\n * the Rust binary being at `../bin/aihu-compile` relative to `dist/`\n * (written by the postinstall hook). In a dev workspace where postinstall\n * has not run, this path does not exist and `execFileSync` throws. Bun surfaces\n * the error as a config-load failure, not a per-file transform error,\n * causing the entire build to abort before any `.aihu` file is\n * processed.\n *\n * **Workaround (v0):** Use `bun run integrate.ts` directly from\n * `packages/compiler/fixtures/vite-counter/`. This script calls\n * `transform()` from `@aihu/compiler` without involving Vite or Rollup.\n * Preconditions: (1) `cargo build --release` in `packages/compiler/`,\n * (2) `bun install` at the repo root.\n *\n * **v1 resolution:** Add `vite` as a `devDependency` in\n * `packages/compiler/package.json`; add a WASM or pre-built binary\n * strategy so the Rust binary is bundled with the npm package and does not\n * require a separate `cargo build --release` step.\n */\nexport function aihuCompilerPlugin(options?: AihuCompilerPluginOptions): VitePlugin {\n const islandsEnabled = options?.islands !== false\n const shadowMode = options?.shadowMode\n return {\n name: 'aihu-compiler',\n enforce: 'pre',\n transform(code, id) {\n // Strip Vite query strings (e.g. `?import`, `?t=...`) before checking the extension.\n const rawId = id.split('?')[0]!\n if (!rawId.endsWith('.aihu')) return\n return (async () => {\n const result = transform(code, rawId)\n const compiled =\n shadowMode != null ? _injectShadowMode(result.code, shadowMode) : result.code\n const elementTag = _extractElementTag(compiled)\n\n let out: string\n\n // Plan 3.3 — static-island fast path. Bypasses HMR injection because\n // a component with no signals has no setup state to hot-replace.\n // Static islands strip @aihu/runtime entirely — do NOT inject auto-wiring\n // (it would reference _setMount/_setSignal as undefined identifiers).\n if (islandsEnabled && elementTag !== null && _classifyIsland(compiled) === 'static') {\n out = _buildStaticIsland(compiled, elementTag)\n } else if (elementTag !== null) {\n // Inject HMR instrumentation. The injected block is gated on\n // `typeof __DEV__ !== 'undefined' && __DEV__` so production\n // bundlers dead-code-eliminate it when they set __DEV__ = false.\n out = _buildHmrCode(compiled, elementTag)\n // Plan 3.3 — interactive islands also gain `defer` attribute\n // support so individual instances can opt into lazy hydration.\n out = _buildDeferredHydration(out, elementTag)\n // Inject auto-wiring so consumers don't need a manual main.ts bootstrap.\n out = _injectAutoWiring(out)\n } else {\n out = compiled\n // Inject auto-wiring so consumers don't need a manual main.ts bootstrap.\n out = _injectAutoWiring(out)\n }\n\n // The Rust compiler emits TypeScript (type casts, import type, etc.) and\n // the injected HMR / defer helpers also contain TS generics and casts.\n // Vite does NOT re-run its esbuild TypeScript-strip step when a plugin\n // returns code for a non-.ts ID — so we strip types here ourselves using\n // Vite's own transformWithEsbuild API (always available in a Vite context).\n try {\n const { transformWithEsbuild } = await import('vite')\n const stripped = await transformWithEsbuild(out, 'component.ts', {\n target: 'esnext',\n sourcemap: false,\n })\n return { code: stripped.code, map: null }\n } catch {\n // If running outside Vite (e.g. tests, standalone transform), return as-is.\n return { code: out, map: null }\n }\n })()\n },\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../js/index.ts"],"sourcesContent":["/**\n * @aihu/compiler — TypeScript wrapper around the aihu-compile Rust binary.\n *\n * Exports:\n * transform(source, id) — compile a single .aihu file to TypeScript\n * aihuCompilerPlugin() — Vite plugin that wires transform() into the build\n */\nimport { execFileSync } from 'node:child_process'\nimport { basename, dirname, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\n// Binary resolution: env var override, fallback to the bin/ directory written\n// by the postinstall hook (packages/compiler/bin/aihu-compile[.exe]).\nconst ext = process.platform === 'win32' ? '.exe' : ''\nconst binPath: string =\n process.env.SCRIBE_COMPILE_BIN ??\n resolve(dirname(fileURLToPath(import.meta.url)), `../bin/aihu-compile${ext}`)\n\n// Minimal VitePlugin interface — avoids importing from 'vite' at compile time.\n// Structurally compatible with Vite's Plugin type.\ninterface VitePlugin {\n readonly name: string\n enforce?: 'pre' | 'post'\n transform?: (\n code: string,\n id: string,\n ) => Promise<{ code: string; map: null }> | { code: string; map: null } | null | undefined\n}\n\n/**\n * Options for `aihuCompilerPlugin()` (Plan 3.3 — Islands).\n */\nexport interface AihuCompilerPluginOptions {\n /**\n * When `true` (default), components classified as `'static'` by\n * `_classifyIsland()` are emitted with a minimal HTML-only registration\n * shim that ships **zero** `@aihu/runtime` and `@aihu/signals` JS to\n * the browser. Components classified as `'interactive'` retain the\n * full runtime path.\n *\n * Setting `islands: false` opts every component back into the unified\n * runtime path (Plan 3.2 baseline behaviour).\n */\n islands?: boolean\n\n /**\n * Project-wide shadow-DOM mode applied to every `.aihu` SFC compiled\n * by this plugin instance. When set, the plugin post-processes the\n * compiled JS to inject `, { shadowMode: '<mode>' }` as the third arg\n * to the emitted `defineElement(tag, defineComponent(...))` call.\n *\n * - `'open'` — default browser behaviour (shadow root, externally readable).\n * - `'closed'` — shadow root, externally hidden.\n * - `'none'` — **no shadow root.** The component mounts into its own\n * element. Required for global utility-class CSS frameworks\n * like Tailwind, UnoCSS, Pico that rely on the cascade.\n *\n * Per-component override is not yet supported via SFC syntax (post-v1).\n * For per-component control today, hand-author the component with\n * `defineElement(tag, Ctor, { shadowMode: '...' })`.\n */\n shadowMode?: 'open' | 'closed' | 'none'\n}\n\n/**\n * Inject `{ shadowMode: '...' }` as the third argument to the emitted\n * `defineElement('tag', defineComponent(...))` call. The compiler emits\n * exactly two arguments today; this rewrites the closing of the\n * defineElement call to include the options object. Idempotent — leaves\n * code untouched when the closer is not in the expected shape.\n *\n * @internal\n */\nexport function _injectShadowMode(code: string, mode: 'open' | 'closed' | 'none'): string {\n // Match the trailing `))` that closes `defineElement(tag, defineComponent(setup))`.\n // The compiler always emits this exact two-paren close as the final tokens of\n // the defineElement call — we anchor on it and append the options object.\n // biome-ignore lint/correctness/noEmptyCharacterClassInRegex: [^] is valid JS — matches any char including newlines\n const re = /(defineElement\\(\\s*['\"][^'\"]+['\"]\\s*,\\s*defineComponent\\([^]*\\))\\s*\\)/\n const replaced = code.replace(re, (_m, inner: string) => `${inner}, { shadowMode: '${mode}' })`)\n return replaced\n}\n\n/**\n * Classify the compiled output of a single `.aihu` module as either a\n * **static** island (no reactive state — purely declarative DOM) or an\n * **interactive** island (uses the signals reactivity system).\n *\n * The heuristic is intentionally conservative: any source-level reference\n * to a primitive that requires the `defineComponent` owner context flips\n * the file to `'interactive'`. False positives (e.g. a string literal\n * containing `signal(`) are tolerable — they only forfeit the static-island\n * optimisation. False negatives are forbidden: a static-classified file\n * MUST NOT depend on the signals runtime at execution time.\n *\n * Owner-requiring primitives covered:\n * - `signal(`, `computed(`, `effect(`, `setSignal(` (signals runtime)\n * - `onMount(`, `onCleanup(` (lifecycle hooks — throw `no owner` outside\n * `defineComponent` because they push into the active owner's mount/\n * cleanup queues)\n *\n * Plan 3.3 / acceptance criterion 1.\n *\n * @internal\n */\nexport function _classifyIsland(compiledCode: string): 'static' | 'interactive' {\n // Match call sites of the reactive + lifecycle primitives. Use word-boundary\n // anchors so identifiers like `mySignal(` or `__effect(` do not trip the\n // heuristic. The `(` is required so that bare imports of the names in an\n // unused `import { signal }` line do not flip an otherwise-static module.\n return /\\b(?:signal|computed|effect|setSignal|onMount|onCleanup)\\s*\\(/.test(compiledCode)\n ? 'interactive'\n : 'static'\n}\n\n/**\n * Extract the custom element tag name from compiler-emitted code.\n * The compiler always emits `defineElement('tag-name', ...)` as the\n * first call — pull the first string literal argument.\n * Returns `null` if no `defineElement` call is found.\n * @internal\n */\nfunction _extractElementTag(code: string): string | null {\n const m = /defineElement\\(\\s*['\"]([^'\"]+)['\"]/m.exec(code)\n return m ? (m[1] ?? null) : null\n}\n\n/**\n * Instrument a compiled `.aihu` module with HMR support.\n *\n * The compiler always emits:\n *\n * import { defineComponent, defineElement } from '@aihu/runtime'\n * defineElement('tag', defineComponent((_ctx) => { ... }))\n *\n * This function:\n *\n * 1. Adds `_hmrReplace` to the `@aihu/runtime` import.\n * 2. Prepends a module-level slot variable `__aihu_setup__`.\n * 3. Rewrites the single `defineComponent(` call so the setup function\n * is captured via an assignment expression:\n * `defineComponent(__aihu_setup__ = ` (valid JS; assignment has\n * lower precedence than arrow fn, so `defineComponent` still\n * receives the function as its argument).\n * 4. Appends `export { __aihu_setup__ as default }` so that Vite's\n * `import.meta.hot.accept` callback receives the new setup via\n * `newModule.default` on hot reload.\n * 5. Appends the `import.meta.hot.accept` block, gated on `__DEV__`.\n *\n * The `__DEV__` guard ensures production bundlers (where they replace\n * `__DEV__` with `false`) dead-code-eliminate the entire HMR block.\n *\n * @internal\n */\nfunction _buildHmrCode(compiledCode: string, elementTag: string): string {\n // Step 1 — add _hmrReplace to the @aihu/runtime import.\n const withImport = compiledCode.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/runtime'/,\n (_m, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('_hmrReplace')) parts.push('_hmrReplace')\n return `import { ${parts.join(', ')} } from '@aihu/runtime'`\n },\n )\n\n // Step 2+3 — prepend slot variable and rewrite the defineComponent call.\n // Compiler emits exactly one `defineComponent(` followed by a function expr.\n // Rewrite: defineComponent(fn) → defineComponent(__aihu_setup__ = fn)\n // Assignment expression evaluates to `fn`, so defineComponent still\n // receives the setup function as its first argument unchanged.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const preamble = `let __aihu_setup__: ((ctx: any) => any) | undefined\\n`\n\n const patchedBody = withImport.replace(/\\bdefineComponent\\(/, 'defineComponent(__aihu_setup__ = ')\n\n const tag = JSON.stringify(elementTag)\n // Step 4+5 — postamble with default export and HMR acceptance.\n const postamble = `\nexport { __aihu_setup__ as default }\n\nif (typeof __DEV__ !== 'undefined' && __DEV__ && import.meta.hot) {\n import.meta.hot.accept((newModule) => {\n if (!newModule) return\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const newSetup = (newModule as any)['default']\n if (typeof newSetup !== 'function') return\n document.querySelectorAll(${tag}).forEach((el) => {\n _hmrReplace(el as HTMLElement, newSetup)\n })\n })\n}\n`\n\n return preamble + patchedBody + postamble\n}\n\n/**\n * Rewrite an interactive-island module so its `connectedCallback` waits\n * for the element to scroll into view before mounting. Plan 3.3 — applied\n * only when the consumer adds `defer` to the custom element tag (e.g.\n * `<my-counter defer>`); the runtime helper checks the attribute and\n * either mounts immediately or registers an `IntersectionObserver`.\n *\n * Implementation: the helper is added as a `_hydrateOnVisible` import\n * from `@aihu/runtime`, and the compiler-emitted `defineElement(...)`\n * call is wrapped in a `defineElement` that intercepts `connectedCallback`\n * to honour the `defer` attribute.\n *\n * The whole indirection is tree-shaken when no `.aihu` module reaches\n * this branch, because `_hydrateOnVisible` is exported from its own\n * sibling module inside `@aihu/runtime`.\n *\n * @internal\n */\nexport function _buildDeferredHydration(compiledCode: string, elementTag: string): string {\n // Add _hydrateOnVisible to the @aihu/runtime import.\n const withImport = compiledCode.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/runtime'/,\n (_m, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('_hydrateOnVisible')) parts.push('_hydrateOnVisible')\n return `import { ${parts.join(', ')} } from '@aihu/runtime'`\n },\n )\n\n // Wrap the class returned by defineComponent BEFORE defineElement\n // consumes it. The HTML spec caches lifecycle callbacks at\n // customElements.define() time, so we MUST mutate the prototype\n // before that call — not after. We accomplish this with a synchronous\n // helper invoked between defineComponent and defineElement.\n //\n // Source pattern (compiler-emitted):\n // defineElement('tag', defineComponent((_ctx) => { ... }))\n //\n // After this rewrite:\n // defineElement('tag', __aihu_wrap_defer__(defineComponent((_ctx) => { ... })))\n //\n // …with __aihu_wrap_defer__ defined in the appended preamble.\n const patched = withImport.replace(\n /defineElement\\(\\s*('[^']+'|\"[^\"]+\")\\s*,\\s*defineComponent\\(/,\n (_m, tagLit: string) => `defineElement(${tagLit}, __aihu_wrap_defer__(defineComponent(`,\n )\n // Match the closing `))` of the defineElement call. The HMR pass may\n // have inserted `__aihu_setup__ = ` before the inner function, but\n // the trailing `))` shape is unchanged. Replace exactly one occurrence\n // by anchoring on end-of-string trim; bail if the shape does not match.\n if (patched === withImport) {\n // The expected `defineElement(<tag>, defineComponent(` shape was not\n // present (e.g. compiler output changed). Skip defer wrapping rather\n // than emit broken code.\n return compiledCode\n }\n // Add a trailing `)` to balance the extra `(` from __aihu_wrap_defer__.\n // Source shape after _buildHmrCode is:\n // defineElement('tag', defineComponent(__aihu_setup__ = (_ctx) => {...}))\n // export { __aihu_setup__ as default }\n // if (typeof __DEV__ !== ...) { ... }\n // We must close BEFORE the export line. Match the first `))` followed\n // by a newline and `export` (or end-of-string for the unwrapped case).\n let balanced = patched.replace(/\\)\\s*\\)\\s*\\nexport\\s/, ')))\\nexport ')\n if (balanced === patched) {\n // No HMR postamble — the `))` is at end-of-string.\n balanced = patched.replace(/\\)\\s*\\)\\s*$/, ')))\\n')\n }\n if (balanced === patched) {\n // Could not find the matching `))` — bail out.\n return compiledCode\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const helper = `\n// Plan 3.3 (Islands) — defer attribute support. Wraps the constructor\n// returned by defineComponent so instances bearing the \\`defer\\` attribute\n// hydrate lazily via IntersectionObserver. Bare instances retain the\n// eager Plan 3.2 hydration path.\nfunction __aihu_wrap_defer__<T extends typeof HTMLElement>(Ctor: T): T {\n const orig = (Ctor.prototype as unknown as { connectedCallback?: () => void }).connectedCallback\n if (typeof orig !== 'function') return Ctor\n ;(Ctor.prototype as unknown as { connectedCallback: () => void }).connectedCallback = function (this: HTMLElement) {\n if (this.hasAttribute('defer')) {\n _hydrateOnVisible(this, () => orig.call(this))\n } else {\n orig.call(this)\n }\n }\n return Ctor\n}\n`\n void elementTag\n return helper + balanced\n}\n\n/**\n * Build a static-island shim for a compiled module.\n *\n * The compiled module emitted by the Rust codegen has the shape:\n *\n * import { branch, leaf, slot } from '@aihu/arbor'\n * import { defineComponent, defineElement } from '@aihu/runtime'\n * defineElement('tag', defineComponent((_ctx) => { return <tree> }))\n *\n * For a static island we know `<tree>` contains no `signal(`/`computed(`\n * calls. We can therefore:\n *\n * 1. Drop the `@aihu/runtime` import (saves ~600 B gz of defineComponent\n * + defineElement + bootstrap glue).\n * 2. Replace `defineElement(tag, defineComponent(setup))` with a tiny\n * inline class that mounts the tree directly via `mount()` (which the\n * arbor barrel already exports).\n * 3. Tag the file with a `// SCRIBE_STATIC_ISLAND` comment so consumers\n * can audit which routes shipped zero-JS-runtime.\n *\n * Falls back to the original code if the regex shape does not match\n * (defensive: a future compiler change must opt back into static-island\n * emission explicitly rather than silently break).\n *\n * @internal\n */\nexport function _buildStaticIsland(compiledCode: string, elementTag: string): string {\n // Confirm the shape we expect: a single defineElement(...) call wrapping\n // a single defineComponent(...) call. Bail out otherwise.\n const callRe = /defineElement\\(\\s*['\"][^'\"]+['\"]\\s*,\\s*defineComponent\\(/\n if (!callRe.test(compiledCode)) return compiledCode\n\n // Strip the `@aihu/runtime` import line entirely — static islands\n // don't reference defineComponent/defineElement after the rewrite.\n const withoutRuntimeImport = compiledCode.replace(\n /^\\s*import\\s*\\{[^}]*\\}\\s*from\\s*'@aihu\\/runtime'\\s*;?\\s*$/m,\n '',\n )\n\n // Ensure `mount` is imported from @aihu/arbor (it already exposes\n // branch/leaf/slot, so we just append `mount` to the existing list).\n const withArborMount = withoutRuntimeImport.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/arbor'/,\n (_m, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('mount')) parts.push('mount')\n return `import { ${parts.join(', ')} } from '@aihu/arbor'`\n },\n )\n\n // Replace `defineElement('tag', defineComponent((_ctx) => { ... }))`\n // with an inline `customElements.define` whose connectedCallback mounts\n // the static tree. The setup function is captured verbatim by replacing\n // the wrapping calls with anonymous-IIFE bookends.\n const tagJson = JSON.stringify(elementTag)\n const rewritten = withArborMount\n .replace(\n /defineElement\\(\\s*['\"][^'\"]+['\"]\\s*,\\s*defineComponent\\(/,\n `customElements.define(${tagJson}, class extends HTMLElement {\\n connectedCallback() {\\n const root = this.attachShadow({ mode: 'open' })\\n const __aihu_setup__ = (`,\n )\n .replace(\n /\\)\\s*\\)\\s*$/,\n `)\\n mount(__aihu_setup__({ host: root, element: this }), root)\\n }\\n})\\n`,\n )\n\n return `// SCRIBE_STATIC_ISLAND — zero @aihu/runtime references\\n${rewritten}`\n}\n\n/**\n * Compile a .aihu source string to TypeScript.\n * map is null — source maps are deferred to v1 (OQ-C8)\n */\nexport function transform(source: string, id: string): { code: string; map: null } {\n const stem = basename(id, '.aihu')\n const code = execFileSync(binPath, ['--stdin', '--tag', stem, '--path', id], {\n input: source,\n encoding: 'utf8',\n })\n return {\n code,\n map: null, // source maps deferred to v1 (OQ-C8)\n }\n}\n\n/**\n * Inject `_setMount(mount)` + `_setSignal(signal)` auto-wiring into a compiled\n * `.aihu` module. Adds the necessary symbols to existing imports and inserts\n * the boot calls right after the last `import` statement.\n *\n * @internal\n */\nexport function _injectAutoWiring(code: string): string {\n // 1. Add `mount` to the @aihu/arbor import (or create it).\n let result: string\n if (code.includes(\"from '@aihu/arbor'\")) {\n result = code.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/arbor'/,\n (_m: string, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('mount')) parts.push('mount')\n return `import { ${parts.join(', ')} } from '@aihu/arbor'`\n },\n )\n } else {\n result = `import { mount } from '@aihu/arbor'\\n${code}`\n }\n\n // 2. Add `signal` to the non-type @aihu/signals import (or create it).\n // Note: `import\\s+\\{` does NOT match `import type {` (the regex needs `{` immediately\n // after whitespace, whereas `import type {` has `type` in between). No negation guard\n // is needed — the replace callback below already skips `import type` lines.\n if (/import\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals'/.test(result)) {\n // There IS a value import from signals — add `signal` if missing.\n result = result.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/signals'/,\n (_m: string, imports: string) => {\n // Skip type-only imports\n if (_m.startsWith('import type')) return _m\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('signal')) parts.push('signal')\n return `import { ${parts.join(', ')} } from '@aihu/signals'`\n },\n )\n } else if (!/import.*from\\s*'@aihu\\/signals'/.test(result)) {\n // No signals import at all — insert after arbor import\n result = result.replace(\n /import\\s*\\{[^}]*\\}\\s*from\\s*'@aihu\\/arbor'/,\n (m: string) => `${m}\\nimport { signal } from '@aihu/signals'`,\n )\n }\n // If only `import type { Signal }` exists, insert value import after it\n else if (\n /import\\s+type\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals'/.test(result) &&\n !result.match(/import\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals'/)\n ) {\n result = result.replace(\n /(import\\s+type\\s+\\{[^}]*\\}\\s+from\\s+'@aihu\\/signals')/,\n (_m: string, typeImport: string) => `${typeImport}\\nimport { signal } from '@aihu/signals'`,\n )\n }\n\n // 3. Add `_setMount`, `_setSignal` to the @aihu/runtime import.\n result = result.replace(\n /import\\s*\\{([^}]*)\\}\\s*from\\s*'@aihu\\/runtime'/,\n (_m: string, imports: string) => {\n const parts = imports\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n if (!parts.includes('_setMount')) parts.push('_setMount')\n if (!parts.includes('_setSignal')) parts.push('_setSignal')\n return `import { ${parts.join(', ')} } from '@aihu/runtime'`\n },\n )\n\n // 4. Insert boot calls after the last `import` statement.\n const lines = result.split('\\n')\n let lastImportIdx = -1\n for (let i = lines.length - 1; i >= 0; i--) {\n const t = (lines[i] ?? '').trim()\n if (t.startsWith('import ') || t.startsWith('import{')) {\n lastImportIdx = i\n break\n }\n }\n if (lastImportIdx !== -1) {\n lines.splice(lastImportIdx + 1, 0, '_setMount(mount)', '_setSignal(signal)', '')\n result = lines.join('\\n')\n }\n\n return result\n}\n\n/**\n * Vite plugin that compiles .aihu files to TypeScript during build and dev.\n *\n * Use `enforce: 'pre'` so the hook fires before Vite/Rollup's built-in\n * parsers attempt to process the raw .aihu content as JavaScript.\n *\n * @example\n * // vite.config.ts\n * import { aihuCompilerPlugin } from '@aihu/compiler'\n * export default { plugins: [aihuCompilerPlugin()] }\n *\n * **Known Limitation — Bun + Rollup4 ESM incompatibility (v0):**\n *\n * `bun vite build` fails in the `fixtures/vite-counter` fixture with two\n * cascading errors:\n *\n * 1. **Missing devDependency:** `vite` is declared only as an optional\n * `peerDependency` in `packages/compiler/package.json`. Bun does not\n * install optional peers automatically, so `bun vite build` exits\n * immediately with `Cannot find package 'vite'`.\n *\n * 2. **Bun + Rollup4 bridge:** Even with Vite installed, Bun processes\n * `vite.config.ts` through its own internal bundler before handing off\n * to Rollup4. When `@aihu/compiler` is resolved from the workspace\n * symlink (`dist/index.js`), Bun's ESM loader evaluates the module at\n * config-load time. The subprocess call inside `transform()` depends on\n * the Rust binary being at `../bin/aihu-compile` relative to `dist/`\n * (written by the postinstall hook). In a dev workspace where postinstall\n * has not run, this path does not exist and `execFileSync` throws. Bun surfaces\n * the error as a config-load failure, not a per-file transform error,\n * causing the entire build to abort before any `.aihu` file is\n * processed.\n *\n * **Workaround (v0):** Use `bun run integrate.ts` directly from\n * `packages/compiler/fixtures/vite-counter/`. This script calls\n * `transform()` from `@aihu/compiler` without involving Vite or Rollup.\n * Preconditions: (1) `cargo build --release` in `packages/compiler/`,\n * (2) `bun install` at the repo root.\n *\n * **v1 resolution:** Add `vite` as a `devDependency` in\n * `packages/compiler/package.json`; add a WASM or pre-built binary\n * strategy so the Rust binary is bundled with the npm package and does not\n * require a separate `cargo build --release` step.\n */\nexport function aihuCompilerPlugin(options?: AihuCompilerPluginOptions): VitePlugin {\n const islandsEnabled = options?.islands !== false\n const shadowMode = options?.shadowMode\n return {\n name: 'aihu-compiler',\n enforce: 'pre',\n transform(code, id) {\n // Strip Vite query strings (e.g. `?import`, `?t=...`) before checking the extension.\n const rawId = id.split('?')[0]!\n if (!rawId.endsWith('.aihu')) return\n return (async () => {\n const result = transform(code, rawId)\n const compiled =\n shadowMode != null ? _injectShadowMode(result.code, shadowMode) : result.code\n const elementTag = _extractElementTag(compiled)\n\n let out: string\n\n // Plan 3.3 — static-island fast path. Bypasses HMR injection because\n // a component with no signals has no setup state to hot-replace.\n // Static islands strip @aihu/runtime entirely — do NOT inject auto-wiring\n // (it would reference _setMount/_setSignal as undefined identifiers).\n if (islandsEnabled && elementTag !== null && _classifyIsland(compiled) === 'static') {\n out = _buildStaticIsland(compiled, elementTag)\n } else if (elementTag !== null) {\n // Inject HMR instrumentation. The injected block is gated on\n // `typeof __DEV__ !== 'undefined' && __DEV__` so production\n // bundlers dead-code-eliminate it when they set __DEV__ = false.\n out = _buildHmrCode(compiled, elementTag)\n // Plan 3.3 — interactive islands also gain `defer` attribute\n // support so individual instances can opt into lazy hydration.\n out = _buildDeferredHydration(out, elementTag)\n // Inject auto-wiring so consumers don't need a manual main.ts bootstrap.\n out = _injectAutoWiring(out)\n } else {\n out = compiled\n // Inject auto-wiring so consumers don't need a manual main.ts bootstrap.\n out = _injectAutoWiring(out)\n }\n\n // The Rust compiler emits TypeScript (type casts, import type, etc.) and\n // the injected HMR / defer helpers also contain TS generics and casts.\n // Vite does NOT re-run its TS-strip step when a plugin returns code for a\n // non-.ts ID, so we must strip types ourselves before returning.\n //\n // Vite 8+ (Rolldown/Oxc): transformWithEsbuild is a no-op; declare the\n // module type as 'ts' so Rolldown strips types natively. The extra\n // moduleType field is silently ignored by Vite 5 / esbuild.\n // Vite 5 (esbuild): transformWithEsbuild does the stripping.\n try {\n const vite = await import('vite')\n if ('transformWithOxc' in vite && typeof vite.transformWithOxc === 'function') {\n // Vite 8+: return TS and declare the module type — Rolldown strips types.\n // biome-ignore lint/suspicious/noExplicitAny: moduleType is vite 8 / rolldown API\n return { code: out, moduleType: 'ts', map: null } as any\n }\n const stripped = await vite.transformWithEsbuild(out, 'component.ts', {\n target: 'esnext',\n sourcemap: false,\n })\n return { code: stripped.code, map: null }\n } catch {\n // If running outside Vite (e.g. tests, standalone transform), return as-is.\n return { code: out, map: null }\n }\n })()\n },\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
package/bin/scribe-compile.exe
DELETED
|
Binary file
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import e,{stdin as t,stdout as n}from"node:process";import{WriteStream as r}from"node:tty";import i from"node:readline";function a(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}var o,s;function c(){if(s)return o;s=1;let e={to(e,t){return t?`[${t+1};${e+1}H`:`[${e+1}G`},move(e,t){let n=``;return e<0?n+=`[${-e}D`:e>0&&(n+=`[${e}C`),t<0?n+=`[${-t}A`:t>0&&(n+=`[${t}B`),n},up:(e=1)=>`[${e}A`,down:(e=1)=>`[${e}B`,forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>`\x1B[E`.repeat(e),prevLine:(e=1)=>`\x1B[F`.repeat(e),left:`\x1B[G`,hide:`\x1B[?25l`,show:`\x1B[?25h`,save:`\x1B7`,restore:`\x1B8`};return o={cursor:e,scroll:{up:(e=1)=>`\x1B[S`.repeat(e),down:(e=1)=>`\x1B[T`.repeat(e)},erase:{screen:`\x1B[2J`,up:(e=1)=>`\x1B[1J`.repeat(e),down:(e=1)=>`\x1B[J`.repeat(e),line:`\x1B[2K`,lineEnd:`\x1B[K`,lineStart:`\x1B[1K`,lines(t){let n=``;for(let r=0;r<t;r++)n+=this.line+(r<t-1?e.up():``);return t&&(n+=e.left),n}},beep:`\x07`},o}var l=c(),u={exports:{}},d;function ee(){if(d)return u.exports;d=1;let e=process||{},t=e.argv||[],n=e.env||{},r=!(n.NO_COLOR||t.includes(`--no-color`))&&(!!n.FORCE_COLOR||t.includes(`--color`)||e.platform===`win32`||(e.stdout||{}).isTTY&&n.TERM!==`dumb`||!!n.CI),i=(e,t,n=e)=>r=>{let i=``+r,o=i.indexOf(t,e.length);return~o?e+a(i,t,n,o)+t:e+i+t},a=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},o=(e=r)=>{let t=e?i:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};return u.exports=o(),u.exports.createColors=o,u.exports}const f=a(ee());function te({onlyFirst:e=!1}={}){let t=[`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))`,`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);return new RegExp(t,e?void 0:`g`)}const p=te();function m(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(p,``)}function h(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}var g={exports:{}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(e){var t=e.charCodeAt(0),n=e.length==2?e.charCodeAt(1):0,r=t;return 55296<=t&&t<=56319&&56320<=n&&n<=57343&&(t&=1023,n&=1023,r=t<<10|n,r+=65536),r==12288||65281<=r&&r<=65376||65504<=r&&r<=65510?`F`:r==8361||65377<=r&&r<=65470||65474<=r&&r<=65479||65482<=r&&r<=65487||65490<=r&&r<=65495||65498<=r&&r<=65500||65512<=r&&r<=65518?`H`:4352<=r&&r<=4447||4515<=r&&r<=4519||4602<=r&&r<=4607||9001<=r&&r<=9002||11904<=r&&r<=11929||11931<=r&&r<=12019||12032<=r&&r<=12245||12272<=r&&r<=12283||12289<=r&&r<=12350||12353<=r&&r<=12438||12441<=r&&r<=12543||12549<=r&&r<=12589||12593<=r&&r<=12686||12688<=r&&r<=12730||12736<=r&&r<=12771||12784<=r&&r<=12830||12832<=r&&r<=12871||12880<=r&&r<=13054||13056<=r&&r<=19903||19968<=r&&r<=42124||42128<=r&&r<=42182||43360<=r&&r<=43388||44032<=r&&r<=55203||55216<=r&&r<=55238||55243<=r&&r<=55291||63744<=r&&r<=64255||65040<=r&&r<=65049||65072<=r&&r<=65106||65108<=r&&r<=65126||65128<=r&&r<=65131||110592<=r&&r<=110593||127488<=r&&r<=127490||127504<=r&&r<=127546||127552<=r&&r<=127560||127568<=r&&r<=127569||131072<=r&&r<=194367||177984<=r&&r<=196605||196608<=r&&r<=262141?`W`:32<=r&&r<=126||162<=r&&r<=163||165<=r&&r<=166||r==172||r==175||10214<=r&&r<=10221||10629<=r&&r<=10630?`Na`:r==161||r==164||167<=r&&r<=168||r==170||173<=r&&r<=174||176<=r&&r<=180||182<=r&&r<=186||188<=r&&r<=191||r==198||r==208||215<=r&&r<=216||222<=r&&r<=225||r==230||232<=r&&r<=234||236<=r&&r<=237||r==240||242<=r&&r<=243||247<=r&&r<=250||r==252||r==254||r==257||r==273||r==275||r==283||294<=r&&r<=295||r==299||305<=r&&r<=307||r==312||319<=r&&r<=322||r==324||328<=r&&r<=331||r==333||338<=r&&r<=339||358<=r&&r<=359||r==363||r==462||r==464||r==466||r==468||r==470||r==472||r==474||r==476||r==593||r==609||r==708||r==711||713<=r&&r<=715||r==717||r==720||728<=r&&r<=731||r==733||r==735||768<=r&&r<=879||913<=r&&r<=929||931<=r&&r<=937||945<=r&&r<=961||963<=r&&r<=969||r==1025||1040<=r&&r<=1103||r==1105||r==8208||8211<=r&&r<=8214||8216<=r&&r<=8217||8220<=r&&r<=8221||8224<=r&&r<=8226||8228<=r&&r<=8231||r==8240||8242<=r&&r<=8243||r==8245||r==8251||r==8254||r==8308||r==8319||8321<=r&&r<=8324||r==8364||r==8451||r==8453||r==8457||r==8467||r==8470||8481<=r&&r<=8482||r==8486||r==8491||8531<=r&&r<=8532||8539<=r&&r<=8542||8544<=r&&r<=8555||8560<=r&&r<=8569||r==8585||8592<=r&&r<=8601||8632<=r&&r<=8633||r==8658||r==8660||r==8679||r==8704||8706<=r&&r<=8707||8711<=r&&r<=8712||r==8715||r==8719||r==8721||r==8725||r==8730||8733<=r&&r<=8736||r==8739||r==8741||8743<=r&&r<=8748||r==8750||8756<=r&&r<=8759||8764<=r&&r<=8765||r==8776||r==8780||r==8786||8800<=r&&r<=8801||8804<=r&&r<=8807||8810<=r&&r<=8811||8814<=r&&r<=8815||8834<=r&&r<=8835||8838<=r&&r<=8839||r==8853||r==8857||r==8869||r==8895||r==8978||9312<=r&&r<=9449||9451<=r&&r<=9547||9552<=r&&r<=9587||9600<=r&&r<=9615||9618<=r&&r<=9621||9632<=r&&r<=9633||9635<=r&&r<=9641||9650<=r&&r<=9651||9654<=r&&r<=9655||9660<=r&&r<=9661||9664<=r&&r<=9665||9670<=r&&r<=9672||r==9675||9678<=r&&r<=9681||9698<=r&&r<=9701||r==9711||9733<=r&&r<=9734||r==9737||9742<=r&&r<=9743||9748<=r&&r<=9749||r==9756||r==9758||r==9792||r==9794||9824<=r&&r<=9825||9827<=r&&r<=9829||9831<=r&&r<=9834||9836<=r&&r<=9837||r==9839||9886<=r&&r<=9887||9918<=r&&r<=9919||9924<=r&&r<=9933||9935<=r&&r<=9953||r==9955||9960<=r&&r<=9983||r==10045||r==10071||10102<=r&&r<=10111||11093<=r&&r<=11097||12872<=r&&r<=12879||57344<=r&&r<=63743||65024<=r&&r<=65039||r==65533||127232<=r&&r<=127242||127248<=r&&r<=127277||127280<=r&&r<=127337||127344<=r&&r<=127386||917760<=r&&r<=917999||983040<=r&&r<=1048573||1048576<=r&&r<=1114109?`A`:`N`},t.characterLength=function(e){var t=this.eastAsianWidth(e);return t==`F`||t==`W`||t==`A`?2:1};function n(e){return e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(e){for(var t=n(e),r=0,i=0;i<t.length;i++)r+=this.characterLength(t[i]);return r},t.slice=function(e,r,i){textLen=t.length(e),r||=0,i||=1,r<0&&(r=textLen+r),i<0&&(i=textLen+i);for(var a=``,o=0,s=n(e),c=0;c<s.length;c++){var l=s[c],u=t.length(l);if(o>=r-+(u==2))if(o+u<=i)a+=l;else break;o+=u}return a}})(g);var _=g.exports;const ne=h(_),re=h(function(){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});function v(e,t={}){if(typeof e!=`string`||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=m(e),e.length===0))return 0;e=e.replace(re(),` `);let n=t.ambiguousIsNarrow?1:2,r=0;for(let t of e){let e=t.codePointAt(0);if(!(e<=31||e>=127&&e<=159||e>=768&&e<=879))switch(ne.eastAsianWidth(t)){case`F`:case`W`:r+=2;break;case`A`:r+=n;break;default:r+=1}}return r}const y=(e=0)=>t=>`\x1B[${t+e}m`,b=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,x=(e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,S={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(S.modifier);const ie=Object.keys(S.color),C=Object.keys(S.bgColor);[...ie,...C];function ae(){let e=new Map;for(let[t,n]of Object.entries(S)){for(let[t,r]of Object.entries(n))S[t]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[t]=S[t],e.set(r[0],r[1]);Object.defineProperty(S,t,{value:n,enumerable:!1})}return Object.defineProperty(S,`codes`,{value:e,enumerable:!1}),S.color.close=`\x1B[39m`,S.bgColor.close=`\x1B[49m`,S.color.ansi=y(),S.color.ansi256=b(),S.color.ansi16m=x(),S.bgColor.ansi=y(10),S.bgColor.ansi256=b(10),S.bgColor.ansi16m=x(10),Object.defineProperties(S,{rgbToAnsi256:{value:(e,t,n)=>e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>S.rgbToAnsi256(...S.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>S.ansi256ToAnsi(S.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>S.ansi256ToAnsi(S.hexToAnsi256(e)),enumerable:!1}}),S}const oe=ae(),w=new Set([`\x1B`,``]),T=`]8;;`,E=e=>`${w.values().next().value}[${e}m`,D=e=>`${w.values().next().value}${T}${e}`,O=e=>e.split(` `).map(e=>v(e)),k=(e,t,n)=>{let r=[...t],i=!1,a=!1,o=v(m(e[e.length-1]));for(let[t,s]of r.entries()){let c=v(s);if(o+c<=n?e[e.length-1]+=s:(e.push(s),o=0),w.has(s)&&(i=!0,a=r.slice(t+1).join(``).startsWith(T)),i){a?s===`\x07`&&(i=!1,a=!1):s===`m`&&(i=!1);continue}o+=c,o===n&&t<r.length-1&&(e.push(``),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},se=e=>{let t=e.split(` `),n=t.length;for(;n>0&&!(v(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},ce=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=O(e),s=[``];for(let[r,i]of e.split(` `).entries()){n.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let e=v(s[s.length-1]);if(r!==0&&(e>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),e=0),(e>0||n.trim===!1)&&(s[s.length-1]+=` `,e++)),n.hard&&o[r]>t){let n=t-e,a=1+Math.floor((o[r]-n-1)/t);Math.floor((o[r]-1)/t)<a&&s.push(``),k(s,i,t);continue}if(e+o[r]>t&&e>0&&o[r]>0){if(n.wordWrap===!1&&e<t){k(s,i,t);continue}s.push(``)}if(e+o[r]>t&&n.wordWrap===!1){k(s,i,t);continue}s[s.length-1]+=i}n.trim!==!1&&(s=s.map(e=>se(e)));let c=[...s.join(`
|
|
2
|
-
`)];for(let[e,t]of c.entries()){if(r+=t,w.has(t)){let{groups:t}=RegExp(`(?:\\[(?<code>\\d+)m|\\${T}(?<uri>.*))`).exec(c.slice(e).join(``))||{groups:{}};if(t.code!==void 0){let e=Number.parseFloat(t.code);i=e===39?void 0:e}else t.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}let n=oe.codes.get(Number(i));c[e+1]===`
|
|
3
|
-
`?(a&&(r+=D(``)),i&&n&&(r+=E(n))):t===`
|
|
4
|
-
`&&(i&&n&&(r+=E(i)),a&&(r+=D(a)))}return r};function A(e,t,n){return String(e).normalize().replace(/\r\n/g,`
|
|
5
|
-
`).split(`
|
|
6
|
-
`).map(e=>ce(e,t,n)).join(`
|
|
7
|
-
`)}const j={actions:new Set([`up`,`down`,`left`,`right`,`space`,`enter`,`cancel`]),aliases:new Map([[`k`,`up`],[`j`,`down`],[`h`,`left`],[`l`,`right`],[``,`cancel`],[`escape`,`cancel`]])};function M(e,t){if(typeof e==`string`)return j.aliases.get(e)===t;for(let n of e)if(n!==void 0&&M(n,t))return!0;return!1}function le(e,t){if(e===t)return;let n=e.split(`
|
|
8
|
-
`),r=t.split(`
|
|
9
|
-
`),i=[];for(let e=0;e<Math.max(n.length,r.length);e++)n[e]!==r[e]&&i.push(e);return i}globalThis.process.platform.startsWith(`win`);const N=Symbol(`clack:cancel`);function P(e,t){let n=e;n.isTTY&&n.setRawMode(t)}var ue=Object.defineProperty,F=(e,t,n)=>t in e?ue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,I=(e,t,n)=>(F(e,typeof t==`symbol`?t:t+``,n),n),L=class{constructor(e,r=!0){I(this,`input`),I(this,`output`),I(this,`_abortSignal`),I(this,`rl`),I(this,`opts`),I(this,`_render`),I(this,`_track`,!1),I(this,`_prevFrame`,``),I(this,`_subscribers`,new Map),I(this,`_cursor`,0),I(this,`state`,`initial`),I(this,`error`,``),I(this,`value`);let{input:i=t,output:a=n,render:o,signal:s,...c}=e;this.opts=c,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=o.bind(this),this._track=r,this._abortSignal=s,this.input=i,this.output=a}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let n=this._subscribers.get(e)??[];n.push(t),this._subscribers.set(e,n)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let n=this._subscribers.get(e)??[],r=[];for(let e of n)e.cb(...t),e.once&&r.push(()=>n.splice(n.indexOf(e),1));for(let e of r)e()}prompt(){return new Promise((e,t)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=`cancel`,this.close(),e(N);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}let n=new r(0);n._write=(e,t,n)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,``),this._cursor=this.rl?.cursor??0,this.emit(`value`,this.value)),n()},this.input.pipe(n),this.rl=i.createInterface({input:this.input,output:n,tabSize:2,prompt:``,escapeCodeTimeout:50}),i.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on(`keypress`,this.onKeypress),P(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(l.cursor.show),this.output.off(`resize`,this.render),P(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(l.cursor.show),this.output.off(`resize`,this.render),P(this.input,!1),e(N)})})}onKeypress(e,t){if(this.state===`error`&&(this.state=`active`),t?.name&&(!this._track&&j.aliases.has(t.name)&&this.emit(`cursor`,j.aliases.get(t.name)),j.actions.has(t.name)&&this.emit(`cursor`,t.name)),e&&(e.toLowerCase()===`y`||e.toLowerCase()===`n`)&&this.emit(`confirm`,e.toLowerCase()===`y`),e===` `&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit(`value`,this.opts.placeholder))),e&&this.emit(`key`,e.toLowerCase()),t?.name===`return`){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=`error`,this.rl?.write(this.value))}this.state!==`error`&&(this.state=`submit`)}M([e,t?.name,t?.sequence],`cancel`)&&(this.state=`cancel`),(this.state===`submit`||this.state===`cancel`)&&this.emit(`finalize`),this.render(),(this.state===`submit`||this.state===`cancel`)&&this.close()}close(){this.input.unpipe(),this.input.removeListener(`keypress`,this.onKeypress),this.output.write(`
|
|
10
|
-
`),P(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=A(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
11
|
-
`).length-1;this.output.write(l.cursor.move(-999,e*-1))}render(){let e=A(this._render(this)??``,process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(l.cursor.hide);else{let t=le(this._prevFrame,e);if(this.restoreCursor(),t&&t?.length===1){let n=t[0];this.output.write(l.cursor.move(0,n)),this.output.write(l.erase.lines(1));let r=e.split(`
|
|
12
|
-
`);this.output.write(r[n]),this._prevFrame=e,this.output.write(l.cursor.move(0,r.length-n-1));return}if(t&&t?.length>1){let n=t[0];this.output.write(l.cursor.move(0,n)),this.output.write(l.erase.down());let r=e.split(`
|
|
13
|
-
`).slice(n);this.output.write(r.join(`
|
|
14
|
-
`)),this._prevFrame=e;return}this.output.write(l.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}},R=class extends L{get cursor(){return+!this.value}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on(`value`,()=>{this.value=this._value}),this.on(`confirm`,e=>{this.output.write(l.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},z=Object.defineProperty,B=(e,t,n)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,V=(e,t,n)=>(B(e,typeof t==`symbol`?t:t+``,n),n);let H=class extends L{constructor(e){super(e,!1),V(this,`options`),V(this,`cursor`,0),this.options=e.options,this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:t})=>t===e.cursorAt),0),this.on(`key`,e=>{e===`a`&&this.toggleAll()}),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case`down`:case`right`:this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case`space`:this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let e=this.value.length===this.options.length;this.value=e?[]:this.options.map(e=>e.value)}toggleValue(){let e=this.value.includes(this._value);this.value=e?this.value.filter(e=>e!==this._value):[...this.value,this._value]}};var U=Object.defineProperty,de=(e,t,n)=>t in e?U(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,W=(e,t,n)=>(de(e,typeof t==`symbol`?t:t+``,n),n),fe=class extends L{constructor(e){super(e,!1),W(this,`options`),W(this,`cursor`,0),this.options=e.options,this.cursor=this.options.findIndex(({value:t})=>t===e.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case`down`:case`right`:this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}},pe=class extends L{get valueWithCursor(){if(this.state===`submit`)return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let e=this.value.slice(0,this.cursor),[t,...n]=this.value.slice(this.cursor);return`${e}${f.inverse(t)}${n.join(``)}`}get cursor(){return this._cursor}constructor(e){super(e),this.on(`finalize`,()=>{this.value||=e.defaultValue})}};function me(){return e.platform===`win32`?!!e.env.CI||!!e.env.WT_SESSION||!!e.env.TERMINUS_SUBLIME||e.env.ConEmuTask===`{cmd::Cmder}`||e.env.TERM_PROGRAM===`Terminus-Sublime`||e.env.TERM_PROGRAM===`vscode`||e.env.TERM===`xterm-256color`||e.env.TERM===`alacritty`||e.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:e.env.TERM!==`linux`}const he=me(),G=(e,t)=>he?e:t,ge=G(`❯`,`>`),_e=G(`■`,`x`),ve=G(`▲`,`x`),ye=G(`✔`,`√`),K=G(``),q=G(``),J=G(`●`,`>`),Y=G(`○`,` `),be=G(`◻`,`[•]`),X=G(`◼`,`[+]`),xe=G(`◻`,`[ ]`),Z=e=>{switch(e){case`initial`:case`active`:return f.cyan(ge);case`cancel`:return f.red(_e);case`error`:return f.yellow(ve);case`submit`:return f.green(ye)}},Q=e=>{let{cursor:t,options:n,style:r}=e,i=e.maxItems??1/0,a=Math.max(process.stdout.rows-4,0),o=Math.min(a,Math.max(i,5)),s=0;t>=s+o-3?s=Math.max(Math.min(t-o+3,n.length-o),0):t<s+2&&(s=Math.max(t-2,0));let c=o<n.length&&s>0,l=o<n.length&&s+o<n.length;return n.slice(s,s+o).map((e,n,i)=>{let a=n===0&&c,o=n===i.length-1&&l;return a||o?f.dim(`...`):r(e,n+s===t)})},Se=e=>new pe({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${f.gray(K)}
|
|
15
|
-
${Z(this.state)} ${e.message}
|
|
16
|
-
`,n=e.placeholder?f.inverse(e.placeholder[0])+f.dim(e.placeholder.slice(1)):f.inverse(f.hidden(`_`)),r=this.value?this.valueWithCursor:n;switch(this.state){case`error`:return`${t.trim()}
|
|
17
|
-
${f.yellow(K)} ${r}
|
|
18
|
-
${f.yellow(q)} ${f.yellow(this.error)}
|
|
19
|
-
`;case`submit`:return`${t}${f.gray(K)} ${f.dim(this.value||e.placeholder)}`;case`cancel`:return`${t}${f.gray(K)} ${f.strikethrough(f.dim(this.value??``))}${this.value?.trim()?`
|
|
20
|
-
${f.gray(K)}`:``}`;default:return`${t}${f.cyan(K)} ${r}
|
|
21
|
-
${f.cyan(q)}
|
|
22
|
-
`}}}).prompt(),Ce=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new R({active:t,inactive:n,initialValue:e.initialValue??!0,render(){let r=`${f.gray(K)}
|
|
23
|
-
${Z(this.state)} ${e.message}
|
|
24
|
-
`,i=this.value?t:n;switch(this.state){case`submit`:return`${r}${f.gray(K)} ${f.dim(i)}`;case`cancel`:return`${r}${f.gray(K)} ${f.strikethrough(f.dim(i))}
|
|
25
|
-
${f.gray(K)}`;default:return`${r}${f.cyan(K)} ${this.value?`${f.green(J)} ${t}`:`${f.dim(Y)} ${f.dim(t)}`} ${f.dim(`/`)} ${this.value?`${f.dim(Y)} ${f.dim(n)}`:`${f.green(J)} ${n}`}
|
|
26
|
-
${f.cyan(q)}
|
|
27
|
-
`}}}).prompt()},we=e=>{let t=(e,t)=>{let n=e.label??String(e.value);switch(t){case`selected`:return`${f.dim(n)}`;case`active`:return`${f.green(J)} ${n} ${e.hint?f.dim(`(${e.hint})`):``}`;case`cancelled`:return`${f.strikethrough(f.dim(n))}`;default:return`${f.dim(Y)} ${f.dim(n)}`}};return new fe({options:e.options,initialValue:e.initialValue,render(){let n=`${f.gray(K)}
|
|
28
|
-
${Z(this.state)} ${e.message}
|
|
29
|
-
`;switch(this.state){case`submit`:return`${n}${f.gray(K)} ${t(this.options[this.cursor],`selected`)}`;case`cancel`:return`${n}${f.gray(K)} ${t(this.options[this.cursor],`cancelled`)}
|
|
30
|
-
${f.gray(K)}`;default:return`${n}${f.cyan(K)} ${Q({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(e,n)=>t(e,n?`active`:`inactive`)}).join(`
|
|
31
|
-
${f.cyan(K)} `)}
|
|
32
|
-
${f.cyan(q)}
|
|
33
|
-
`}}}).prompt()},Te=e=>{let t=(e,t)=>{let n=e.label??String(e.value);return t===`active`?`${f.cyan(be)} ${n} ${e.hint?f.dim(`(${e.hint})`):``}`:t===`selected`?`${f.green(X)} ${f.dim(n)}`:t===`cancelled`?`${f.strikethrough(f.dim(n))}`:t===`active-selected`?`${f.green(X)} ${n} ${e.hint?f.dim(`(${e.hint})`):``}`:t===`submitted`?`${f.dim(n)}`:`${f.dim(xe)} ${f.dim(n)}`};return new H({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(e){if(this.required&&e.length===0)return`Please select at least one option.
|
|
34
|
-
${f.reset(f.dim(`Press ${f.gray(f.bgWhite(f.inverse(` space `)))} to select, ${f.gray(f.bgWhite(f.inverse(` enter `)))} to submit`))}`},render(){let n=`${f.gray(K)}
|
|
35
|
-
${Z(this.state)} ${e.message}
|
|
36
|
-
`,r=(e,n)=>{let r=this.value.includes(e.value);return n&&r?t(e,`active-selected`):r?t(e,`selected`):t(e,n?`active`:`inactive`)};switch(this.state){case`submit`:return`${n}${f.gray(K)} ${this.options.filter(({value:e})=>this.value.includes(e)).map(e=>t(e,`submitted`)).join(f.dim(`, `))||f.dim(`none`)}`;case`cancel`:{let e=this.options.filter(({value:e})=>this.value.includes(e)).map(e=>t(e,`cancelled`)).join(f.dim(`, `));return`${n}${f.gray(K)} ${e.trim()?`${e}
|
|
37
|
-
${f.gray(K)}`:``}`}case`error`:{let t=this.error.split(`
|
|
38
|
-
`).map((e,t)=>t===0?`${f.yellow(q)} ${f.yellow(e)}`:` ${e}`).join(`
|
|
39
|
-
`);return`${n+f.yellow(K)} ${Q({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:r}).join(`
|
|
40
|
-
${f.yellow(K)} `)}
|
|
41
|
-
${t}
|
|
42
|
-
`}default:return`${n}${f.cyan(K)} ${Q({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:r}).join(`
|
|
43
|
-
${f.cyan(K)} `)}
|
|
44
|
-
${f.cyan(q)}
|
|
45
|
-
`}}}).prompt()};`${f.gray(K)}`;const Ee=Symbol.for(`cancel`);async function $(e,t={}){let n=e=>{if(typeof e!=`symbol`||e.toString()!==`Symbol(clack:cancel)`)return e;switch(t.cancel){case`reject`:{let e=Error(`Prompt cancelled.`);throw e.name=`ConsolaPromptCancelledError`,Error.captureStackTrace&&Error.captureStackTrace(e,$),e}case`undefined`:return;case`null`:return null;case`symbol`:return Ee;default:case`default`:return t.default??t.initial}};if(!t.type||t.type===`text`)return await Se({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(n);if(t.type===`confirm`)return await Ce({message:e,initialValue:t.initial}).then(n);if(t.type===`select`)return await we({message:e,options:t.options.map(e=>typeof e==`string`?{value:e,label:e}:e),initialValue:t.initial}).then(n);if(t.type===`multiselect`)return await Te({message:e,options:t.options.map(e=>typeof e==`string`?{value:e,label:e}:e),required:t.required,initialValues:t.initial}).then(n);throw Error(`Unknown prompt type: ${t.type}`)}export{$ as prompt};
|
|
46
|
-
//# sourceMappingURL=prompt-U5ajztzG-DLuCt_-l.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-U5ajztzG-DLuCt_-l.js","names":[],"sources":["../../../node_modules/.bun/rolldown@1.0.0-rc.17/node_modules/rolldown/dist/shared/prompt-U5ajztzG.mjs"],"sourcesContent":["import process$1, { stdin, stdout } from \"node:process\";\nimport { WriteStream } from \"node:tty\";\nimport f from \"node:readline\";\n//#region ../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/chunks/prompt.mjs\nfunction getDefaultExportFromCjs(x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar src;\nvar hasRequiredSrc;\nfunction requireSrc() {\n\tif (hasRequiredSrc) return src;\n\thasRequiredSrc = 1;\n\tconst ESC = \"\\x1B\";\n\tconst CSI = `${ESC}[`;\n\tconst beep = \"\\x07\";\n\tconst cursor = {\n\t\tto(x, y) {\n\t\t\tif (!y) return `${CSI}${x + 1}G`;\n\t\t\treturn `${CSI}${y + 1};${x + 1}H`;\n\t\t},\n\t\tmove(x, y) {\n\t\t\tlet ret = \"\";\n\t\t\tif (x < 0) ret += `${CSI}${-x}D`;\n\t\t\telse if (x > 0) ret += `${CSI}${x}C`;\n\t\t\tif (y < 0) ret += `${CSI}${-y}A`;\n\t\t\telse if (y > 0) ret += `${CSI}${y}B`;\n\t\t\treturn ret;\n\t\t},\n\t\tup: (count = 1) => `${CSI}${count}A`,\n\t\tdown: (count = 1) => `${CSI}${count}B`,\n\t\tforward: (count = 1) => `${CSI}${count}C`,\n\t\tbackward: (count = 1) => `${CSI}${count}D`,\n\t\tnextLine: (count = 1) => `${CSI}E`.repeat(count),\n\t\tprevLine: (count = 1) => `${CSI}F`.repeat(count),\n\t\tleft: `${CSI}G`,\n\t\thide: `${CSI}?25l`,\n\t\tshow: `${CSI}?25h`,\n\t\tsave: `${ESC}7`,\n\t\trestore: `${ESC}8`\n\t};\n\tsrc = {\n\t\tcursor,\n\t\tscroll: {\n\t\t\tup: (count = 1) => `${CSI}S`.repeat(count),\n\t\t\tdown: (count = 1) => `${CSI}T`.repeat(count)\n\t\t},\n\t\terase: {\n\t\t\tscreen: `${CSI}2J`,\n\t\t\tup: (count = 1) => `${CSI}1J`.repeat(count),\n\t\t\tdown: (count = 1) => `${CSI}J`.repeat(count),\n\t\t\tline: `${CSI}2K`,\n\t\t\tlineEnd: `${CSI}K`,\n\t\t\tlineStart: `${CSI}1K`,\n\t\t\tlines(count) {\n\t\t\t\tlet clear = \"\";\n\t\t\t\tfor (let i = 0; i < count; i++) clear += this.line + (i < count - 1 ? cursor.up() : \"\");\n\t\t\t\tif (count) clear += cursor.left;\n\t\t\t\treturn clear;\n\t\t\t}\n\t\t},\n\t\tbeep\n\t};\n\treturn src;\n}\nvar srcExports = requireSrc();\nvar picocolors = { exports: {} };\nvar hasRequiredPicocolors;\nfunction requirePicocolors() {\n\tif (hasRequiredPicocolors) return picocolors.exports;\n\thasRequiredPicocolors = 1;\n\tlet p = process || {}, argv = p.argv || [], env = p.env || {};\n\tlet isColorSupported = !(!!env.NO_COLOR || argv.includes(\"--no-color\")) && (!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || (p.stdout || {}).isTTY && env.TERM !== \"dumb\" || !!env.CI);\n\tlet formatter = (open, close, replace = open) => (input) => {\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\tlet replaceClose = (string, close, replace, index) => {\n\t\tlet result = \"\", cursor = 0;\n\t\tdo {\n\t\t\tresult += string.substring(cursor, index) + replace;\n\t\t\tcursor = index + close.length;\n\t\t\tindex = string.indexOf(close, cursor);\n\t\t} while (~index);\n\t\treturn result + string.substring(cursor);\n\t};\n\tlet createColors = (enabled = isColorSupported) => {\n\t\tlet f = enabled ? formatter : () => String;\n\t\treturn {\n\t\t\tisColorSupported: enabled,\n\t\t\treset: f(\"\\x1B[0m\", \"\\x1B[0m\"),\n\t\t\tbold: f(\"\\x1B[1m\", \"\\x1B[22m\", \"\\x1B[22m\\x1B[1m\"),\n\t\t\tdim: f(\"\\x1B[2m\", \"\\x1B[22m\", \"\\x1B[22m\\x1B[2m\"),\n\t\t\titalic: f(\"\\x1B[3m\", \"\\x1B[23m\"),\n\t\t\tunderline: f(\"\\x1B[4m\", \"\\x1B[24m\"),\n\t\t\tinverse: f(\"\\x1B[7m\", \"\\x1B[27m\"),\n\t\t\thidden: f(\"\\x1B[8m\", \"\\x1B[28m\"),\n\t\t\tstrikethrough: f(\"\\x1B[9m\", \"\\x1B[29m\"),\n\t\t\tblack: f(\"\\x1B[30m\", \"\\x1B[39m\"),\n\t\t\tred: f(\"\\x1B[31m\", \"\\x1B[39m\"),\n\t\t\tgreen: f(\"\\x1B[32m\", \"\\x1B[39m\"),\n\t\t\tyellow: f(\"\\x1B[33m\", \"\\x1B[39m\"),\n\t\t\tblue: f(\"\\x1B[34m\", \"\\x1B[39m\"),\n\t\t\tmagenta: f(\"\\x1B[35m\", \"\\x1B[39m\"),\n\t\t\tcyan: f(\"\\x1B[36m\", \"\\x1B[39m\"),\n\t\t\twhite: f(\"\\x1B[37m\", \"\\x1B[39m\"),\n\t\t\tgray: f(\"\\x1B[90m\", \"\\x1B[39m\"),\n\t\t\tbgBlack: f(\"\\x1B[40m\", \"\\x1B[49m\"),\n\t\t\tbgRed: f(\"\\x1B[41m\", \"\\x1B[49m\"),\n\t\t\tbgGreen: f(\"\\x1B[42m\", \"\\x1B[49m\"),\n\t\t\tbgYellow: f(\"\\x1B[43m\", \"\\x1B[49m\"),\n\t\t\tbgBlue: f(\"\\x1B[44m\", \"\\x1B[49m\"),\n\t\t\tbgMagenta: f(\"\\x1B[45m\", \"\\x1B[49m\"),\n\t\t\tbgCyan: f(\"\\x1B[46m\", \"\\x1B[49m\"),\n\t\t\tbgWhite: f(\"\\x1B[47m\", \"\\x1B[49m\"),\n\t\t\tblackBright: f(\"\\x1B[90m\", \"\\x1B[39m\"),\n\t\t\tredBright: f(\"\\x1B[91m\", \"\\x1B[39m\"),\n\t\t\tgreenBright: f(\"\\x1B[92m\", \"\\x1B[39m\"),\n\t\t\tyellowBright: f(\"\\x1B[93m\", \"\\x1B[39m\"),\n\t\t\tblueBright: f(\"\\x1B[94m\", \"\\x1B[39m\"),\n\t\t\tmagentaBright: f(\"\\x1B[95m\", \"\\x1B[39m\"),\n\t\t\tcyanBright: f(\"\\x1B[96m\", \"\\x1B[39m\"),\n\t\t\twhiteBright: f(\"\\x1B[97m\", \"\\x1B[39m\"),\n\t\t\tbgBlackBright: f(\"\\x1B[100m\", \"\\x1B[49m\"),\n\t\t\tbgRedBright: f(\"\\x1B[101m\", \"\\x1B[49m\"),\n\t\t\tbgGreenBright: f(\"\\x1B[102m\", \"\\x1B[49m\"),\n\t\t\tbgYellowBright: f(\"\\x1B[103m\", \"\\x1B[49m\"),\n\t\t\tbgBlueBright: f(\"\\x1B[104m\", \"\\x1B[49m\"),\n\t\t\tbgMagentaBright: f(\"\\x1B[105m\", \"\\x1B[49m\"),\n\t\t\tbgCyanBright: f(\"\\x1B[106m\", \"\\x1B[49m\"),\n\t\t\tbgWhiteBright: f(\"\\x1B[107m\", \"\\x1B[49m\")\n\t\t};\n\t};\n\tpicocolors.exports = createColors();\n\tpicocolors.exports.createColors = createColors;\n\treturn picocolors.exports;\n}\nconst e = /* @__PURE__ */ getDefaultExportFromCjs(/* @__PURE__ */ requirePicocolors());\nfunction J({ onlyFirst: t = false } = {}) {\n\tconst F = [\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C))\", \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"].join(\"|\");\n\treturn new RegExp(F, t ? void 0 : \"g\");\n}\nconst Q = J();\nfunction T$1(t) {\n\tif (typeof t != \"string\") throw new TypeError(`Expected a \\`string\\`, got \\`${typeof t}\\``);\n\treturn t.replace(Q, \"\");\n}\nfunction O(t) {\n\treturn t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar P$1 = { exports: {} };\n(function(t) {\n\tvar u = {};\n\tt.exports = u, u.eastAsianWidth = function(e) {\n\t\tvar s = e.charCodeAt(0), i = e.length == 2 ? e.charCodeAt(1) : 0, D = s;\n\t\treturn 55296 <= s && s <= 56319 && 56320 <= i && i <= 57343 && (s &= 1023, i &= 1023, D = s << 10 | i, D += 65536), D == 12288 || 65281 <= D && D <= 65376 || 65504 <= D && D <= 65510 ? \"F\" : D == 8361 || 65377 <= D && D <= 65470 || 65474 <= D && D <= 65479 || 65482 <= D && D <= 65487 || 65490 <= D && D <= 65495 || 65498 <= D && D <= 65500 || 65512 <= D && D <= 65518 ? \"H\" : 4352 <= D && D <= 4447 || 4515 <= D && D <= 4519 || 4602 <= D && D <= 4607 || 9001 <= D && D <= 9002 || 11904 <= D && D <= 11929 || 11931 <= D && D <= 12019 || 12032 <= D && D <= 12245 || 12272 <= D && D <= 12283 || 12289 <= D && D <= 12350 || 12353 <= D && D <= 12438 || 12441 <= D && D <= 12543 || 12549 <= D && D <= 12589 || 12593 <= D && D <= 12686 || 12688 <= D && D <= 12730 || 12736 <= D && D <= 12771 || 12784 <= D && D <= 12830 || 12832 <= D && D <= 12871 || 12880 <= D && D <= 13054 || 13056 <= D && D <= 19903 || 19968 <= D && D <= 42124 || 42128 <= D && D <= 42182 || 43360 <= D && D <= 43388 || 44032 <= D && D <= 55203 || 55216 <= D && D <= 55238 || 55243 <= D && D <= 55291 || 63744 <= D && D <= 64255 || 65040 <= D && D <= 65049 || 65072 <= D && D <= 65106 || 65108 <= D && D <= 65126 || 65128 <= D && D <= 65131 || 110592 <= D && D <= 110593 || 127488 <= D && D <= 127490 || 127504 <= D && D <= 127546 || 127552 <= D && D <= 127560 || 127568 <= D && D <= 127569 || 131072 <= D && D <= 194367 || 177984 <= D && D <= 196605 || 196608 <= D && D <= 262141 ? \"W\" : 32 <= D && D <= 126 || 162 <= D && D <= 163 || 165 <= D && D <= 166 || D == 172 || D == 175 || 10214 <= D && D <= 10221 || 10629 <= D && D <= 10630 ? \"Na\" : D == 161 || D == 164 || 167 <= D && D <= 168 || D == 170 || 173 <= D && D <= 174 || 176 <= D && D <= 180 || 182 <= D && D <= 186 || 188 <= D && D <= 191 || D == 198 || D == 208 || 215 <= D && D <= 216 || 222 <= D && D <= 225 || D == 230 || 232 <= D && D <= 234 || 236 <= D && D <= 237 || D == 240 || 242 <= D && D <= 243 || 247 <= D && D <= 250 || D == 252 || D == 254 || D == 257 || D == 273 || D == 275 || D == 283 || 294 <= D && D <= 295 || D == 299 || 305 <= D && D <= 307 || D == 312 || 319 <= D && D <= 322 || D == 324 || 328 <= D && D <= 331 || D == 333 || 338 <= D && D <= 339 || 358 <= D && D <= 359 || D == 363 || D == 462 || D == 464 || D == 466 || D == 468 || D == 470 || D == 472 || D == 474 || D == 476 || D == 593 || D == 609 || D == 708 || D == 711 || 713 <= D && D <= 715 || D == 717 || D == 720 || 728 <= D && D <= 731 || D == 733 || D == 735 || 768 <= D && D <= 879 || 913 <= D && D <= 929 || 931 <= D && D <= 937 || 945 <= D && D <= 961 || 963 <= D && D <= 969 || D == 1025 || 1040 <= D && D <= 1103 || D == 1105 || D == 8208 || 8211 <= D && D <= 8214 || 8216 <= D && D <= 8217 || 8220 <= D && D <= 8221 || 8224 <= D && D <= 8226 || 8228 <= D && D <= 8231 || D == 8240 || 8242 <= D && D <= 8243 || D == 8245 || D == 8251 || D == 8254 || D == 8308 || D == 8319 || 8321 <= D && D <= 8324 || D == 8364 || D == 8451 || D == 8453 || D == 8457 || D == 8467 || D == 8470 || 8481 <= D && D <= 8482 || D == 8486 || D == 8491 || 8531 <= D && D <= 8532 || 8539 <= D && D <= 8542 || 8544 <= D && D <= 8555 || 8560 <= D && D <= 8569 || D == 8585 || 8592 <= D && D <= 8601 || 8632 <= D && D <= 8633 || D == 8658 || D == 8660 || D == 8679 || D == 8704 || 8706 <= D && D <= 8707 || 8711 <= D && D <= 8712 || D == 8715 || D == 8719 || D == 8721 || D == 8725 || D == 8730 || 8733 <= D && D <= 8736 || D == 8739 || D == 8741 || 8743 <= D && D <= 8748 || D == 8750 || 8756 <= D && D <= 8759 || 8764 <= D && D <= 8765 || D == 8776 || D == 8780 || D == 8786 || 8800 <= D && D <= 8801 || 8804 <= D && D <= 8807 || 8810 <= D && D <= 8811 || 8814 <= D && D <= 8815 || 8834 <= D && D <= 8835 || 8838 <= D && D <= 8839 || D == 8853 || D == 8857 || D == 8869 || D == 8895 || D == 8978 || 9312 <= D && D <= 9449 || 9451 <= D && D <= 9547 || 9552 <= D && D <= 9587 || 9600 <= D && D <= 9615 || 9618 <= D && D <= 9621 || 9632 <= D && D <= 9633 || 9635 <= D && D <= 9641 || 9650 <= D && D <= 9651 || 9654 <= D && D <= 9655 || 9660 <= D && D <= 9661 || 9664 <= D && D <= 9665 || 9670 <= D && D <= 9672 || D == 9675 || 9678 <= D && D <= 9681 || 9698 <= D && D <= 9701 || D == 9711 || 9733 <= D && D <= 9734 || D == 9737 || 9742 <= D && D <= 9743 || 9748 <= D && D <= 9749 || D == 9756 || D == 9758 || D == 9792 || D == 9794 || 9824 <= D && D <= 9825 || 9827 <= D && D <= 9829 || 9831 <= D && D <= 9834 || 9836 <= D && D <= 9837 || D == 9839 || 9886 <= D && D <= 9887 || 9918 <= D && D <= 9919 || 9924 <= D && D <= 9933 || 9935 <= D && D <= 9953 || D == 9955 || 9960 <= D && D <= 9983 || D == 10045 || D == 10071 || 10102 <= D && D <= 10111 || 11093 <= D && D <= 11097 || 12872 <= D && D <= 12879 || 57344 <= D && D <= 63743 || 65024 <= D && D <= 65039 || D == 65533 || 127232 <= D && D <= 127242 || 127248 <= D && D <= 127277 || 127280 <= D && D <= 127337 || 127344 <= D && D <= 127386 || 917760 <= D && D <= 917999 || 983040 <= D && D <= 1048573 || 1048576 <= D && D <= 1114109 ? \"A\" : \"N\";\n\t}, u.characterLength = function(e) {\n\t\tvar s = this.eastAsianWidth(e);\n\t\treturn s == \"F\" || s == \"W\" || s == \"A\" ? 2 : 1;\n\t};\n\tfunction F(e) {\n\t\treturn e.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g) || [];\n\t}\n\tu.length = function(e) {\n\t\tfor (var s = F(e), i = 0, D = 0; D < s.length; D++) i = i + this.characterLength(s[D]);\n\t\treturn i;\n\t}, u.slice = function(e, s, i) {\n\t\ttextLen = u.length(e), s = s || 0, i = i || 1, s < 0 && (s = textLen + s), i < 0 && (i = textLen + i);\n\t\tfor (var D = \"\", C = 0, o = F(e), E = 0; E < o.length; E++) {\n\t\t\tvar a = o[E], n = u.length(a);\n\t\t\tif (C >= s - (n == 2 ? 1 : 0)) if (C + n <= i) D += a;\n\t\t\telse break;\n\t\t\tC += n;\n\t\t}\n\t\treturn D;\n\t};\n})(P$1);\nvar X = P$1.exports;\nconst DD = O(X);\nvar uD = function() {\n\treturn /\\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};\nconst FD = O(uD);\nfunction A$1(t, u = {}) {\n\tif (typeof t != \"string\" || t.length === 0 || (u = {\n\t\tambiguousIsNarrow: true,\n\t\t...u\n\t}, t = T$1(t), t.length === 0)) return 0;\n\tt = t.replace(FD(), \" \");\n\tconst F = u.ambiguousIsNarrow ? 1 : 2;\n\tlet e = 0;\n\tfor (const s of t) {\n\t\tconst i = s.codePointAt(0);\n\t\tif (i <= 31 || i >= 127 && i <= 159 || i >= 768 && i <= 879) continue;\n\t\tswitch (DD.eastAsianWidth(s)) {\n\t\t\tcase \"F\":\n\t\t\tcase \"W\":\n\t\t\t\te += 2;\n\t\t\t\tbreak;\n\t\t\tcase \"A\":\n\t\t\t\te += F;\n\t\t\t\tbreak;\n\t\t\tdefault: e += 1;\n\t\t}\n\t}\n\treturn e;\n}\nconst m = 10, L$1 = (t = 0) => (u) => `\\x1B[${u + t}m`, N = (t = 0) => (u) => `\\x1B[${38 + t};5;${u}m`, I = (t = 0) => (u, F, e) => `\\x1B[${38 + t};2;${u};${F};${e}m`, r = {\n\tmodifier: {\n\t\treset: [0, 0],\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\t\tblackBright: [90, 39],\n\t\tgray: [90, 39],\n\t\tgrey: [90, 39],\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\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49],\n\t\tbgGrey: [100, 49],\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};\nObject.keys(r.modifier);\nconst tD = Object.keys(r.color), eD = Object.keys(r.bgColor);\n[...tD, ...eD];\nfunction sD() {\n\tconst t = /* @__PURE__ */ new Map();\n\tfor (const [u, F] of Object.entries(r)) {\n\t\tfor (const [e, s] of Object.entries(F)) r[e] = {\n\t\t\topen: `\\x1B[${s[0]}m`,\n\t\t\tclose: `\\x1B[${s[1]}m`\n\t\t}, F[e] = r[e], t.set(s[0], s[1]);\n\t\tObject.defineProperty(r, u, {\n\t\t\tvalue: F,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\treturn Object.defineProperty(r, \"codes\", {\n\t\tvalue: t,\n\t\tenumerable: false\n\t}), r.color.close = \"\\x1B[39m\", r.bgColor.close = \"\\x1B[49m\", r.color.ansi = L$1(), r.color.ansi256 = N(), r.color.ansi16m = I(), r.bgColor.ansi = L$1(m), r.bgColor.ansi256 = N(m), r.bgColor.ansi16m = I(m), Object.defineProperties(r, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (u, F, e) => u === F && F === e ? u < 8 ? 16 : u > 248 ? 231 : Math.round((u - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(u / 255 * 5) + 6 * Math.round(F / 255 * 5) + Math.round(e / 255 * 5),\n\t\t\tenumerable: false\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: (u) => {\n\t\t\t\tconst F = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(u.toString(16));\n\t\t\t\tif (!F) return [\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tlet [e] = F;\n\t\t\t\te.length === 3 && (e = [...e].map((i) => i + i).join(\"\"));\n\t\t\t\tconst s = Number.parseInt(e, 16);\n\t\t\t\treturn [\n\t\t\t\t\ts >> 16 & 255,\n\t\t\t\t\ts >> 8 & 255,\n\t\t\t\t\ts & 255\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: (u) => r.rgbToAnsi256(...r.hexToRgb(u)),\n\t\t\tenumerable: false\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: (u) => {\n\t\t\t\tif (u < 8) return 30 + u;\n\t\t\t\tif (u < 16) return 90 + (u - 8);\n\t\t\t\tlet F, e, s;\n\t\t\t\tif (u >= 232) F = ((u - 232) * 10 + 8) / 255, e = F, s = F;\n\t\t\t\telse {\n\t\t\t\t\tu -= 16;\n\t\t\t\t\tconst C = u % 36;\n\t\t\t\t\tF = Math.floor(u / 36) / 5, e = Math.floor(C / 6) / 5, s = C % 6 / 5;\n\t\t\t\t}\n\t\t\t\tconst i = Math.max(F, e, s) * 2;\n\t\t\t\tif (i === 0) return 30;\n\t\t\t\tlet D = 30 + (Math.round(s) << 2 | Math.round(e) << 1 | Math.round(F));\n\t\t\t\treturn i === 2 && (D += 60), D;\n\t\t\t},\n\t\t\tenumerable: false\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (u, F, e) => r.ansi256ToAnsi(r.rgbToAnsi256(u, F, e)),\n\t\t\tenumerable: false\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: (u) => r.ansi256ToAnsi(r.hexToAnsi256(u)),\n\t\t\tenumerable: false\n\t\t}\n\t}), r;\n}\nconst iD = sD(), v = new Set([\"\\x1B\", \"\"]), CD = 39, w$1 = \"\\x07\", W$1 = \"[\", rD = \"]\", R = \"m\", y = `${rD}8;;`, V$1 = (t) => `${v.values().next().value}${W$1}${t}${R}`, z = (t) => `${v.values().next().value}${y}${t}${w$1}`, ED = (t) => t.split(\" \").map((u) => A$1(u)), _ = (t, u, F) => {\n\tconst e = [...u];\n\tlet s = false, i = false, D = A$1(T$1(t[t.length - 1]));\n\tfor (const [C, o] of e.entries()) {\n\t\tconst E = A$1(o);\n\t\tif (D + E <= F ? t[t.length - 1] += o : (t.push(o), D = 0), v.has(o) && (s = true, i = e.slice(C + 1).join(\"\").startsWith(y)), s) {\n\t\t\ti ? o === w$1 && (s = false, i = false) : o === R && (s = false);\n\t\t\tcontinue;\n\t\t}\n\t\tD += E, D === F && C < e.length - 1 && (t.push(\"\"), D = 0);\n\t}\n\t!D && t[t.length - 1].length > 0 && t.length > 1 && (t[t.length - 2] += t.pop());\n}, nD = (t) => {\n\tconst u = t.split(\" \");\n\tlet F = u.length;\n\tfor (; F > 0 && !(A$1(u[F - 1]) > 0);) F--;\n\treturn F === u.length ? t : u.slice(0, F).join(\" \") + u.slice(F).join(\"\");\n}, oD = (t, u, F = {}) => {\n\tif (F.trim !== false && t.trim() === \"\") return \"\";\n\tlet e = \"\", s, i;\n\tconst D = ED(t);\n\tlet C = [\"\"];\n\tfor (const [E, a] of t.split(\" \").entries()) {\n\t\tF.trim !== false && (C[C.length - 1] = C[C.length - 1].trimStart());\n\t\tlet n = A$1(C[C.length - 1]);\n\t\tif (E !== 0 && (n >= u && (F.wordWrap === false || F.trim === false) && (C.push(\"\"), n = 0), (n > 0 || F.trim === false) && (C[C.length - 1] += \" \", n++)), F.hard && D[E] > u) {\n\t\t\tconst B = u - n, p = 1 + Math.floor((D[E] - B - 1) / u);\n\t\t\tMath.floor((D[E] - 1) / u) < p && C.push(\"\"), _(C, a, u);\n\t\t\tcontinue;\n\t\t}\n\t\tif (n + D[E] > u && n > 0 && D[E] > 0) {\n\t\t\tif (F.wordWrap === false && n < u) {\n\t\t\t\t_(C, a, u);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tC.push(\"\");\n\t\t}\n\t\tif (n + D[E] > u && F.wordWrap === false) {\n\t\t\t_(C, a, u);\n\t\t\tcontinue;\n\t\t}\n\t\tC[C.length - 1] += a;\n\t}\n\tF.trim !== false && (C = C.map((E) => nD(E)));\n\tconst o = [...C.join(`\n`)];\n\tfor (const [E, a] of o.entries()) {\n\t\tif (e += a, v.has(a)) {\n\t\t\tconst { groups: B } = new RegExp(`(?:\\\\${W$1}(?<code>\\\\d+)m|\\\\${y}(?<uri>.*)${w$1})`).exec(o.slice(E).join(\"\")) || { groups: {} };\n\t\t\tif (B.code !== void 0) {\n\t\t\t\tconst p = Number.parseFloat(B.code);\n\t\t\t\ts = p === CD ? void 0 : p;\n\t\t\t} else B.uri !== void 0 && (i = B.uri.length === 0 ? void 0 : B.uri);\n\t\t}\n\t\tconst n = iD.codes.get(Number(s));\n\t\to[E + 1] === `\n` ? (i && (e += z(\"\")), s && n && (e += V$1(n))) : a === `\n` && (s && n && (e += V$1(s)), i && (e += z(i)));\n\t}\n\treturn e;\n};\nfunction G(t, u, F) {\n\treturn String(t).normalize().replace(/\\r\\n/g, `\n`).split(`\n`).map((e) => oD(e, u, F)).join(`\n`);\n}\nconst c = {\n\tactions: new Set([\n\t\t\"up\",\n\t\t\"down\",\n\t\t\"left\",\n\t\t\"right\",\n\t\t\"space\",\n\t\t\"enter\",\n\t\t\"cancel\"\n\t]),\n\taliases: new Map([\n\t\t[\"k\", \"up\"],\n\t\t[\"j\", \"down\"],\n\t\t[\"h\", \"left\"],\n\t\t[\"l\", \"right\"],\n\t\t[\"\u0003\", \"cancel\"],\n\t\t[\"escape\", \"cancel\"]\n\t])\n};\nfunction k$1(t, u) {\n\tif (typeof t == \"string\") return c.aliases.get(t) === u;\n\tfor (const F of t) if (F !== void 0 && k$1(F, u)) return true;\n\treturn false;\n}\nfunction lD(t, u) {\n\tif (t === u) return;\n\tconst F = t.split(`\n`), e = u.split(`\n`), s = [];\n\tfor (let i = 0; i < Math.max(F.length, e.length); i++) F[i] !== e[i] && s.push(i);\n\treturn s;\n}\nglobalThis.process.platform.startsWith(\"win\");\nconst S = Symbol(\"clack:cancel\");\nfunction d$1(t, u) {\n\tconst F = t;\n\tF.isTTY && F.setRawMode(u);\n}\nvar AD = Object.defineProperty, pD = (t, u, F) => u in t ? AD(t, u, {\n\tenumerable: true,\n\tconfigurable: true,\n\twritable: true,\n\tvalue: F\n}) : t[u] = F, h = (t, u, F) => (pD(t, typeof u != \"symbol\" ? u + \"\" : u, F), F);\nvar x = class {\n\tconstructor(u, F = true) {\n\t\th(this, \"input\"), h(this, \"output\"), h(this, \"_abortSignal\"), h(this, \"rl\"), h(this, \"opts\"), h(this, \"_render\"), h(this, \"_track\", false), h(this, \"_prevFrame\", \"\"), h(this, \"_subscribers\", /* @__PURE__ */ new Map()), h(this, \"_cursor\", 0), h(this, \"state\", \"initial\"), h(this, \"error\", \"\"), h(this, \"value\");\n\t\tconst { input: e = stdin, output: s = stdout, render: i, signal: D, ...C } = u;\n\t\tthis.opts = C, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = i.bind(this), this._track = F, this._abortSignal = D, this.input = e, this.output = s;\n\t}\n\tunsubscribe() {\n\t\tthis._subscribers.clear();\n\t}\n\tsetSubscriber(u, F) {\n\t\tconst e = this._subscribers.get(u) ?? [];\n\t\te.push(F), this._subscribers.set(u, e);\n\t}\n\ton(u, F) {\n\t\tthis.setSubscriber(u, { cb: F });\n\t}\n\tonce(u, F) {\n\t\tthis.setSubscriber(u, {\n\t\t\tcb: F,\n\t\t\tonce: true\n\t\t});\n\t}\n\temit(u, ...F) {\n\t\tconst e = this._subscribers.get(u) ?? [], s = [];\n\t\tfor (const i of e) i.cb(...F), i.once && s.push(() => e.splice(e.indexOf(i), 1));\n\t\tfor (const i of s) i();\n\t}\n\tprompt() {\n\t\treturn new Promise((u, F) => {\n\t\t\tif (this._abortSignal) {\n\t\t\t\tif (this._abortSignal.aborted) return this.state = \"cancel\", this.close(), u(S);\n\t\t\t\tthis._abortSignal.addEventListener(\"abort\", () => {\n\t\t\t\t\tthis.state = \"cancel\", this.close();\n\t\t\t\t}, { once: true });\n\t\t\t}\n\t\t\tconst e = new WriteStream(0);\n\t\t\te._write = (s, i, D) => {\n\t\t\t\tthis._track && (this.value = this.rl?.line.replace(/\\t/g, \"\"), this._cursor = this.rl?.cursor ?? 0, this.emit(\"value\", this.value)), D();\n\t\t\t}, this.input.pipe(e), this.rl = f.createInterface({\n\t\t\t\tinput: this.input,\n\t\t\t\toutput: e,\n\t\t\t\ttabSize: 2,\n\t\t\t\tprompt: \"\",\n\t\t\t\tescapeCodeTimeout: 50\n\t\t\t}), f.emitKeypressEvents(this.input, this.rl), this.rl.prompt(), this.opts.initialValue !== void 0 && this._track && this.rl.write(this.opts.initialValue), this.input.on(\"keypress\", this.onKeypress), d$1(this.input, true), this.output.on(\"resize\", this.render), this.render(), this.once(\"submit\", () => {\n\t\t\t\tthis.output.write(srcExports.cursor.show), this.output.off(\"resize\", this.render), d$1(this.input, false), u(this.value);\n\t\t\t}), this.once(\"cancel\", () => {\n\t\t\t\tthis.output.write(srcExports.cursor.show), this.output.off(\"resize\", this.render), d$1(this.input, false), u(S);\n\t\t\t});\n\t\t});\n\t}\n\tonKeypress(u, F) {\n\t\tif (this.state === \"error\" && (this.state = \"active\"), F?.name && (!this._track && c.aliases.has(F.name) && this.emit(\"cursor\", c.aliases.get(F.name)), c.actions.has(F.name) && this.emit(\"cursor\", F.name)), u && (u.toLowerCase() === \"y\" || u.toLowerCase() === \"n\") && this.emit(\"confirm\", u.toLowerCase() === \"y\"), u === \"\t\" && this.opts.placeholder && (this.value || (this.rl?.write(this.opts.placeholder), this.emit(\"value\", this.opts.placeholder))), u && this.emit(\"key\", u.toLowerCase()), F?.name === \"return\") {\n\t\t\tif (this.opts.validate) {\n\t\t\t\tconst e = this.opts.validate(this.value);\n\t\t\t\te && (this.error = e instanceof Error ? e.message : e, this.state = \"error\", this.rl?.write(this.value));\n\t\t\t}\n\t\t\tthis.state !== \"error\" && (this.state = \"submit\");\n\t\t}\n\t\tk$1([\n\t\t\tu,\n\t\t\tF?.name,\n\t\t\tF?.sequence\n\t\t], \"cancel\") && (this.state = \"cancel\"), (this.state === \"submit\" || this.state === \"cancel\") && this.emit(\"finalize\"), this.render(), (this.state === \"submit\" || this.state === \"cancel\") && this.close();\n\t}\n\tclose() {\n\t\tthis.input.unpipe(), this.input.removeListener(\"keypress\", this.onKeypress), this.output.write(`\n`), d$1(this.input, false), this.rl?.close(), this.rl = void 0, this.emit(`${this.state}`, this.value), this.unsubscribe();\n\t}\n\trestoreCursor() {\n\t\tconst u = G(this._prevFrame, process.stdout.columns, { hard: true }).split(`\n`).length - 1;\n\t\tthis.output.write(srcExports.cursor.move(-999, u * -1));\n\t}\n\trender() {\n\t\tconst u = G(this._render(this) ?? \"\", process.stdout.columns, { hard: true });\n\t\tif (u !== this._prevFrame) {\n\t\t\tif (this.state === \"initial\") this.output.write(srcExports.cursor.hide);\n\t\t\telse {\n\t\t\t\tconst F = lD(this._prevFrame, u);\n\t\t\t\tif (this.restoreCursor(), F && F?.length === 1) {\n\t\t\t\t\tconst e = F[0];\n\t\t\t\t\tthis.output.write(srcExports.cursor.move(0, e)), this.output.write(srcExports.erase.lines(1));\n\t\t\t\t\tconst s = u.split(`\n`);\n\t\t\t\t\tthis.output.write(s[e]), this._prevFrame = u, this.output.write(srcExports.cursor.move(0, s.length - e - 1));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (F && F?.length > 1) {\n\t\t\t\t\tconst e = F[0];\n\t\t\t\t\tthis.output.write(srcExports.cursor.move(0, e)), this.output.write(srcExports.erase.down());\n\t\t\t\t\tconst s = u.split(`\n`).slice(e);\n\t\t\t\t\tthis.output.write(s.join(`\n`)), this._prevFrame = u;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.output.write(srcExports.erase.down());\n\t\t\t}\n\t\t\tthis.output.write(u), this.state === \"initial\" && (this.state = \"active\"), this._prevFrame = u;\n\t\t}\n\t}\n};\nvar fD = class extends x {\n\tget cursor() {\n\t\treturn this.value ? 0 : 1;\n\t}\n\tget _value() {\n\t\treturn this.cursor === 0;\n\t}\n\tconstructor(u) {\n\t\tsuper(u, false), this.value = !!u.initialValue, this.on(\"value\", () => {\n\t\t\tthis.value = this._value;\n\t\t}), this.on(\"confirm\", (F) => {\n\t\t\tthis.output.write(srcExports.cursor.move(0, -1)), this.value = F, this.state = \"submit\", this.close();\n\t\t}), this.on(\"cursor\", () => {\n\t\t\tthis.value = !this.value;\n\t\t});\n\t}\n};\nvar bD = Object.defineProperty, mD = (t, u, F) => u in t ? bD(t, u, {\n\tenumerable: true,\n\tconfigurable: true,\n\twritable: true,\n\tvalue: F\n}) : t[u] = F, Y = (t, u, F) => (mD(t, typeof u != \"symbol\" ? u + \"\" : u, F), F);\nlet wD = class extends x {\n\tconstructor(u) {\n\t\tsuper(u, false), Y(this, \"options\"), Y(this, \"cursor\", 0), this.options = u.options, this.value = [...u.initialValues ?? []], this.cursor = Math.max(this.options.findIndex(({ value: F }) => F === u.cursorAt), 0), this.on(\"key\", (F) => {\n\t\t\tF === \"a\" && this.toggleAll();\n\t\t}), this.on(\"cursor\", (F) => {\n\t\t\tswitch (F) {\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\tget _value() {\n\t\treturn this.options[this.cursor].value;\n\t}\n\ttoggleAll() {\n\t\tconst u = this.value.length === this.options.length;\n\t\tthis.value = u ? [] : this.options.map((F) => F.value);\n\t}\n\ttoggleValue() {\n\t\tconst u = this.value.includes(this._value);\n\t\tthis.value = u ? this.value.filter((F) => F !== this._value) : [...this.value, this._value];\n\t}\n};\nvar SD = Object.defineProperty, $D = (t, u, F) => u in t ? SD(t, u, {\n\tenumerable: true,\n\tconfigurable: true,\n\twritable: true,\n\tvalue: F\n}) : t[u] = F, q = (t, u, F) => ($D(t, typeof u != \"symbol\" ? u + \"\" : u, F), F);\nvar jD = class extends x {\n\tconstructor(u) {\n\t\tsuper(u, false), q(this, \"options\"), q(this, \"cursor\", 0), this.options = u.options, this.cursor = this.options.findIndex(({ value: F }) => F === u.initialValue), this.cursor === -1 && (this.cursor = 0), this.changeValue(), this.on(\"cursor\", (F) => {\n\t\t\tswitch (F) {\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\tget _value() {\n\t\treturn this.options[this.cursor];\n\t}\n\tchangeValue() {\n\t\tthis.value = this._value.value;\n\t}\n};\nvar PD = class extends x {\n\tget valueWithCursor() {\n\t\tif (this.state === \"submit\") return this.value;\n\t\tif (this.cursor >= this.value.length) return `${this.value}\\u2588`;\n\t\tconst u = this.value.slice(0, this.cursor), [F, ...e$1] = this.value.slice(this.cursor);\n\t\treturn `${u}${e.inverse(F)}${e$1.join(\"\")}`;\n\t}\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tconstructor(u) {\n\t\tsuper(u), this.on(\"finalize\", () => {\n\t\t\tthis.value || (this.value = u.defaultValue);\n\t\t});\n\t}\n};\nfunction ce() {\n\treturn process$1.platform !== \"win32\" ? process$1.env.TERM !== \"linux\" : !!process$1.env.CI || !!process$1.env.WT_SESSION || !!process$1.env.TERMINUS_SUBLIME || process$1.env.ConEmuTask === \"{cmd::Cmder}\" || process$1.env.TERM_PROGRAM === \"Terminus-Sublime\" || process$1.env.TERM_PROGRAM === \"vscode\" || process$1.env.TERM === \"xterm-256color\" || process$1.env.TERM === \"alacritty\" || process$1.env.TERMINAL_EMULATOR === \"JetBrains-JediTerm\";\n}\nconst V = ce(), u = (t, n) => V ? t : n, le = u(\"❯\", \">\"), L = u(\"■\", \"x\"), W = u(\"▲\", \"x\"), C = u(\"✔\", \"√\"), o = u(\"\"), d = u(\"\"), k = u(\"●\", \">\"), P = u(\"○\", \" \"), A = u(\"◻\", \"[•]\"), T = u(\"◼\", \"[+]\"), F = u(\"◻\", \"[ ]\"), w = (t) => {\n\tswitch (t) {\n\t\tcase \"initial\":\n\t\tcase \"active\": return e.cyan(le);\n\t\tcase \"cancel\": return e.red(L);\n\t\tcase \"error\": return e.yellow(W);\n\t\tcase \"submit\": return e.green(C);\n\t}\n}, B = (t) => {\n\tconst { cursor: n, options: s, style: r } = t, i = t.maxItems ?? Number.POSITIVE_INFINITY, a = Math.max(process.stdout.rows - 4, 0), c = Math.min(a, Math.max(i, 5));\n\tlet l = 0;\n\tn >= l + c - 3 ? l = Math.max(Math.min(n - c + 3, s.length - c), 0) : n < l + 2 && (l = Math.max(n - 2, 0));\n\tconst $ = c < s.length && l > 0, p = c < s.length && l + c < s.length;\n\treturn s.slice(l, l + c).map((M, v, x) => {\n\t\tconst j = v === 0 && $, E = v === x.length - 1 && p;\n\t\treturn j || E ? e.dim(\"...\") : r(M, v + l === n);\n\t});\n}, he = (t) => new PD({\n\tvalidate: t.validate,\n\tplaceholder: t.placeholder,\n\tdefaultValue: t.defaultValue,\n\tinitialValue: t.initialValue,\n\trender() {\n\t\tconst n = `${e.gray(o)}\n${w(this.state)} ${t.message}\n`, s = t.placeholder ? e.inverse(t.placeholder[0]) + e.dim(t.placeholder.slice(1)) : e.inverse(e.hidden(\"_\")), r = this.value ? this.valueWithCursor : s;\n\t\tswitch (this.state) {\n\t\t\tcase \"error\": return `${n.trim()}\n${e.yellow(o)} ${r}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;\n\t\t\tcase \"submit\": return `${n}${e.gray(o)} ${e.dim(this.value || t.placeholder)}`;\n\t\t\tcase \"cancel\": return `${n}${e.gray(o)} ${e.strikethrough(e.dim(this.value ?? \"\"))}${this.value?.trim() ? `\n${e.gray(o)}` : \"\"}`;\n\t\t\tdefault: return `${n}${e.cyan(o)} ${r}\n${e.cyan(d)}\n`;\n\t\t}\n\t}\n}).prompt(), ye = (t) => {\n\tconst n = t.active ?? \"Yes\", s = t.inactive ?? \"No\";\n\treturn new fD({\n\t\tactive: n,\n\t\tinactive: s,\n\t\tinitialValue: t.initialValue ?? true,\n\t\trender() {\n\t\t\tconst r = `${e.gray(o)}\n${w(this.state)} ${t.message}\n`, i = this.value ? n : s;\n\t\t\tswitch (this.state) {\n\t\t\t\tcase \"submit\": return `${r}${e.gray(o)} ${e.dim(i)}`;\n\t\t\t\tcase \"cancel\": return `${r}${e.gray(o)} ${e.strikethrough(e.dim(i))}\n${e.gray(o)}`;\n\t\t\t\tdefault: return `${r}${e.cyan(o)} ${this.value ? `${e.green(k)} ${n}` : `${e.dim(P)} ${e.dim(n)}`} ${e.dim(\"/\")} ${this.value ? `${e.dim(P)} ${e.dim(s)}` : `${e.green(k)} ${s}`}\n${e.cyan(d)}\n`;\n\t\t\t}\n\t\t}\n\t}).prompt();\n}, ve = (t) => {\n\tconst n = (s, r) => {\n\t\tconst i = s.label ?? String(s.value);\n\t\tswitch (r) {\n\t\t\tcase \"selected\": return `${e.dim(i)}`;\n\t\t\tcase \"active\": return `${e.green(k)} ${i} ${s.hint ? e.dim(`(${s.hint})`) : \"\"}`;\n\t\t\tcase \"cancelled\": return `${e.strikethrough(e.dim(i))}`;\n\t\t\tdefault: return `${e.dim(P)} ${e.dim(i)}`;\n\t\t}\n\t};\n\treturn new jD({\n\t\toptions: t.options,\n\t\tinitialValue: t.initialValue,\n\t\trender() {\n\t\t\tconst s = `${e.gray(o)}\n${w(this.state)} ${t.message}\n`;\n\t\t\tswitch (this.state) {\n\t\t\t\tcase \"submit\": return `${s}${e.gray(o)} ${n(this.options[this.cursor], \"selected\")}`;\n\t\t\t\tcase \"cancel\": return `${s}${e.gray(o)} ${n(this.options[this.cursor], \"cancelled\")}\n${e.gray(o)}`;\n\t\t\t\tdefault: return `${s}${e.cyan(o)} ${B({\n\t\t\t\t\tcursor: this.cursor,\n\t\t\t\t\toptions: this.options,\n\t\t\t\t\tmaxItems: t.maxItems,\n\t\t\t\t\tstyle: (r, i) => n(r, i ? \"active\" : \"inactive\")\n\t\t\t\t}).join(`\n${e.cyan(o)} `)}\n${e.cyan(d)}\n`;\n\t\t\t}\n\t\t}\n\t}).prompt();\n}, fe = (t) => {\n\tconst n = (s, r) => {\n\t\tconst i = s.label ?? String(s.value);\n\t\treturn r === \"active\" ? `${e.cyan(A)} ${i} ${s.hint ? e.dim(`(${s.hint})`) : \"\"}` : r === \"selected\" ? `${e.green(T)} ${e.dim(i)}` : r === \"cancelled\" ? `${e.strikethrough(e.dim(i))}` : r === \"active-selected\" ? `${e.green(T)} ${i} ${s.hint ? e.dim(`(${s.hint})`) : \"\"}` : r === \"submitted\" ? `${e.dim(i)}` : `${e.dim(F)} ${e.dim(i)}`;\n\t};\n\treturn new wD({\n\t\toptions: t.options,\n\t\tinitialValues: t.initialValues,\n\t\trequired: t.required ?? true,\n\t\tcursorAt: t.cursorAt,\n\t\tvalidate(s) {\n\t\t\tif (this.required && s.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`))}`;\n\t\t},\n\t\trender() {\n\t\t\tconst s = `${e.gray(o)}\n${w(this.state)} ${t.message}\n`, r = (i, a) => {\n\t\t\t\tconst c = this.value.includes(i.value);\n\t\t\t\treturn a && c ? n(i, \"active-selected\") : c ? n(i, \"selected\") : n(i, a ? \"active\" : \"inactive\");\n\t\t\t};\n\t\t\tswitch (this.state) {\n\t\t\t\tcase \"submit\": return `${s}${e.gray(o)} ${this.options.filter(({ value: i }) => this.value.includes(i)).map((i) => n(i, \"submitted\")).join(e.dim(\", \")) || e.dim(\"none\")}`;\n\t\t\t\tcase \"cancel\": {\n\t\t\t\t\tconst i = this.options.filter(({ value: a }) => this.value.includes(a)).map((a) => n(a, \"cancelled\")).join(e.dim(\", \"));\n\t\t\t\t\treturn `${s}${e.gray(o)} ${i.trim() ? `${i}\n${e.gray(o)}` : \"\"}`;\n\t\t\t\t}\n\t\t\t\tcase \"error\": {\n\t\t\t\t\tconst i = this.error.split(`\n`).map((a, c) => c === 0 ? `${e.yellow(d)} ${e.yellow(a)}` : ` ${a}`).join(`\n`);\n\t\t\t\t\treturn `${s + e.yellow(o)} ${B({\n\t\t\t\t\t\toptions: this.options,\n\t\t\t\t\t\tcursor: this.cursor,\n\t\t\t\t\t\tmaxItems: t.maxItems,\n\t\t\t\t\t\tstyle: r\n\t\t\t\t\t}).join(`\n${e.yellow(o)} `)}\n${i}\n`;\n\t\t\t\t}\n\t\t\t\tdefault: return `${s}${e.cyan(o)} ${B({\n\t\t\t\t\toptions: this.options,\n\t\t\t\t\tcursor: this.cursor,\n\t\t\t\t\tmaxItems: t.maxItems,\n\t\t\t\t\tstyle: r\n\t\t\t\t}).join(`\n${e.cyan(o)} `)}\n${e.cyan(d)}\n`;\n\t\t\t}\n\t\t}\n\t}).prompt();\n};\n`${e.gray(o)}`;\nconst kCancel = Symbol.for(\"cancel\");\nasync function prompt(message, opts = {}) {\n\tconst handleCancel = (value) => {\n\t\tif (typeof value !== \"symbol\" || value.toString() !== \"Symbol(clack:cancel)\") return value;\n\t\tswitch (opts.cancel) {\n\t\t\tcase \"reject\": {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(\"Prompt cancelled.\");\n\t\t\t\terror.name = \"ConsolaPromptCancelledError\";\n\t\t\t\tif (Error.captureStackTrace) Error.captureStackTrace(error, prompt);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tcase \"undefined\": return;\n\t\t\tcase \"null\": return null;\n\t\t\tcase \"symbol\": return kCancel;\n\t\t\tdefault:\n\t\t\tcase \"default\": return opts.default ?? opts.initial;\n\t\t}\n\t};\n\tif (!opts.type || opts.type === \"text\") return await he({\n\t\tmessage,\n\t\tdefaultValue: opts.default,\n\t\tplaceholder: opts.placeholder,\n\t\tinitialValue: opts.initial\n\t}).then(handleCancel);\n\tif (opts.type === \"confirm\") return await ye({\n\t\tmessage,\n\t\tinitialValue: opts.initial\n\t}).then(handleCancel);\n\tif (opts.type === \"select\") return await ve({\n\t\tmessage,\n\t\toptions: opts.options.map((o) => typeof o === \"string\" ? {\n\t\t\tvalue: o,\n\t\t\tlabel: o\n\t\t} : o),\n\t\tinitialValue: opts.initial\n\t}).then(handleCancel);\n\tif (opts.type === \"multiselect\") return await fe({\n\t\tmessage,\n\t\toptions: opts.options.map((o) => typeof o === \"string\" ? {\n\t\t\tvalue: o,\n\t\t\tlabel: o\n\t\t} : o),\n\t\trequired: opts.required,\n\t\tinitialValues: opts.initial\n\t}).then(handleCancel);\n\tthrow new Error(`Unknown prompt type: ${opts.type}`);\n}\n//#endregion\nexport { prompt };\n"],"x_google_ignoreList":[0],"mappings":"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AAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,KAAO,GAAK,GAAK,KAAO,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,MAAQ,MAAQ,GAAK,GAAK,MAAQ,GAAK,OAAS,GAAK,OAAS,OAAS,GAAK,GAAK,OAAS,OAAS,GAAK,GAAK,OAAS,OAAS,G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"}
|