create-qorechain-dapp 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
- package/templates/rollup-app/README.md +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or Derivative
|
|
95
|
+
Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work, excluding
|
|
103
|
+
those notices that do not pertain to any part of the Derivative
|
|
104
|
+
Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one of
|
|
111
|
+
the following places: within a NOTICE text file distributed as
|
|
112
|
+
part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and do
|
|
117
|
+
not modify the License. You may add Your own attribution notices
|
|
118
|
+
within Derivative Works that You distribute, alongside or as an
|
|
119
|
+
addendum to the NOTICE text from the Work, provided that such
|
|
120
|
+
additional attribution notices cannot be construed as modifying
|
|
121
|
+
the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright 2026 QoreChain
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js","../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../src/index.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/eastasianwidth@0.2.0/node_modules/eastasianwidth/eastasianwidth.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/emoji-regex@9.2.2/node_modules/emoji-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/string-width@5.1.2/node_modules/string-width/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/wrap-ansi@8.1.0/node_modules/wrap-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/prompt.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/confirm.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/group-multiselect.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/multi-select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/password.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select-key.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/text.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/utils.ts","../../node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs","../src/templates.ts","../src/args.ts","../src/scaffold.ts"],"sourcesContent":["'use strict';\n\nconst ESC = '\\x1B';\nconst CSI = `${ESC}[`;\nconst beep = '\\u0007';\n\nconst cursor = {\n to(x, y) {\n if (!y) return `${CSI}${x + 1}G`;\n return `${CSI}${y + 1};${x + 1}H`;\n },\n move(x, y) {\n let ret = '';\n\n if (x < 0) ret += `${CSI}${-x}D`;\n else if (x > 0) ret += `${CSI}${x}C`;\n\n if (y < 0) ret += `${CSI}${-y}A`;\n else if (y > 0) ret += `${CSI}${y}B`;\n\n return ret;\n },\n up: (count = 1) => `${CSI}${count}A`,\n down: (count = 1) => `${CSI}${count}B`,\n forward: (count = 1) => `${CSI}${count}C`,\n backward: (count = 1) => `${CSI}${count}D`,\n nextLine: (count = 1) => `${CSI}E`.repeat(count),\n prevLine: (count = 1) => `${CSI}F`.repeat(count),\n left: `${CSI}G`,\n hide: `${CSI}?25l`,\n show: `${CSI}?25h`,\n save: `${ESC}7`,\n restore: `${ESC}8`\n}\n\nconst scroll = {\n up: (count = 1) => `${CSI}S`.repeat(count),\n down: (count = 1) => `${CSI}T`.repeat(count)\n}\n\nconst erase = {\n screen: `${CSI}2J`,\n up: (count = 1) => `${CSI}1J`.repeat(count),\n down: (count = 1) => `${CSI}J`.repeat(count),\n line: `${CSI}2K`,\n lineEnd: `${CSI}K`,\n lineStart: `${CSI}1K`,\n lines(count) {\n let clear = '';\n for (let i = 0; i < count; i++)\n clear += this.line + (i < count - 1 ? cursor.up() : '');\n if (count)\n clear += cursor.left;\n return clear;\n }\n}\n\nmodule.exports = { cursor, scroll, erase, beep };\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","/**\n * `create-qorechain-dapp` entry point.\n *\n * Parses flags (non-interactive / CI mode) and falls back to interactive prompts\n * for any missing inputs. All scaffolding side effects are delegated to the pure\n * {@link scaffold} function in `./scaffold`.\n */\nimport { existsSync, readdirSync } from \"node:fs\";\nimport { basename, resolve } from \"node:path\";\n\nimport {\n cancel,\n intro,\n isCancel,\n log,\n note,\n outro,\n select,\n text,\n} from \"@clack/prompts\";\nimport pc from \"picocolors\";\n\nimport { ArgError, helpText, parseArgs } from \"./args.js\";\nimport {\n scaffold,\n type Network,\n type PackageManager,\n} from \"./scaffold.js\";\nimport { findTemplate, TEMPLATES, templateIdList } from \"./templates.js\";\n\nconst VERSION = \"0.1.0\";\n\nfunction isEmptyOrMissing(dir: string): boolean {\n if (!existsSync(dir)) return true;\n return readdirSync(dir).length === 0;\n}\n\n/** Validate a directory name segment for a project name fallback. */\nfunction defaultProjectName(dir: string): string {\n const base = basename(resolve(dir));\n // npm package names: lowercase, no spaces.\n return base\n .toLowerCase()\n .replace(/[^a-z0-9-~._]/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .replace(/-+/g, \"-\") || \"qorechain-dapp\";\n}\n\nasync function promptDir(initial?: string): Promise<string> {\n if (initial) return initial;\n const value = await text({\n message: \"Where should we create your project?\",\n placeholder: \"./my-qorechain-dapp\",\n defaultValue: \"./my-qorechain-dapp\",\n validate: (v) => {\n const dir = v || \"./my-qorechain-dapp\";\n if (!isEmptyOrMissing(resolve(dir))) {\n return `Directory ${dir} already exists and is not empty.`;\n }\n return undefined;\n },\n });\n if (isCancel(value)) bail();\n return (value as string) || \"./my-qorechain-dapp\";\n}\n\nasync function promptTemplate(initial?: string): Promise<string> {\n if (initial) {\n if (!findTemplate(initial)) {\n cancel(`Unknown template \"${initial}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n return initial;\n }\n const value = await select({\n message: \"Pick a template\",\n options: TEMPLATES.map((t) => ({\n value: t.id,\n label: t.label,\n hint: t.hint,\n })),\n });\n if (isCancel(value)) bail();\n return value as string;\n}\n\nasync function promptNetwork(initial?: Network): Promise<Network> {\n if (initial) return initial;\n const value = await select({\n message: \"Which network?\",\n options: [\n { value: \"testnet\", label: \"testnet\", hint: \"qorechain-diana\" },\n { value: \"mainnet\", label: \"mainnet\", hint: \"qorechain-vladi\" },\n ],\n initialValue: \"testnet\",\n });\n if (isCancel(value)) bail();\n return value as Network;\n}\n\nasync function promptPackageManager(\n initial?: PackageManager,\n): Promise<PackageManager> {\n if (initial) return initial;\n const value = await select({\n message: \"Package manager?\",\n options: [\n { value: \"pnpm\", label: \"pnpm\" },\n { value: \"npm\", label: \"npm\" },\n { value: \"yarn\", label: \"yarn\" },\n ],\n initialValue: \"pnpm\",\n });\n if (isCancel(value)) bail();\n return value as PackageManager;\n}\n\nfunction bail(): never {\n cancel(\"Operation cancelled.\");\n process.exit(0);\n}\n\nfunction nextSteps(\n dir: string,\n pm: PackageManager,\n installed: boolean,\n template: string,\n): string {\n const lines: string[] = [`cd ${dir}`];\n if (!installed) lines.push(`${pm} install`);\n const run = pm === \"npm\" ? \"npm run\" : pm;\n if (template === \"fullstack-web\") {\n lines.push(`${run} dev`);\n } else {\n lines.push(`${run} deploy # see README for prerequisites`);\n }\n return lines.join(\"\\n\");\n}\n\nasync function main(): Promise<void> {\n const argv = process.argv.slice(2);\n let parsed;\n try {\n parsed = parseArgs(argv);\n } catch (err) {\n if (err instanceof ArgError) {\n console.error(pc.red(err.message));\n console.error(`\\nRun ${pc.cyan(\"create-qorechain-dapp --help\")} for usage.`);\n process.exit(1);\n }\n throw err;\n }\n\n if (parsed.help) {\n console.log(helpText());\n return;\n }\n if (parsed.version) {\n console.log(VERSION);\n return;\n }\n\n intro(pc.bgCyan(pc.black(\" create-qorechain-dapp \")));\n\n // Resolve each input: flags first, then prompts (unless --yes fills defaults).\n const dir = parsed.dir ?? (parsed.yes ? \"./my-qorechain-dapp\" : await promptDir());\n const template =\n parsed.template ??\n (parsed.yes ? TEMPLATES[0].id : await promptTemplate());\n // Validate the (possibly flag-provided) template eagerly.\n if (!findTemplate(template)) {\n cancel(`Unknown template \"${template}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n const network =\n parsed.network ?? (parsed.yes ? \"testnet\" : await promptNetwork());\n const packageManager =\n parsed.packageManager ??\n (parsed.yes ? \"pnpm\" : await promptPackageManager());\n\n const projectName = defaultProjectName(dir);\n\n // In interactive mode, default install to the flag (true unless --no-install).\n const install = parsed.install;\n\n try {\n if (install) log.step(\"Scaffolding and installing dependencies…\");\n else log.step(\"Scaffolding…\");\n\n const result = scaffold({\n template,\n targetDir: dir,\n projectName,\n packageManager,\n network,\n install,\n local: parsed.local,\n });\n\n if (parsed.local) {\n note(\n \"Dependencies were rewritten to local file: links into this monorepo.\\n\" +\n \"Build the workspace packages first (pnpm -r build at the repo root).\",\n \"Local mode\",\n );\n }\n\n note(nextSteps(dir, packageManager, result.installed, template), \"Next steps\");\n outro(pc.green(`Done! Created ${projectName} at ${result.targetDir}`));\n } catch (err) {\n cancel(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nmain().catch((err: unknown) => {\n console.error(err instanceof Error ? err.stack ?? err.message : err);\n process.exit(1);\n});\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","var eaw = {};\n\nif ('undefined' == typeof module) {\n window.eastasianwidth = eaw;\n} else {\n module.exports = eaw;\n}\n\neaw.eastAsianWidth = function(character) {\n var x = character.charCodeAt(0);\n var y = (character.length == 2) ? character.charCodeAt(1) : 0;\n var codePoint = x;\n if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) {\n x &= 0x3FF;\n y &= 0x3FF;\n codePoint = (x << 10) | y;\n codePoint += 0x10000;\n }\n\n if ((0x3000 == codePoint) ||\n (0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) {\n return 'F';\n }\n if ((0x20A9 == codePoint) ||\n (0xFF61 <= codePoint && codePoint <= 0xFFBE) ||\n (0xFFC2 <= codePoint && codePoint <= 0xFFC7) ||\n (0xFFCA <= codePoint && codePoint <= 0xFFCF) ||\n (0xFFD2 <= codePoint && codePoint <= 0xFFD7) ||\n (0xFFDA <= codePoint && codePoint <= 0xFFDC) ||\n (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) {\n return 'H';\n }\n if ((0x1100 <= codePoint && codePoint <= 0x115F) ||\n (0x11A3 <= codePoint && codePoint <= 0x11A7) ||\n (0x11FA <= codePoint && codePoint <= 0x11FF) ||\n (0x2329 <= codePoint && codePoint <= 0x232A) ||\n (0x2E80 <= codePoint && codePoint <= 0x2E99) ||\n (0x2E9B <= codePoint && codePoint <= 0x2EF3) ||\n (0x2F00 <= codePoint && codePoint <= 0x2FD5) ||\n (0x2FF0 <= codePoint && codePoint <= 0x2FFB) ||\n (0x3001 <= codePoint && codePoint <= 0x303E) ||\n (0x3041 <= codePoint && codePoint <= 0x3096) ||\n (0x3099 <= codePoint && codePoint <= 0x30FF) ||\n (0x3105 <= codePoint && codePoint <= 0x312D) ||\n (0x3131 <= codePoint && codePoint <= 0x318E) ||\n (0x3190 <= codePoint && codePoint <= 0x31BA) ||\n (0x31C0 <= codePoint && codePoint <= 0x31E3) ||\n (0x31F0 <= codePoint && codePoint <= 0x321E) ||\n (0x3220 <= codePoint && codePoint <= 0x3247) ||\n (0x3250 <= codePoint && codePoint <= 0x32FE) ||\n (0x3300 <= codePoint && codePoint <= 0x4DBF) ||\n (0x4E00 <= codePoint && codePoint <= 0xA48C) ||\n (0xA490 <= codePoint && codePoint <= 0xA4C6) ||\n (0xA960 <= codePoint && codePoint <= 0xA97C) ||\n (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n (0xD7B0 <= codePoint && codePoint <= 0xD7C6) ||\n (0xD7CB <= codePoint && codePoint <= 0xD7FB) ||\n (0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n (0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n (0xFE30 <= codePoint && codePoint <= 0xFE52) ||\n (0xFE54 <= codePoint && codePoint <= 0xFE66) ||\n (0xFE68 <= codePoint && codePoint <= 0xFE6B) ||\n (0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n (0x1F200 <= codePoint && codePoint <= 0x1F202) ||\n (0x1F210 <= codePoint && codePoint <= 0x1F23A) ||\n (0x1F240 <= codePoint && codePoint <= 0x1F248) ||\n (0x1F250 <= codePoint && codePoint <= 0x1F251) ||\n (0x20000 <= codePoint && codePoint <= 0x2F73F) ||\n (0x2B740 <= codePoint && codePoint <= 0x2FFFD) ||\n (0x30000 <= codePoint && codePoint <= 0x3FFFD)) {\n return 'W';\n }\n if ((0x0020 <= codePoint && codePoint <= 0x007E) ||\n (0x00A2 <= codePoint && codePoint <= 0x00A3) ||\n (0x00A5 <= codePoint && codePoint <= 0x00A6) ||\n (0x00AC == codePoint) ||\n (0x00AF == codePoint) ||\n (0x27E6 <= codePoint && codePoint <= 0x27ED) ||\n (0x2985 <= codePoint && codePoint <= 0x2986)) {\n return 'Na';\n }\n if ((0x00A1 == codePoint) ||\n (0x00A4 == codePoint) ||\n (0x00A7 <= codePoint && codePoint <= 0x00A8) ||\n (0x00AA == codePoint) ||\n (0x00AD <= codePoint && codePoint <= 0x00AE) ||\n (0x00B0 <= codePoint && codePoint <= 0x00B4) ||\n (0x00B6 <= codePoint && codePoint <= 0x00BA) ||\n (0x00BC <= codePoint && codePoint <= 0x00BF) ||\n (0x00C6 == codePoint) ||\n (0x00D0 == codePoint) ||\n (0x00D7 <= codePoint && codePoint <= 0x00D8) ||\n (0x00DE <= codePoint && codePoint <= 0x00E1) ||\n (0x00E6 == codePoint) ||\n (0x00E8 <= codePoint && codePoint <= 0x00EA) ||\n (0x00EC <= codePoint && codePoint <= 0x00ED) ||\n (0x00F0 == codePoint) ||\n (0x00F2 <= codePoint && codePoint <= 0x00F3) ||\n (0x00F7 <= codePoint && codePoint <= 0x00FA) ||\n (0x00FC == codePoint) ||\n (0x00FE == codePoint) ||\n (0x0101 == codePoint) ||\n (0x0111 == codePoint) ||\n (0x0113 == codePoint) ||\n (0x011B == codePoint) ||\n (0x0126 <= codePoint && codePoint <= 0x0127) ||\n (0x012B == codePoint) ||\n (0x0131 <= codePoint && codePoint <= 0x0133) ||\n (0x0138 == codePoint) ||\n (0x013F <= codePoint && codePoint <= 0x0142) ||\n (0x0144 == codePoint) ||\n (0x0148 <= codePoint && codePoint <= 0x014B) ||\n (0x014D == codePoint) ||\n (0x0152 <= codePoint && codePoint <= 0x0153) ||\n (0x0166 <= codePoint && codePoint <= 0x0167) ||\n (0x016B == codePoint) ||\n (0x01CE == codePoint) ||\n (0x01D0 == codePoint) ||\n (0x01D2 == codePoint) ||\n (0x01D4 == codePoint) ||\n (0x01D6 == codePoint) ||\n (0x01D8 == codePoint) ||\n (0x01DA == codePoint) ||\n (0x01DC == codePoint) ||\n (0x0251 == codePoint) ||\n (0x0261 == codePoint) ||\n (0x02C4 == codePoint) ||\n (0x02C7 == codePoint) ||\n (0x02C9 <= codePoint && codePoint <= 0x02CB) ||\n (0x02CD == codePoint) ||\n (0x02D0 == codePoint) ||\n (0x02D8 <= codePoint && codePoint <= 0x02DB) ||\n (0x02DD == codePoint) ||\n (0x02DF == codePoint) ||\n (0x0300 <= codePoint && codePoint <= 0x036F) ||\n (0x0391 <= codePoint && codePoint <= 0x03A1) ||\n (0x03A3 <= codePoint && codePoint <= 0x03A9) ||\n (0x03B1 <= codePoint && codePoint <= 0x03C1) ||\n (0x03C3 <= codePoint && codePoint <= 0x03C9) ||\n (0x0401 == codePoint) ||\n (0x0410 <= codePoint && codePoint <= 0x044F) ||\n (0x0451 == codePoint) ||\n (0x2010 == codePoint) ||\n (0x2013 <= codePoint && codePoint <= 0x2016) ||\n (0x2018 <= codePoint && codePoint <= 0x2019) ||\n (0x201C <= codePoint && codePoint <= 0x201D) ||\n (0x2020 <= codePoint && codePoint <= 0x2022) ||\n (0x2024 <= codePoint && codePoint <= 0x2027) ||\n (0x2030 == codePoint) ||\n (0x2032 <= codePoint && codePoint <= 0x2033) ||\n (0x2035 == codePoint) ||\n (0x203B == codePoint) ||\n (0x203E == codePoint) ||\n (0x2074 == codePoint) ||\n (0x207F == codePoint) ||\n (0x2081 <= codePoint && codePoint <= 0x2084) ||\n (0x20AC == codePoint) ||\n (0x2103 == codePoint) ||\n (0x2105 == codePoint) ||\n (0x2109 == codePoint) ||\n (0x2113 == codePoint) ||\n (0x2116 == codePoint) ||\n (0x2121 <= codePoint && codePoint <= 0x2122) ||\n (0x2126 == codePoint) ||\n (0x212B == codePoint) ||\n (0x2153 <= codePoint && codePoint <= 0x2154) ||\n (0x215B <= codePoint && codePoint <= 0x215E) ||\n (0x2160 <= codePoint && codePoint <= 0x216B) ||\n (0x2170 <= codePoint && codePoint <= 0x2179) ||\n (0x2189 == codePoint) ||\n (0x2190 <= codePoint && codePoint <= 0x2199) ||\n (0x21B8 <= codePoint && codePoint <= 0x21B9) ||\n (0x21D2 == codePoint) ||\n (0x21D4 == codePoint) ||\n (0x21E7 == codePoint) ||\n (0x2200 == codePoint) ||\n (0x2202 <= codePoint && codePoint <= 0x2203) ||\n (0x2207 <= codePoint && codePoint <= 0x2208) ||\n (0x220B == codePoint) ||\n (0x220F == codePoint) ||\n (0x2211 == codePoint) ||\n (0x2215 == codePoint) ||\n (0x221A == codePoint) ||\n (0x221D <= codePoint && codePoint <= 0x2220) ||\n (0x2223 == codePoint) ||\n (0x2225 == codePoint) ||\n (0x2227 <= codePoint && codePoint <= 0x222C) ||\n (0x222E == codePoint) ||\n (0x2234 <= codePoint && codePoint <= 0x2237) ||\n (0x223C <= codePoint && codePoint <= 0x223D) ||\n (0x2248 == codePoint) ||\n (0x224C == codePoint) ||\n (0x2252 == codePoint) ||\n (0x2260 <= codePoint && codePoint <= 0x2261) ||\n (0x2264 <= codePoint && codePoint <= 0x2267) ||\n (0x226A <= codePoint && codePoint <= 0x226B) ||\n (0x226E <= codePoint && codePoint <= 0x226F) ||\n (0x2282 <= codePoint && codePoint <= 0x2283) ||\n (0x2286 <= codePoint && codePoint <= 0x2287) ||\n (0x2295 == codePoint) ||\n (0x2299 == codePoint) ||\n (0x22A5 == codePoint) ||\n (0x22BF == codePoint) ||\n (0x2312 == codePoint) ||\n (0x2460 <= codePoint && codePoint <= 0x24E9) ||\n (0x24EB <= codePoint && codePoint <= 0x254B) ||\n (0x2550 <= codePoint && codePoint <= 0x2573) ||\n (0x2580 <= codePoint && codePoint <= 0x258F) ||\n (0x2592 <= codePoint && codePoint <= 0x2595) ||\n (0x25A0 <= codePoint && codePoint <= 0x25A1) ||\n (0x25A3 <= codePoint && codePoint <= 0x25A9) ||\n (0x25B2 <= codePoint && codePoint <= 0x25B3) ||\n (0x25B6 <= codePoint && codePoint <= 0x25B7) ||\n (0x25BC <= codePoint && codePoint <= 0x25BD) ||\n (0x25C0 <= codePoint && codePoint <= 0x25C1) ||\n (0x25C6 <= codePoint && codePoint <= 0x25C8) ||\n (0x25CB == codePoint) ||\n (0x25CE <= codePoint && codePoint <= 0x25D1) ||\n (0x25E2 <= codePoint && codePoint <= 0x25E5) ||\n (0x25EF == codePoint) ||\n (0x2605 <= codePoint && codePoint <= 0x2606) ||\n (0x2609 == codePoint) ||\n (0x260E <= codePoint && codePoint <= 0x260F) ||\n (0x2614 <= codePoint && codePoint <= 0x2615) ||\n (0x261C == codePoint) ||\n (0x261E == codePoint) ||\n (0x2640 == codePoint) ||\n (0x2642 == codePoint) ||\n (0x2660 <= codePoint && codePoint <= 0x2661) ||\n (0x2663 <= codePoint && codePoint <= 0x2665) ||\n (0x2667 <= codePoint && codePoint <= 0x266A) ||\n (0x266C <= codePoint && codePoint <= 0x266D) ||\n (0x266F == codePoint) ||\n (0x269E <= codePoint && codePoint <= 0x269F) ||\n (0x26BE <= codePoint && codePoint <= 0x26BF) ||\n (0x26C4 <= codePoint && codePoint <= 0x26CD) ||\n (0x26CF <= codePoint && codePoint <= 0x26E1) ||\n (0x26E3 == codePoint) ||\n (0x26E8 <= codePoint && codePoint <= 0x26FF) ||\n (0x273D == codePoint) ||\n (0x2757 == codePoint) ||\n (0x2776 <= codePoint && codePoint <= 0x277F) ||\n (0x2B55 <= codePoint && codePoint <= 0x2B59) ||\n (0x3248 <= codePoint && codePoint <= 0x324F) ||\n (0xE000 <= codePoint && codePoint <= 0xF8FF) ||\n (0xFE00 <= codePoint && codePoint <= 0xFE0F) ||\n (0xFFFD == codePoint) ||\n (0x1F100 <= codePoint && codePoint <= 0x1F10A) ||\n (0x1F110 <= codePoint && codePoint <= 0x1F12D) ||\n (0x1F130 <= codePoint && codePoint <= 0x1F169) ||\n (0x1F170 <= codePoint && codePoint <= 0x1F19A) ||\n (0xE0100 <= codePoint && codePoint <= 0xE01EF) ||\n (0xF0000 <= codePoint && codePoint <= 0xFFFFD) ||\n (0x100000 <= codePoint && codePoint <= 0x10FFFD)) {\n return 'A';\n }\n\n return 'N';\n};\n\neaw.characterLength = function(character) {\n var code = this.eastAsianWidth(character);\n if (code == 'F' || code == 'W' || code == 'A') {\n return 2;\n } else {\n return 1;\n }\n};\n\n// Split a string considering surrogate-pairs.\nfunction stringToArray(string) {\n return string.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g) || [];\n}\n\neaw.length = function(string) {\n var characters = stringToArray(string);\n var len = 0;\n for (var i = 0; i < characters.length; i++) {\n len = len + this.characterLength(characters[i]);\n }\n return len;\n};\n\neaw.slice = function(text, start, end) {\n textLen = eaw.length(text)\n start = start ? start : 0;\n end = end ? end : 1;\n if (start < 0) {\n start = textLen + start;\n }\n if (end < 0) {\n end = textLen + end;\n }\n var result = '';\n var eawLen = 0;\n var chars = stringToArray(text);\n for (var i = 0; i < chars.length; i++) {\n var char = chars[i];\n var charLen = eaw.length(char);\n if (eawLen >= start - (charLen == 2 ? 1 : 0)) {\n if (eawLen + charLen <= end) {\n result += char;\n } else {\n break;\n }\n }\n eawLen += charLen;\n }\n return result;\n};\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport eastAsianWidth from 'eastasianwidth';\nimport emojiRegex from 'emoji-regex';\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\toptions = {\n\t\tambiguousIsNarrow: true,\n\t\t...options\n\t};\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), ' ');\n\n\tconst ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;\n\tlet width = 0;\n\n\tfor (const character of string) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (codePoint >= 0x300 && codePoint <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst code = eastAsianWidth.eastAsianWidth(character);\n\t\tswitch (code) {\n\t\t\tcase 'F':\n\t\t\tcase 'W':\n\t\t\t\twidth += 2;\n\t\t\t\tbreak;\n\t\t\tcase 'A':\n\t\t\t\twidth += ambiguousCharacterWidth;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\twidth += 1;\n\t\t}\n\t}\n\n\treturn width;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows[rows.length - 1]));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\t\t\tisInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode\n//\n// 'hard' will never allow a string to take up more than columns characters\n//\n// 'soft' allows long words to expand past the column length\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows[rows.length - 1].trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows[rows.length - 1]);\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst pre = [...rows.join('\\n')];\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(string, columns, options) {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replace(/\\r\\n/g, '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n}\n","import type { Key, ReadLine } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport readline from 'node:readline';\nimport { Readable, Writable } from 'node:stream';\nimport { WriteStream } from 'node:tty';\nimport { cursor, erase } from 'sisteransi';\nimport wrap from 'wrap-ansi';\n\nfunction diffLines(a: string, b: string) {\n\tif (a === b) return;\n\n\tconst aLines = a.split('\\n');\n\tconst bLines = b.split('\\n');\n\tconst diff: number[] = [];\n\n\tfor (let i = 0; i < Math.max(aLines.length, bLines.length); i++) {\n\t\tif (aLines[i] !== bLines[i]) diff.push(i);\n\t}\n\n\treturn diff;\n}\n\nconst cancel = Symbol('clack:cancel');\nexport function isCancel(value: unknown): value is symbol {\n\treturn value === cancel;\n}\n\nfunction setRawMode(input: Readable, value: boolean) {\n\tif ((input as typeof stdin).isTTY) (input as typeof stdin).setRawMode(value);\n}\n\nconst aliases = new Map([\n\t['k', 'up'],\n\t['j', 'down'],\n\t['h', 'left'],\n\t['l', 'right'],\n]);\nconst keys = new Set(['up', 'down', 'left', 'right', 'space', 'enter']);\n\nexport interface PromptOptions<Self extends Prompt> {\n\trender(this: Omit<Self, 'prompt'>): string | void;\n\tplaceholder?: string;\n\tinitialValue?: any;\n\tvalidate?: ((value: any) => string | void) | undefined;\n\tinput?: Readable;\n\toutput?: Writable;\n\tdebug?: boolean;\n}\n\nexport type State = 'initial' | 'active' | 'cancel' | 'submit' | 'error';\n\nexport default class Prompt {\n\tprotected input: Readable;\n\tprotected output: Writable;\n\tprivate rl!: ReadLine;\n\tprivate opts: Omit<PromptOptions<Prompt>, 'render' | 'input' | 'output'>;\n\tprivate _track: boolean = false;\n\tprivate _render: (context: Omit<Prompt, 'prompt'>) => string | void;\n\tprotected _cursor: number = 0;\n\n\tpublic state: State = 'initial';\n\tpublic value: any;\n\tpublic error: string = '';\n\n\tconstructor(\n\t\t{ render, input = stdin, output = stdout, ...opts }: PromptOptions<Prompt>,\n\t\ttrackValue: boolean = true\n\t) {\n\t\tthis.opts = opts;\n\t\tthis.onKeypress = this.onKeypress.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.render = this.render.bind(this);\n\t\tthis._render = render.bind(this);\n\t\tthis._track = trackValue;\n\n\t\tthis.input = input;\n\t\tthis.output = output;\n\t}\n\n\tpublic prompt() {\n\t\tconst sink = new WriteStream(0);\n\t\tsink._write = (chunk, encoding, done) => {\n\t\t\tif (this._track) {\n\t\t\t\tthis.value = this.rl.line.replace(/\\t/g, '');\n\t\t\t\tthis._cursor = this.rl.cursor;\n\t\t\t\tthis.emit('value', this.value);\n\t\t\t}\n\t\t\tdone();\n\t\t};\n\t\tthis.input.pipe(sink);\n\n\t\tthis.rl = readline.createInterface({\n\t\t\tinput: this.input,\n\t\t\toutput: sink,\n\t\t\ttabSize: 2,\n\t\t\tprompt: '',\n\t\t\tescapeCodeTimeout: 50,\n\t\t});\n\t\treadline.emitKeypressEvents(this.input, this.rl);\n\t\tthis.rl.prompt();\n\t\tif (this.opts.initialValue !== undefined && this._track) {\n\t\t\tthis.rl.write(this.opts.initialValue);\n\t\t}\n\n\t\tthis.input.on('keypress', this.onKeypress);\n\t\tsetRawMode(this.input, true);\n\t\tthis.output.on('resize', this.render);\n\n\t\tthis.render();\n\n\t\treturn new Promise<string | symbol>((resolve, reject) => {\n\t\t\tthis.once('submit', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(this.value);\n\t\t\t});\n\t\t\tthis.once('cancel', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(cancel);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate subscribers = new Map<string, { cb: (...args: any) => any; once?: boolean }[]>();\n\tpublic on(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic once(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb, once: true });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic emit(event: string, ...data: any[]) {\n\t\tconst cbs = this.subscribers.get(event) ?? [];\n\t\tconst cleanup: (() => void)[] = [];\n\t\tfor (const subscriber of cbs) {\n\t\t\tsubscriber.cb(...data);\n\t\t\tif (subscriber.once) {\n\t\t\t\tcleanup.push(() => cbs.splice(cbs.indexOf(subscriber), 1));\n\t\t\t}\n\t\t}\n\t\tfor (const cb of cleanup) {\n\t\t\tcb();\n\t\t}\n\t}\n\tprivate unsubscribe() {\n\t\tthis.subscribers.clear();\n\t}\n\n\tprivate onKeypress(char: string, key?: Key) {\n\t\tif (this.state === 'error') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tif (key?.name && !this._track && aliases.has(key.name)) {\n\t\t\tthis.emit('cursor', aliases.get(key.name));\n\t\t}\n\t\tif (key?.name && keys.has(key.name)) {\n\t\t\tthis.emit('cursor', key.name);\n\t\t}\n\t\tif (char && (char.toLowerCase() === 'y' || char.toLowerCase() === 'n')) {\n\t\t\tthis.emit('confirm', char.toLowerCase() === 'y');\n\t\t}\n\t\tif (char === '\\t' && this.opts.placeholder) {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.rl.write(this.opts.placeholder);\n\t\t\t\tthis.emit('value', this.opts.placeholder);\n\t\t\t}\n\t\t}\n\t\tif (char) {\n\t\t\tthis.emit('key', char.toLowerCase());\n\t\t}\n\n\t\tif (key?.name === 'return') {\n\t\t\tif (this.opts.validate) {\n\t\t\t\tconst problem = this.opts.validate(this.value);\n\t\t\t\tif (problem) {\n\t\t\t\t\tthis.error = problem;\n\t\t\t\t\tthis.state = 'error';\n\t\t\t\t\tthis.rl.write(this.value);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.state !== 'error') {\n\t\t\t\tthis.state = 'submit';\n\t\t\t}\n\t\t}\n\t\tif (char === '\\x03') {\n\t\t\tthis.state = 'cancel';\n\t\t}\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.emit('finalize');\n\t\t}\n\t\tthis.render();\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprotected close() {\n\t\tthis.input.unpipe();\n\t\tthis.input.removeListener('keypress', this.onKeypress);\n\t\tthis.output.write('\\n');\n\t\tsetRawMode(this.input, false);\n\t\tthis.rl.close();\n\t\tthis.emit(`${this.state}`, this.value);\n\t\tthis.unsubscribe();\n\t}\n\n\tprivate restoreCursor() {\n\t\tconst lines =\n\t\t\twrap(this._prevFrame, process.stdout.columns, { hard: true }).split('\\n').length - 1;\n\t\tthis.output.write(cursor.move(-999, lines * -1));\n\t}\n\n\tprivate _prevFrame = '';\n\tprivate render() {\n\t\tconst frame = wrap(this._render(this) ?? '', process.stdout.columns, { hard: true });\n\t\tif (frame === this._prevFrame) return;\n\n\t\tif (this.state === 'initial') {\n\t\t\tthis.output.write(cursor.hide);\n\t\t} else {\n\t\t\tconst diff = diffLines(this._prevFrame, frame);\n\t\t\tthis.restoreCursor();\n\t\t\t// If a single line has changed, only update that line\n\t\t\tif (diff && diff?.length === 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.lines(1));\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tthis.output.write(lines[diffLine]);\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\tthis.output.write(cursor.move(0, lines.length - diffLine - 1));\n\t\t\t\treturn;\n\t\t\t\t// If many lines have changed, rerender everything past the first line\n\t\t\t} else if (diff && diff?.length > 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.down());\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tconst newLines = lines.slice(diffLine);\n\t\t\t\tthis.output.write(newLines.join('\\n'));\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.output.write(erase.down());\n\t\t}\n\n\t\tthis.output.write(frame);\n\t\tif (this.state === 'initial') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tthis._prevFrame = frame;\n\t}\n}\n","import { cursor } from 'sisteransi';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface ConfirmOptions extends PromptOptions<ConfirmPrompt> {\n\tactive: string;\n\tinactive: string;\n\tinitialValue?: boolean;\n}\nexport default class ConfirmPrompt extends Prompt {\n\tget cursor() {\n\t\treturn this.value ? 0 : 1;\n\t}\n\n\tprivate get _value() {\n\t\treturn this.cursor === 0;\n\t}\n\n\tconstructor(opts: ConfirmOptions) {\n\t\tsuper(opts, false);\n\t\tthis.value = opts.initialValue ? true : false;\n\n\t\tthis.on('value', () => {\n\t\t\tthis.value = this._value;\n\t\t});\n\n\t\tthis.on('confirm', (confirm) => {\n\t\t\tthis.output.write(cursor.move(0, -1));\n\t\t\tthis.value = confirm;\n\t\t\tthis.state = 'submit';\n\t\t\tthis.close();\n\t\t});\n\n\t\tthis.on('cursor', () => {\n\t\t\tthis.value = !this.value;\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface GroupMultiSelectOptions<T extends { value: any }>\n\textends PromptOptions<GroupMultiSelectPrompt<T>> {\n\toptions: Record<string, T[]>;\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class GroupMultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: (T & { group: string | boolean })[];\n\tcursor: number = 0;\n\n\tgetGroupItems(group: string): T[] {\n\t\treturn this.options.filter((o) => o.group === group);\n\t}\n\n\tisGroupSelected(group: string) {\n\t\tconst items = this.getGroupItems(group);\n\t\treturn items.every((i) => this.value.includes(i.value));\n\t}\n\n\tprivate toggleValue() {\n\t\tconst item = this.options[this.cursor];\n\t\tif (item.group === true) {\n\t\t\tconst group = item.value;\n\t\t\tconst groupedItems = this.getGroupItems(group);\n\t\t\tif (this.isGroupSelected(group)) {\n\t\t\t\tthis.value = this.value.filter(\n\t\t\t\t\t(v: string) => groupedItems.findIndex((i) => i.value === v) === -1\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.value = [...this.value, ...groupedItems.map((i) => i.value)];\n\t\t\t}\n\t\t\tthis.value = Array.from(new Set(this.value));\n\t\t} else {\n\t\t\tconst selected = this.value.includes(item.value);\n\t\t\tthis.value = selected\n\t\t\t\t? this.value.filter((v: T['value']) => v !== item.value)\n\t\t\t\t: [...this.value, item.value];\n\t\t}\n\t}\n\n\tconstructor(opts: GroupMultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\t\tconst { options } = opts;\n\t\tthis.options = Object.entries(options).flatMap(([key, option]) => [\n\t\t\t{ value: key, group: true, label: key },\n\t\t\t...option.map((opt) => ({ ...opt, group: key })),\n\t\t]) as any;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface MultiSelectOptions<T extends { value: any }> extends PromptOptions<MultiSelectPrompt<T>> {\n\toptions: T[];\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class MultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor].value;\n\t}\n\n\tprivate toggleAll() {\n\t\tconst allSelected = this.value.length === this.options.length;\n\t\tthis.value = allSelected ? [] : this.options.map((v) => v.value);\n\t}\n\n\tprivate toggleValue() {\n\t\tconst selected = this.value.includes(this._value);\n\t\tthis.value = selected\n\t\t\t? this.value.filter((value: T['value']) => value !== this._value)\n\t\t\t: [...this.value, this._value];\n\t}\n\n\tconstructor(opts: MultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\t\tthis.on('key', (char) => {\n\t\t\tif (char === 'a') {\n\t\t\t\tthis.toggleAll();\n\t\t\t}\n\t\t});\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface PasswordOptions extends PromptOptions<PasswordPrompt> {\n\tmask?: string;\n}\nexport default class PasswordPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tprivate _mask = '•';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tget masked() {\n\t\treturn this.value.replaceAll(/./g, this._mask);\n\t}\n\tconstructor({ mask, ...opts }: PasswordOptions) {\n\t\tsuper(opts);\n\t\tthis._mask = mask ?? '•';\n\n\t\tthis.on('finalize', () => {\n\t\t\tthis.valueWithCursor = this.masked;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.masked}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.masked.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.masked.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectOptions<T extends { value: any }> extends PromptOptions<SelectPrompt<T>> {\n\toptions: T[];\n\tinitialValue?: T['value'];\n}\nexport default class SelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor];\n\t}\n\n\tprivate changeValue() {\n\t\tthis.value = this._value.value;\n\t}\n\n\tconstructor(opts: SelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.cursor = this.options.findIndex(({ value }) => value === opts.initialValue);\n\t\tif (this.cursor === -1) this.cursor = 0;\n\t\tthis.changeValue();\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.changeValue();\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectKeyOptions<T extends { value: any }> extends PromptOptions<SelectKeyPrompt<T>> {\n\toptions: T[];\n}\nexport default class SelectKeyPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tconstructor(opts: SelectKeyOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tconst keys = this.options.map(({ value: [initial] }) => initial?.toLowerCase());\n\t\tthis.cursor = Math.max(keys.indexOf(opts.initialValue), 0);\n\n\t\tthis.on('key', (key) => {\n\t\t\tif (!keys.includes(key)) return;\n\t\t\tconst value = this.options.find(({ value: [initial] }) => initial?.toLowerCase() === key);\n\t\t\tif (value) {\n\t\t\t\tthis.value = value.value;\n\t\t\t\tthis.state = 'submit';\n\t\t\t\tthis.emit('submit');\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\nexport interface TextOptions extends PromptOptions<TextPrompt> {\n\tplaceholder?: string;\n\tdefaultValue?: string;\n}\n\nexport default class TextPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tconstructor(opts: TextOptions) {\n\t\tsuper(opts);\n\n\t\tthis.on('finalize', () => {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.value = opts.defaultValue;\n\t\t\t}\n\t\t\tthis.valueWithCursor = this.value;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.value}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.value.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.value.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import type { Key } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport * as readline from 'node:readline';\nimport { cursor } from 'sisteransi';\n\nconst isWindows = globalThis.process.platform.startsWith('win');\n\nexport function block({\n\tinput = stdin,\n\toutput = stdout,\n\toverwrite = true,\n\thideCursor = true,\n} = {}) {\n\tconst rl = readline.createInterface({\n\t\tinput,\n\t\toutput,\n\t\tprompt: '',\n\t\ttabSize: 1,\n\t});\n\treadline.emitKeypressEvents(input, rl);\n\tif (input.isTTY) input.setRawMode(true);\n\n\tconst clear = (data: Buffer, { name }: Key) => {\n\t\tconst str = String(data);\n\t\tif (str === '\\x03') {\n\t\t\tif (hideCursor) output.write(cursor.show);\n\t\t\tprocess.exit(0);\n\t\t\treturn;\n\t\t}\n\t\tif (!overwrite) return;\n\t\tlet dx = name === 'return' ? 0 : -1;\n\t\tlet dy = name === 'return' ? -1 : 0;\n\n\t\treadline.moveCursor(output, dx, dy, () => {\n\t\t\treadline.clearLine(output, 1, () => {\n\t\t\t\tinput.once('keypress', clear);\n\t\t\t});\n\t\t});\n\t};\n\tif (hideCursor) output.write(cursor.hide);\n\tinput.once('keypress', clear);\n\n\treturn () => {\n\t\tinput.off('keypress', clear);\n\t\tif (hideCursor) output.write(cursor.show);\n\n\t\t// Prevent Windows specific issues: https://github.com/natemoo-re/clack/issues/176\n\t\tif (input.isTTY && !isWindows) input.setRawMode(false);\n\n\t\t// @ts-expect-error fix for https://github.com/nodejs/node/issues/31762#issuecomment-1441223907\n\t\trl.terminal = false;\n\t\trl.close();\n\t};\n}\n","import{TextPrompt as V,PasswordPrompt as j,ConfirmPrompt as N,SelectPrompt as k,SelectKeyPrompt as W,MultiSelectPrompt as D,GroupMultiSelectPrompt as L,isCancel as G,block as F}from\"@clack/core\";export{isCancel}from\"@clack/core\";import h from\"node:process\";import e from\"picocolors\";import{cursor as T,erase as A}from\"sisteransi\";function q(){return h.platform!==\"win32\"?h.env.TERM!==\"linux\":Boolean(h.env.CI)||Boolean(h.env.WT_SESSION)||Boolean(h.env.TERMINUS_SUBLIME)||h.env.ConEmuTask===\"{cmd::Cmder}\"||h.env.TERM_PROGRAM===\"Terminus-Sublime\"||h.env.TERM_PROGRAM===\"vscode\"||h.env.TERM===\"xterm-256color\"||h.env.TERM===\"alacritty\"||h.env.TERMINAL_EMULATOR===\"JetBrains-JediTerm\"}const _=q(),o=(r,n)=>_?r:n,H=o(\"\\u25C6\",\"*\"),I=o(\"\\u25A0\",\"x\"),x=o(\"\\u25B2\",\"x\"),S=o(\"\\u25C7\",\"o\"),K=o(\"\\u250C\",\"T\"),a=o(\"\\u2502\",\"|\"),d=o(\"\\u2514\",\"\\u2014\"),b=o(\"\\u25CF\",\">\"),E=o(\"\\u25CB\",\" \"),C=o(\"\\u25FB\",\"[\\u2022]\"),w=o(\"\\u25FC\",\"[+]\"),M=o(\"\\u25FB\",\"[ ]\"),U=o(\"\\u25AA\",\"\\u2022\"),B=o(\"\\u2500\",\"-\"),Z=o(\"\\u256E\",\"+\"),z=o(\"\\u251C\",\"+\"),X=o(\"\\u256F\",\"+\"),J=o(\"\\u25CF\",\"\\u2022\"),Y=o(\"\\u25C6\",\"*\"),Q=o(\"\\u25B2\",\"!\"),ee=o(\"\\u25A0\",\"x\"),y=r=>{switch(r){case\"initial\":case\"active\":return e.cyan(H);case\"cancel\":return e.red(I);case\"error\":return e.yellow(x);case\"submit\":return e.green(S)}},te=r=>new V({validate:r.validate,placeholder:r.placeholder,defaultValue:r.defaultValue,initialValue:r.initialValue,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=r.placeholder?e.inverse(r.placeholder[0])+e.dim(r.placeholder.slice(1)):e.inverse(e.hidden(\"_\")),t=this.value?this.valueWithCursor:i;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(this.value||r.placeholder)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(this.value??\"\"))}${this.value?.trim()?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${t}\n${e.cyan(d)}\n`}}}).prompt(),re=r=>new j({validate:r.validate,mask:r.mask??U,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=this.valueWithCursor,t=this.masked;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(t)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(t??\"\"))}${t?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${i}\n${e.cyan(d)}\n`}}}).prompt(),se=r=>{const n=r.active??\"Yes\",i=r.inactive??\"No\";return new N({active:n,inactive:i,initialValue:r.initialValue??!0,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,s=this.value?n:i;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${e.dim(s)}`;case\"cancel\":return`${t}${e.gray(a)} ${e.strikethrough(e.dim(s))}\n${e.gray(a)}`;default:return`${t}${e.cyan(a)} ${this.value?`${e.green(b)} ${n}`:`${e.dim(E)} ${e.dim(n)}`} ${e.dim(\"/\")} ${this.value?`${e.dim(E)} ${e.dim(i)}`:`${e.green(b)} ${i}`}\n${e.cyan(d)}\n`}}}).prompt()},ie=r=>{const n=(t,s)=>{const c=t.label??String(t.value);return s===\"active\"?`${e.green(b)} ${c} ${t.hint?e.dim(`(${t.hint})`):\"\"}`:s===\"selected\"?`${e.dim(c)}`:s===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:`${e.dim(E)} ${e.dim(c)}`};let i=0;return new k({options:r.options,initialValue:r.initialValue,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"selected\")}`;case\"cancel\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"cancelled\")}\n${e.gray(a)}`;default:{const s=r.maxItems===void 0?1/0:Math.max(r.maxItems,5);this.cursor>=i+s-3?i=Math.max(Math.min(this.cursor-s+3,this.options.length-s),0):this.cursor<i+2&&(i=Math.max(this.cursor-2,0));const c=s<this.options.length&&i>0,l=s<this.options.length&&i+s<this.options.length;return`${t}${e.cyan(a)} ${this.options.slice(i,i+s).map((u,m,$)=>m===0&&c?e.dim(\"...\"):m===$.length-1&&l?e.dim(\"...\"):n(u,m+i===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}}).prompt()},ne=r=>{const n=(i,t=\"inactive\")=>{const s=i.label??String(i.value);return t===\"selected\"?`${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active\"?`${e.bgCyan(e.gray(` ${i.value} `))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:`${e.gray(e.bgWhite(e.inverse(` ${i.value} `)))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`};return new W({options:r.options,initialValue:r.initialValue,render(){const i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${n(this.options.find(t=>t.value===this.value),\"selected\")}`;case\"cancel\":return`${i}${e.gray(a)} ${n(this.options[0],\"cancelled\")}\n${e.gray(a)}`;default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>n(t,s===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ae=r=>{const n=(i,t)=>{const s=i.label??String(i.value);return t===\"active\"?`${e.cyan(C)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"selected\"?`${e.green(w)} ${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active-selected\"?`${e.green(w)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(s)}`:`${e.dim(M)} ${e.dim(s)}`};return new D({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))||e.dim(\"none\")}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return i+e.yellow(a)+\" \"+this.options.map((s,c)=>{const l=this.value.includes(s.value),u=c===this.cursor;return u&&l?n(s,\"active-selected\"):l?n(s,\"selected\"):n(s,u?\"active\":\"inactive\")}).join(`\n${e.yellow(a)} `)+`\n`+t+`\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>{const c=this.value.includes(t.value),l=s===this.cursor;return l&&c?n(t,\"active-selected\"):c?n(t,\"selected\"):n(t,l?\"active\":\"inactive\")}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ce=r=>{const n=(i,t,s=[])=>{const c=i.label??String(i.value),l=typeof i.group==\"string\",u=l&&(s[s.indexOf(i)+1]??{group:!0}),m=l&&u.group===!0,$=l?`${m?d:a} `:\"\";return t===\"active\"?`${e.dim($)}${e.cyan(C)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"group-active\"?`${$}${e.cyan(C)} ${e.dim(c)}`:t===\"group-active-selected\"?`${$}${e.green(w)} ${e.dim(c)}`:t===\"selected\"?`${e.dim($)}${e.green(w)} ${e.dim(c)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:t===\"active-selected\"?`${e.dim($)}${e.green(w)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(c)}`:`${e.dim($)}${e.dim(M)} ${e.dim(c)}`};return new L({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return`${i}${e.yellow(a)} ${this.options.map((s,c,l)=>{const u=this.value.includes(s.value)||s.group===!0&&this.isGroupSelected(`${s.value}`),m=c===this.cursor;return!m&&typeof s.group==\"string\"&&this.options[this.cursor].value===s.group?n(s,u?\"group-active-selected\":\"group-active\",l):m&&u?n(s,\"active-selected\",l):u?n(s,\"selected\",l):n(s,m?\"active\":\"inactive\",l)}).join(`\n${e.yellow(a)} `)}\n${t}\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s,c)=>{const l=this.value.includes(t.value)||t.group===!0&&this.isGroupSelected(`${t.value}`),u=s===this.cursor;return!u&&typeof t.group==\"string\"&&this.options[this.cursor].value===t.group?n(t,l?\"group-active-selected\":\"group-active\",c):u&&l?n(t,\"active-selected\",c):l?n(t,\"selected\",c):n(t,u?\"active\":\"inactive\",c)}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},R=r=>r.replace(me(),\"\"),le=(r=\"\",n=\"\")=>{const i=`\n${r}\n`.split(`\n`),t=R(n).length,s=Math.max(i.reduce((l,u)=>(u=R(u),u.length>l?u.length:l),0),t)+2,c=i.map(l=>`${e.gray(a)} ${e.dim(l)}${\" \".repeat(s-R(l).length)}${e.gray(a)}`).join(`\n`);process.stdout.write(`${e.gray(a)}\n${e.green(S)} ${e.reset(n)} ${e.gray(B.repeat(Math.max(s-t-1,1))+Z)}\n${c}\n${e.gray(z+B.repeat(s+2)+X)}\n`)},ue=(r=\"\")=>{process.stdout.write(`${e.gray(d)} ${e.red(r)}\n\n`)},oe=(r=\"\")=>{process.stdout.write(`${e.gray(K)} ${r}\n`)},$e=(r=\"\")=>{process.stdout.write(`${e.gray(a)}\n${e.gray(d)} ${r}\n\n`)},f={message:(r=\"\",{symbol:n=e.gray(a)}={})=>{const i=[`${e.gray(a)}`];if(r){const[t,...s]=r.split(`\n`);i.push(`${n} ${t}`,...s.map(c=>`${e.gray(a)} ${c}`))}process.stdout.write(`${i.join(`\n`)}\n`)},info:r=>{f.message(r,{symbol:e.blue(J)})},success:r=>{f.message(r,{symbol:e.green(Y)})},step:r=>{f.message(r,{symbol:e.green(S)})},warn:r=>{f.message(r,{symbol:e.yellow(Q)})},warning:r=>{f.warn(r)},error:r=>{f.message(r,{symbol:e.red(ee)})}},de=()=>{const r=_?[\"\\u25D2\",\"\\u25D0\",\"\\u25D3\",\"\\u25D1\"]:[\"\\u2022\",\"o\",\"O\",\"0\"],n=_?80:120;let i,t,s=!1,c=\"\";const l=(v=\"\")=>{s=!0,i=F(),c=v.replace(/\\.+$/,\"\"),process.stdout.write(`${e.gray(a)}\n`);let g=0,p=0;t=setInterval(()=>{const O=e.magenta(r[g]),P=\".\".repeat(Math.floor(p)).slice(0,3);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${O} ${c}${P}`),g=g+1<r.length?g+1:0,p=p<r.length?p+.125:0},n)},u=(v=\"\",g=0)=>{c=v??c,s=!1,clearInterval(t);const p=g===0?e.green(S):g===1?e.red(I):e.red(x);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${p} ${c}\n`),i()},m=(v=\"\")=>{c=v??c},$=v=>{const g=v>1?\"Something went wrong\":\"Canceled\";s&&u(g,v)};return process.on(\"uncaughtExceptionMonitor\",()=>$(2)),process.on(\"unhandledRejection\",()=>$(2)),process.on(\"SIGINT\",()=>$(1)),process.on(\"SIGTERM\",()=>$(1)),process.on(\"exit\",$),{start:l,stop:u,message:m}};function me(){const r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"].join(\"|\");return new RegExp(r,\"g\")}const he=async(r,n)=>{const i={},t=Object.keys(r);for(const s of t){const c=r[s],l=await c({results:i})?.catch(u=>{throw u});if(typeof n?.onCancel==\"function\"&&G(l)){i[s]=\"canceled\",n.onCancel({results:i});continue}i[s]=l}return i};export{ue as cancel,se as confirm,he as group,ce as groupMultiselect,oe as intro,f as log,ae as multiselect,le as note,$e as outro,re as password,ie as select,ne as selectKey,de as spinner,te as text};\n","/**\n * Template registry.\n *\n * Each entry describes a starter template that lives in the monorepo's\n * `templates/<dir>` directory (copied into this package at build time). The\n * registry is structured so more languages/templates can be added later without\n * touching the scaffolding logic.\n */\n\n/** A language a template targets. Only TypeScript ships today. */\nexport type TemplateLanguage = \"typescript\";\n\n/** A scaffoldable starter template. */\nexport interface TemplateInfo {\n /** Registry id and on-disk directory name under `templates/`. */\n id: string;\n /** Short human label shown in the interactive picker. */\n label: string;\n /** One-line description. */\n hint: string;\n /** Source language. */\n language: TemplateLanguage;\n}\n\n/** All templates the CLI can scaffold. */\nexport const TEMPLATES: readonly TemplateInfo[] = [\n {\n id: \"evm-solidity\",\n label: \"EVM + Solidity\",\n hint: \"A Solidity contract with a viem deploy/interact script using @qorechain/evm.\",\n language: \"typescript\",\n },\n {\n id: \"fullstack-web\",\n label: \"Full-stack web (Vite + React)\",\n hint: \"A minimal Vite + React dApp using @qorechain/sdk to read balances and tokenomics.\",\n language: \"typescript\",\n },\n {\n id: \"rollup-app\",\n label: \"Rollup + multilayer app\",\n hint: \"A rollup + sidechain/paychain app using the RollupClient and multilayer helper from @qorechain/sdk.\",\n language: \"typescript\",\n },\n] as const;\n\n/** Look up a template by id, or `undefined` if unknown. */\nexport function findTemplate(id: string): TemplateInfo | undefined {\n return TEMPLATES.find((t) => t.id === id);\n}\n\n/** Comma-separated list of valid template ids, for error messages. */\nexport function templateIdList(): string {\n return TEMPLATES.map((t) => t.id).join(\", \");\n}\n","/**\n * Hand-rolled, dependency-free argument parser for the CLI. Kept separate from\n * the prompt I/O so it can be unit-tested directly.\n */\nimport type { Network, PackageManager } from \"./scaffold.js\";\nimport { TEMPLATES } from \"./templates.js\";\n\n/** Parsed CLI arguments. */\nexport interface ParsedArgs {\n /** Positional target directory (project dir), if given. */\n dir?: string;\n /** `--template <name>`. */\n template?: string;\n /** `--network <testnet|mainnet>`. */\n network?: Network;\n /** `--package-manager <pnpm|npm|yarn>`. */\n packageManager?: PackageManager;\n /** `--yes`: skip prompts, use defaults. */\n yes: boolean;\n /** `--no-install`: skip dependency install. */\n install: boolean;\n /** `--local`: rewrite @qorechain/* deps to file: links into the monorepo. */\n local: boolean;\n /** `--help`. */\n help: boolean;\n /** `--version`. */\n version: boolean;\n}\n\nconst VALID_PM: readonly PackageManager[] = [\"pnpm\", \"npm\", \"yarn\"];\nconst VALID_NETWORK: readonly Network[] = [\"testnet\", \"mainnet\"];\n\n/** Thrown for malformed CLI input; carries a user-facing message. */\nexport class ArgError extends Error {}\n\nfunction expectValue(name: string, value: string | undefined): string {\n if (value === undefined) throw new ArgError(`Missing value for ${name}.`);\n return value;\n}\n\n/**\n * Parse argv (excluding `node` and the script path). Throws {@link ArgError}\n * on malformed input.\n */\nexport function parseArgs(argv: readonly string[]): ParsedArgs {\n const out: ParsedArgs = {\n yes: false,\n install: true,\n local: false,\n help: false,\n version: false,\n };\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i];\n switch (arg) {\n case \"-h\":\n case \"--help\":\n out.help = true;\n break;\n case \"-v\":\n case \"--version\":\n out.version = true;\n break;\n case \"-y\":\n case \"--yes\":\n out.yes = true;\n break;\n case \"--install\":\n out.install = true;\n break;\n case \"--no-install\":\n out.install = false;\n break;\n case \"--local\":\n out.local = true;\n break;\n case \"--template\":\n case \"-t\":\n out.template = expectValue(\"--template\", argv[++i]);\n break;\n case \"--network\":\n out.network = parseNetwork(expectValue(\"--network\", argv[++i]));\n break;\n case \"--package-manager\":\n case \"--pm\":\n out.packageManager = parsePackageManager(\n expectValue(\"--package-manager\", argv[++i]),\n );\n break;\n default: {\n if (arg.startsWith(\"--template=\")) {\n out.template = arg.slice(\"--template=\".length);\n } else if (arg.startsWith(\"--network=\")) {\n out.network = parseNetwork(arg.slice(\"--network=\".length));\n } else if (arg.startsWith(\"--package-manager=\")) {\n out.packageManager = parsePackageManager(\n arg.slice(\"--package-manager=\".length),\n );\n } else if (arg.startsWith(\"-\")) {\n throw new ArgError(`Unknown option: ${arg}`);\n } else if (out.dir === undefined) {\n out.dir = arg;\n } else {\n throw new ArgError(`Unexpected argument: ${arg}`);\n }\n }\n }\n }\n\n return out;\n}\n\nfunction parsePackageManager(value: string): PackageManager {\n if ((VALID_PM as readonly string[]).includes(value)) {\n return value as PackageManager;\n }\n throw new ArgError(\n `Invalid --package-manager \"${value}\". Expected one of: ${VALID_PM.join(\", \")}.`,\n );\n}\n\nfunction parseNetwork(value: string): Network {\n if ((VALID_NETWORK as readonly string[]).includes(value)) {\n return value as Network;\n }\n throw new ArgError(\n `Invalid --network \"${value}\". Expected one of: ${VALID_NETWORK.join(\", \")}.`,\n );\n}\n\n/** The `--help` text. */\nexport function helpText(): string {\n const templates = TEMPLATES.map(\n (t) => ` ${t.id.padEnd(16)} ${t.hint}`,\n ).join(\"\\n\");\n return `create-qorechain-dapp — scaffold a new QoreChain dApp.\n\nUsage:\n npm create qorechain-dapp <dir> [options]\n npx create-qorechain-dapp <dir> [options]\n\nArguments:\n <dir> Target directory for the new project.\n\nOptions:\n -t, --template <name> Template to use. One of:\n${templates}\n --network <name> Network preset: testnet | mainnet.\n --package-manager <pm> Package manager: pnpm | npm | yarn.\n -y, --yes Skip prompts and use defaults.\n --no-install Do not install dependencies after scaffolding.\n --local Rewrite @qorechain/* deps to local file: links\n into this monorepo (for local/dev use before the\n packages are published to npm).\n -h, --help Show this help.\n -v, --version Print the version.\n\nExamples:\n npm create qorechain-dapp my-dapp -- --template evm-solidity\n npx create-qorechain-dapp my-dapp --template fullstack-web --yes\n npx create-qorechain-dapp my-dapp -t evm-solidity --local --no-install\n`;\n}\n","/**\n * Core scaffolding logic — pure and unit-testable, with no prompt I/O.\n *\n * `scaffold(...)` copies a template into a target directory, rewrites the\n * template's package.json name, generates `.env` from `.env.example`, optionally\n * rewrites `@qorechain/*` deps to local `file:` links, and optionally runs a\n * package-manager install. All side effects are confined to the target dir\n * (plus an optional `spawn` for install), so tests can drive it against a temp\n * dir with `install: false`.\n */\nimport { spawnSync } from \"node:child_process\";\nimport {\n cpSync,\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { findTemplate, templateIdList } from \"./templates.js\";\n\n/** Supported package managers. */\nexport type PackageManager = \"pnpm\" | \"npm\" | \"yarn\";\n\n/** Supported networks. */\nexport type Network = \"testnet\" | \"mainnet\";\n\n/** Options for {@link scaffold}. */\nexport interface ScaffoldOptions {\n /** Template id (must exist in the registry). */\n template: string;\n /** Absolute or relative target directory to create the project in. */\n targetDir: string;\n /** Project name written into the generated package.json. */\n projectName: string;\n /** Package manager to record/use. Defaults to `pnpm`. */\n packageManager?: PackageManager;\n /** Network preset. Defaults to `testnet`. */\n network?: Network;\n /** Run the package manager install after copying. Defaults to `false`. */\n install?: boolean;\n /**\n * Rewrite `@qorechain/*` dependencies to `file:` links into this monorepo so\n * the scaffolded project is runnable locally before the packages are\n * published. Defaults to `false` (keeps the published `^x.y.z` ranges).\n */\n local?: boolean;\n /**\n * Override the directory templates are resolved from. Primarily for tests.\n * When unset, templates are located relative to this package (see\n * {@link resolveTemplatesRoot}).\n */\n templatesRoot?: string;\n /**\n * Monorepo root used to compute `file:` links when `local` is set. Defaults\n * to the resolved repo root relative to this package.\n */\n monorepoRoot?: string;\n}\n\n/** Result of a successful {@link scaffold}. */\nexport interface ScaffoldResult {\n /** Absolute path to the created project. */\n targetDir: string;\n /** Whether install was run. */\n installed: boolean;\n /** Relative paths of the files written (sorted). */\n files: string[];\n}\n\nconst here = dirname(fileURLToPath(import.meta.url));\n\n/**\n * Locate the bundled `templates/` directory. Works both from source (where\n * templates live at the repo root, two levels up from `cli/src`) and from the\n * built/published package (where `copy-templates` placed them at `<pkg>/templates`).\n */\nexport function resolveTemplatesRoot(): string {\n // Built/published layout: dist/index.js → ../templates\n const bundled = resolve(here, \"..\", \"templates\");\n if (existsSync(bundled) && existsSync(join(bundled, \"evm-solidity\"))) {\n return bundled;\n }\n // Source layout: cli/src → ../../templates\n const sourceLevel = resolve(here, \"..\", \"..\", \"templates\");\n if (existsSync(sourceLevel) && existsSync(join(sourceLevel, \"evm-solidity\"))) {\n return sourceLevel;\n }\n // Fallback to the bundled path so the error message is actionable.\n return bundled;\n}\n\n/**\n * Locate the monorepo root (which contains `packages/`), used for `file:` links\n * in `--local` mode.\n */\nfunction resolveMonorepoRoot(): string {\n const candidates = [\n resolve(here, \"..\", \"..\"), // source: cli/src → repo root\n resolve(here, \"..\", \"..\", \"..\"), // dist/index.js variants\n ];\n for (const c of candidates) {\n if (existsSync(join(c, \"packages\", \"ts\", \"package.json\"))) return c;\n }\n return resolve(here, \"..\", \"..\");\n}\n\nconst COPY_SKIP = new Set([\"node_modules\", \"dist\", \".turbo\", \"coverage\"]);\n\n/** Recursively collect relative file paths under `root`. */\nfunction listFiles(root: string, base = root): string[] {\n const out: string[] = [];\n for (const entry of readdirSync(root, { withFileTypes: true })) {\n const full = join(root, entry.name);\n if (entry.isDirectory()) {\n out.push(...listFiles(full, base));\n } else {\n out.push(full.slice(base.length + 1));\n }\n }\n return out.sort();\n}\n\n/** Rewrite `@qorechain/*` deps in a parsed package.json to `file:` links. */\nfunction rewriteLocalDeps(\n pkg: Record<string, unknown>,\n monorepoRoot: string,\n): void {\n // Map of published package name → monorepo package dir.\n const localPackages: Record<string, string> = {\n \"@qorechain/sdk\": join(monorepoRoot, \"packages\", \"ts\"),\n \"@qorechain/evm\": join(monorepoRoot, \"packages\", \"evm\"),\n \"@qorechain/svm\": join(monorepoRoot, \"packages\", \"svm\"),\n };\n for (const section of [\"dependencies\", \"devDependencies\"] as const) {\n const deps = pkg[section] as Record<string, string> | undefined;\n if (!deps) continue;\n for (const name of Object.keys(deps)) {\n const dir = localPackages[name];\n if (dir) deps[name] = `file:${dir}`;\n }\n }\n}\n\n/** Install command for a given package manager. */\nfunction installCommand(pm: PackageManager): { cmd: string; args: string[] } {\n return { cmd: pm, args: [\"install\"] };\n}\n\n/**\n * Scaffold a project. Pure with respect to everything except the target dir\n * (and the optional install subprocess).\n *\n * @throws if the template is unknown or the target dir already exists and is\n * non-empty.\n */\nexport function scaffold(options: ScaffoldOptions): ScaffoldResult {\n const {\n template,\n projectName,\n packageManager = \"pnpm\",\n install = false,\n local = false,\n } = options;\n\n const info = findTemplate(template);\n if (!info) {\n throw new Error(\n `Unknown template \"${template}\". Available templates: ${templateIdList()}.`,\n );\n }\n\n const templatesRoot = options.templatesRoot ?? resolveTemplatesRoot();\n const templateDir = join(templatesRoot, info.id);\n if (!existsSync(templateDir)) {\n throw new Error(\n `Template \"${info.id}\" not found on disk at ${templateDir}. ` +\n `The package may be built incorrectly.`,\n );\n }\n\n const targetDir = resolve(options.targetDir);\n if (existsSync(targetDir)) {\n const entries = readdirSync(targetDir);\n if (entries.length > 0) {\n throw new Error(`Target directory is not empty: ${targetDir}`);\n }\n } else {\n mkdirSync(targetDir, { recursive: true });\n }\n\n // Copy template, skipping build artifacts.\n cpSync(templateDir, targetDir, {\n recursive: true,\n filter: (srcPath) => {\n const rel = srcPath.slice(templateDir.length + 1);\n const parts = rel.split(/[\\\\/]/);\n return !parts.some((p) => COPY_SKIP.has(p));\n },\n });\n\n // Rewrite package.json: name (+ optional local file: deps).\n const pkgPath = join(targetDir, \"package.json\");\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf8\")) as Record<\n string,\n unknown\n >;\n pkg.name = projectName;\n if (local) {\n rewriteLocalDeps(pkg, options.monorepoRoot ?? resolveMonorepoRoot());\n }\n writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + \"\\n\");\n }\n\n // Generate .env from .env.example if present and .env absent.\n const envExample = join(targetDir, \".env.example\");\n const envPath = join(targetDir, \".env\");\n if (existsSync(envExample) && !existsSync(envPath)) {\n writeFileSync(envPath, readFileSync(envExample, \"utf8\"));\n }\n\n let installed = false;\n if (install) {\n const { cmd, args } = installCommand(packageManager);\n const res = spawnSync(cmd, args, {\n cwd: targetDir,\n stdio: \"inherit\",\n shell: process.platform === \"win32\",\n });\n if (res.status !== 0) {\n throw new Error(\n `Install failed (${cmd} ${args.join(\" \")}) with exit code ${res.status ?? \"unknown\"}.`,\n );\n }\n installed = true;\n }\n\n return { targetDir, installed, files: listFiles(targetDir) };\n}\n"],"mappings":"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,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,Q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","names":["x","y","f","existsSync","readdirSync","resolve","ansiRegex","onlyFirst","pattern","regex","stripAnsi","string","e","eaw","module","character","x","y","codePoint","code","stringToArray","characters","len","i","text","start","end","result","eawLen","chars","char","charLen","emojiRegex","stringWidth","options","ambiguousCharacterWidth","width","eastAsianWidth","ANSI_BACKGROUND_OFFSET","wrapAnsi16","offset","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","foregroundColorNames","backgroundColorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","integer","remainder","value","ansiStyles","ESCAPES","END_CODE","ANSI_ESCAPE_BELL","ANSI_CSI","ANSI_OSC","ANSI_SGR_TERMINATOR","ANSI_ESCAPE_LINK","wrapAnsiCode","wrapAnsiHyperlink","uri","wordLengths","wrapWord","rows","word","columns","isInsideEscape","isInsideLinkEscape","visible","index","characterLength","stringVisibleTrimSpacesRight","words","last","exec","returnValue","escapeCode","escapeUrl","lengths","rowLength","remainingColumns","breaksStartingThisLine","row","pre","groups","wrapAnsi","line","f","d","r","t","o","diffLines","a","b","aLines","bLines","diff","cancel","isCancel","setRawMode","input","aliases","keys","Prompt","render","stdin","output","stdout","opts","trackValue","__publicField","sink","WriteStream","chunk","encoding","done","readline","resolve","reject","cursor","event","cb","arr","data","cbs","cleanup","subscriber","key","problem","lines","wrap","frame","diffLine","erase","newLines","e","u$1","Prompt","opts","__publicField","value","key","e","TextPrompt","Prompt","opts","__publicField","color","s1","s2","isWindows","import_picocolors","import_sisteransi","q","_","r","I","x","S","a","d","b","w","M","U","Z","z","X","J","Q","y","e","r","c","e","b","a","y","l","m","$","d","R","r","l","c","e","a","S","Z","z","X","d","f","J","Q","r","import_picocolors","c","existsSync","readdirSync","resolve","v","pc","f"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js","../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../src/index.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/eastasianwidth@0.2.0/node_modules/eastasianwidth/eastasianwidth.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/emoji-regex@9.2.2/node_modules/emoji-regex/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/string-width@5.1.2/node_modules/string-width/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/node_modules/.pnpm/wrap-ansi@8.1.0/node_modules/wrap-ansi/index.js","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/prompt.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/confirm.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/group-multiselect.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/multi-select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/password.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/select-key.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/prompts/text.ts","../../node_modules/.pnpm/@clack+core@0.3.5/node_modules/@clack/core/src/utils.ts","../../node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs","../src/templates.ts","../src/args.ts","../src/scaffold.ts"],"sourcesContent":["'use strict';\n\nconst ESC = '\\x1B';\nconst CSI = `${ESC}[`;\nconst beep = '\\u0007';\n\nconst cursor = {\n to(x, y) {\n if (!y) return `${CSI}${x + 1}G`;\n return `${CSI}${y + 1};${x + 1}H`;\n },\n move(x, y) {\n let ret = '';\n\n if (x < 0) ret += `${CSI}${-x}D`;\n else if (x > 0) ret += `${CSI}${x}C`;\n\n if (y < 0) ret += `${CSI}${-y}A`;\n else if (y > 0) ret += `${CSI}${y}B`;\n\n return ret;\n },\n up: (count = 1) => `${CSI}${count}A`,\n down: (count = 1) => `${CSI}${count}B`,\n forward: (count = 1) => `${CSI}${count}C`,\n backward: (count = 1) => `${CSI}${count}D`,\n nextLine: (count = 1) => `${CSI}E`.repeat(count),\n prevLine: (count = 1) => `${CSI}F`.repeat(count),\n left: `${CSI}G`,\n hide: `${CSI}?25l`,\n show: `${CSI}?25h`,\n save: `${ESC}7`,\n restore: `${ESC}8`\n}\n\nconst scroll = {\n up: (count = 1) => `${CSI}S`.repeat(count),\n down: (count = 1) => `${CSI}T`.repeat(count)\n}\n\nconst erase = {\n screen: `${CSI}2J`,\n up: (count = 1) => `${CSI}1J`.repeat(count),\n down: (count = 1) => `${CSI}J`.repeat(count),\n line: `${CSI}2K`,\n lineEnd: `${CSI}K`,\n lineStart: `${CSI}1K`,\n lines(count) {\n let clear = '';\n for (let i = 0; i < count; i++)\n clear += this.line + (i < count - 1 ? cursor.up() : '');\n if (count)\n clear += cursor.left;\n return clear;\n }\n}\n\nmodule.exports = { cursor, scroll, erase, beep };\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","/**\n * `create-qorechain-dapp` entry point.\n *\n * Parses flags (non-interactive / CI mode) and falls back to interactive prompts\n * for any missing inputs. All scaffolding side effects are delegated to the pure\n * {@link scaffold} function in `./scaffold`.\n */\nimport { existsSync, readdirSync } from \"node:fs\";\nimport { basename, resolve } from \"node:path\";\n\nimport {\n cancel,\n intro,\n isCancel,\n log,\n note,\n outro,\n select,\n text,\n} from \"@clack/prompts\";\nimport pc from \"picocolors\";\n\nimport { ArgError, helpText, parseArgs } from \"./args.js\";\nimport {\n scaffold,\n type Network,\n type PackageManager,\n} from \"./scaffold.js\";\nimport { findTemplate, TEMPLATES, templateIdList } from \"./templates.js\";\n\nconst VERSION = \"0.5.1\";\n\nfunction isEmptyOrMissing(dir: string): boolean {\n if (!existsSync(dir)) return true;\n return readdirSync(dir).length === 0;\n}\n\n/** Validate a directory name segment for a project name fallback. */\nfunction defaultProjectName(dir: string): string {\n const base = basename(resolve(dir));\n // npm package names: lowercase, no spaces.\n return base\n .toLowerCase()\n .replace(/[^a-z0-9-~._]/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .replace(/-+/g, \"-\") || \"qorechain-dapp\";\n}\n\nasync function promptDir(initial?: string): Promise<string> {\n if (initial) return initial;\n const value = await text({\n message: \"Where should we create your project?\",\n placeholder: \"./my-qorechain-dapp\",\n defaultValue: \"./my-qorechain-dapp\",\n validate: (v) => {\n const dir = v || \"./my-qorechain-dapp\";\n if (!isEmptyOrMissing(resolve(dir))) {\n return `Directory ${dir} already exists and is not empty.`;\n }\n return undefined;\n },\n });\n if (isCancel(value)) bail();\n return (value as string) || \"./my-qorechain-dapp\";\n}\n\nasync function promptTemplate(initial?: string): Promise<string> {\n if (initial) {\n if (!findTemplate(initial)) {\n cancel(`Unknown template \"${initial}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n return initial;\n }\n const value = await select({\n message: \"Pick a template\",\n options: TEMPLATES.map((t) => ({\n value: t.id,\n label: t.label,\n hint: t.hint,\n })),\n });\n if (isCancel(value)) bail();\n return value as string;\n}\n\nasync function promptNetwork(initial?: Network): Promise<Network> {\n if (initial) return initial;\n const value = await select({\n message: \"Which network?\",\n options: [\n { value: \"testnet\", label: \"testnet\", hint: \"qorechain-diana\" },\n { value: \"mainnet\", label: \"mainnet\", hint: \"qorechain-vladi\" },\n ],\n initialValue: \"testnet\",\n });\n if (isCancel(value)) bail();\n return value as Network;\n}\n\nasync function promptPackageManager(\n initial?: PackageManager,\n): Promise<PackageManager> {\n if (initial) return initial;\n const value = await select({\n message: \"Package manager?\",\n options: [\n { value: \"pnpm\", label: \"pnpm\" },\n { value: \"npm\", label: \"npm\" },\n { value: \"yarn\", label: \"yarn\" },\n ],\n initialValue: \"pnpm\",\n });\n if (isCancel(value)) bail();\n return value as PackageManager;\n}\n\nfunction bail(): never {\n cancel(\"Operation cancelled.\");\n process.exit(0);\n}\n\nfunction nextSteps(\n dir: string,\n pm: PackageManager,\n installed: boolean,\n template: string,\n): string {\n const lines: string[] = [`cd ${dir}`];\n if (!installed) lines.push(`${pm} install`);\n const run = pm === \"npm\" ? \"npm run\" : pm;\n if (template === \"fullstack-web\") {\n lines.push(`${run} dev`);\n } else {\n lines.push(`${run} deploy # see README for prerequisites`);\n }\n return lines.join(\"\\n\");\n}\n\nasync function main(): Promise<void> {\n const argv = process.argv.slice(2);\n let parsed;\n try {\n parsed = parseArgs(argv);\n } catch (err) {\n if (err instanceof ArgError) {\n console.error(pc.red(err.message));\n console.error(`\\nRun ${pc.cyan(\"create-qorechain-dapp --help\")} for usage.`);\n process.exit(1);\n }\n throw err;\n }\n\n if (parsed.help) {\n console.log(helpText());\n return;\n }\n if (parsed.version) {\n console.log(VERSION);\n return;\n }\n\n intro(pc.bgCyan(pc.black(\" create-qorechain-dapp \")));\n\n // Resolve each input: flags first, then prompts (unless --yes fills defaults).\n const dir = parsed.dir ?? (parsed.yes ? \"./my-qorechain-dapp\" : await promptDir());\n const template =\n parsed.template ??\n (parsed.yes ? TEMPLATES[0].id : await promptTemplate());\n // Validate the (possibly flag-provided) template eagerly.\n if (!findTemplate(template)) {\n cancel(`Unknown template \"${template}\". Available: ${templateIdList()}.`);\n process.exit(1);\n }\n const network =\n parsed.network ?? (parsed.yes ? \"testnet\" : await promptNetwork());\n const packageManager =\n parsed.packageManager ??\n (parsed.yes ? \"pnpm\" : await promptPackageManager());\n\n const projectName = defaultProjectName(dir);\n\n // In interactive mode, default install to the flag (true unless --no-install).\n const install = parsed.install;\n\n try {\n if (install) log.step(\"Scaffolding and installing dependencies…\");\n else log.step(\"Scaffolding…\");\n\n const result = scaffold({\n template,\n targetDir: dir,\n projectName,\n packageManager,\n network,\n install,\n local: parsed.local,\n });\n\n if (parsed.local) {\n note(\n \"Dependencies were rewritten to local file: links into this monorepo.\\n\" +\n \"Build the workspace packages first (pnpm -r build at the repo root).\",\n \"Local mode\",\n );\n }\n\n note(nextSteps(dir, packageManager, result.installed, template), \"Next steps\");\n outro(pc.green(`Done! Created ${projectName} at ${result.targetDir}`));\n } catch (err) {\n cancel(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nmain().catch((err: unknown) => {\n console.error(err instanceof Error ? err.stack ?? err.message : err);\n process.exit(1);\n});\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","var eaw = {};\n\nif ('undefined' == typeof module) {\n window.eastasianwidth = eaw;\n} else {\n module.exports = eaw;\n}\n\neaw.eastAsianWidth = function(character) {\n var x = character.charCodeAt(0);\n var y = (character.length == 2) ? character.charCodeAt(1) : 0;\n var codePoint = x;\n if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) {\n x &= 0x3FF;\n y &= 0x3FF;\n codePoint = (x << 10) | y;\n codePoint += 0x10000;\n }\n\n if ((0x3000 == codePoint) ||\n (0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) {\n return 'F';\n }\n if ((0x20A9 == codePoint) ||\n (0xFF61 <= codePoint && codePoint <= 0xFFBE) ||\n (0xFFC2 <= codePoint && codePoint <= 0xFFC7) ||\n (0xFFCA <= codePoint && codePoint <= 0xFFCF) ||\n (0xFFD2 <= codePoint && codePoint <= 0xFFD7) ||\n (0xFFDA <= codePoint && codePoint <= 0xFFDC) ||\n (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) {\n return 'H';\n }\n if ((0x1100 <= codePoint && codePoint <= 0x115F) ||\n (0x11A3 <= codePoint && codePoint <= 0x11A7) ||\n (0x11FA <= codePoint && codePoint <= 0x11FF) ||\n (0x2329 <= codePoint && codePoint <= 0x232A) ||\n (0x2E80 <= codePoint && codePoint <= 0x2E99) ||\n (0x2E9B <= codePoint && codePoint <= 0x2EF3) ||\n (0x2F00 <= codePoint && codePoint <= 0x2FD5) ||\n (0x2FF0 <= codePoint && codePoint <= 0x2FFB) ||\n (0x3001 <= codePoint && codePoint <= 0x303E) ||\n (0x3041 <= codePoint && codePoint <= 0x3096) ||\n (0x3099 <= codePoint && codePoint <= 0x30FF) ||\n (0x3105 <= codePoint && codePoint <= 0x312D) ||\n (0x3131 <= codePoint && codePoint <= 0x318E) ||\n (0x3190 <= codePoint && codePoint <= 0x31BA) ||\n (0x31C0 <= codePoint && codePoint <= 0x31E3) ||\n (0x31F0 <= codePoint && codePoint <= 0x321E) ||\n (0x3220 <= codePoint && codePoint <= 0x3247) ||\n (0x3250 <= codePoint && codePoint <= 0x32FE) ||\n (0x3300 <= codePoint && codePoint <= 0x4DBF) ||\n (0x4E00 <= codePoint && codePoint <= 0xA48C) ||\n (0xA490 <= codePoint && codePoint <= 0xA4C6) ||\n (0xA960 <= codePoint && codePoint <= 0xA97C) ||\n (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n (0xD7B0 <= codePoint && codePoint <= 0xD7C6) ||\n (0xD7CB <= codePoint && codePoint <= 0xD7FB) ||\n (0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n (0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n (0xFE30 <= codePoint && codePoint <= 0xFE52) ||\n (0xFE54 <= codePoint && codePoint <= 0xFE66) ||\n (0xFE68 <= codePoint && codePoint <= 0xFE6B) ||\n (0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n (0x1F200 <= codePoint && codePoint <= 0x1F202) ||\n (0x1F210 <= codePoint && codePoint <= 0x1F23A) ||\n (0x1F240 <= codePoint && codePoint <= 0x1F248) ||\n (0x1F250 <= codePoint && codePoint <= 0x1F251) ||\n (0x20000 <= codePoint && codePoint <= 0x2F73F) ||\n (0x2B740 <= codePoint && codePoint <= 0x2FFFD) ||\n (0x30000 <= codePoint && codePoint <= 0x3FFFD)) {\n return 'W';\n }\n if ((0x0020 <= codePoint && codePoint <= 0x007E) ||\n (0x00A2 <= codePoint && codePoint <= 0x00A3) ||\n (0x00A5 <= codePoint && codePoint <= 0x00A6) ||\n (0x00AC == codePoint) ||\n (0x00AF == codePoint) ||\n (0x27E6 <= codePoint && codePoint <= 0x27ED) ||\n (0x2985 <= codePoint && codePoint <= 0x2986)) {\n return 'Na';\n }\n if ((0x00A1 == codePoint) ||\n (0x00A4 == codePoint) ||\n (0x00A7 <= codePoint && codePoint <= 0x00A8) ||\n (0x00AA == codePoint) ||\n (0x00AD <= codePoint && codePoint <= 0x00AE) ||\n (0x00B0 <= codePoint && codePoint <= 0x00B4) ||\n (0x00B6 <= codePoint && codePoint <= 0x00BA) ||\n (0x00BC <= codePoint && codePoint <= 0x00BF) ||\n (0x00C6 == codePoint) ||\n (0x00D0 == codePoint) ||\n (0x00D7 <= codePoint && codePoint <= 0x00D8) ||\n (0x00DE <= codePoint && codePoint <= 0x00E1) ||\n (0x00E6 == codePoint) ||\n (0x00E8 <= codePoint && codePoint <= 0x00EA) ||\n (0x00EC <= codePoint && codePoint <= 0x00ED) ||\n (0x00F0 == codePoint) ||\n (0x00F2 <= codePoint && codePoint <= 0x00F3) ||\n (0x00F7 <= codePoint && codePoint <= 0x00FA) ||\n (0x00FC == codePoint) ||\n (0x00FE == codePoint) ||\n (0x0101 == codePoint) ||\n (0x0111 == codePoint) ||\n (0x0113 == codePoint) ||\n (0x011B == codePoint) ||\n (0x0126 <= codePoint && codePoint <= 0x0127) ||\n (0x012B == codePoint) ||\n (0x0131 <= codePoint && codePoint <= 0x0133) ||\n (0x0138 == codePoint) ||\n (0x013F <= codePoint && codePoint <= 0x0142) ||\n (0x0144 == codePoint) ||\n (0x0148 <= codePoint && codePoint <= 0x014B) ||\n (0x014D == codePoint) ||\n (0x0152 <= codePoint && codePoint <= 0x0153) ||\n (0x0166 <= codePoint && codePoint <= 0x0167) ||\n (0x016B == codePoint) ||\n (0x01CE == codePoint) ||\n (0x01D0 == codePoint) ||\n (0x01D2 == codePoint) ||\n (0x01D4 == codePoint) ||\n (0x01D6 == codePoint) ||\n (0x01D8 == codePoint) ||\n (0x01DA == codePoint) ||\n (0x01DC == codePoint) ||\n (0x0251 == codePoint) ||\n (0x0261 == codePoint) ||\n (0x02C4 == codePoint) ||\n (0x02C7 == codePoint) ||\n (0x02C9 <= codePoint && codePoint <= 0x02CB) ||\n (0x02CD == codePoint) ||\n (0x02D0 == codePoint) ||\n (0x02D8 <= codePoint && codePoint <= 0x02DB) ||\n (0x02DD == codePoint) ||\n (0x02DF == codePoint) ||\n (0x0300 <= codePoint && codePoint <= 0x036F) ||\n (0x0391 <= codePoint && codePoint <= 0x03A1) ||\n (0x03A3 <= codePoint && codePoint <= 0x03A9) ||\n (0x03B1 <= codePoint && codePoint <= 0x03C1) ||\n (0x03C3 <= codePoint && codePoint <= 0x03C9) ||\n (0x0401 == codePoint) ||\n (0x0410 <= codePoint && codePoint <= 0x044F) ||\n (0x0451 == codePoint) ||\n (0x2010 == codePoint) ||\n (0x2013 <= codePoint && codePoint <= 0x2016) ||\n (0x2018 <= codePoint && codePoint <= 0x2019) ||\n (0x201C <= codePoint && codePoint <= 0x201D) ||\n (0x2020 <= codePoint && codePoint <= 0x2022) ||\n (0x2024 <= codePoint && codePoint <= 0x2027) ||\n (0x2030 == codePoint) ||\n (0x2032 <= codePoint && codePoint <= 0x2033) ||\n (0x2035 == codePoint) ||\n (0x203B == codePoint) ||\n (0x203E == codePoint) ||\n (0x2074 == codePoint) ||\n (0x207F == codePoint) ||\n (0x2081 <= codePoint && codePoint <= 0x2084) ||\n (0x20AC == codePoint) ||\n (0x2103 == codePoint) ||\n (0x2105 == codePoint) ||\n (0x2109 == codePoint) ||\n (0x2113 == codePoint) ||\n (0x2116 == codePoint) ||\n (0x2121 <= codePoint && codePoint <= 0x2122) ||\n (0x2126 == codePoint) ||\n (0x212B == codePoint) ||\n (0x2153 <= codePoint && codePoint <= 0x2154) ||\n (0x215B <= codePoint && codePoint <= 0x215E) ||\n (0x2160 <= codePoint && codePoint <= 0x216B) ||\n (0x2170 <= codePoint && codePoint <= 0x2179) ||\n (0x2189 == codePoint) ||\n (0x2190 <= codePoint && codePoint <= 0x2199) ||\n (0x21B8 <= codePoint && codePoint <= 0x21B9) ||\n (0x21D2 == codePoint) ||\n (0x21D4 == codePoint) ||\n (0x21E7 == codePoint) ||\n (0x2200 == codePoint) ||\n (0x2202 <= codePoint && codePoint <= 0x2203) ||\n (0x2207 <= codePoint && codePoint <= 0x2208) ||\n (0x220B == codePoint) ||\n (0x220F == codePoint) ||\n (0x2211 == codePoint) ||\n (0x2215 == codePoint) ||\n (0x221A == codePoint) ||\n (0x221D <= codePoint && codePoint <= 0x2220) ||\n (0x2223 == codePoint) ||\n (0x2225 == codePoint) ||\n (0x2227 <= codePoint && codePoint <= 0x222C) ||\n (0x222E == codePoint) ||\n (0x2234 <= codePoint && codePoint <= 0x2237) ||\n (0x223C <= codePoint && codePoint <= 0x223D) ||\n (0x2248 == codePoint) ||\n (0x224C == codePoint) ||\n (0x2252 == codePoint) ||\n (0x2260 <= codePoint && codePoint <= 0x2261) ||\n (0x2264 <= codePoint && codePoint <= 0x2267) ||\n (0x226A <= codePoint && codePoint <= 0x226B) ||\n (0x226E <= codePoint && codePoint <= 0x226F) ||\n (0x2282 <= codePoint && codePoint <= 0x2283) ||\n (0x2286 <= codePoint && codePoint <= 0x2287) ||\n (0x2295 == codePoint) ||\n (0x2299 == codePoint) ||\n (0x22A5 == codePoint) ||\n (0x22BF == codePoint) ||\n (0x2312 == codePoint) ||\n (0x2460 <= codePoint && codePoint <= 0x24E9) ||\n (0x24EB <= codePoint && codePoint <= 0x254B) ||\n (0x2550 <= codePoint && codePoint <= 0x2573) ||\n (0x2580 <= codePoint && codePoint <= 0x258F) ||\n (0x2592 <= codePoint && codePoint <= 0x2595) ||\n (0x25A0 <= codePoint && codePoint <= 0x25A1) ||\n (0x25A3 <= codePoint && codePoint <= 0x25A9) ||\n (0x25B2 <= codePoint && codePoint <= 0x25B3) ||\n (0x25B6 <= codePoint && codePoint <= 0x25B7) ||\n (0x25BC <= codePoint && codePoint <= 0x25BD) ||\n (0x25C0 <= codePoint && codePoint <= 0x25C1) ||\n (0x25C6 <= codePoint && codePoint <= 0x25C8) ||\n (0x25CB == codePoint) ||\n (0x25CE <= codePoint && codePoint <= 0x25D1) ||\n (0x25E2 <= codePoint && codePoint <= 0x25E5) ||\n (0x25EF == codePoint) ||\n (0x2605 <= codePoint && codePoint <= 0x2606) ||\n (0x2609 == codePoint) ||\n (0x260E <= codePoint && codePoint <= 0x260F) ||\n (0x2614 <= codePoint && codePoint <= 0x2615) ||\n (0x261C == codePoint) ||\n (0x261E == codePoint) ||\n (0x2640 == codePoint) ||\n (0x2642 == codePoint) ||\n (0x2660 <= codePoint && codePoint <= 0x2661) ||\n (0x2663 <= codePoint && codePoint <= 0x2665) ||\n (0x2667 <= codePoint && codePoint <= 0x266A) ||\n (0x266C <= codePoint && codePoint <= 0x266D) ||\n (0x266F == codePoint) ||\n (0x269E <= codePoint && codePoint <= 0x269F) ||\n (0x26BE <= codePoint && codePoint <= 0x26BF) ||\n (0x26C4 <= codePoint && codePoint <= 0x26CD) ||\n (0x26CF <= codePoint && codePoint <= 0x26E1) ||\n (0x26E3 == codePoint) ||\n (0x26E8 <= codePoint && codePoint <= 0x26FF) ||\n (0x273D == codePoint) ||\n (0x2757 == codePoint) ||\n (0x2776 <= codePoint && codePoint <= 0x277F) ||\n (0x2B55 <= codePoint && codePoint <= 0x2B59) ||\n (0x3248 <= codePoint && codePoint <= 0x324F) ||\n (0xE000 <= codePoint && codePoint <= 0xF8FF) ||\n (0xFE00 <= codePoint && codePoint <= 0xFE0F) ||\n (0xFFFD == codePoint) ||\n (0x1F100 <= codePoint && codePoint <= 0x1F10A) ||\n (0x1F110 <= codePoint && codePoint <= 0x1F12D) ||\n (0x1F130 <= codePoint && codePoint <= 0x1F169) ||\n (0x1F170 <= codePoint && codePoint <= 0x1F19A) ||\n (0xE0100 <= codePoint && codePoint <= 0xE01EF) ||\n (0xF0000 <= codePoint && codePoint <= 0xFFFFD) ||\n (0x100000 <= codePoint && codePoint <= 0x10FFFD)) {\n return 'A';\n }\n\n return 'N';\n};\n\neaw.characterLength = function(character) {\n var code = this.eastAsianWidth(character);\n if (code == 'F' || code == 'W' || code == 'A') {\n return 2;\n } else {\n return 1;\n }\n};\n\n// Split a string considering surrogate-pairs.\nfunction stringToArray(string) {\n return string.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g) || [];\n}\n\neaw.length = function(string) {\n var characters = stringToArray(string);\n var len = 0;\n for (var i = 0; i < characters.length; i++) {\n len = len + this.characterLength(characters[i]);\n }\n return len;\n};\n\neaw.slice = function(text, start, end) {\n textLen = eaw.length(text)\n start = start ? start : 0;\n end = end ? end : 1;\n if (start < 0) {\n start = textLen + start;\n }\n if (end < 0) {\n end = textLen + end;\n }\n var result = '';\n var eawLen = 0;\n var chars = stringToArray(text);\n for (var i = 0; i < chars.length; i++) {\n var char = chars[i];\n var charLen = eaw.length(char);\n if (eawLen >= start - (charLen == 2 ? 1 : 0)) {\n if (eawLen + charLen <= end) {\n result += char;\n } else {\n break;\n }\n }\n eawLen += charLen;\n }\n return result;\n};\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport eastAsianWidth from 'eastasianwidth';\nimport emojiRegex from 'emoji-regex';\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\toptions = {\n\t\tambiguousIsNarrow: true,\n\t\t...options\n\t};\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), ' ');\n\n\tconst ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;\n\tlet width = 0;\n\n\tfor (const character of string) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (codePoint >= 0x300 && codePoint <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst code = eastAsianWidth.eastAsianWidth(character);\n\t\tswitch (code) {\n\t\t\tcase 'F':\n\t\t\tcase 'W':\n\t\t\t\twidth += 2;\n\t\t\t\tbreak;\n\t\t\tcase 'A':\n\t\t\t\twidth += ambiguousCharacterWidth;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\twidth += 1;\n\t\t}\n\t}\n\n\treturn width;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows[rows.length - 1]));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\t\t\tisInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode\n//\n// 'hard' will never allow a string to take up more than columns characters\n//\n// 'soft' allows long words to expand past the column length\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows[rows.length - 1].trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows[rows.length - 1]);\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst pre = [...rows.join('\\n')];\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(string, columns, options) {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replace(/\\r\\n/g, '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n}\n","import type { Key, ReadLine } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport readline from 'node:readline';\nimport { Readable, Writable } from 'node:stream';\nimport { WriteStream } from 'node:tty';\nimport { cursor, erase } from 'sisteransi';\nimport wrap from 'wrap-ansi';\n\nfunction diffLines(a: string, b: string) {\n\tif (a === b) return;\n\n\tconst aLines = a.split('\\n');\n\tconst bLines = b.split('\\n');\n\tconst diff: number[] = [];\n\n\tfor (let i = 0; i < Math.max(aLines.length, bLines.length); i++) {\n\t\tif (aLines[i] !== bLines[i]) diff.push(i);\n\t}\n\n\treturn diff;\n}\n\nconst cancel = Symbol('clack:cancel');\nexport function isCancel(value: unknown): value is symbol {\n\treturn value === cancel;\n}\n\nfunction setRawMode(input: Readable, value: boolean) {\n\tif ((input as typeof stdin).isTTY) (input as typeof stdin).setRawMode(value);\n}\n\nconst aliases = new Map([\n\t['k', 'up'],\n\t['j', 'down'],\n\t['h', 'left'],\n\t['l', 'right'],\n]);\nconst keys = new Set(['up', 'down', 'left', 'right', 'space', 'enter']);\n\nexport interface PromptOptions<Self extends Prompt> {\n\trender(this: Omit<Self, 'prompt'>): string | void;\n\tplaceholder?: string;\n\tinitialValue?: any;\n\tvalidate?: ((value: any) => string | void) | undefined;\n\tinput?: Readable;\n\toutput?: Writable;\n\tdebug?: boolean;\n}\n\nexport type State = 'initial' | 'active' | 'cancel' | 'submit' | 'error';\n\nexport default class Prompt {\n\tprotected input: Readable;\n\tprotected output: Writable;\n\tprivate rl!: ReadLine;\n\tprivate opts: Omit<PromptOptions<Prompt>, 'render' | 'input' | 'output'>;\n\tprivate _track: boolean = false;\n\tprivate _render: (context: Omit<Prompt, 'prompt'>) => string | void;\n\tprotected _cursor: number = 0;\n\n\tpublic state: State = 'initial';\n\tpublic value: any;\n\tpublic error: string = '';\n\n\tconstructor(\n\t\t{ render, input = stdin, output = stdout, ...opts }: PromptOptions<Prompt>,\n\t\ttrackValue: boolean = true\n\t) {\n\t\tthis.opts = opts;\n\t\tthis.onKeypress = this.onKeypress.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t\tthis.render = this.render.bind(this);\n\t\tthis._render = render.bind(this);\n\t\tthis._track = trackValue;\n\n\t\tthis.input = input;\n\t\tthis.output = output;\n\t}\n\n\tpublic prompt() {\n\t\tconst sink = new WriteStream(0);\n\t\tsink._write = (chunk, encoding, done) => {\n\t\t\tif (this._track) {\n\t\t\t\tthis.value = this.rl.line.replace(/\\t/g, '');\n\t\t\t\tthis._cursor = this.rl.cursor;\n\t\t\t\tthis.emit('value', this.value);\n\t\t\t}\n\t\t\tdone();\n\t\t};\n\t\tthis.input.pipe(sink);\n\n\t\tthis.rl = readline.createInterface({\n\t\t\tinput: this.input,\n\t\t\toutput: sink,\n\t\t\ttabSize: 2,\n\t\t\tprompt: '',\n\t\t\tescapeCodeTimeout: 50,\n\t\t});\n\t\treadline.emitKeypressEvents(this.input, this.rl);\n\t\tthis.rl.prompt();\n\t\tif (this.opts.initialValue !== undefined && this._track) {\n\t\t\tthis.rl.write(this.opts.initialValue);\n\t\t}\n\n\t\tthis.input.on('keypress', this.onKeypress);\n\t\tsetRawMode(this.input, true);\n\t\tthis.output.on('resize', this.render);\n\n\t\tthis.render();\n\n\t\treturn new Promise<string | symbol>((resolve, reject) => {\n\t\t\tthis.once('submit', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(this.value);\n\t\t\t});\n\t\t\tthis.once('cancel', () => {\n\t\t\t\tthis.output.write(cursor.show);\n\t\t\t\tthis.output.off('resize', this.render);\n\t\t\t\tsetRawMode(this.input, false);\n\t\t\t\tresolve(cancel);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate subscribers = new Map<string, { cb: (...args: any) => any; once?: boolean }[]>();\n\tpublic on(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic once(event: string, cb: (...args: any) => any) {\n\t\tconst arr = this.subscribers.get(event) ?? [];\n\t\tarr.push({ cb, once: true });\n\t\tthis.subscribers.set(event, arr);\n\t}\n\tpublic emit(event: string, ...data: any[]) {\n\t\tconst cbs = this.subscribers.get(event) ?? [];\n\t\tconst cleanup: (() => void)[] = [];\n\t\tfor (const subscriber of cbs) {\n\t\t\tsubscriber.cb(...data);\n\t\t\tif (subscriber.once) {\n\t\t\t\tcleanup.push(() => cbs.splice(cbs.indexOf(subscriber), 1));\n\t\t\t}\n\t\t}\n\t\tfor (const cb of cleanup) {\n\t\t\tcb();\n\t\t}\n\t}\n\tprivate unsubscribe() {\n\t\tthis.subscribers.clear();\n\t}\n\n\tprivate onKeypress(char: string, key?: Key) {\n\t\tif (this.state === 'error') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tif (key?.name && !this._track && aliases.has(key.name)) {\n\t\t\tthis.emit('cursor', aliases.get(key.name));\n\t\t}\n\t\tif (key?.name && keys.has(key.name)) {\n\t\t\tthis.emit('cursor', key.name);\n\t\t}\n\t\tif (char && (char.toLowerCase() === 'y' || char.toLowerCase() === 'n')) {\n\t\t\tthis.emit('confirm', char.toLowerCase() === 'y');\n\t\t}\n\t\tif (char === '\\t' && this.opts.placeholder) {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.rl.write(this.opts.placeholder);\n\t\t\t\tthis.emit('value', this.opts.placeholder);\n\t\t\t}\n\t\t}\n\t\tif (char) {\n\t\t\tthis.emit('key', char.toLowerCase());\n\t\t}\n\n\t\tif (key?.name === 'return') {\n\t\t\tif (this.opts.validate) {\n\t\t\t\tconst problem = this.opts.validate(this.value);\n\t\t\t\tif (problem) {\n\t\t\t\t\tthis.error = problem;\n\t\t\t\t\tthis.state = 'error';\n\t\t\t\t\tthis.rl.write(this.value);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.state !== 'error') {\n\t\t\t\tthis.state = 'submit';\n\t\t\t}\n\t\t}\n\t\tif (char === '\\x03') {\n\t\t\tthis.state = 'cancel';\n\t\t}\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.emit('finalize');\n\t\t}\n\t\tthis.render();\n\t\tif (this.state === 'submit' || this.state === 'cancel') {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprotected close() {\n\t\tthis.input.unpipe();\n\t\tthis.input.removeListener('keypress', this.onKeypress);\n\t\tthis.output.write('\\n');\n\t\tsetRawMode(this.input, false);\n\t\tthis.rl.close();\n\t\tthis.emit(`${this.state}`, this.value);\n\t\tthis.unsubscribe();\n\t}\n\n\tprivate restoreCursor() {\n\t\tconst lines =\n\t\t\twrap(this._prevFrame, process.stdout.columns, { hard: true }).split('\\n').length - 1;\n\t\tthis.output.write(cursor.move(-999, lines * -1));\n\t}\n\n\tprivate _prevFrame = '';\n\tprivate render() {\n\t\tconst frame = wrap(this._render(this) ?? '', process.stdout.columns, { hard: true });\n\t\tif (frame === this._prevFrame) return;\n\n\t\tif (this.state === 'initial') {\n\t\t\tthis.output.write(cursor.hide);\n\t\t} else {\n\t\t\tconst diff = diffLines(this._prevFrame, frame);\n\t\t\tthis.restoreCursor();\n\t\t\t// If a single line has changed, only update that line\n\t\t\tif (diff && diff?.length === 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.lines(1));\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tthis.output.write(lines[diffLine]);\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\tthis.output.write(cursor.move(0, lines.length - diffLine - 1));\n\t\t\t\treturn;\n\t\t\t\t// If many lines have changed, rerender everything past the first line\n\t\t\t} else if (diff && diff?.length > 1) {\n\t\t\t\tconst diffLine = diff[0];\n\t\t\t\tthis.output.write(cursor.move(0, diffLine));\n\t\t\t\tthis.output.write(erase.down());\n\t\t\t\tconst lines = frame.split('\\n');\n\t\t\t\tconst newLines = lines.slice(diffLine);\n\t\t\t\tthis.output.write(newLines.join('\\n'));\n\t\t\t\tthis._prevFrame = frame;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.output.write(erase.down());\n\t\t}\n\n\t\tthis.output.write(frame);\n\t\tif (this.state === 'initial') {\n\t\t\tthis.state = 'active';\n\t\t}\n\t\tthis._prevFrame = frame;\n\t}\n}\n","import { cursor } from 'sisteransi';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface ConfirmOptions extends PromptOptions<ConfirmPrompt> {\n\tactive: string;\n\tinactive: string;\n\tinitialValue?: boolean;\n}\nexport default class ConfirmPrompt extends Prompt {\n\tget cursor() {\n\t\treturn this.value ? 0 : 1;\n\t}\n\n\tprivate get _value() {\n\t\treturn this.cursor === 0;\n\t}\n\n\tconstructor(opts: ConfirmOptions) {\n\t\tsuper(opts, false);\n\t\tthis.value = opts.initialValue ? true : false;\n\n\t\tthis.on('value', () => {\n\t\t\tthis.value = this._value;\n\t\t});\n\n\t\tthis.on('confirm', (confirm) => {\n\t\t\tthis.output.write(cursor.move(0, -1));\n\t\t\tthis.value = confirm;\n\t\t\tthis.state = 'submit';\n\t\t\tthis.close();\n\t\t});\n\n\t\tthis.on('cursor', () => {\n\t\t\tthis.value = !this.value;\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface GroupMultiSelectOptions<T extends { value: any }>\n\textends PromptOptions<GroupMultiSelectPrompt<T>> {\n\toptions: Record<string, T[]>;\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class GroupMultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: (T & { group: string | boolean })[];\n\tcursor: number = 0;\n\n\tgetGroupItems(group: string): T[] {\n\t\treturn this.options.filter((o) => o.group === group);\n\t}\n\n\tisGroupSelected(group: string) {\n\t\tconst items = this.getGroupItems(group);\n\t\treturn items.every((i) => this.value.includes(i.value));\n\t}\n\n\tprivate toggleValue() {\n\t\tconst item = this.options[this.cursor];\n\t\tif (item.group === true) {\n\t\t\tconst group = item.value;\n\t\t\tconst groupedItems = this.getGroupItems(group);\n\t\t\tif (this.isGroupSelected(group)) {\n\t\t\t\tthis.value = this.value.filter(\n\t\t\t\t\t(v: string) => groupedItems.findIndex((i) => i.value === v) === -1\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.value = [...this.value, ...groupedItems.map((i) => i.value)];\n\t\t\t}\n\t\t\tthis.value = Array.from(new Set(this.value));\n\t\t} else {\n\t\t\tconst selected = this.value.includes(item.value);\n\t\t\tthis.value = selected\n\t\t\t\t? this.value.filter((v: T['value']) => v !== item.value)\n\t\t\t\t: [...this.value, item.value];\n\t\t}\n\t}\n\n\tconstructor(opts: GroupMultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\t\tconst { options } = opts;\n\t\tthis.options = Object.entries(options).flatMap(([key, option]) => [\n\t\t\t{ value: key, group: true, label: key },\n\t\t\t...option.map((opt) => ({ ...opt, group: key })),\n\t\t]) as any;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface MultiSelectOptions<T extends { value: any }> extends PromptOptions<MultiSelectPrompt<T>> {\n\toptions: T[];\n\tinitialValues?: T['value'][];\n\trequired?: boolean;\n\tcursorAt?: T['value'];\n}\nexport default class MultiSelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor].value;\n\t}\n\n\tprivate toggleAll() {\n\t\tconst allSelected = this.value.length === this.options.length;\n\t\tthis.value = allSelected ? [] : this.options.map((v) => v.value);\n\t}\n\n\tprivate toggleValue() {\n\t\tconst selected = this.value.includes(this._value);\n\t\tthis.value = selected\n\t\t\t? this.value.filter((value: T['value']) => value !== this._value)\n\t\t\t: [...this.value, this._value];\n\t}\n\n\tconstructor(opts: MultiSelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.value = [...(opts.initialValues ?? [])];\n\t\tthis.cursor = Math.max(\n\t\t\tthis.options.findIndex(({ value }) => value === opts.cursorAt),\n\t\t\t0\n\t\t);\n\t\tthis.on('key', (char) => {\n\t\t\tif (char === 'a') {\n\t\t\t\tthis.toggleAll();\n\t\t\t}\n\t\t});\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'space':\n\t\t\t\t\tthis.toggleValue();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\ninterface PasswordOptions extends PromptOptions<PasswordPrompt> {\n\tmask?: string;\n}\nexport default class PasswordPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tprivate _mask = '•';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tget masked() {\n\t\treturn this.value.replaceAll(/./g, this._mask);\n\t}\n\tconstructor({ mask, ...opts }: PasswordOptions) {\n\t\tsuper(opts);\n\t\tthis._mask = mask ?? '•';\n\n\t\tthis.on('finalize', () => {\n\t\t\tthis.valueWithCursor = this.masked;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.masked}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.masked.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.masked.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectOptions<T extends { value: any }> extends PromptOptions<SelectPrompt<T>> {\n\toptions: T[];\n\tinitialValue?: T['value'];\n}\nexport default class SelectPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tprivate get _value() {\n\t\treturn this.options[this.cursor];\n\t}\n\n\tprivate changeValue() {\n\t\tthis.value = this._value.value;\n\t}\n\n\tconstructor(opts: SelectOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tthis.cursor = this.options.findIndex(({ value }) => value === opts.initialValue);\n\t\tif (this.cursor === -1) this.cursor = 0;\n\t\tthis.changeValue();\n\n\t\tthis.on('cursor', (key) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'left':\n\t\t\t\tcase 'up':\n\t\t\t\t\tthis.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'down':\n\t\t\t\tcase 'right':\n\t\t\t\t\tthis.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.changeValue();\n\t\t});\n\t}\n}\n","import Prompt, { PromptOptions } from './prompt';\n\ninterface SelectKeyOptions<T extends { value: any }> extends PromptOptions<SelectKeyPrompt<T>> {\n\toptions: T[];\n}\nexport default class SelectKeyPrompt<T extends { value: any }> extends Prompt {\n\toptions: T[];\n\tcursor: number = 0;\n\n\tconstructor(opts: SelectKeyOptions<T>) {\n\t\tsuper(opts, false);\n\n\t\tthis.options = opts.options;\n\t\tconst keys = this.options.map(({ value: [initial] }) => initial?.toLowerCase());\n\t\tthis.cursor = Math.max(keys.indexOf(opts.initialValue), 0);\n\n\t\tthis.on('key', (key) => {\n\t\t\tif (!keys.includes(key)) return;\n\t\t\tconst value = this.options.find(({ value: [initial] }) => initial?.toLowerCase() === key);\n\t\t\tif (value) {\n\t\t\t\tthis.value = value.value;\n\t\t\t\tthis.state = 'submit';\n\t\t\t\tthis.emit('submit');\n\t\t\t}\n\t\t});\n\t}\n}\n","import color from 'picocolors';\nimport Prompt, { PromptOptions } from './prompt';\n\nexport interface TextOptions extends PromptOptions<TextPrompt> {\n\tplaceholder?: string;\n\tdefaultValue?: string;\n}\n\nexport default class TextPrompt extends Prompt {\n\tvalueWithCursor = '';\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tconstructor(opts: TextOptions) {\n\t\tsuper(opts);\n\n\t\tthis.on('finalize', () => {\n\t\t\tif (!this.value) {\n\t\t\t\tthis.value = opts.defaultValue;\n\t\t\t}\n\t\t\tthis.valueWithCursor = this.value;\n\t\t});\n\t\tthis.on('value', () => {\n\t\t\tif (this.cursor >= this.value.length) {\n\t\t\t\tthis.valueWithCursor = `${this.value}${color.inverse(color.hidden('_'))}`;\n\t\t\t} else {\n\t\t\t\tconst s1 = this.value.slice(0, this.cursor);\n\t\t\t\tconst s2 = this.value.slice(this.cursor);\n\t\t\t\tthis.valueWithCursor = `${s1}${color.inverse(s2[0])}${s2.slice(1)}`;\n\t\t\t}\n\t\t});\n\t}\n}\n","import type { Key } from 'node:readline';\n\nimport { stdin, stdout } from 'node:process';\nimport * as readline from 'node:readline';\nimport { cursor } from 'sisteransi';\n\nconst isWindows = globalThis.process.platform.startsWith('win');\n\nexport function block({\n\tinput = stdin,\n\toutput = stdout,\n\toverwrite = true,\n\thideCursor = true,\n} = {}) {\n\tconst rl = readline.createInterface({\n\t\tinput,\n\t\toutput,\n\t\tprompt: '',\n\t\ttabSize: 1,\n\t});\n\treadline.emitKeypressEvents(input, rl);\n\tif (input.isTTY) input.setRawMode(true);\n\n\tconst clear = (data: Buffer, { name }: Key) => {\n\t\tconst str = String(data);\n\t\tif (str === '\\x03') {\n\t\t\tif (hideCursor) output.write(cursor.show);\n\t\t\tprocess.exit(0);\n\t\t\treturn;\n\t\t}\n\t\tif (!overwrite) return;\n\t\tlet dx = name === 'return' ? 0 : -1;\n\t\tlet dy = name === 'return' ? -1 : 0;\n\n\t\treadline.moveCursor(output, dx, dy, () => {\n\t\t\treadline.clearLine(output, 1, () => {\n\t\t\t\tinput.once('keypress', clear);\n\t\t\t});\n\t\t});\n\t};\n\tif (hideCursor) output.write(cursor.hide);\n\tinput.once('keypress', clear);\n\n\treturn () => {\n\t\tinput.off('keypress', clear);\n\t\tif (hideCursor) output.write(cursor.show);\n\n\t\t// Prevent Windows specific issues: https://github.com/natemoo-re/clack/issues/176\n\t\tif (input.isTTY && !isWindows) input.setRawMode(false);\n\n\t\t// @ts-expect-error fix for https://github.com/nodejs/node/issues/31762#issuecomment-1441223907\n\t\trl.terminal = false;\n\t\trl.close();\n\t};\n}\n","import{TextPrompt as V,PasswordPrompt as j,ConfirmPrompt as N,SelectPrompt as k,SelectKeyPrompt as W,MultiSelectPrompt as D,GroupMultiSelectPrompt as L,isCancel as G,block as F}from\"@clack/core\";export{isCancel}from\"@clack/core\";import h from\"node:process\";import e from\"picocolors\";import{cursor as T,erase as A}from\"sisteransi\";function q(){return h.platform!==\"win32\"?h.env.TERM!==\"linux\":Boolean(h.env.CI)||Boolean(h.env.WT_SESSION)||Boolean(h.env.TERMINUS_SUBLIME)||h.env.ConEmuTask===\"{cmd::Cmder}\"||h.env.TERM_PROGRAM===\"Terminus-Sublime\"||h.env.TERM_PROGRAM===\"vscode\"||h.env.TERM===\"xterm-256color\"||h.env.TERM===\"alacritty\"||h.env.TERMINAL_EMULATOR===\"JetBrains-JediTerm\"}const _=q(),o=(r,n)=>_?r:n,H=o(\"\\u25C6\",\"*\"),I=o(\"\\u25A0\",\"x\"),x=o(\"\\u25B2\",\"x\"),S=o(\"\\u25C7\",\"o\"),K=o(\"\\u250C\",\"T\"),a=o(\"\\u2502\",\"|\"),d=o(\"\\u2514\",\"\\u2014\"),b=o(\"\\u25CF\",\">\"),E=o(\"\\u25CB\",\" \"),C=o(\"\\u25FB\",\"[\\u2022]\"),w=o(\"\\u25FC\",\"[+]\"),M=o(\"\\u25FB\",\"[ ]\"),U=o(\"\\u25AA\",\"\\u2022\"),B=o(\"\\u2500\",\"-\"),Z=o(\"\\u256E\",\"+\"),z=o(\"\\u251C\",\"+\"),X=o(\"\\u256F\",\"+\"),J=o(\"\\u25CF\",\"\\u2022\"),Y=o(\"\\u25C6\",\"*\"),Q=o(\"\\u25B2\",\"!\"),ee=o(\"\\u25A0\",\"x\"),y=r=>{switch(r){case\"initial\":case\"active\":return e.cyan(H);case\"cancel\":return e.red(I);case\"error\":return e.yellow(x);case\"submit\":return e.green(S)}},te=r=>new V({validate:r.validate,placeholder:r.placeholder,defaultValue:r.defaultValue,initialValue:r.initialValue,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=r.placeholder?e.inverse(r.placeholder[0])+e.dim(r.placeholder.slice(1)):e.inverse(e.hidden(\"_\")),t=this.value?this.valueWithCursor:i;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(this.value||r.placeholder)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(this.value??\"\"))}${this.value?.trim()?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${t}\n${e.cyan(d)}\n`}}}).prompt(),re=r=>new j({validate:r.validate,mask:r.mask??U,render(){const n=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,i=this.valueWithCursor,t=this.masked;switch(this.state){case\"error\":return`${n.trim()}\n${e.yellow(a)} ${t}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case\"submit\":return`${n}${e.gray(a)} ${e.dim(t)}`;case\"cancel\":return`${n}${e.gray(a)} ${e.strikethrough(e.dim(t??\"\"))}${t?`\n`+e.gray(a):\"\"}`;default:return`${n}${e.cyan(a)} ${i}\n${e.cyan(d)}\n`}}}).prompt(),se=r=>{const n=r.active??\"Yes\",i=r.inactive??\"No\";return new N({active:n,inactive:i,initialValue:r.initialValue??!0,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`,s=this.value?n:i;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${e.dim(s)}`;case\"cancel\":return`${t}${e.gray(a)} ${e.strikethrough(e.dim(s))}\n${e.gray(a)}`;default:return`${t}${e.cyan(a)} ${this.value?`${e.green(b)} ${n}`:`${e.dim(E)} ${e.dim(n)}`} ${e.dim(\"/\")} ${this.value?`${e.dim(E)} ${e.dim(i)}`:`${e.green(b)} ${i}`}\n${e.cyan(d)}\n`}}}).prompt()},ie=r=>{const n=(t,s)=>{const c=t.label??String(t.value);return s===\"active\"?`${e.green(b)} ${c} ${t.hint?e.dim(`(${t.hint})`):\"\"}`:s===\"selected\"?`${e.dim(c)}`:s===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:`${e.dim(E)} ${e.dim(c)}`};let i=0;return new k({options:r.options,initialValue:r.initialValue,render(){const t=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"selected\")}`;case\"cancel\":return`${t}${e.gray(a)} ${n(this.options[this.cursor],\"cancelled\")}\n${e.gray(a)}`;default:{const s=r.maxItems===void 0?1/0:Math.max(r.maxItems,5);this.cursor>=i+s-3?i=Math.max(Math.min(this.cursor-s+3,this.options.length-s),0):this.cursor<i+2&&(i=Math.max(this.cursor-2,0));const c=s<this.options.length&&i>0,l=s<this.options.length&&i+s<this.options.length;return`${t}${e.cyan(a)} ${this.options.slice(i,i+s).map((u,m,$)=>m===0&&c?e.dim(\"...\"):m===$.length-1&&l?e.dim(\"...\"):n(u,m+i===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}}).prompt()},ne=r=>{const n=(i,t=\"inactive\")=>{const s=i.label??String(i.value);return t===\"selected\"?`${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active\"?`${e.bgCyan(e.gray(` ${i.value} `))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:`${e.gray(e.bgWhite(e.inverse(` ${i.value} `)))} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`};return new W({options:r.options,initialValue:r.initialValue,render(){const i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${n(this.options.find(t=>t.value===this.value),\"selected\")}`;case\"cancel\":return`${i}${e.gray(a)} ${n(this.options[0],\"cancelled\")}\n${e.gray(a)}`;default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>n(t,s===this.cursor?\"active\":\"inactive\")).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ae=r=>{const n=(i,t)=>{const s=i.label??String(i.value);return t===\"active\"?`${e.cyan(C)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"selected\"?`${e.green(w)} ${e.dim(s)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(s))}`:t===\"active-selected\"?`${e.green(w)} ${s} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(s)}`:`${e.dim(M)} ${e.dim(s)}`};return new D({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))||e.dim(\"none\")}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return i+e.yellow(a)+\" \"+this.options.map((s,c)=>{const l=this.value.includes(s.value),u=c===this.cursor;return u&&l?n(s,\"active-selected\"):l?n(s,\"selected\"):n(s,u?\"active\":\"inactive\")}).join(`\n${e.yellow(a)} `)+`\n`+t+`\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s)=>{const c=this.value.includes(t.value),l=s===this.cursor;return l&&c?n(t,\"active-selected\"):c?n(t,\"selected\"):n(t,l?\"active\":\"inactive\")}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},ce=r=>{const n=(i,t,s=[])=>{const c=i.label??String(i.value),l=typeof i.group==\"string\",u=l&&(s[s.indexOf(i)+1]??{group:!0}),m=l&&u.group===!0,$=l?`${m?d:a} `:\"\";return t===\"active\"?`${e.dim($)}${e.cyan(C)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"group-active\"?`${$}${e.cyan(C)} ${e.dim(c)}`:t===\"group-active-selected\"?`${$}${e.green(w)} ${e.dim(c)}`:t===\"selected\"?`${e.dim($)}${e.green(w)} ${e.dim(c)}`:t===\"cancelled\"?`${e.strikethrough(e.dim(c))}`:t===\"active-selected\"?`${e.dim($)}${e.green(w)} ${c} ${i.hint?e.dim(`(${i.hint})`):\"\"}`:t===\"submitted\"?`${e.dim(c)}`:`${e.dim($)}${e.dim(M)} ${e.dim(c)}`};return new L({options:r.options,initialValues:r.initialValues,required:r.required??!0,cursorAt:r.cursorAt,validate(i){if(this.required&&i.length===0)return`Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){let i=`${e.gray(a)}\n${y(this.state)} ${r.message}\n`;switch(this.state){case\"submit\":return`${i}${e.gray(a)} ${this.options.filter(({value:t})=>this.value.includes(t)).map(t=>n(t,\"submitted\")).join(e.dim(\", \"))}`;case\"cancel\":{const t=this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,\"cancelled\")).join(e.dim(\", \"));return`${i}${e.gray(a)} ${t.trim()?`${t}\n${e.gray(a)}`:\"\"}`}case\"error\":{const t=this.error.split(`\n`).map((s,c)=>c===0?`${e.yellow(d)} ${e.yellow(s)}`:` ${s}`).join(`\n`);return`${i}${e.yellow(a)} ${this.options.map((s,c,l)=>{const u=this.value.includes(s.value)||s.group===!0&&this.isGroupSelected(`${s.value}`),m=c===this.cursor;return!m&&typeof s.group==\"string\"&&this.options[this.cursor].value===s.group?n(s,u?\"group-active-selected\":\"group-active\",l):m&&u?n(s,\"active-selected\",l):u?n(s,\"selected\",l):n(s,m?\"active\":\"inactive\",l)}).join(`\n${e.yellow(a)} `)}\n${t}\n`}default:return`${i}${e.cyan(a)} ${this.options.map((t,s,c)=>{const l=this.value.includes(t.value)||t.group===!0&&this.isGroupSelected(`${t.value}`),u=s===this.cursor;return!u&&typeof t.group==\"string\"&&this.options[this.cursor].value===t.group?n(t,l?\"group-active-selected\":\"group-active\",c):u&&l?n(t,\"active-selected\",c):l?n(t,\"selected\",c):n(t,u?\"active\":\"inactive\",c)}).join(`\n${e.cyan(a)} `)}\n${e.cyan(d)}\n`}}}).prompt()},R=r=>r.replace(me(),\"\"),le=(r=\"\",n=\"\")=>{const i=`\n${r}\n`.split(`\n`),t=R(n).length,s=Math.max(i.reduce((l,u)=>(u=R(u),u.length>l?u.length:l),0),t)+2,c=i.map(l=>`${e.gray(a)} ${e.dim(l)}${\" \".repeat(s-R(l).length)}${e.gray(a)}`).join(`\n`);process.stdout.write(`${e.gray(a)}\n${e.green(S)} ${e.reset(n)} ${e.gray(B.repeat(Math.max(s-t-1,1))+Z)}\n${c}\n${e.gray(z+B.repeat(s+2)+X)}\n`)},ue=(r=\"\")=>{process.stdout.write(`${e.gray(d)} ${e.red(r)}\n\n`)},oe=(r=\"\")=>{process.stdout.write(`${e.gray(K)} ${r}\n`)},$e=(r=\"\")=>{process.stdout.write(`${e.gray(a)}\n${e.gray(d)} ${r}\n\n`)},f={message:(r=\"\",{symbol:n=e.gray(a)}={})=>{const i=[`${e.gray(a)}`];if(r){const[t,...s]=r.split(`\n`);i.push(`${n} ${t}`,...s.map(c=>`${e.gray(a)} ${c}`))}process.stdout.write(`${i.join(`\n`)}\n`)},info:r=>{f.message(r,{symbol:e.blue(J)})},success:r=>{f.message(r,{symbol:e.green(Y)})},step:r=>{f.message(r,{symbol:e.green(S)})},warn:r=>{f.message(r,{symbol:e.yellow(Q)})},warning:r=>{f.warn(r)},error:r=>{f.message(r,{symbol:e.red(ee)})}},de=()=>{const r=_?[\"\\u25D2\",\"\\u25D0\",\"\\u25D3\",\"\\u25D1\"]:[\"\\u2022\",\"o\",\"O\",\"0\"],n=_?80:120;let i,t,s=!1,c=\"\";const l=(v=\"\")=>{s=!0,i=F(),c=v.replace(/\\.+$/,\"\"),process.stdout.write(`${e.gray(a)}\n`);let g=0,p=0;t=setInterval(()=>{const O=e.magenta(r[g]),P=\".\".repeat(Math.floor(p)).slice(0,3);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${O} ${c}${P}`),g=g+1<r.length?g+1:0,p=p<r.length?p+.125:0},n)},u=(v=\"\",g=0)=>{c=v??c,s=!1,clearInterval(t);const p=g===0?e.green(S):g===1?e.red(I):e.red(x);process.stdout.write(T.move(-999,0)),process.stdout.write(A.down(1)),process.stdout.write(`${p} ${c}\n`),i()},m=(v=\"\")=>{c=v??c},$=v=>{const g=v>1?\"Something went wrong\":\"Canceled\";s&&u(g,v)};return process.on(\"uncaughtExceptionMonitor\",()=>$(2)),process.on(\"unhandledRejection\",()=>$(2)),process.on(\"SIGINT\",()=>$(1)),process.on(\"SIGTERM\",()=>$(1)),process.on(\"exit\",$),{start:l,stop:u,message:m}};function me(){const r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"].join(\"|\");return new RegExp(r,\"g\")}const he=async(r,n)=>{const i={},t=Object.keys(r);for(const s of t){const c=r[s],l=await c({results:i})?.catch(u=>{throw u});if(typeof n?.onCancel==\"function\"&&G(l)){i[s]=\"canceled\",n.onCancel({results:i});continue}i[s]=l}return i};export{ue as cancel,se as confirm,he as group,ce as groupMultiselect,oe as intro,f as log,ae as multiselect,le as note,$e as outro,re as password,ie as select,ne as selectKey,de as spinner,te as text};\n","/**\n * Template registry.\n *\n * Each entry describes a starter template that lives in the monorepo's\n * `templates/<dir>` directory (copied into this package at build time). The\n * registry is structured so more languages/templates can be added later without\n * touching the scaffolding logic.\n */\n\n/** A language a template targets. Only TypeScript ships today. */\nexport type TemplateLanguage = \"typescript\";\n\n/** A scaffoldable starter template. */\nexport interface TemplateInfo {\n /** Registry id and on-disk directory name under `templates/`. */\n id: string;\n /** Short human label shown in the interactive picker. */\n label: string;\n /** One-line description. */\n hint: string;\n /** Source language. */\n language: TemplateLanguage;\n}\n\n/** All templates the CLI can scaffold. */\nexport const TEMPLATES: readonly TemplateInfo[] = [\n {\n id: \"evm-solidity\",\n label: \"EVM + Solidity\",\n hint: \"A Solidity contract with a viem deploy/interact script using @qorechain/evm.\",\n language: \"typescript\",\n },\n {\n id: \"fullstack-web\",\n label: \"Full-stack web (Vite + React)\",\n hint: \"A minimal Vite + React dApp using @qorechain/sdk to read balances and tokenomics.\",\n language: \"typescript\",\n },\n {\n id: \"rollup-app\",\n label: \"Rollup + multilayer app\",\n hint: \"A rollup + sidechain/paychain app using the RollupClient and multilayer helper from @qorechain/sdk.\",\n language: \"typescript\",\n },\n] as const;\n\n/** Look up a template by id, or `undefined` if unknown. */\nexport function findTemplate(id: string): TemplateInfo | undefined {\n return TEMPLATES.find((t) => t.id === id);\n}\n\n/** Comma-separated list of valid template ids, for error messages. */\nexport function templateIdList(): string {\n return TEMPLATES.map((t) => t.id).join(\", \");\n}\n","/**\n * Hand-rolled, dependency-free argument parser for the CLI. Kept separate from\n * the prompt I/O so it can be unit-tested directly.\n */\nimport type { Network, PackageManager } from \"./scaffold.js\";\nimport { TEMPLATES } from \"./templates.js\";\n\n/** Parsed CLI arguments. */\nexport interface ParsedArgs {\n /** Positional target directory (project dir), if given. */\n dir?: string;\n /** `--template <name>`. */\n template?: string;\n /** `--network <testnet|mainnet>`. */\n network?: Network;\n /** `--package-manager <pnpm|npm|yarn>`. */\n packageManager?: PackageManager;\n /** `--yes`: skip prompts, use defaults. */\n yes: boolean;\n /** `--no-install`: skip dependency install. */\n install: boolean;\n /** `--local`: rewrite @qorechain/* deps to file: links into the monorepo. */\n local: boolean;\n /** `--help`. */\n help: boolean;\n /** `--version`. */\n version: boolean;\n}\n\nconst VALID_PM: readonly PackageManager[] = [\"pnpm\", \"npm\", \"yarn\"];\nconst VALID_NETWORK: readonly Network[] = [\"testnet\", \"mainnet\"];\n\n/** Thrown for malformed CLI input; carries a user-facing message. */\nexport class ArgError extends Error {}\n\nfunction expectValue(name: string, value: string | undefined): string {\n if (value === undefined) throw new ArgError(`Missing value for ${name}.`);\n return value;\n}\n\n/**\n * Parse argv (excluding `node` and the script path). Throws {@link ArgError}\n * on malformed input.\n */\nexport function parseArgs(argv: readonly string[]): ParsedArgs {\n const out: ParsedArgs = {\n yes: false,\n install: true,\n local: false,\n help: false,\n version: false,\n };\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i];\n switch (arg) {\n case \"-h\":\n case \"--help\":\n out.help = true;\n break;\n case \"-v\":\n case \"--version\":\n out.version = true;\n break;\n case \"-y\":\n case \"--yes\":\n out.yes = true;\n break;\n case \"--install\":\n out.install = true;\n break;\n case \"--no-install\":\n out.install = false;\n break;\n case \"--local\":\n out.local = true;\n break;\n case \"--template\":\n case \"-t\":\n out.template = expectValue(\"--template\", argv[++i]);\n break;\n case \"--network\":\n out.network = parseNetwork(expectValue(\"--network\", argv[++i]));\n break;\n case \"--package-manager\":\n case \"--pm\":\n out.packageManager = parsePackageManager(\n expectValue(\"--package-manager\", argv[++i]),\n );\n break;\n default: {\n if (arg.startsWith(\"--template=\")) {\n out.template = arg.slice(\"--template=\".length);\n } else if (arg.startsWith(\"--network=\")) {\n out.network = parseNetwork(arg.slice(\"--network=\".length));\n } else if (arg.startsWith(\"--package-manager=\")) {\n out.packageManager = parsePackageManager(\n arg.slice(\"--package-manager=\".length),\n );\n } else if (arg.startsWith(\"-\")) {\n throw new ArgError(`Unknown option: ${arg}`);\n } else if (out.dir === undefined) {\n out.dir = arg;\n } else {\n throw new ArgError(`Unexpected argument: ${arg}`);\n }\n }\n }\n }\n\n return out;\n}\n\nfunction parsePackageManager(value: string): PackageManager {\n if ((VALID_PM as readonly string[]).includes(value)) {\n return value as PackageManager;\n }\n throw new ArgError(\n `Invalid --package-manager \"${value}\". Expected one of: ${VALID_PM.join(\", \")}.`,\n );\n}\n\nfunction parseNetwork(value: string): Network {\n if ((VALID_NETWORK as readonly string[]).includes(value)) {\n return value as Network;\n }\n throw new ArgError(\n `Invalid --network \"${value}\". Expected one of: ${VALID_NETWORK.join(\", \")}.`,\n );\n}\n\n/** The `--help` text. */\nexport function helpText(): string {\n const templates = TEMPLATES.map(\n (t) => ` ${t.id.padEnd(16)} ${t.hint}`,\n ).join(\"\\n\");\n return `create-qorechain-dapp — scaffold a new QoreChain dApp.\n\nUsage:\n npm create qorechain-dapp <dir> [options]\n npx create-qorechain-dapp <dir> [options]\n\nArguments:\n <dir> Target directory for the new project.\n\nOptions:\n -t, --template <name> Template to use. One of:\n${templates}\n --network <name> Network preset: testnet | mainnet.\n --package-manager <pm> Package manager: pnpm | npm | yarn.\n -y, --yes Skip prompts and use defaults.\n --no-install Do not install dependencies after scaffolding.\n --local Rewrite @qorechain/* deps to local file: links\n into this monorepo (for local/dev use before the\n packages are published to npm).\n -h, --help Show this help.\n -v, --version Print the version.\n\nExamples:\n npm create qorechain-dapp my-dapp -- --template evm-solidity\n npx create-qorechain-dapp my-dapp --template fullstack-web --yes\n npx create-qorechain-dapp my-dapp -t evm-solidity --local --no-install\n`;\n}\n","/**\n * Core scaffolding logic — pure and unit-testable, with no prompt I/O.\n *\n * `scaffold(...)` copies a template into a target directory, rewrites the\n * template's package.json name, generates `.env` from `.env.example`, optionally\n * rewrites `@qorechain/*` deps to local `file:` links, and optionally runs a\n * package-manager install. All side effects are confined to the target dir\n * (plus an optional `spawn` for install), so tests can drive it against a temp\n * dir with `install: false`.\n */\nimport { spawnSync } from \"node:child_process\";\nimport {\n cpSync,\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n writeFileSync,\n} from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { findTemplate, templateIdList } from \"./templates.js\";\n\n/** Supported package managers. */\nexport type PackageManager = \"pnpm\" | \"npm\" | \"yarn\";\n\n/** Supported networks. */\nexport type Network = \"testnet\" | \"mainnet\";\n\n/** Options for {@link scaffold}. */\nexport interface ScaffoldOptions {\n /** Template id (must exist in the registry). */\n template: string;\n /** Absolute or relative target directory to create the project in. */\n targetDir: string;\n /** Project name written into the generated package.json. */\n projectName: string;\n /** Package manager to record/use. Defaults to `pnpm`. */\n packageManager?: PackageManager;\n /** Network preset. Defaults to `testnet`. */\n network?: Network;\n /** Run the package manager install after copying. Defaults to `false`. */\n install?: boolean;\n /**\n * Rewrite `@qorechain/*` dependencies to `file:` links into this monorepo so\n * the scaffolded project is runnable locally before the packages are\n * published. Defaults to `false` (keeps the published `^x.y.z` ranges).\n */\n local?: boolean;\n /**\n * Override the directory templates are resolved from. Primarily for tests.\n * When unset, templates are located relative to this package (see\n * {@link resolveTemplatesRoot}).\n */\n templatesRoot?: string;\n /**\n * Monorepo root used to compute `file:` links when `local` is set. Defaults\n * to the resolved repo root relative to this package.\n */\n monorepoRoot?: string;\n}\n\n/** Result of a successful {@link scaffold}. */\nexport interface ScaffoldResult {\n /** Absolute path to the created project. */\n targetDir: string;\n /** Whether install was run. */\n installed: boolean;\n /** Relative paths of the files written (sorted). */\n files: string[];\n}\n\nconst here = dirname(fileURLToPath(import.meta.url));\n\n/**\n * Locate the bundled `templates/` directory. Works both from source (where\n * templates live at the repo root, two levels up from `cli/src`) and from the\n * built/published package (where `copy-templates` placed them at `<pkg>/templates`).\n */\nexport function resolveTemplatesRoot(): string {\n // Built/published layout: dist/index.js → ../templates\n const bundled = resolve(here, \"..\", \"templates\");\n if (existsSync(bundled) && existsSync(join(bundled, \"evm-solidity\"))) {\n return bundled;\n }\n // Source layout: cli/src → ../../templates\n const sourceLevel = resolve(here, \"..\", \"..\", \"templates\");\n if (existsSync(sourceLevel) && existsSync(join(sourceLevel, \"evm-solidity\"))) {\n return sourceLevel;\n }\n // Fallback to the bundled path so the error message is actionable.\n return bundled;\n}\n\n/**\n * Locate the monorepo root (which contains `packages/`), used for `file:` links\n * in `--local` mode.\n */\nfunction resolveMonorepoRoot(): string {\n const candidates = [\n resolve(here, \"..\", \"..\"), // source: cli/src → repo root\n resolve(here, \"..\", \"..\", \"..\"), // dist/index.js variants\n ];\n for (const c of candidates) {\n if (existsSync(join(c, \"packages\", \"ts\", \"package.json\"))) return c;\n }\n return resolve(here, \"..\", \"..\");\n}\n\nconst COPY_SKIP = new Set([\"node_modules\", \"dist\", \".turbo\", \"coverage\"]);\n\n/** Recursively collect relative file paths under `root`. */\nfunction listFiles(root: string, base = root): string[] {\n const out: string[] = [];\n for (const entry of readdirSync(root, { withFileTypes: true })) {\n const full = join(root, entry.name);\n if (entry.isDirectory()) {\n out.push(...listFiles(full, base));\n } else {\n out.push(full.slice(base.length + 1));\n }\n }\n return out.sort();\n}\n\n/** Rewrite `@qorechain/*` deps in a parsed package.json to `file:` links. */\nfunction rewriteLocalDeps(\n pkg: Record<string, unknown>,\n monorepoRoot: string,\n): void {\n // Map of published package name → monorepo package dir.\n const localPackages: Record<string, string> = {\n \"@qorechain/sdk\": join(monorepoRoot, \"packages\", \"ts\"),\n \"@qorechain/evm\": join(monorepoRoot, \"packages\", \"evm\"),\n \"@qorechain/svm\": join(monorepoRoot, \"packages\", \"svm\"),\n };\n for (const section of [\"dependencies\", \"devDependencies\"] as const) {\n const deps = pkg[section] as Record<string, string> | undefined;\n if (!deps) continue;\n for (const name of Object.keys(deps)) {\n const dir = localPackages[name];\n if (dir) deps[name] = `file:${dir}`;\n }\n }\n}\n\n/** Install command for a given package manager. */\nfunction installCommand(pm: PackageManager): { cmd: string; args: string[] } {\n return { cmd: pm, args: [\"install\"] };\n}\n\n/**\n * Scaffold a project. Pure with respect to everything except the target dir\n * (and the optional install subprocess).\n *\n * @throws if the template is unknown or the target dir already exists and is\n * non-empty.\n */\nexport function scaffold(options: ScaffoldOptions): ScaffoldResult {\n const {\n template,\n projectName,\n packageManager = \"pnpm\",\n install = false,\n local = false,\n } = options;\n\n const info = findTemplate(template);\n if (!info) {\n throw new Error(\n `Unknown template \"${template}\". Available templates: ${templateIdList()}.`,\n );\n }\n\n const templatesRoot = options.templatesRoot ?? resolveTemplatesRoot();\n const templateDir = join(templatesRoot, info.id);\n if (!existsSync(templateDir)) {\n throw new Error(\n `Template \"${info.id}\" not found on disk at ${templateDir}. ` +\n `The package may be built incorrectly.`,\n );\n }\n\n const targetDir = resolve(options.targetDir);\n if (existsSync(targetDir)) {\n const entries = readdirSync(targetDir);\n if (entries.length > 0) {\n throw new Error(`Target directory is not empty: ${targetDir}`);\n }\n } else {\n mkdirSync(targetDir, { recursive: true });\n }\n\n // Copy template, skipping build artifacts.\n cpSync(templateDir, targetDir, {\n recursive: true,\n filter: (srcPath) => {\n const rel = srcPath.slice(templateDir.length + 1);\n const parts = rel.split(/[\\\\/]/);\n return !parts.some((p) => COPY_SKIP.has(p));\n },\n });\n\n // Rewrite package.json: name (+ optional local file: deps).\n const pkgPath = join(targetDir, \"package.json\");\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf8\")) as Record<\n string,\n unknown\n >;\n pkg.name = projectName;\n if (local) {\n rewriteLocalDeps(pkg, options.monorepoRoot ?? resolveMonorepoRoot());\n }\n writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + \"\\n\");\n }\n\n // Generate .env from .env.example if present and .env absent.\n const envExample = join(targetDir, \".env.example\");\n const envPath = join(targetDir, \".env\");\n if (existsSync(envExample) && !existsSync(envPath)) {\n writeFileSync(envPath, readFileSync(envExample, \"utf8\"));\n }\n\n let installed = false;\n if (install) {\n const { cmd, args } = installCommand(packageManager);\n const res = spawnSync(cmd, args, {\n cwd: targetDir,\n stdio: \"inherit\",\n shell: process.platform === \"win32\",\n });\n if (res.status !== 0) {\n throw new Error(\n `Install failed (${cmd} ${args.join(\" \")}) with exit code ${res.status ?? \"unknown\"}.`,\n );\n }\n installed = true;\n }\n\n return { targetDir, installed, files: listFiles(targetDir) };\n}\n"],"mappings":"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,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACUA,KAAV,QACUA,KAAV,QACUA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QAC1BA,KAAV,QACA,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,QACpC,QAAUA,KAAaA,KAAa,Q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","names":["x","y","f","existsSync","readdirSync","resolve","ansiRegex","onlyFirst","pattern","regex","stripAnsi","string","e","eaw","module","character","x","y","codePoint","code","stringToArray","characters","len","i","text","start","end","result","eawLen","chars","char","charLen","emojiRegex","stringWidth","options","ambiguousCharacterWidth","width","eastAsianWidth","ANSI_BACKGROUND_OFFSET","wrapAnsi16","offset","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","foregroundColorNames","backgroundColorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","integer","remainder","value","ansiStyles","ESCAPES","END_CODE","ANSI_ESCAPE_BELL","ANSI_CSI","ANSI_OSC","ANSI_SGR_TERMINATOR","ANSI_ESCAPE_LINK","wrapAnsiCode","wrapAnsiHyperlink","uri","wordLengths","wrapWord","rows","word","columns","isInsideEscape","isInsideLinkEscape","visible","index","characterLength","stringVisibleTrimSpacesRight","words","last","exec","returnValue","escapeCode","escapeUrl","lengths","rowLength","remainingColumns","breaksStartingThisLine","row","pre","groups","wrapAnsi","line","f","d","r","t","o","diffLines","a","b","aLines","bLines","diff","cancel","isCancel","setRawMode","input","aliases","keys","Prompt","render","stdin","output","stdout","opts","trackValue","__publicField","sink","WriteStream","chunk","encoding","done","readline","resolve","reject","cursor","event","cb","arr","data","cbs","cleanup","subscriber","key","problem","lines","wrap","frame","diffLine","erase","newLines","e","u$1","Prompt","opts","__publicField","value","key","e","TextPrompt","Prompt","opts","__publicField","color","s1","s2","isWindows","import_picocolors","import_sisteransi","q","_","r","I","x","S","a","d","b","w","M","U","Z","z","X","J","Q","y","e","r","c","e","b","a","y","l","m","$","d","R","r","l","c","e","a","S","Z","z","X","d","f","J","Q","r","import_picocolors","c","existsSync","readdirSync","resolve","v","pc","f"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-qorechain-dapp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Scaffold a new QoreChain dApp from an official starter template.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "QoreChain",
|
|
@@ -12,14 +12,6 @@
|
|
|
12
12
|
"dist",
|
|
13
13
|
"templates"
|
|
14
14
|
],
|
|
15
|
-
"scripts": {
|
|
16
|
-
"prepare:templates": "node scripts/copy-templates.mjs",
|
|
17
|
-
"build": "node scripts/copy-templates.mjs && tsup",
|
|
18
|
-
"test": "vitest run",
|
|
19
|
-
"test:watch": "vitest",
|
|
20
|
-
"typecheck": "tsc --noEmit",
|
|
21
|
-
"lint": "eslint src test"
|
|
22
|
-
},
|
|
23
15
|
"repository": {
|
|
24
16
|
"type": "git",
|
|
25
17
|
"url": "git+https://github.com/qorechain/qorechain-sdk.git",
|
|
@@ -44,5 +36,13 @@
|
|
|
44
36
|
"tsup": "^8.3.0",
|
|
45
37
|
"typescript": "^5.6.3",
|
|
46
38
|
"vitest": "^2.1.2"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"prepare:templates": "node scripts/copy-templates.mjs",
|
|
42
|
+
"build": "node scripts/copy-templates.mjs && tsup",
|
|
43
|
+
"test": "vitest run",
|
|
44
|
+
"test:watch": "vitest",
|
|
45
|
+
"typecheck": "tsc --noEmit",
|
|
46
|
+
"lint": "eslint src test"
|
|
47
47
|
}
|
|
48
|
-
}
|
|
48
|
+
}
|