@prismicio/cli 0.0.1 → 0.0.2-alpha.xru-fix-npx-install-warnings.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/acorn-CCr8VihG.js +3019 -0
  2. package/dist/acorn-CCr8VihG.js.map +1 -0
  3. package/dist/angular-B-6Sdz-P.js +2737 -0
  4. package/dist/angular-B-6Sdz-P.js.map +1 -0
  5. package/dist/babel-DSSzU6fH.js +7175 -0
  6. package/dist/babel-DSSzU6fH.js.map +1 -0
  7. package/dist/cli-NVpkXC9F.js +150015 -0
  8. package/dist/cli-NVpkXC9F.js.map +1 -0
  9. package/dist/cli.js +3 -144
  10. package/dist/cli.js.map +1 -1
  11. package/dist/estree-DHLJIae3.js +4486 -0
  12. package/dist/estree-DHLJIae3.js.map +1 -0
  13. package/dist/flow-DVd4L7fO.js +27426 -0
  14. package/dist/flow-DVd4L7fO.js.map +1 -0
  15. package/dist/glimmer-ffe_QHPj.js +2696 -0
  16. package/dist/glimmer-ffe_QHPj.js.map +1 -0
  17. package/dist/graphql-Cx6A4xbM.js +1241 -0
  18. package/dist/graphql-Cx6A4xbM.js.map +1 -0
  19. package/dist/html-Cp0WeaDh.js +2794 -0
  20. package/dist/html-Cp0WeaDh.js.map +1 -0
  21. package/dist/index-CAoPVwid.js +397 -0
  22. package/dist/index-CAoPVwid.js.map +1 -0
  23. package/dist/index-CqzxeUkd.js +835 -0
  24. package/dist/index-CqzxeUkd.js.map +1 -0
  25. package/dist/index-D3Z7xY3-.js +323 -0
  26. package/dist/index-D3Z7xY3-.js.map +1 -0
  27. package/dist/index-D80unpFN.js +3003 -0
  28. package/dist/index-D80unpFN.js.map +1 -0
  29. package/dist/index-DA8FlEll.js +35 -0
  30. package/dist/index-DA8FlEll.js.map +1 -0
  31. package/dist/index-DVTRroeB.js +189 -0
  32. package/dist/index-DVTRroeB.js.map +1 -0
  33. package/dist/index.js +2 -2
  34. package/dist/markdown-B2nQpAgl.js +3380 -0
  35. package/dist/markdown-B2nQpAgl.js.map +1 -0
  36. package/dist/meriyah-oMgd23nK.js +2640 -0
  37. package/dist/meriyah-oMgd23nK.js.map +1 -0
  38. package/dist/multipart-parser-jkRZKgYV.js +354 -0
  39. package/dist/multipart-parser-jkRZKgYV.js.map +1 -0
  40. package/dist/postcss-4okJ6bzF.js +4943 -0
  41. package/dist/postcss-4okJ6bzF.js.map +1 -0
  42. package/dist/typescript-eHDX_fq8.js +12974 -0
  43. package/dist/typescript-eHDX_fq8.js.map +1 -0
  44. package/dist/yaml-CoPGVzvb.js +4165 -0
  45. package/dist/yaml-CoPGVzvb.js.map +1 -0
  46. package/package.json +16 -17
  47. package/src/utils/sentry.ts +2 -0
  48. package/dist/_node_modules/meow/build/dependencies.js +0 -9040
  49. package/dist/_node_modules/meow/build/dependencies.js.map +0 -1
  50. package/dist/_node_modules/meow/build/index.js +0 -80
  51. package/dist/_node_modules/meow/build/index.js.map +0 -1
  52. package/dist/_node_modules/meow/build/options.js +0 -86
  53. package/dist/_node_modules/meow/build/options.js.map +0 -1
  54. package/dist/_node_modules/meow/build/parser.js +0 -61
  55. package/dist/_node_modules/meow/build/parser.js.map +0 -1
  56. package/dist/_node_modules/meow/build/utils.js +0 -8
  57. package/dist/_node_modules/meow/build/utils.js.map +0 -1
  58. package/dist/_node_modules/meow/build/validate.js +0 -102
  59. package/dist/_node_modules/meow/build/validate.js.map +0 -1
  60. package/dist/commands/init.js +0 -34
  61. package/dist/commands/init.js.map +0 -1
  62. package/dist/commands/sync.js +0 -32
  63. package/dist/commands/sync.js.map +0 -1
  64. package/dist/core/auth.js +0 -72
  65. package/dist/core/auth.js.map +0 -1
  66. package/dist/core/customType.js +0 -43
  67. package/dist/core/customType.js.map +0 -1
  68. package/dist/core/framework.js +0 -128
  69. package/dist/core/framework.js.map +0 -1
  70. package/dist/core/project.js +0 -92
  71. package/dist/core/project.js.map +0 -1
  72. package/dist/core/repository.js +0 -33
  73. package/dist/core/repository.js.map +0 -1
  74. package/dist/core/slices.js +0 -47
  75. package/dist/core/slices.js.map +0 -1
  76. package/dist/core/version.js +0 -27
  77. package/dist/core/version.js.map +0 -1
  78. package/dist/packages/cli/package.json.js +0 -63
  79. package/dist/packages/cli/package.json.js.map +0 -1
  80. package/dist/utils/error.js +0 -18
  81. package/dist/utils/error.js.map +0 -1
  82. package/dist/utils/listr.js +0 -12
  83. package/dist/utils/listr.js.map +0 -1
  84. package/dist/utils/output.js +0 -34
  85. package/dist/utils/output.js.map +0 -1
  86. package/dist/utils/package.js +0 -20
  87. package/dist/utils/package.js.map +0 -1
  88. package/dist/utils/sentry.js +0 -62
  89. package/dist/utils/sentry.js.map +0 -1
  90. package/dist/utils/telemetry.js +0 -42
  91. package/dist/utils/telemetry.js.map +0 -1
@@ -0,0 +1,835 @@
1
+ import process$2 from "node:process";
2
+ import { a as ansiRegex, e as eastAsianWidth } from "./index-DA8FlEll.js";
3
+ import { s as sliceAnsi } from "./index-D3Z7xY3-.js";
4
+ import os__default from "node:os";
5
+ const isBrowser = globalThis.window?.document !== void 0;
6
+ globalThis.process?.versions?.node !== void 0;
7
+ globalThis.process?.versions?.bun !== void 0;
8
+ globalThis.Deno?.version?.deno !== void 0;
9
+ globalThis.process?.versions?.electron !== void 0;
10
+ globalThis.navigator?.userAgent?.includes("jsdom") === true;
11
+ typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
12
+ typeof DedicatedWorkerGlobalScope !== "undefined" && globalThis instanceof DedicatedWorkerGlobalScope;
13
+ typeof SharedWorkerGlobalScope !== "undefined" && globalThis instanceof SharedWorkerGlobalScope;
14
+ typeof ServiceWorkerGlobalScope !== "undefined" && globalThis instanceof ServiceWorkerGlobalScope;
15
+ const platform = globalThis.navigator?.userAgentData?.platform;
16
+ platform === "macOS" || globalThis.navigator?.platform === "MacIntel" || globalThis.navigator?.userAgent?.includes(" Mac ") === true || globalThis.process?.platform === "darwin";
17
+ platform === "Windows" || globalThis.navigator?.platform === "Win32" || globalThis.process?.platform === "win32";
18
+ platform === "Linux" || globalThis.navigator?.platform?.startsWith("Linux") === true || globalThis.navigator?.userAgent?.includes(" Linux ") === true || globalThis.process?.platform === "linux";
19
+ platform === "Android" || globalThis.navigator?.platform === "Android" || globalThis.navigator?.userAgent?.includes(" Android ") === true || globalThis.process?.platform === "android";
20
+ const ESC = "\x1B[";
21
+ !isBrowser && process$2.env.TERM_PROGRAM === "Apple_Terminal";
22
+ const isWindows = !isBrowser && process$2.platform === "win32";
23
+ !isBrowser && (process$2.env.TERM?.startsWith("screen") || process$2.env.TERM?.startsWith("tmux") || process$2.env.TMUX !== void 0);
24
+ isBrowser ? () => {
25
+ throw new Error("`process.cwd()` only works in Node.js, not the browser.");
26
+ } : process$2.cwd;
27
+ const cursorUp = (count = 1) => ESC + count + "A";
28
+ const cursorLeft = ESC + "G";
29
+ const eraseLines = (count) => {
30
+ let clear = "";
31
+ for (let i = 0; i < count; i++) {
32
+ clear += eraseLine + (i < count - 1 ? cursorUp() : "");
33
+ }
34
+ if (count) {
35
+ clear += cursorLeft;
36
+ }
37
+ return clear;
38
+ };
39
+ const eraseLine = ESC + "2K";
40
+ const eraseScreen = ESC + "2J";
41
+ const isOldWindows = () => {
42
+ if (isBrowser || !isWindows) {
43
+ return false;
44
+ }
45
+ const parts = os__default.release().split(".");
46
+ const major = Number(parts[0]);
47
+ const build = Number(parts[2] ?? 0);
48
+ if (major < 10) {
49
+ return true;
50
+ }
51
+ if (major === 10 && build < 10586) {
52
+ return true;
53
+ }
54
+ return false;
55
+ };
56
+ isOldWindows() ? `${eraseScreen}${ESC}0f` : `${eraseScreen}${ESC}3J${ESC}H`;
57
+ const copyProperty = (to, from, property, ignoreNonConfigurable) => {
58
+ if (property === "length" || property === "prototype") {
59
+ return;
60
+ }
61
+ if (property === "arguments" || property === "caller") {
62
+ return;
63
+ }
64
+ const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
65
+ const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
66
+ if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
67
+ return;
68
+ }
69
+ Object.defineProperty(to, property, fromDescriptor);
70
+ };
71
+ const canCopyProperty = function(toDescriptor, fromDescriptor) {
72
+ return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
73
+ };
74
+ const changePrototype = (to, from) => {
75
+ const fromPrototype = Object.getPrototypeOf(from);
76
+ if (fromPrototype === Object.getPrototypeOf(to)) {
77
+ return;
78
+ }
79
+ Object.setPrototypeOf(to, fromPrototype);
80
+ };
81
+ const wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
82
+ ${fromBody}`;
83
+ const toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
84
+ const toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
85
+ const changeToString = (to, from, name) => {
86
+ const withName = name === "" ? "" : `with ${name.trim()}() `;
87
+ const newToString = wrappedToString.bind(null, withName, from.toString());
88
+ Object.defineProperty(newToString, "name", toStringName);
89
+ const { writable, enumerable, configurable } = toStringDescriptor;
90
+ Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
91
+ };
92
+ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
93
+ const { name } = to;
94
+ for (const property of Reflect.ownKeys(from)) {
95
+ copyProperty(to, from, property, ignoreNonConfigurable);
96
+ }
97
+ changePrototype(to, from);
98
+ changeToString(to, from, name);
99
+ return to;
100
+ }
101
+ const calledFunctions = /* @__PURE__ */ new WeakMap();
102
+ const onetime = (function_, options = {}) => {
103
+ if (typeof function_ !== "function") {
104
+ throw new TypeError("Expected a function");
105
+ }
106
+ let returnValue;
107
+ let callCount = 0;
108
+ const functionName = function_.displayName || function_.name || "<anonymous>";
109
+ const onetime2 = function(...arguments_) {
110
+ calledFunctions.set(onetime2, ++callCount);
111
+ if (callCount === 1) {
112
+ returnValue = function_.apply(this, arguments_);
113
+ function_ = void 0;
114
+ } else if (options.throw === true) {
115
+ throw new Error(`Function \`${functionName}\` can only be called once`);
116
+ }
117
+ return returnValue;
118
+ };
119
+ mimicFunction(onetime2, function_);
120
+ calledFunctions.set(onetime2, callCount);
121
+ return onetime2;
122
+ };
123
+ onetime.callCount = (function_) => {
124
+ if (!calledFunctions.has(function_)) {
125
+ throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
126
+ }
127
+ return calledFunctions.get(function_);
128
+ };
129
+ const signals = [];
130
+ signals.push("SIGHUP", "SIGINT", "SIGTERM");
131
+ if (process.platform !== "win32") {
132
+ signals.push(
133
+ "SIGALRM",
134
+ "SIGABRT",
135
+ "SIGVTALRM",
136
+ "SIGXCPU",
137
+ "SIGXFSZ",
138
+ "SIGUSR2",
139
+ "SIGTRAP",
140
+ "SIGSYS",
141
+ "SIGQUIT",
142
+ "SIGIOT"
143
+ // should detect profiler and enable/disable accordingly.
144
+ // see #21
145
+ // 'SIGPROF'
146
+ );
147
+ }
148
+ if (process.platform === "linux") {
149
+ signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
150
+ }
151
+ const processOk = (process2) => !!process2 && typeof process2 === "object" && typeof process2.removeListener === "function" && typeof process2.emit === "function" && typeof process2.reallyExit === "function" && typeof process2.listeners === "function" && typeof process2.kill === "function" && typeof process2.pid === "number" && typeof process2.on === "function";
152
+ const kExitEmitter = Symbol.for("signal-exit emitter");
153
+ const global = globalThis;
154
+ const ObjectDefineProperty = Object.defineProperty.bind(Object);
155
+ class Emitter {
156
+ emitted = {
157
+ afterExit: false,
158
+ exit: false
159
+ };
160
+ listeners = {
161
+ afterExit: [],
162
+ exit: []
163
+ };
164
+ count = 0;
165
+ id = Math.random();
166
+ constructor() {
167
+ if (global[kExitEmitter]) {
168
+ return global[kExitEmitter];
169
+ }
170
+ ObjectDefineProperty(global, kExitEmitter, {
171
+ value: this,
172
+ writable: false,
173
+ enumerable: false,
174
+ configurable: false
175
+ });
176
+ }
177
+ on(ev, fn) {
178
+ this.listeners[ev].push(fn);
179
+ }
180
+ removeListener(ev, fn) {
181
+ const list = this.listeners[ev];
182
+ const i = list.indexOf(fn);
183
+ if (i === -1) {
184
+ return;
185
+ }
186
+ if (i === 0 && list.length === 1) {
187
+ list.length = 0;
188
+ } else {
189
+ list.splice(i, 1);
190
+ }
191
+ }
192
+ emit(ev, code, signal) {
193
+ if (this.emitted[ev]) {
194
+ return false;
195
+ }
196
+ this.emitted[ev] = true;
197
+ let ret = false;
198
+ for (const fn of this.listeners[ev]) {
199
+ ret = fn(code, signal) === true || ret;
200
+ }
201
+ if (ev === "exit") {
202
+ ret = this.emit("afterExit", code, signal) || ret;
203
+ }
204
+ return ret;
205
+ }
206
+ }
207
+ class SignalExitBase {
208
+ }
209
+ const signalExitWrap = (handler) => {
210
+ return {
211
+ onExit(cb, opts) {
212
+ return handler.onExit(cb, opts);
213
+ },
214
+ load() {
215
+ return handler.load();
216
+ },
217
+ unload() {
218
+ return handler.unload();
219
+ }
220
+ };
221
+ };
222
+ class SignalExitFallback extends SignalExitBase {
223
+ onExit() {
224
+ return () => {
225
+ };
226
+ }
227
+ load() {
228
+ }
229
+ unload() {
230
+ }
231
+ }
232
+ class SignalExit extends SignalExitBase {
233
+ // "SIGHUP" throws an `ENOSYS` error on Windows,
234
+ // so use a supported signal instead
235
+ /* c8 ignore start */
236
+ #hupSig = process$1.platform === "win32" ? "SIGINT" : "SIGHUP";
237
+ /* c8 ignore stop */
238
+ #emitter = new Emitter();
239
+ #process;
240
+ #originalProcessEmit;
241
+ #originalProcessReallyExit;
242
+ #sigListeners = {};
243
+ #loaded = false;
244
+ constructor(process2) {
245
+ super();
246
+ this.#process = process2;
247
+ this.#sigListeners = {};
248
+ for (const sig of signals) {
249
+ this.#sigListeners[sig] = () => {
250
+ const listeners = this.#process.listeners(sig);
251
+ let { count } = this.#emitter;
252
+ const p = process2;
253
+ if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
254
+ count += p.__signal_exit_emitter__.count;
255
+ }
256
+ if (listeners.length === count) {
257
+ this.unload();
258
+ const ret = this.#emitter.emit("exit", null, sig);
259
+ const s = sig === "SIGHUP" ? this.#hupSig : sig;
260
+ if (!ret)
261
+ process2.kill(process2.pid, s);
262
+ }
263
+ };
264
+ }
265
+ this.#originalProcessReallyExit = process2.reallyExit;
266
+ this.#originalProcessEmit = process2.emit;
267
+ }
268
+ onExit(cb, opts) {
269
+ if (!processOk(this.#process)) {
270
+ return () => {
271
+ };
272
+ }
273
+ if (this.#loaded === false) {
274
+ this.load();
275
+ }
276
+ const ev = opts?.alwaysLast ? "afterExit" : "exit";
277
+ this.#emitter.on(ev, cb);
278
+ return () => {
279
+ this.#emitter.removeListener(ev, cb);
280
+ if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
281
+ this.unload();
282
+ }
283
+ };
284
+ }
285
+ load() {
286
+ if (this.#loaded) {
287
+ return;
288
+ }
289
+ this.#loaded = true;
290
+ this.#emitter.count += 1;
291
+ for (const sig of signals) {
292
+ try {
293
+ const fn = this.#sigListeners[sig];
294
+ if (fn)
295
+ this.#process.on(sig, fn);
296
+ } catch (_) {
297
+ }
298
+ }
299
+ this.#process.emit = (ev, ...a) => {
300
+ return this.#processEmit(ev, ...a);
301
+ };
302
+ this.#process.reallyExit = (code) => {
303
+ return this.#processReallyExit(code);
304
+ };
305
+ }
306
+ unload() {
307
+ if (!this.#loaded) {
308
+ return;
309
+ }
310
+ this.#loaded = false;
311
+ signals.forEach((sig) => {
312
+ const listener = this.#sigListeners[sig];
313
+ if (!listener) {
314
+ throw new Error("Listener not defined for signal: " + sig);
315
+ }
316
+ try {
317
+ this.#process.removeListener(sig, listener);
318
+ } catch (_) {
319
+ }
320
+ });
321
+ this.#process.emit = this.#originalProcessEmit;
322
+ this.#process.reallyExit = this.#originalProcessReallyExit;
323
+ this.#emitter.count -= 1;
324
+ }
325
+ #processReallyExit(code) {
326
+ if (!processOk(this.#process)) {
327
+ return 0;
328
+ }
329
+ this.#process.exitCode = code || 0;
330
+ this.#emitter.emit("exit", this.#process.exitCode, null);
331
+ return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
332
+ }
333
+ #processEmit(ev, ...args) {
334
+ const og = this.#originalProcessEmit;
335
+ if (ev === "exit" && processOk(this.#process)) {
336
+ if (typeof args[0] === "number") {
337
+ this.#process.exitCode = args[0];
338
+ }
339
+ const ret = og.call(this.#process, ev, ...args);
340
+ this.#emitter.emit("exit", this.#process.exitCode, null);
341
+ return ret;
342
+ } else {
343
+ return og.call(this.#process, ev, ...args);
344
+ }
345
+ }
346
+ }
347
+ const process$1 = globalThis.process;
348
+ const {
349
+ /**
350
+ * Called when the process is exiting, whether via signal, explicit
351
+ * exit, or running out of stuff to do.
352
+ *
353
+ * If the global process object is not suitable for instrumentation,
354
+ * then this will be a no-op.
355
+ *
356
+ * Returns a function that may be used to unload signal-exit.
357
+ */
358
+ onExit
359
+ } = signalExitWrap(processOk(process$1) ? new SignalExit(process$1) : new SignalExitFallback());
360
+ const terminal = process$2.stderr.isTTY ? process$2.stderr : process$2.stdout.isTTY ? process$2.stdout : void 0;
361
+ const restoreCursor = terminal ? onetime(() => {
362
+ onExit(() => {
363
+ terminal.write("\x1B[?25h");
364
+ }, { alwaysLast: true });
365
+ }) : () => {
366
+ };
367
+ let isHidden = false;
368
+ const cliCursor = {};
369
+ cliCursor.show = (writableStream = process$2.stderr) => {
370
+ if (!writableStream.isTTY) {
371
+ return;
372
+ }
373
+ isHidden = false;
374
+ writableStream.write("\x1B[?25h");
375
+ };
376
+ cliCursor.hide = (writableStream = process$2.stderr) => {
377
+ if (!writableStream.isTTY) {
378
+ return;
379
+ }
380
+ restoreCursor();
381
+ isHidden = true;
382
+ writableStream.write("\x1B[?25l");
383
+ };
384
+ cliCursor.toggle = (force, writableStream) => {
385
+ if (force !== void 0) {
386
+ isHidden = force;
387
+ }
388
+ if (isHidden) {
389
+ cliCursor.show(writableStream);
390
+ } else {
391
+ cliCursor.hide(writableStream);
392
+ }
393
+ };
394
+ const regex = ansiRegex();
395
+ function stripAnsi(string) {
396
+ if (typeof string !== "string") {
397
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
398
+ }
399
+ return string.replace(regex, "");
400
+ }
401
+ const emojiRegex = () => {
402
+ return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\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?|[\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](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\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-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
403
+ };
404
+ const segmenter = new Intl.Segmenter();
405
+ const defaultIgnorableCodePointRegex = new RegExp("^\\p{Default_Ignorable_Code_Point}$", "u");
406
+ function stringWidth(string, options = {}) {
407
+ if (typeof string !== "string" || string.length === 0) {
408
+ return 0;
409
+ }
410
+ const {
411
+ ambiguousIsNarrow = true,
412
+ countAnsiEscapeCodes = false
413
+ } = options;
414
+ if (!countAnsiEscapeCodes) {
415
+ string = stripAnsi(string);
416
+ }
417
+ if (string.length === 0) {
418
+ return 0;
419
+ }
420
+ let width = 0;
421
+ const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
422
+ for (const { segment: character } of segmenter.segment(string)) {
423
+ const codePoint = character.codePointAt(0);
424
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
425
+ continue;
426
+ }
427
+ if (codePoint >= 8203 && codePoint <= 8207 || codePoint === 65279) {
428
+ continue;
429
+ }
430
+ if (codePoint >= 768 && codePoint <= 879 || codePoint >= 6832 && codePoint <= 6911 || codePoint >= 7616 && codePoint <= 7679 || codePoint >= 8400 && codePoint <= 8447 || codePoint >= 65056 && codePoint <= 65071) {
431
+ continue;
432
+ }
433
+ if (codePoint >= 55296 && codePoint <= 57343) {
434
+ continue;
435
+ }
436
+ if (codePoint >= 65024 && codePoint <= 65039) {
437
+ continue;
438
+ }
439
+ if (defaultIgnorableCodePointRegex.test(character)) {
440
+ continue;
441
+ }
442
+ if (emojiRegex().test(character)) {
443
+ width += 2;
444
+ continue;
445
+ }
446
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
447
+ }
448
+ return width;
449
+ }
450
+ const ANSI_BACKGROUND_OFFSET = 10;
451
+ const wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
452
+ const wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
453
+ const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
454
+ const styles = {
455
+ modifier: {
456
+ reset: [0, 0],
457
+ // 21 isn't widely supported and 22 does the same thing
458
+ bold: [1, 22],
459
+ dim: [2, 22],
460
+ italic: [3, 23],
461
+ underline: [4, 24],
462
+ overline: [53, 55],
463
+ inverse: [7, 27],
464
+ hidden: [8, 28],
465
+ strikethrough: [9, 29]
466
+ },
467
+ color: {
468
+ black: [30, 39],
469
+ red: [31, 39],
470
+ green: [32, 39],
471
+ yellow: [33, 39],
472
+ blue: [34, 39],
473
+ magenta: [35, 39],
474
+ cyan: [36, 39],
475
+ white: [37, 39],
476
+ // Bright color
477
+ blackBright: [90, 39],
478
+ gray: [90, 39],
479
+ // Alias of `blackBright`
480
+ grey: [90, 39],
481
+ // Alias of `blackBright`
482
+ redBright: [91, 39],
483
+ greenBright: [92, 39],
484
+ yellowBright: [93, 39],
485
+ blueBright: [94, 39],
486
+ magentaBright: [95, 39],
487
+ cyanBright: [96, 39],
488
+ whiteBright: [97, 39]
489
+ },
490
+ bgColor: {
491
+ bgBlack: [40, 49],
492
+ bgRed: [41, 49],
493
+ bgGreen: [42, 49],
494
+ bgYellow: [43, 49],
495
+ bgBlue: [44, 49],
496
+ bgMagenta: [45, 49],
497
+ bgCyan: [46, 49],
498
+ bgWhite: [47, 49],
499
+ // Bright color
500
+ bgBlackBright: [100, 49],
501
+ bgGray: [100, 49],
502
+ // Alias of `bgBlackBright`
503
+ bgGrey: [100, 49],
504
+ // Alias of `bgBlackBright`
505
+ bgRedBright: [101, 49],
506
+ bgGreenBright: [102, 49],
507
+ bgYellowBright: [103, 49],
508
+ bgBlueBright: [104, 49],
509
+ bgMagentaBright: [105, 49],
510
+ bgCyanBright: [106, 49],
511
+ bgWhiteBright: [107, 49]
512
+ }
513
+ };
514
+ Object.keys(styles.modifier);
515
+ const foregroundColorNames = Object.keys(styles.color);
516
+ const backgroundColorNames = Object.keys(styles.bgColor);
517
+ [...foregroundColorNames, ...backgroundColorNames];
518
+ function assembleStyles() {
519
+ const codes = /* @__PURE__ */ new Map();
520
+ for (const [groupName, group] of Object.entries(styles)) {
521
+ for (const [styleName, style] of Object.entries(group)) {
522
+ styles[styleName] = {
523
+ open: `\x1B[${style[0]}m`,
524
+ close: `\x1B[${style[1]}m`
525
+ };
526
+ group[styleName] = styles[styleName];
527
+ codes.set(style[0], style[1]);
528
+ }
529
+ Object.defineProperty(styles, groupName, {
530
+ value: group,
531
+ enumerable: false
532
+ });
533
+ }
534
+ Object.defineProperty(styles, "codes", {
535
+ value: codes,
536
+ enumerable: false
537
+ });
538
+ styles.color.close = "\x1B[39m";
539
+ styles.bgColor.close = "\x1B[49m";
540
+ styles.color.ansi = wrapAnsi16();
541
+ styles.color.ansi256 = wrapAnsi256();
542
+ styles.color.ansi16m = wrapAnsi16m();
543
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
544
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
545
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
546
+ Object.defineProperties(styles, {
547
+ rgbToAnsi256: {
548
+ value(red, green, blue) {
549
+ if (red === green && green === blue) {
550
+ if (red < 8) {
551
+ return 16;
552
+ }
553
+ if (red > 248) {
554
+ return 231;
555
+ }
556
+ return Math.round((red - 8) / 247 * 24) + 232;
557
+ }
558
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
559
+ },
560
+ enumerable: false
561
+ },
562
+ hexToRgb: {
563
+ value(hex) {
564
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
565
+ if (!matches) {
566
+ return [0, 0, 0];
567
+ }
568
+ let [colorString] = matches;
569
+ if (colorString.length === 3) {
570
+ colorString = [...colorString].map((character) => character + character).join("");
571
+ }
572
+ const integer = Number.parseInt(colorString, 16);
573
+ return [
574
+ /* eslint-disable no-bitwise */
575
+ integer >> 16 & 255,
576
+ integer >> 8 & 255,
577
+ integer & 255
578
+ /* eslint-enable no-bitwise */
579
+ ];
580
+ },
581
+ enumerable: false
582
+ },
583
+ hexToAnsi256: {
584
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
585
+ enumerable: false
586
+ },
587
+ ansi256ToAnsi: {
588
+ value(code) {
589
+ if (code < 8) {
590
+ return 30 + code;
591
+ }
592
+ if (code < 16) {
593
+ return 90 + (code - 8);
594
+ }
595
+ let red;
596
+ let green;
597
+ let blue;
598
+ if (code >= 232) {
599
+ red = ((code - 232) * 10 + 8) / 255;
600
+ green = red;
601
+ blue = red;
602
+ } else {
603
+ code -= 16;
604
+ const remainder = code % 36;
605
+ red = Math.floor(code / 36) / 5;
606
+ green = Math.floor(remainder / 6) / 5;
607
+ blue = remainder % 6 / 5;
608
+ }
609
+ const value = Math.max(red, green, blue) * 2;
610
+ if (value === 0) {
611
+ return 30;
612
+ }
613
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
614
+ if (value === 2) {
615
+ result += 60;
616
+ }
617
+ return result;
618
+ },
619
+ enumerable: false
620
+ },
621
+ rgbToAnsi: {
622
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
623
+ enumerable: false
624
+ },
625
+ hexToAnsi: {
626
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
627
+ enumerable: false
628
+ }
629
+ });
630
+ return styles;
631
+ }
632
+ const ansiStyles = assembleStyles();
633
+ const ESCAPES = /* @__PURE__ */ new Set([
634
+ "\x1B",
635
+ "›"
636
+ ]);
637
+ const END_CODE = 39;
638
+ const ANSI_ESCAPE_BELL = "\x07";
639
+ const ANSI_CSI = "[";
640
+ const ANSI_OSC = "]";
641
+ const ANSI_SGR_TERMINATOR = "m";
642
+ const ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
643
+ const wrapAnsiCode = (code) => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;
644
+ const wrapAnsiHyperlink = (url) => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;
645
+ const wordLengths = (string) => string.split(" ").map((character) => stringWidth(character));
646
+ const wrapWord = (rows, word, columns) => {
647
+ const characters = [...word];
648
+ let isInsideEscape = false;
649
+ let isInsideLinkEscape = false;
650
+ let visible = stringWidth(stripAnsi(rows.at(-1)));
651
+ for (const [index, character] of characters.entries()) {
652
+ const characterLength = stringWidth(character);
653
+ if (visible + characterLength <= columns) {
654
+ rows[rows.length - 1] += character;
655
+ } else {
656
+ rows.push(character);
657
+ visible = 0;
658
+ }
659
+ if (ESCAPES.has(character)) {
660
+ isInsideEscape = true;
661
+ const ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join("");
662
+ isInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;
663
+ }
664
+ if (isInsideEscape) {
665
+ if (isInsideLinkEscape) {
666
+ if (character === ANSI_ESCAPE_BELL) {
667
+ isInsideEscape = false;
668
+ isInsideLinkEscape = false;
669
+ }
670
+ } else if (character === ANSI_SGR_TERMINATOR) {
671
+ isInsideEscape = false;
672
+ }
673
+ continue;
674
+ }
675
+ visible += characterLength;
676
+ if (visible === columns && index < characters.length - 1) {
677
+ rows.push("");
678
+ visible = 0;
679
+ }
680
+ }
681
+ if (!visible && rows.at(-1).length > 0 && rows.length > 1) {
682
+ rows[rows.length - 2] += rows.pop();
683
+ }
684
+ };
685
+ const stringVisibleTrimSpacesRight = (string) => {
686
+ const words = string.split(" ");
687
+ let last = words.length;
688
+ while (last > 0) {
689
+ if (stringWidth(words[last - 1]) > 0) {
690
+ break;
691
+ }
692
+ last--;
693
+ }
694
+ if (last === words.length) {
695
+ return string;
696
+ }
697
+ return words.slice(0, last).join(" ") + words.slice(last).join("");
698
+ };
699
+ const exec = (string, columns, options = {}) => {
700
+ if (options.trim !== false && string.trim() === "") {
701
+ return "";
702
+ }
703
+ let returnValue = "";
704
+ let escapeCode;
705
+ let escapeUrl;
706
+ const lengths = wordLengths(string);
707
+ let rows = [""];
708
+ for (const [index, word] of string.split(" ").entries()) {
709
+ if (options.trim !== false) {
710
+ rows[rows.length - 1] = rows.at(-1).trimStart();
711
+ }
712
+ let rowLength = stringWidth(rows.at(-1));
713
+ if (index !== 0) {
714
+ if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
715
+ rows.push("");
716
+ rowLength = 0;
717
+ }
718
+ if (rowLength > 0 || options.trim === false) {
719
+ rows[rows.length - 1] += " ";
720
+ rowLength++;
721
+ }
722
+ }
723
+ if (options.hard && lengths[index] > columns) {
724
+ const remainingColumns = columns - rowLength;
725
+ const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);
726
+ const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);
727
+ if (breaksStartingNextLine < breaksStartingThisLine) {
728
+ rows.push("");
729
+ }
730
+ wrapWord(rows, word, columns);
731
+ continue;
732
+ }
733
+ if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {
734
+ if (options.wordWrap === false && rowLength < columns) {
735
+ wrapWord(rows, word, columns);
736
+ continue;
737
+ }
738
+ rows.push("");
739
+ }
740
+ if (rowLength + lengths[index] > columns && options.wordWrap === false) {
741
+ wrapWord(rows, word, columns);
742
+ continue;
743
+ }
744
+ rows[rows.length - 1] += word;
745
+ }
746
+ if (options.trim !== false) {
747
+ rows = rows.map((row) => stringVisibleTrimSpacesRight(row));
748
+ }
749
+ const preString = rows.join("\n");
750
+ const pre = [...preString];
751
+ let preStringIndex = 0;
752
+ for (const [index, character] of pre.entries()) {
753
+ returnValue += character;
754
+ if (ESCAPES.has(character)) {
755
+ const { groups } = new RegExp(`(?:\\${ANSI_CSI}(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(preString.slice(preStringIndex)) || { groups: {} };
756
+ if (groups.code !== void 0) {
757
+ const code2 = Number.parseFloat(groups.code);
758
+ escapeCode = code2 === END_CODE ? void 0 : code2;
759
+ } else if (groups.uri !== void 0) {
760
+ escapeUrl = groups.uri.length === 0 ? void 0 : groups.uri;
761
+ }
762
+ }
763
+ const code = ansiStyles.codes.get(Number(escapeCode));
764
+ if (pre[index + 1] === "\n") {
765
+ if (escapeUrl) {
766
+ returnValue += wrapAnsiHyperlink("");
767
+ }
768
+ if (escapeCode && code) {
769
+ returnValue += wrapAnsiCode(code);
770
+ }
771
+ } else if (character === "\n") {
772
+ if (escapeCode && code) {
773
+ returnValue += wrapAnsiCode(escapeCode);
774
+ }
775
+ if (escapeUrl) {
776
+ returnValue += wrapAnsiHyperlink(escapeUrl);
777
+ }
778
+ }
779
+ preStringIndex += character.length;
780
+ }
781
+ return returnValue;
782
+ };
783
+ function wrapAnsi(string, columns, options) {
784
+ return String(string).normalize().replaceAll("\r\n", "\n").split("\n").map((line) => exec(line, columns, options)).join("\n");
785
+ }
786
+ const defaultTerminalHeight = 24;
787
+ const getWidth = ({ columns = 80 }) => columns;
788
+ const fitToTerminalHeight = (stream, text) => {
789
+ const terminalHeight = stream.rows ?? defaultTerminalHeight;
790
+ const lines = text.split("\n");
791
+ const toRemove = Math.max(0, lines.length - terminalHeight);
792
+ return toRemove ? sliceAnsi(text, stripAnsi(lines.slice(0, toRemove).join("\n")).length + 1) : text;
793
+ };
794
+ function createLogUpdate(stream, { showCursor = false } = {}) {
795
+ let previousLineCount = 0;
796
+ let previousWidth = getWidth(stream);
797
+ let previousOutput = "";
798
+ const reset = () => {
799
+ previousOutput = "";
800
+ previousWidth = getWidth(stream);
801
+ previousLineCount = 0;
802
+ };
803
+ const render = (...arguments_) => {
804
+ if (!showCursor) {
805
+ cliCursor.hide();
806
+ }
807
+ let output = fitToTerminalHeight(stream, arguments_.join(" ") + "\n");
808
+ const width = getWidth(stream);
809
+ if (output === previousOutput && previousWidth === width) {
810
+ return;
811
+ }
812
+ previousOutput = output;
813
+ previousWidth = width;
814
+ output = wrapAnsi(output, width, { trim: false, hard: true, wordWrap: false });
815
+ stream.write(eraseLines(previousLineCount) + output);
816
+ previousLineCount = output.split("\n").length;
817
+ };
818
+ render.clear = () => {
819
+ stream.write(eraseLines(previousLineCount));
820
+ reset();
821
+ };
822
+ render.done = () => {
823
+ reset();
824
+ if (!showCursor) {
825
+ cliCursor.show();
826
+ }
827
+ };
828
+ return render;
829
+ }
830
+ createLogUpdate(process$2.stdout);
831
+ createLogUpdate(process$2.stderr);
832
+ export {
833
+ createLogUpdate
834
+ };
835
+ //# sourceMappingURL=index-CqzxeUkd.js.map