@kubb/core 3.5.6 → 3.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-4WJNDG3X.cjs → chunk-BLL6IRIU.cjs} +31 -31
- package/dist/chunk-BLL6IRIU.cjs.map +1 -0
- package/dist/chunk-E2WLQU27.js +8 -8
- package/dist/chunk-E2WLQU27.js.map +1 -1
- package/dist/chunk-O5ASNFB7.js +14 -14
- package/dist/chunk-O5ASNFB7.js.map +1 -1
- package/dist/{chunk-7ZWCCQIK.cjs → chunk-QUYSCEF5.cjs} +4 -4
- package/dist/{chunk-7ZWCCQIK.cjs.map → chunk-QUYSCEF5.cjs.map} +1 -1
- package/dist/{chunk-HOFDXARN.cjs → chunk-UFJUTGAP.cjs} +65 -65
- package/dist/chunk-UFJUTGAP.cjs.map +1 -0
- package/dist/{chunk-BWZNO5B2.cjs → chunk-VZI3Q424.cjs} +20 -20
- package/dist/chunk-VZI3Q424.cjs.map +1 -0
- package/dist/chunk-YYMV5PIX.js +16 -16
- package/dist/chunk-YYMV5PIX.js.map +1 -1
- package/dist/index.cjs +49 -50
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +12 -13
- package/dist/index.js.map +1 -1
- package/dist/logger.cjs +6 -6
- package/dist/mocks.cjs +14 -14
- package/dist/mocks.cjs.map +1 -1
- package/dist/mocks.js +5 -5
- package/dist/mocks.js.map +1 -1
- package/dist/{prompt-PLDPTBBZ.cjs → prompt-PMVNGJYE.cjs} +12 -12
- package/dist/prompt-PMVNGJYE.cjs.map +1 -0
- package/dist/prompt-RQXXVSD5.js +8 -8
- package/dist/prompt-RQXXVSD5.js.map +1 -1
- package/dist/transformers.cjs +22 -22
- package/dist/utils.cjs +17 -17
- package/package.json +9 -9
- package/src/PluginManager.ts +1 -4
- package/src/PromiseManager.ts +0 -4
- package/src/build.ts +1 -1
- package/src/config.ts +1 -1
- package/src/utils/executeStrategies.ts +1 -10
- package/dist/chunk-4WJNDG3X.cjs.map +0 -1
- package/dist/chunk-BWZNO5B2.cjs.map +0 -1
- package/dist/chunk-HOFDXARN.cjs.map +0 -1
- package/dist/prompt-PLDPTBBZ.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js","../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts","../src/utils/uniqueName.ts","../src/utils/URLPath.ts","../src/utils/parser.ts","../src/FileManager.ts","../src/BarrelManager.ts","../src/utils/TreeNode.ts","../../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/index.js","../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs","../../../node_modules/.pnpm/p-timeout@6.1.3/node_modules/p-timeout/index.js","../../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/priority-queue.js","../../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/lower-bound.js"],"names":["__commonJS","init_cjs_shims","EventEmitter","orderBy","camelCase","item","path","isValidVarName","join","getRelativePath","__toESM","trimExtName","write","read","extname","isDeepEqual","name","relative","hash"],"mappings":"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","file":"chunk-HOFDXARN.cjs","sourcesContent":["'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport {\n isPromise,\n isPromiseFulfilledResult,\n isPromiseRejectedResult,\n} from './promise.ts'\nexport { renderTemplate } from './renderTemplate.ts'\nexport { timeout } from './timeout.ts'\nexport { getUniqueName, setUniqueName } from './uniqueName.ts'\nexport type { URLObject } from './URLPath.ts'\nexport { URLPath } from './URLPath.ts'\nexport { getFileParser, createFileImport, createFileExport, createFile, createFileParser } from './parser.ts'\nexport type { ParserModule } from './parser.ts'\n","import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n/**\n * @deprecated\n */\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\n\n/**\n * @deprecated\n */\nexport class FunctionParams {\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor() {\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.#items.push(it))\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(\n items.filter(Boolean),\n [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ],\n ['desc', 'desc'],\n )\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every((item) => item.required) ?? true\n\n items.forEach((item) => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some((item) => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join('; ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = FunctionParams.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n if (item.length <= 0) {\n return acc\n }\n const subItems = FunctionParams.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from '@kubb/types'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n","export function getUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n originalName += used\n }\n data[originalName] = 1\n return originalName\n}\n\nexport function setUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n\n return originalName\n }\n data[originalName] = 1\n return originalName\n}\n","import { camelCase, isValidVarName } from '../transformers'\n\nexport type URLObject = {\n url: string\n params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n type?: 'path' | 'template'\n replacer?: (pathParam: string) => string\n stringify?: boolean\n}\n\ntype Options = {\n casing?: 'camelcase'\n}\n\nexport class URLPath {\n path: string\n #options: Options\n\n constructor(path: string, options: Options = {}) {\n this.path = path\n this.#options = options\n\n return this\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n get URL(): string {\n return this.toURLPath()\n }\n get isURL(): boolean {\n try {\n const url = new URL(this.path)\n if (url?.href) {\n return true\n }\n } catch (error) {\n return false\n }\n return false\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n get template(): string {\n return this.toTemplateString()\n }\n get object(): URLObject | string {\n return this.toObject()\n }\n get params(): Record<string, string> | undefined {\n return this.getParams()\n }\n\n toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n const object = {\n url: type === 'path' ? this.toURLPath() : this.toTemplateString({ replacer }),\n params: this.getParams(),\n }\n\n if (stringify) {\n if (type === 'template') {\n return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n }\n\n if (object.params) {\n return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n }\n\n return `{ url: '${object.url}' }`\n }\n\n return object\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n toTemplateString({ prefix = '', replacer }: { prefix?: string; replacer?: (pathParam: string) => string } = {}): string {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n let newPath = this.path.replaceAll('{', '${')\n\n if (found) {\n newPath = found.reduce((prev, path) => {\n const pathWithoutBrackets = path.replaceAll('{', '').replaceAll('}', '')\n\n let param = isValidVarName(pathWithoutBrackets) ? pathWithoutBrackets : camelCase(pathWithoutBrackets)\n\n if (this.#options.casing === 'camelcase') {\n param = camelCase(param)\n }\n\n return prev.replace(path, `\\${${replacer ? replacer(param) : param}}`)\n }, this.path)\n }\n\n return `\\`${prefix}${newPath}\\``\n }\n\n getParams(replacer?: (pathParam: string) => string): Record<string, string> | undefined {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n\n if (!found) {\n return undefined\n }\n\n const params: Record<string, string> = {}\n found.forEach((item) => {\n item = item.replaceAll('{', '').replaceAll('}', '')\n\n let param = isValidVarName(item) ? item : camelCase(item)\n\n if (this.#options.casing === 'camelcase') {\n param = camelCase(param)\n }\n\n const key = replacer ? replacer(param) : param\n\n params[key] = key\n }, this.path)\n\n return params\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n toURLPath(): string {\n return this.path.replaceAll('{', ':').replaceAll('}', '')\n }\n}\n","import path from 'node:path'\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport { getRelativePath } from '@kubb/fs'\nimport hash from 'object-hash'\nimport { combineExports, combineImports, combineSources } from '../FileManager.ts'\nimport type { Logger } from '../logger.ts'\n\n/**\n * Helper to create a file with name and id set\n */\nexport function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta> {\n const extname = path.extname(file.baseName) as KubbFile.Extname\n\n if (!extname) {\n throw new Error(`No extname found for ${file.baseName}`)\n }\n\n const source = file.sources.map((item) => item.value).join('\\n\\n')\n const exports = file.exports ? combineExports(file.exports) : []\n const imports = file.imports && source ? combineImports(file.imports, exports, source) : []\n const sources = file.sources ? combineSources(file.sources) : []\n\n return {\n ...file,\n id: hash({ path: file.path }),\n name: trimExtName(file.baseName),\n extname,\n imports: imports.map((item) => createFileImport(item)),\n exports: exports.map((item) => createFileExport(item)),\n sources: sources.map((item) => createFileSource(item)),\n meta: file.meta || ({} as TMeta),\n }\n}\n\n/**\n * Helper to create a fileImport with extname set\n */\nfunction createFileSource(source: KubbFile.Source): KubbFile.Source {\n return source\n}\n\n/**\n * Helper to create a fileImport with extname set\n */\nexport function createFileImport(imp: KubbFile.Import): KubbFile.ResolvedImport {\n return {\n ...imp,\n }\n}\n\n/**\n * Helper to create a fileExport with extname set\n */\nexport function createFileExport(exp: KubbFile.Export): KubbFile.ResolvedExport {\n return {\n ...exp,\n }\n}\n\nexport type ParserModule<TMeta extends object = object> = {\n format: (source: string) => Promise<string>\n /**\n * Convert a file to string\n */\n print: (file: KubbFile.ResolvedFile<TMeta>, options: PrintOptions) => Promise<string>\n}\n\nexport function createFileParser<TMeta extends object = object>(parser: ParserModule<TMeta>): ParserModule<TMeta> {\n return parser\n}\n\ntype PrintOptions = {\n extname?: KubbFile.Extname\n logger?: Logger\n}\n\nconst typeScriptParser = createFileParser({\n async format(source) {\n const module = await import('@kubb/parser-ts')\n\n return module.format(source)\n },\n async print(file, options = { extname: '.ts' }) {\n const module = await import('@kubb/parser-ts')\n\n const source = file.sources.map((item) => item.value).join('\\n\\n')\n\n const importNodes = file.imports\n .map((item) => {\n const importPath = item.root ? getRelativePath(item.root, item.path) : item.path\n const hasExtname = !!path.extname(importPath)\n\n return module.factory.createImportDeclaration({\n name: item.name,\n path: options.extname && hasExtname ? `${trimExtName(importPath)}${options.extname}` : item.root ? trimExtName(importPath) : importPath,\n isTypeOnly: item.isTypeOnly,\n })\n })\n .filter(Boolean)\n\n const exportNodes = file.exports\n .map((item) => {\n const exportPath = item.path\n\n const hasExtname = !!path.extname(exportPath)\n\n return module.factory.createExportDeclaration({\n name: item.name,\n path: options.extname && hasExtname ? `${trimExtName(item.path)}${options.extname}` : trimExtName(item.path),\n isTypeOnly: item.isTypeOnly,\n asAlias: item.asAlias,\n })\n })\n .filter(Boolean)\n\n return [file.banner, module.print([...importNodes, ...exportNodes]), source, file.footer].join('\\n')\n },\n})\n\nconst tsxParser = createFileParser({\n async format(source) {\n const module = await import('@kubb/parser-ts')\n //4 = tsx\n return module.format(source)\n },\n async print(file, options = { extname: '.tsx' }) {\n return typeScriptParser.print(file, options)\n },\n})\n\nconst defaultParser = createFileParser({\n async format(source) {\n return source\n },\n async print(file) {\n return file.sources.map((item) => item.value).join('\\n\\n')\n },\n})\n\nconst parsers: Record<KubbFile.Extname, ParserModule<any>> = {\n '.ts': typeScriptParser,\n '.js': typeScriptParser,\n '.jsx': tsxParser,\n '.tsx': tsxParser,\n '.json': defaultParser,\n}\n\nexport async function getFileParser<TMeta extends object = object>(extname: KubbFile.Extname | undefined): Promise<ParserModule<TMeta>> {\n if (!extname) {\n return defaultParser\n }\n\n const parser = parsers[extname]\n\n if (!parser) {\n console.warn(`[parser] No parser found for ${extname}, default parser will be used`)\n }\n\n return parser || defaultParser\n}\n\nfunction trimExtName(text: string): string {\n const extname = text.split('.').pop()\n\n return text.replace(`.${extname}`, '')\n}\n","import { extname, join, relative } from 'node:path'\n\nimport { orderBy } from 'natural-orderby'\nimport { isDeepEqual } from 'remeda'\n\nimport { read, write } from '@kubb/fs'\nimport { BarrelManager } from './BarrelManager.ts'\n\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport { trimExtName } from '@kubb/fs'\nimport type { ResolvedFile } from '@kubb/fs/types'\nimport type { GreaterThan } from '@kubb/types'\nimport PQueue from 'p-queue'\nimport type { Logger } from './logger.ts'\nimport type { BarrelType, Config, Plugin } from './types.ts'\nimport { createFile, getFileParser } from './utils'\nimport { type DirectoryTree, TreeNode, buildDirectoryTree } from './utils/TreeNode.ts'\n\nexport type FileMetaBase = {\n pluginKey?: Plugin['key']\n}\n\ntype AddResult<T extends Array<KubbFile.File>> = Promise<Awaited<GreaterThan<T['length'], 1> extends true ? Promise<ResolvedFile[]> : Promise<ResolvedFile>>>\n\ntype AddIndexesProps = {\n type: BarrelType | false | undefined\n /**\n * Root based on root and output.path specified in the config\n */\n root: string\n files: KubbFile.File[]\n /**\n * Output for plugin\n */\n output: {\n path: string\n }\n group?: {\n output: string\n exportAs: string\n }\n logger?: Logger\n\n meta?: FileMetaBase\n}\n\nexport class FileManager {\n #filesByPath: Map<KubbFile.Path, KubbFile.ResolvedFile> = new Map()\n constructor() {\n return this\n }\n\n get files(): Array<KubbFile.ResolvedFile> {\n return [...this.#filesByPath.values()]\n }\n\n get orderedFiles(): Array<KubbFile.ResolvedFile> {\n return orderBy(\n [...this.#filesByPath.values()],\n [\n (v) => v?.meta && 'pluginKey' in v.meta && !v.meta.pluginKey,\n (v) => v.path.length,\n (v) => trimExtName(v.path).endsWith('index'),\n (v) => trimExtName(v.baseName),\n (v) => v.path.split('.').pop(),\n ],\n )\n }\n\n get groupedFiles(): DirectoryTree | null {\n return buildDirectoryTree([...this.#filesByPath.values()])\n }\n\n get treeNode(): TreeNode | null {\n return TreeNode.build([...this.#filesByPath.values()])\n }\n\n async add<T extends Array<KubbFile.File> = Array<KubbFile.File>>(...files: T): AddResult<T> {\n const promises = files.map((file) => {\n if (file.override) {\n return this.#add(file)\n }\n\n return this.#addOrAppend(file)\n })\n\n const resolvedFiles = await Promise.all(promises)\n\n if (files.length > 1) {\n return resolvedFiles as unknown as AddResult<T>\n }\n\n return resolvedFiles[0] as unknown as AddResult<T>\n }\n\n async #add(file: KubbFile.File): Promise<ResolvedFile> {\n const resolvedFile = createFile(file)\n\n this.#filesByPath.set(resolvedFile.path, resolvedFile)\n\n return resolvedFile\n }\n\n clear() {\n this.#filesByPath.clear()\n }\n\n async #addOrAppend(file: KubbFile.File): Promise<ResolvedFile> {\n const previousFile = this.#filesByPath.get(file.path)\n\n if (previousFile) {\n this.#filesByPath.delete(previousFile.path)\n\n return this.#add(mergeFile(previousFile, file))\n }\n return this.#add(file)\n }\n\n getCacheById(id: string): KubbFile.File | undefined {\n return [...this.#filesByPath.values()].find((file) => file.id === id)\n }\n\n getByPath(path: KubbFile.Path): KubbFile.ResolvedFile | undefined {\n return this.#filesByPath.get(path)\n }\n\n deleteByPath(path: KubbFile.Path): void {\n const cacheItem = this.getByPath(path)\n if (!cacheItem) {\n return\n }\n\n this.#filesByPath.delete(path)\n }\n\n async getBarrelFiles({ type, files, meta = {}, root, output, logger }: AddIndexesProps): Promise<KubbFile.File[]> {\n if (!type || type === 'propagate') {\n return []\n }\n\n const barrelManager = new BarrelManager({ logger })\n\n const pathToBuildFrom = join(root, output.path)\n\n if (trimExtName(pathToBuildFrom).endsWith('index')) {\n logger?.emit('warning', 'Output has the same fileName as the barrelFiles, please disable barrel generation')\n\n return []\n }\n\n const barrelFiles = barrelManager.getFiles({ files, root: pathToBuildFrom, meta })\n\n if (type === 'all') {\n return barrelFiles.map((file) => {\n return {\n ...file,\n exports: file.exports?.map((exportItem) => {\n return {\n ...exportItem,\n name: undefined,\n }\n }),\n }\n })\n }\n\n return barrelFiles.map((indexFile) => {\n return {\n ...indexFile,\n meta,\n }\n })\n }\n\n async write(...params: Parameters<typeof write>): ReturnType<typeof write> {\n return write(...params)\n }\n\n async read(...params: Parameters<typeof read>): ReturnType<typeof read> {\n return read(...params)\n }\n\n // statics\n static getMode(path: string | undefined | null): KubbFile.Mode {\n if (!path) {\n return 'split'\n }\n return extname(path) ? 'single' : 'split'\n }\n}\n\ntype GetSourceOptions = {\n extname?: KubbFile.Extname\n logger?: Logger\n}\n\nexport async function getSource<TMeta extends FileMetaBase = FileMetaBase>(\n file: ResolvedFile<TMeta>,\n { logger, extname }: GetSourceOptions = {},\n): Promise<string> {\n const parser = await getFileParser(file.extname)\n const source = await parser.print(file, { logger, extname })\n\n return parser.format(source).catch((err) => {\n console.warn(err)\n return source\n })\n}\n\nfunction mergeFile<TMeta extends FileMetaBase = FileMetaBase>(a: KubbFile.File<TMeta>, b: KubbFile.File<TMeta>): KubbFile.File<TMeta> {\n return {\n ...a,\n sources: [...(a.sources || []), ...(b.sources || [])],\n imports: [...(a.imports || []), ...(b.imports || [])],\n exports: [...(a.exports || []), ...(b.exports || [])],\n }\n}\n\nexport function combineSources(sources: Array<KubbFile.Source>): Array<KubbFile.Source> {\n return sources.reduce(\n (prev, curr) => {\n const prevByName = prev.findLast((imp) => imp.name && imp.name === curr.name)\n const prevByPathAndIsExportable = prev.findLast((imp) => imp.name === curr.name && imp.isExportable)\n\n if (prevByPathAndIsExportable) {\n // we already have an export that has the same name but uses `isExportable` (export type ...)\n return [...prev, curr]\n }\n\n if (prevByName) {\n prevByName.value = curr.value\n prevByName.isExportable = curr.isExportable\n prevByName.isTypeOnly = curr.isTypeOnly\n prevByName.isIndexable = curr.isIndexable\n\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Source>,\n )\n}\n\nexport function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {\n return orderBy(exports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n const name = curr.name\n const prevByPath = prev.findLast((imp) => imp.path === curr.path)\n const prevByPathAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (export type ...)\n return prev\n }\n\n const uniquePrev = prev.findLast(\n (imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias,\n )\n\n // we already have an item that was unique enough or name field is empty or prev asAlias is set but current has no changes\n if (uniquePrev || (Array.isArray(name) && !name.length) || (prevByPath?.asAlias && !curr.asAlias)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name: Array.isArray(name) ? [...new Set(name)] : name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])]\n\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Export>,\n )\n}\n\nexport function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {\n return orderBy(imports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name\n\n const hasImportInSource = (importName: string) => {\n if (!source) {\n return true\n }\n\n const checker = (name?: string) => {\n return name && !!source.includes(name)\n }\n\n return checker(importName) || exports.some(({ name }) => (Array.isArray(name) ? name.some(checker) : checker(name)))\n }\n\n if (curr.path === curr.root) {\n // root and path are the same file, remove the \"./\" import\n return prev\n }\n\n // merge all names and check if the importName is being used in the generated source and if not filter those imports out\n if (Array.isArray(name)) {\n name = name.filter((item) => (typeof item === 'string' ? hasImportInSource(item) : hasImportInSource(item.propertyName)))\n }\n\n const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly)\n const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly)\n const prevByPathNameAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathNameAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (import type ...)\n return prev\n }\n\n // already unique enough or name is empty\n if (uniquePrev || (Array.isArray(name) && !name.length)) {\n return prev\n }\n\n // new item, append name\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...name])]\n\n return prev\n }\n\n // no import was found in the source, ignore import\n if (!Array.isArray(name) && name && !hasImportInSource(name)) {\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Import>,\n )\n}\n\ntype WriteFilesProps = {\n root: Config['root']\n files: Array<KubbFile.ResolvedFile>\n extension?: Record<KubbFile.Extname, KubbFile.Extname | ''>\n logger?: Logger\n dryRun?: boolean\n}\n/**\n * Global queue\n */\nconst queue = new PQueue({ concurrency: 100 })\n\nexport async function processFiles({ dryRun, root, extension, logger, files }: WriteFilesProps) {\n const orderedFiles = orderBy(files, [\n (v) => v?.meta && 'pluginKey' in v.meta && !v.meta.pluginKey,\n (v) => v.path.length,\n (v) => trimExtName(v.path).endsWith('index'),\n ])\n\n logger?.emit('debug', {\n date: new Date(),\n logs: [JSON.stringify({ files: orderedFiles }, null, 2)],\n fileName: 'kubb-files.log',\n })\n\n if (!dryRun) {\n const size = orderedFiles.length\n\n logger?.emit('progress_start', { id: 'files', size, message: 'Writing files ...' })\n const promises = orderedFiles.map(async (file) => {\n await queue.add(async () => {\n const message = file ? `Writing ${relative(root, file.path)}` : ''\n const extname = extension?.[file.extname] || undefined\n\n const source = await getSource(file, { logger, extname })\n\n await write(file.path, source, { sanity: false })\n\n logger?.emit('progressed', { id: 'files', message })\n })\n })\n\n await Promise.all(promises)\n\n logger?.emit('progress_stop', { id: 'files' })\n }\n\n return files\n}\n","import { join } from 'node:path'\n\nimport { TreeNode } from './utils/TreeNode.ts'\n\nimport { getRelativePath } from '@kubb/fs'\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { FileMetaBase } from './FileManager.ts'\nimport type { Logger } from './logger.ts'\n\ntype BarrelManagerOptions = {\n logger?: Logger\n}\n\nexport class BarrelManager {\n #options: BarrelManagerOptions\n\n constructor(options: BarrelManagerOptions = {}) {\n this.#options = options\n\n return this\n }\n\n getFiles({ files: generatedFiles, root, meta }: { files: KubbFile.File[]; root?: string; meta?: FileMetaBase | undefined }): Array<KubbFile.File> {\n const { logger } = this.#options\n\n const cachedFiles = new Map<KubbFile.Path, KubbFile.File>()\n\n logger?.emit('debug', { date: new Date(), logs: [`Start barrel generation for pluginKey ${meta?.pluginKey?.join('.')} and root '${root}'`] })\n\n TreeNode.build(generatedFiles, root)?.forEach((treeNode) => {\n if (!treeNode || !treeNode.children || !treeNode.parent?.data.path) {\n return undefined\n }\n\n const barrelFile: KubbFile.File = {\n path: join(treeNode.parent?.data.path, 'index.ts') as KubbFile.Path,\n baseName: 'index.ts',\n exports: [],\n sources: [],\n }\n const previousBarrelFile = cachedFiles.get(barrelFile.path)\n const leaves = treeNode.leaves\n\n leaves.forEach((item) => {\n if (!item.data.name) {\n return undefined\n }\n\n const sources = item.data.file?.sources || []\n\n if (!sources.some((source) => source.isIndexable)) {\n logger?.emit(\n 'warning',\n `No isIndexable source found(source should have a name and isIndexable):\\nFile: ${JSON.stringify(item.data.file, undefined, 2)}`,\n )\n }\n\n sources.forEach((source) => {\n if (!item.data.file?.path || !source.isIndexable || !source.name) {\n return undefined\n }\n const alreadyContainInPreviousBarrelFile = previousBarrelFile?.sources.some((item) => item.name === source.name)\n\n if (alreadyContainInPreviousBarrelFile) {\n return undefined\n }\n\n if (!barrelFile.exports) {\n barrelFile.exports = []\n }\n\n // true when we have a subdirectory that also contains barrel files\n const isSubExport = !!treeNode.parent?.data.path?.split?.('/')?.length\n\n if (isSubExport) {\n barrelFile.exports.push({\n name: [source.name],\n path: getRelativePath(treeNode.parent?.data.path, item.data.path),\n isTypeOnly: source.isTypeOnly,\n })\n } else {\n barrelFile.exports.push({\n name: [source.name],\n path: `./${item.data.file.baseName}`,\n isTypeOnly: source.isTypeOnly,\n })\n }\n\n barrelFile.sources.push({\n name: source.name,\n isTypeOnly: source.isTypeOnly,\n //TODO use parser to generate import\n value: '',\n isExportable: false,\n isIndexable: false,\n })\n })\n })\n\n logger?.emit('debug', {\n date: new Date(),\n logs: [\n `Generating barrelFile '${getRelativePath(root, barrelFile.path)}' for '${getRelativePath(root, treeNode.data?.path)}' with ${barrelFile.sources.length} indexable exports: '${barrelFile.sources?.map((source) => source.name).join(', ')}'`,\n ],\n })\n\n logger?.emit('debug', {\n date: new Date(),\n logs: [\n `Generated barrelFile '${getRelativePath(root, barrelFile.path)}' for '${getRelativePath(root, treeNode.data?.path)}' with exports: '${cachedFiles\n .get(barrelFile.path)\n ?.sources?.map((source) => source.name)\n .join(', ')}'`,\n ],\n })\n\n if (previousBarrelFile) {\n previousBarrelFile.sources.push(...barrelFile.sources)\n previousBarrelFile.exports?.push(...(barrelFile.exports || []))\n } else {\n cachedFiles.set(barrelFile.path, barrelFile)\n }\n })\n\n return [...cachedFiles.values()]\n }\n}\n","import type * as KubbFile from '@kubb/fs/types'\nimport { FileManager } from '../FileManager.ts'\n\ntype BarrelData = {\n file?: KubbFile.File\n /**\n * @deprecated use file instead\n */\n type: KubbFile.Mode\n path: string\n name: string\n}\n\nexport class TreeNode {\n data: BarrelData\n parent?: TreeNode\n children: Array<TreeNode> = []\n #cachedLeaves?: Array<TreeNode> = undefined\n\n constructor(data: BarrelData, parent?: TreeNode) {\n this.data = data\n this.parent = parent\n return this\n }\n\n addChild(data: BarrelData): TreeNode {\n const child = new TreeNode(data, this)\n if (!this.children) {\n this.children = []\n }\n this.children.push(child)\n return child\n }\n\n get root(): TreeNode {\n if (!this.parent) {\n return this\n }\n return this.parent.root\n }\n\n get leaves(): Array<TreeNode> {\n if (!this.children || this.children.length === 0) {\n // this is a leaf\n return [this]\n }\n\n if (this.#cachedLeaves) {\n return this.#cachedLeaves\n }\n\n // if not a leaf, return all children's leaves recursively\n const leaves: TreeNode[] = []\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n leaves.push.apply(leaves, this.children[i]!.leaves)\n }\n }\n\n this.#cachedLeaves = leaves\n\n return leaves\n }\n\n forEach(callback: (treeNode: TreeNode) => void): this {\n if (typeof callback !== 'function') {\n throw new TypeError('forEach() callback must be a function')\n }\n\n // run this node through function\n callback(this)\n\n // do the same for all children\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n this.children[i]?.forEach(callback)\n }\n }\n\n return this\n }\n\n findDeep(predicate?: (value: TreeNode, index: number, obj: TreeNode[]) => boolean): TreeNode | undefined {\n if (typeof predicate !== 'function') {\n throw new TypeError('find() predicate must be a function')\n }\n\n return this.leaves.find(predicate)\n }\n\n forEachDeep(callback: (treeNode: TreeNode) => void): void {\n if (typeof callback !== 'function') {\n throw new TypeError('forEach() callback must be a function')\n }\n\n this.leaves.forEach(callback)\n }\n\n filterDeep(callback: (treeNode: TreeNode) => boolean): Array<TreeNode> {\n if (typeof callback !== 'function') {\n throw new TypeError('filter() callback must be a function')\n }\n\n return this.leaves.filter(callback)\n }\n\n mapDeep<T>(callback: (treeNode: TreeNode) => T): Array<T> {\n if (typeof callback !== 'function') {\n throw new TypeError('map() callback must be a function')\n }\n\n return this.leaves.map(callback)\n }\n\n public static build(files: KubbFile.File[], root?: string): TreeNode | null {\n try {\n const filteredTree = buildDirectoryTree(files, root)\n\n if (!filteredTree) {\n return null\n }\n\n const treeNode = new TreeNode({\n name: filteredTree.name,\n path: filteredTree.path,\n file: filteredTree.file,\n type: FileManager.getMode(filteredTree.path),\n })\n\n const recurse = (node: typeof treeNode, item: DirectoryTree) => {\n const subNode = node.addChild({\n name: item.name,\n path: item.path,\n file: item.file,\n type: FileManager.getMode(item.path),\n })\n\n if (item.children?.length) {\n item.children?.forEach((child) => {\n recurse(subNode, child)\n })\n }\n }\n\n filteredTree.children?.forEach((child) => recurse(treeNode, child))\n\n return treeNode\n } catch (e) {\n throw new Error('Something went wrong with creating barrel files with the TreeNode class', { cause: e })\n }\n }\n}\n\nexport type DirectoryTree = {\n name: string\n path: string\n file?: KubbFile.File\n children: Array<DirectoryTree>\n}\n\nexport function buildDirectoryTree(files: Array<KubbFile.File>, rootFolder = ''): DirectoryTree | null {\n const rootPrefix = rootFolder.endsWith('/') ? rootFolder : `${rootFolder}/`\n const filteredFiles = files.filter((file) => (rootFolder ? file.path.startsWith(rootPrefix) && !file.path.endsWith('.json') : !file.path.endsWith('.json')))\n\n if (filteredFiles.length === 0) {\n return null // No files match the root folder\n }\n\n const root: DirectoryTree = {\n name: rootFolder || '',\n path: rootFolder || '',\n children: [],\n }\n\n filteredFiles.forEach((file) => {\n const path = file.path.slice(rootFolder.length)\n const parts = path.split('/')\n let currentLevel: DirectoryTree[] = root.children\n let currentPath = rootFolder\n\n parts.forEach((part, index) => {\n if (index !== 0) {\n currentPath += `/${part}`\n } else {\n currentPath += `${part}`\n }\n\n let existingNode = currentLevel.find((node) => node.name === part)\n\n if (!existingNode) {\n if (index === parts.length - 1) {\n // If it's the last part, it's a file\n existingNode = {\n name: part,\n file,\n path: currentPath,\n } as DirectoryTree\n } else {\n // Otherwise, it's a folder\n existingNode = {\n name: part,\n path: currentPath,\n children: [],\n } as DirectoryTree\n }\n currentLevel.push(existingNode)\n }\n\n // Move to the next level if it's a folder\n if (!existingNode.file) {\n currentLevel = existingNode.children\n }\n })\n })\n\n return root\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverConcurrencyCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #interval;\n #intervalEnd = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n #throwOnTimeout;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n /**\n Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n Applies to each future operation.\n */\n timeout;\n // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverConcurrencyCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this.timeout = options.timeout;\n this.#throwOnTimeout = options.throwOnTimeout === true;\n this.#isPaused = options.autoStart === false;\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n if (this.#timeoutId === undefined) {\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n }\n this.#intervalId = undefined;\n this.emit('empty');\n if (this.#pending === 0) {\n this.emit('idle');\n }\n return false;\n }\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n this.#processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n async #throwOnAbort(signal) {\n return new Promise((_resolve, reject) => {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n }, { once: true });\n });\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // In case `id` is not defined.\n options.id ??= (this.#idAssigner++).toString();\n options = {\n timeout: this.timeout,\n throwOnTimeout: this.#throwOnTimeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n this.#queue.enqueue(async () => {\n this.#pending++;\n this.#intervalCount++;\n try {\n options.signal?.throwIfAborted();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n }\n if (options.signal) {\n operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n if (error instanceof TimeoutError && !options.throwOnTimeout) {\n resolve();\n return;\n }\n reject(error);\n this.emit('error', error);\n }\n finally {\n this.#next();\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n}\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tconst abortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\n\t\t\tpromise.finally(() => {\n\t\t\t\tsignal.removeEventListener('abort', abortHandler);\n\t\t\t});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n options = {\n priority: 0,\n ...options,\n };\n const element = {\n priority: options.priority,\n id: options.id,\n run,\n };\n if (this.size === 0 || this.#queue[this.size - 1].priority >= options.priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n const index = this.#queue.findIndex((element) => element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/consola@3.4.0/node_modules/consola/dist/chunks/prompt.mjs"],"names":["init_cjs_shims","x","y","p","f","u","e","E","a","B","stdin","stdout","WriteStream","r","c","d","w","I"],"mappings":"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AAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,GAAK,IAAA,CAAA,IAAG,KAAG,GAAK,IAAA,GAAA,IAAK,KAAG,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,GAAA,IAAK,KAAG,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,GAAK,IAAA,CAAA,IAAG,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,GAAK,IAAA,CAAA,IAAG,KAAG,GAAK,IAAA,GAAA,IAAK,KAAG,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,GAAK,IAAA,CAAA,IAAG,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,GAAK,IAAA,CAAA,IAAG,KAAG,GAAK,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,CAAG,IAAA,GAAA,IAAK,KAAG,GAAK,IAAA,GAAA,IAAK,CAAG,IAAA,CAAA,IAAG,OAAK,GAAK,IAAA,CAAA,IAAG,KAAG,GAAK,IAAA,GAAA,IAAK,KAAG,CAAG,IAAA,GAAA,IAAK,OAAK,CAAG,IAAA,CAAA,IAAG,OAAK,GAAK,IAAA,CAAA,IAAG,KAAG,GAAK,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,CAAG,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,IAAA,IAAM,KAAG,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,KAAG,IAAM,IAAA,CAAA,IAAG,QAAM,CAAG,IAAA,IAAA,IAAM,QAAM,CAAG,IAAA,CAAA,IAAG,QAAM,IAAM,IAAA,CAAA,IAAG,KAAG,IAAM,IAAA,IAAA,IAAM,K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","file":"prompt-PLDPTBBZ.cjs","sourcesContent":["import 'node:util';\nimport p, { stdin, stdout } from 'node:process';\nimport f from 'node:readline';\nimport { WriteStream } from 'node:tty';\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar src;\nvar hasRequiredSrc;\n\nfunction requireSrc () {\n\tif (hasRequiredSrc) return src;\n\thasRequiredSrc = 1;\n\n\tconst ESC = '\\x1B';\n\tconst CSI = `${ESC}[`;\n\tconst beep = '\\u0007';\n\n\tconst cursor = {\n\t to(x, y) {\n\t if (!y) return `${CSI}${x + 1}G`;\n\t return `${CSI}${y + 1};${x + 1}H`;\n\t },\n\t move(x, y) {\n\t let ret = '';\n\n\t if (x < 0) ret += `${CSI}${-x}D`;\n\t else if (x > 0) ret += `${CSI}${x}C`;\n\n\t if (y < 0) ret += `${CSI}${-y}A`;\n\t else if (y > 0) ret += `${CSI}${y}B`;\n\n\t return ret;\n\t },\n\t up: (count = 1) => `${CSI}${count}A`,\n\t down: (count = 1) => `${CSI}${count}B`,\n\t forward: (count = 1) => `${CSI}${count}C`,\n\t backward: (count = 1) => `${CSI}${count}D`,\n\t nextLine: (count = 1) => `${CSI}E`.repeat(count),\n\t prevLine: (count = 1) => `${CSI}F`.repeat(count),\n\t left: `${CSI}G`,\n\t hide: `${CSI}?25l`,\n\t show: `${CSI}?25h`,\n\t save: `${ESC}7`,\n\t restore: `${ESC}8`\n\t};\n\n\tconst scroll = {\n\t up: (count = 1) => `${CSI}S`.repeat(count),\n\t down: (count = 1) => `${CSI}T`.repeat(count)\n\t};\n\n\tconst erase = {\n\t screen: `${CSI}2J`,\n\t up: (count = 1) => `${CSI}1J`.repeat(count),\n\t down: (count = 1) => `${CSI}J`.repeat(count),\n\t line: `${CSI}2K`,\n\t lineEnd: `${CSI}K`,\n\t lineStart: `${CSI}1K`,\n\t lines(count) {\n\t let clear = '';\n\t for (let i = 0; i < count; i++)\n\t clear += this.line + (i < count - 1 ? cursor.up() : '');\n\t if (count)\n\t clear += cursor.left;\n\t return clear;\n\t }\n\t};\n\n\tsrc = { cursor, scroll, erase, beep };\n\treturn src;\n}\n\nvar srcExports = requireSrc();\n\nvar picocolors = {exports: {}};\n\nvar hasRequiredPicocolors;\n\nfunction requirePicocolors () {\n\tif (hasRequiredPicocolors) return picocolors.exports;\n\thasRequiredPicocolors = 1;\n\tlet p = process || {}, argv = p.argv || [], env = p.env || {};\n\tlet isColorSupported =\n\t\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI);\n\n\tlet formatter = (open, close, replace = open) =>\n\t\tinput => {\n\t\t\tlet string = \"\" + input, index = string.indexOf(close, open.length);\n\t\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t\t};\n\n\tlet replaceClose = (string, close, replace, index) => {\n\t\tlet result = \"\", cursor = 0;\n\t\tdo {\n\t\t\tresult += string.substring(cursor, index) + replace;\n\t\t\tcursor = index + close.length;\n\t\t\tindex = string.indexOf(close, cursor);\n\t\t} while (~index)\n\t\treturn result + string.substring(cursor)\n\t};\n\n\tlet createColors = (enabled = isColorSupported) => {\n\t\tlet f = enabled ? formatter : () => String;\n\t\treturn {\n\t\t\tisColorSupported: enabled,\n\t\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t\t}\n\t};\n\n\tpicocolors.exports = createColors();\n\tpicocolors.exports.createColors = createColors;\n\treturn picocolors.exports;\n}\n\nvar picocolorsExports = /*@__PURE__*/ requirePicocolors();\nconst e = /*@__PURE__*/getDefaultExportFromCjs(picocolorsExports);\n\nfunction J({onlyFirst:t=false}={}){const F=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C))\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"].join(\"|\");return new RegExp(F,t?undefined:\"g\")}const Q=J();function T(t){if(typeof t!=\"string\")throw new TypeError(`Expected a \\`string\\`, got \\`${typeof t}\\``);return t.replace(Q,\"\")}function O(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var P={exports:{}};(function(t){var u={};t.exports=u,u.eastAsianWidth=function(e){var s=e.charCodeAt(0),i=e.length==2?e.charCodeAt(1):0,D=s;return 55296<=s&&s<=56319&&56320<=i&&i<=57343&&(s&=1023,i&=1023,D=s<<10|i,D+=65536),D==12288||65281<=D&&D<=65376||65504<=D&&D<=65510?\"F\":D==8361||65377<=D&&D<=65470||65474<=D&&D<=65479||65482<=D&&D<=65487||65490<=D&&D<=65495||65498<=D&&D<=65500||65512<=D&&D<=65518?\"H\":4352<=D&&D<=4447||4515<=D&&D<=4519||4602<=D&&D<=4607||9001<=D&&D<=9002||11904<=D&&D<=11929||11931<=D&&D<=12019||12032<=D&&D<=12245||12272<=D&&D<=12283||12289<=D&&D<=12350||12353<=D&&D<=12438||12441<=D&&D<=12543||12549<=D&&D<=12589||12593<=D&&D<=12686||12688<=D&&D<=12730||12736<=D&&D<=12771||12784<=D&&D<=12830||12832<=D&&D<=12871||12880<=D&&D<=13054||13056<=D&&D<=19903||19968<=D&&D<=42124||42128<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||55216<=D&&D<=55238||55243<=D&&D<=55291||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65106||65108<=D&&D<=65126||65128<=D&&D<=65131||110592<=D&&D<=110593||127488<=D&&D<=127490||127504<=D&&D<=127546||127552<=D&&D<=127560||127568<=D&&D<=127569||131072<=D&&D<=194367||177984<=D&&D<=196605||196608<=D&&D<=262141?\"W\":32<=D&&D<=126||162<=D&&D<=163||165<=D&&D<=166||D==172||D==175||10214<=D&&D<=10221||10629<=D&&D<=10630?\"Na\":D==161||D==164||167<=D&&D<=168||D==170||173<=D&&D<=174||176<=D&&D<=180||182<=D&&D<=186||188<=D&&D<=191||D==198||D==208||215<=D&&D<=216||222<=D&&D<=225||D==230||232<=D&&D<=234||236<=D&&D<=237||D==240||242<=D&&D<=243||247<=D&&D<=250||D==252||D==254||D==257||D==273||D==275||D==283||294<=D&&D<=295||D==299||305<=D&&D<=307||D==312||319<=D&&D<=322||D==324||328<=D&&D<=331||D==333||338<=D&&D<=339||358<=D&&D<=359||D==363||D==462||D==464||D==466||D==468||D==470||D==472||D==474||D==476||D==593||D==609||D==708||D==711||713<=D&&D<=715||D==717||D==720||728<=D&&D<=731||D==733||D==735||768<=D&&D<=879||913<=D&&D<=929||931<=D&&D<=937||945<=D&&D<=961||963<=D&&D<=969||D==1025||1040<=D&&D<=1103||D==1105||D==8208||8211<=D&&D<=8214||8216<=D&&D<=8217||8220<=D&&D<=8221||8224<=D&&D<=8226||8228<=D&&D<=8231||D==8240||8242<=D&&D<=8243||D==8245||D==8251||D==8254||D==8308||D==8319||8321<=D&&D<=8324||D==8364||D==8451||D==8453||D==8457||D==8467||D==8470||8481<=D&&D<=8482||D==8486||D==8491||8531<=D&&D<=8532||8539<=D&&D<=8542||8544<=D&&D<=8555||8560<=D&&D<=8569||D==8585||8592<=D&&D<=8601||8632<=D&&D<=8633||D==8658||D==8660||D==8679||D==8704||8706<=D&&D<=8707||8711<=D&&D<=8712||D==8715||D==8719||D==8721||D==8725||D==8730||8733<=D&&D<=8736||D==8739||D==8741||8743<=D&&D<=8748||D==8750||8756<=D&&D<=8759||8764<=D&&D<=8765||D==8776||D==8780||D==8786||8800<=D&&D<=8801||8804<=D&&D<=8807||8810<=D&&D<=8811||8814<=D&&D<=8815||8834<=D&&D<=8835||8838<=D&&D<=8839||D==8853||D==8857||D==8869||D==8895||D==8978||9312<=D&&D<=9449||9451<=D&&D<=9547||9552<=D&&D<=9587||9600<=D&&D<=9615||9618<=D&&D<=9621||9632<=D&&D<=9633||9635<=D&&D<=9641||9650<=D&&D<=9651||9654<=D&&D<=9655||9660<=D&&D<=9661||9664<=D&&D<=9665||9670<=D&&D<=9672||D==9675||9678<=D&&D<=9681||9698<=D&&D<=9701||D==9711||9733<=D&&D<=9734||D==9737||9742<=D&&D<=9743||9748<=D&&D<=9749||D==9756||D==9758||D==9792||D==9794||9824<=D&&D<=9825||9827<=D&&D<=9829||9831<=D&&D<=9834||9836<=D&&D<=9837||D==9839||9886<=D&&D<=9887||9918<=D&&D<=9919||9924<=D&&D<=9933||9935<=D&&D<=9953||D==9955||9960<=D&&D<=9983||D==10045||D==10071||10102<=D&&D<=10111||11093<=D&&D<=11097||12872<=D&&D<=12879||57344<=D&&D<=63743||65024<=D&&D<=65039||D==65533||127232<=D&&D<=127242||127248<=D&&D<=127277||127280<=D&&D<=127337||127344<=D&&D<=127386||917760<=D&&D<=917999||983040<=D&&D<=1048573||1048576<=D&&D<=1114109?\"A\":\"N\"},u.characterLength=function(e){var s=this.eastAsianWidth(e);return s==\"F\"||s==\"W\"||s==\"A\"?2:1};function F(e){return e.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g)||[]}u.length=function(e){for(var s=F(e),i=0,D=0;D<s.length;D++)i=i+this.characterLength(s[D]);return i},u.slice=function(e,s,i){textLen=u.length(e),s=s||0,i=i||1,s<0&&(s=textLen+s),i<0&&(i=textLen+i);for(var D=\"\",C=0,o=F(e),E=0;E<o.length;E++){var a=o[E],n=u.length(a);if(C>=s-(n==2?1:0))if(C+n<=i)D+=a;else break;C+=n;}return D};})(P);var X$1=P.exports;const DD=O(X$1);var uD=function(){return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g};const FD=O(uD);function A$1(t,u={}){if(typeof t!=\"string\"||t.length===0||(u={ambiguousIsNarrow:true,...u},t=T(t),t.length===0))return 0;t=t.replace(FD(),\" \");const F=u.ambiguousIsNarrow?1:2;let e=0;for(const s of t){const i=s.codePointAt(0);if(i<=31||i>=127&&i<=159||i>=768&&i<=879)continue;switch(DD.eastAsianWidth(s)){case \"F\":case \"W\":e+=2;break;case \"A\":e+=F;break;default:e+=1;}}return e}const m$1=10,L=(t=0)=>u=>`\\x1B[${u+t}m`,N=(t=0)=>u=>`\\x1B[${38+t};5;${u}m`,I=(t=0)=>(u,F,e)=>`\\x1B[${38+t};2;${u};${F};${e}m`,r={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(r.modifier);const tD=Object.keys(r.color),eD=Object.keys(r.bgColor);[...tD,...eD];function sD(){const t=new Map;for(const[u,F]of Object.entries(r)){for(const[e,s]of Object.entries(F))r[e]={open:`\\x1B[${s[0]}m`,close:`\\x1B[${s[1]}m`},F[e]=r[e],t.set(s[0],s[1]);Object.defineProperty(r,u,{value:F,enumerable:false});}return Object.defineProperty(r,\"codes\",{value:t,enumerable:false}),r.color.close=\"\\x1B[39m\",r.bgColor.close=\"\\x1B[49m\",r.color.ansi=L(),r.color.ansi256=N(),r.color.ansi16m=I(),r.bgColor.ansi=L(m$1),r.bgColor.ansi256=N(m$1),r.bgColor.ansi16m=I(m$1),Object.defineProperties(r,{rgbToAnsi256:{value:(u,F,e)=>u===F&&F===e?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(e/255*5),enumerable:false},hexToRgb:{value:u=>{const F=/[a-f\\d]{6}|[a-f\\d]{3}/i.exec(u.toString(16));if(!F)return [0,0,0];let[e]=F;e.length===3&&(e=[...e].map(i=>i+i).join(\"\"));const s=Number.parseInt(e,16);return [s>>16&255,s>>8&255,s&255]},enumerable:false},hexToAnsi256:{value:u=>r.rgbToAnsi256(...r.hexToRgb(u)),enumerable:false},ansi256ToAnsi:{value:u=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,e,s;if(u>=232)F=((u-232)*10+8)/255,e=F,s=F;else {u-=16;const C=u%36;F=Math.floor(u/36)/5,e=Math.floor(C/6)/5,s=C%6/5;}const i=Math.max(F,e,s)*2;if(i===0)return 30;let D=30+(Math.round(s)<<2|Math.round(e)<<1|Math.round(F));return i===2&&(D+=60),D},enumerable:false},rgbToAnsi:{value:(u,F,e)=>r.ansi256ToAnsi(r.rgbToAnsi256(u,F,e)),enumerable:false},hexToAnsi:{value:u=>r.ansi256ToAnsi(r.hexToAnsi256(u)),enumerable:false}}),r}const iD=sD(),v=new Set([\"\\x1B\",\"\\x9B\"]),CD=39,w=\"\\x07\",W=\"[\",rD=\"]\",R$1=\"m\",y$1=`${rD}8;;`,V$1=t=>`${v.values().next().value}${W}${t}${R$1}`,z=t=>`${v.values().next().value}${y$1}${t}${w}`,ED=t=>t.split(\" \").map(u=>A$1(u)),_=(t,u,F)=>{const e=[...u];let s=false,i=false,D=A$1(T(t[t.length-1]));for(const[C,o]of e.entries()){const E=A$1(o);if(D+E<=F?t[t.length-1]+=o:(t.push(o),D=0),v.has(o)&&(s=true,i=e.slice(C+1).join(\"\").startsWith(y$1)),s){i?o===w&&(s=false,i=false):o===R$1&&(s=false);continue}D+=E,D===F&&C<e.length-1&&(t.push(\"\"),D=0);}!D&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop());},nD=t=>{const u=t.split(\" \");let F=u.length;for(;F>0&&!(A$1(u[F-1])>0);)F--;return F===u.length?t:u.slice(0,F).join(\" \")+u.slice(F).join(\"\")},oD=(t,u,F={})=>{if(F.trim!==false&&t.trim()===\"\")return \"\";let e=\"\",s,i;const D=ED(t);let C=[\"\"];for(const[E,a]of t.split(\" \").entries()){F.trim!==false&&(C[C.length-1]=C[C.length-1].trimStart());let n=A$1(C[C.length-1]);if(E!==0&&(n>=u&&(F.wordWrap===false||F.trim===false)&&(C.push(\"\"),n=0),(n>0||F.trim===false)&&(C[C.length-1]+=\" \",n++)),F.hard&&D[E]>u){const B=u-n,p=1+Math.floor((D[E]-B-1)/u);Math.floor((D[E]-1)/u)<p&&C.push(\"\"),_(C,a,u);continue}if(n+D[E]>u&&n>0&&D[E]>0){if(F.wordWrap===false&&n<u){_(C,a,u);continue}C.push(\"\");}if(n+D[E]>u&&F.wordWrap===false){_(C,a,u);continue}C[C.length-1]+=a;}F.trim!==false&&(C=C.map(E=>nD(E)));const o=[...C.join(`\n`)];for(const[E,a]of o.entries()){if(e+=a,v.has(a)){const{groups:B}=new RegExp(`(?:\\\\${W}(?<code>\\\\d+)m|\\\\${y$1}(?<uri>.*)${w})`).exec(o.slice(E).join(\"\"))||{groups:{}};if(B.code!==undefined){const p=Number.parseFloat(B.code);s=p===CD?undefined:p;}else B.uri!==undefined&&(i=B.uri.length===0?undefined:B.uri);}const n=iD.codes.get(Number(s));o[E+1]===`\n`?(i&&(e+=z(\"\")),s&&n&&(e+=V$1(n))):a===`\n`&&(s&&n&&(e+=V$1(s)),i&&(e+=z(i)));}return e};function G$1(t,u,F){return String(t).normalize().replace(/\\r\\n/g,`\n`).split(`\n`).map(e=>oD(e,u,F)).join(`\n`)}const aD=[\"up\",\"down\",\"left\",\"right\",\"space\",\"enter\",\"cancel\"],c={actions:new Set(aD),aliases:new Map([[\"k\",\"up\"],[\"j\",\"down\"],[\"h\",\"left\"],[\"l\",\"right\"],[\"\u0003\",\"cancel\"],[\"escape\",\"cancel\"]])};function k$1(t,u){if(typeof t==\"string\")return c.aliases.get(t)===u;for(const F of t)if(F!==undefined&&k$1(F,u))return true;return false}function lD(t,u){if(t===u)return;const F=t.split(`\n`),e=u.split(`\n`),s=[];for(let i=0;i<Math.max(F.length,e.length);i++)F[i]!==e[i]&&s.push(i);return s}globalThis.process.platform.startsWith(\"win\");const S$1=Symbol(\"clack:cancel\");function d(t,u){const F=t;F.isTTY&&F.setRawMode(u);}var AD=Object.defineProperty,pD=(t,u,F)=>u in t?AD(t,u,{enumerable:true,configurable:true,writable:true,value:F}):t[u]=F,h=(t,u,F)=>(pD(t,typeof u!=\"symbol\"?u+\"\":u,F),F);class x{constructor(u,F=true){h(this,\"input\"),h(this,\"output\"),h(this,\"_abortSignal\"),h(this,\"rl\"),h(this,\"opts\"),h(this,\"_render\"),h(this,\"_track\",false),h(this,\"_prevFrame\",\"\"),h(this,\"_subscribers\",new Map),h(this,\"_cursor\",0),h(this,\"state\",\"initial\"),h(this,\"error\",\"\"),h(this,\"value\");const{input:e=stdin,output:s=stdout,render:i,signal:D,...C}=u;this.opts=C,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=F,this._abortSignal=D,this.input=e,this.output=s;}unsubscribe(){this._subscribers.clear();}setSubscriber(u,F){const e=this._subscribers.get(u)??[];e.push(F),this._subscribers.set(u,e);}on(u,F){this.setSubscriber(u,{cb:F});}once(u,F){this.setSubscriber(u,{cb:F,once:true});}emit(u,...F){const e=this._subscribers.get(u)??[],s=[];for(const i of e)i.cb(...F),i.once&&s.push(()=>e.splice(e.indexOf(i),1));for(const i of s)i();}prompt(){return new Promise((u,F)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=\"cancel\",this.close(),u(S$1);this._abortSignal.addEventListener(\"abort\",()=>{this.state=\"cancel\",this.close();},{once:true});}const e=new WriteStream(0);e._write=(s,i,D)=>{this._track&&(this.value=this.rl?.line.replace(/\\t/g,\"\"),this._cursor=this.rl?.cursor??0,this.emit(\"value\",this.value)),D();},this.input.pipe(e),this.rl=f.createInterface({input:this.input,output:e,tabSize:2,prompt:\"\",escapeCodeTimeout:50}),f.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==undefined&&this._track&&this.rl.write(this.opts.initialValue),this.input.on(\"keypress\",this.onKeypress),d(this.input,true),this.output.on(\"resize\",this.render),this.render(),this.once(\"submit\",()=>{this.output.write(srcExports.cursor.show),this.output.off(\"resize\",this.render),d(this.input,false),u(this.value);}),this.once(\"cancel\",()=>{this.output.write(srcExports.cursor.show),this.output.off(\"resize\",this.render),d(this.input,false),u(S$1);});})}onKeypress(u,F){if(this.state===\"error\"&&(this.state=\"active\"),F?.name&&(!this._track&&c.aliases.has(F.name)&&this.emit(\"cursor\",c.aliases.get(F.name)),c.actions.has(F.name)&&this.emit(\"cursor\",F.name)),u&&(u.toLowerCase()===\"y\"||u.toLowerCase()===\"n\")&&this.emit(\"confirm\",u.toLowerCase()===\"y\"),u===\"\t\"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit(\"value\",this.opts.placeholder))),u&&this.emit(\"key\",u.toLowerCase()),F?.name===\"return\"){if(this.opts.validate){const e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=\"error\",this.rl?.write(this.value));}this.state!==\"error\"&&(this.state=\"submit\");}k$1([u,F?.name,F?.sequence],\"cancel\")&&(this.state=\"cancel\"),(this.state===\"submit\"||this.state===\"cancel\")&&this.emit(\"finalize\"),this.render(),(this.state===\"submit\"||this.state===\"cancel\")&&this.close();}close(){this.input.unpipe(),this.input.removeListener(\"keypress\",this.onKeypress),this.output.write(`\n`),d(this.input,false),this.rl?.close(),this.rl=undefined,this.emit(`${this.state}`,this.value),this.unsubscribe();}restoreCursor(){const u=G$1(this._prevFrame,process.stdout.columns,{hard:true}).split(`\n`).length-1;this.output.write(srcExports.cursor.move(-999,u*-1));}render(){const u=G$1(this._render(this)??\"\",process.stdout.columns,{hard:true});if(u!==this._prevFrame){if(this.state===\"initial\")this.output.write(srcExports.cursor.hide);else {const F=lD(this._prevFrame,u);if(this.restoreCursor(),F&&F?.length===1){const e=F[0];this.output.write(srcExports.cursor.move(0,e)),this.output.write(srcExports.erase.lines(1));const s=u.split(`\n`);this.output.write(s[e]),this._prevFrame=u,this.output.write(srcExports.cursor.move(0,s.length-e-1));return}if(F&&F?.length>1){const e=F[0];this.output.write(srcExports.cursor.move(0,e)),this.output.write(srcExports.erase.down());const s=u.split(`\n`).slice(e);this.output.write(s.join(`\n`)),this._prevFrame=u;return}this.output.write(srcExports.erase.down());}this.output.write(u),this.state===\"initial\"&&(this.state=\"active\"),this._prevFrame=u;}}}class fD extends x{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(u){super(u,false),this.value=!!u.initialValue,this.on(\"value\",()=>{this.value=this._value;}),this.on(\"confirm\",F=>{this.output.write(srcExports.cursor.move(0,-1)),this.value=F,this.state=\"submit\",this.close();}),this.on(\"cursor\",()=>{this.value=!this.value;});}}var bD=Object.defineProperty,mD=(t,u,F)=>u in t?bD(t,u,{enumerable:true,configurable:true,writable:true,value:F}):t[u]=F,Y=(t,u,F)=>(mD(t,typeof u!=\"symbol\"?u+\"\":u,F),F);let wD=class extends x{constructor(u){super(u,false),Y(this,\"options\"),Y(this,\"cursor\",0),this.options=u.options,this.value=[...u.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:F})=>F===u.cursorAt),0),this.on(\"key\",F=>{F===\"a\"&&this.toggleAll();}),this.on(\"cursor\",F=>{switch(F){case \"left\":case \"up\":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case \"down\":case \"right\":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case \"space\":this.toggleValue();break}});}get _value(){return this.options[this.cursor].value}toggleAll(){const u=this.value.length===this.options.length;this.value=u?[]:this.options.map(F=>F.value);}toggleValue(){const u=this.value.includes(this._value);this.value=u?this.value.filter(F=>F!==this._value):[...this.value,this._value];}};var SD=Object.defineProperty,$D=(t,u,F)=>u in t?SD(t,u,{enumerable:true,configurable:true,writable:true,value:F}):t[u]=F,q=(t,u,F)=>($D(t,typeof u!=\"symbol\"?u+\"\":u,F),F);class jD extends x{constructor(u){super(u,false),q(this,\"options\"),q(this,\"cursor\",0),this.options=u.options,this.cursor=this.options.findIndex(({value:F})=>F===u.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on(\"cursor\",F=>{switch(F){case \"left\":case \"up\":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case \"down\":case \"right\":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue();});}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value;}}class PD extends x{get valueWithCursor(){if(this.state===\"submit\")return this.value;if(this.cursor>=this.value.length)return `${this.value}\\u2588`;const u=this.value.slice(0,this.cursor),[F,...e$1]=this.value.slice(this.cursor);return `${u}${e.inverse(F)}${e$1.join(\"\")}`}get cursor(){return this._cursor}constructor(u){super(u),this.on(\"finalize\",()=>{this.value||(this.value=u.defaultValue);});}}\n\nfunction X(){return p.platform!==\"win32\"?p.env.TERM!==\"linux\":!!p.env.CI||!!p.env.WT_SESSION||!!p.env.TERMINUS_SUBLIME||p.env.ConEmuTask===\"{cmd::Cmder}\"||p.env.TERM_PROGRAM===\"Terminus-Sublime\"||p.env.TERM_PROGRAM===\"vscode\"||p.env.TERM===\"xterm-256color\"||p.env.TERM===\"alacritty\"||p.env.TERMINAL_EMULATOR===\"JetBrains-JediTerm\"}const E=X(),u=(s,n)=>E?s:n,ee=u(\"❯\", \">\"),A=u(\"■\", \"x\"),B=u(\"▲\", \"x\"),S=u(\"✔\", \"√\"),a=u(\"\"),m=u(\"\"),j=u(\"\\u25CF\",\">\"),R=u(\"\\u25CB\",\" \"),V=u(\"\\u25FB\",\"[\\u2022]\"),M=u(\"\\u25FC\",\"[+]\"),G=u(\"\\u25FB\",\"[ ]\"),y=s=>{switch(s){case \"initial\":case \"active\":return e.cyan(ee);case \"cancel\":return e.red(A);case \"error\":return e.yellow(B);case \"submit\":return e.green(S)}},k=s=>{const{cursor:n,options:t,style:i}=s,r=s.maxItems??Number.POSITIVE_INFINITY,c=Math.max(process.stdout.rows-4,0),o=Math.min(c,Math.max(r,5));let l=0;n>=l+o-3?l=Math.max(Math.min(n-o+3,t.length-o),0):n<l+2&&(l=Math.max(n-2,0));const $=o<t.length&&l>0,d=o<t.length&&l+o<t.length;return t.slice(l,l+o).map((w,b,C)=>{const I=b===0&&$,x=b===C.length-1&&d;return I||x?e.dim(\"...\"):i(w,b+l===n)})},ue=s=>new PD({validate:s.validate,placeholder:s.placeholder,defaultValue:s.defaultValue,initialValue:s.initialValue,render(){const n=`${e.gray(a)}\n${y(this.state)} ${s.message}\n`,t=s.placeholder?e.inverse(s.placeholder[0])+e.dim(s.placeholder.slice(1)):e.inverse(e.hidden(\"_\")),i=this.value?this.valueWithCursor:t;switch(this.state){case \"error\":return `${n.trim()}\n${e.yellow(a)} ${i}\n${e.yellow(m)} ${e.yellow(this.error)}\n`;case \"submit\":return `${n}${e.gray(a)} ${e.dim(this.value||s.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)} ${i}\n${e.cyan(m)}\n`}}}).prompt(),me=s=>{const n=s.active??\"Yes\",t=s.inactive??\"No\";return new fD({active:n,inactive:t,initialValue:s.initialValue??true,render(){const i=`${e.gray(a)}\n${y(this.state)} ${s.message}\n`,r=this.value?n:t;switch(this.state){case \"submit\":return `${i}${e.gray(a)} ${e.dim(r)}`;case \"cancel\":return `${i}${e.gray(a)} ${e.strikethrough(e.dim(r))}\n${e.gray(a)}`;default:return `${i}${e.cyan(a)} ${this.value?`${e.green(j)} ${n}`:`${e.dim(R)} ${e.dim(n)}`} ${e.dim(\"/\")} ${this.value?`${e.dim(R)} ${e.dim(t)}`:`${e.green(j)} ${t}`}\n${e.cyan(m)}\n`}}}).prompt()},de=s=>{const n=(t,i)=>{const r=t.label??String(t.value);switch(i){case \"selected\":return `${e.dim(r)}`;case \"active\":return `${e.green(j)} ${r} ${t.hint?e.dim(`(${t.hint})`):\"\"}`;case \"cancelled\":return `${e.strikethrough(e.dim(r))}`;default:return `${e.dim(R)} ${e.dim(r)}`}};return new jD({options:s.options,initialValue:s.initialValue,render(){const t=`${e.gray(a)}\n${y(this.state)} ${s.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:return `${t}${e.cyan(a)} ${k({cursor:this.cursor,options:this.options,maxItems:s.maxItems,style:(i,r)=>n(i,r?\"active\":\"inactive\")}).join(`\n${e.cyan(a)} `)}\n${e.cyan(m)}\n`}}}).prompt()},pe=s=>{const n=(t,i)=>{const r=t.label??String(t.value);return i===\"active\"?`${e.cyan(V)} ${r} ${t.hint?e.dim(`(${t.hint})`):\"\"}`:i===\"selected\"?`${e.green(M)} ${e.dim(r)}`:i===\"cancelled\"?`${e.strikethrough(e.dim(r))}`:i===\"active-selected\"?`${e.green(M)} ${r} ${t.hint?e.dim(`(${t.hint})`):\"\"}`:i===\"submitted\"?`${e.dim(r)}`:`${e.dim(G)} ${e.dim(r)}`};return new wD({options:s.options,initialValues:s.initialValues,required:s.required??true,cursorAt:s.cursorAt,validate(t){if(this.required&&t.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(){const t=`${e.gray(a)}\n${y(this.state)} ${s.message}\n`,i=(r,c)=>{const o=this.value.includes(r.value);return c&&o?n(r,\"active-selected\"):o?n(r,\"selected\"):n(r,c?\"active\":\"inactive\")};switch(this.state){case \"submit\":return `${t}${e.gray(a)} ${this.options.filter(({value:r})=>this.value.includes(r)).map(r=>n(r,\"submitted\")).join(e.dim(\", \"))||e.dim(\"none\")}`;case \"cancel\":{const r=this.options.filter(({value:c})=>this.value.includes(c)).map(c=>n(c,\"cancelled\")).join(e.dim(\", \"));return `${t}${e.gray(a)} ${r.trim()?`${r}\n${e.gray(a)}`:\"\"}`}case \"error\":{const r=this.error.split(`\n`).map((c,o)=>o===0?`${e.yellow(m)} ${e.yellow(c)}`:` ${c}`).join(`\n`);return `${t+e.yellow(a)} ${k({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:i}).join(`\n${e.yellow(a)} `)}\n${r}\n`}default:return `${t}${e.cyan(a)} ${k({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:i}).join(`\n${e.cyan(a)} `)}\n${e.cyan(m)}\n`}}}).prompt()};\n\nconst kCancel = Symbol.for(\"cancel\");\nasync function prompt(message, opts = {}) {\n const handleCancel = (value) => {\n if (typeof value !== \"symbol\" || value.toString() !== \"Symbol(clack:cancel)\") {\n return value;\n }\n switch (opts.cancel) {\n case \"reject\": {\n const error = new Error(\"Prompt cancelled.\");\n error.name = \"ConsolaPromptCancelledError\";\n if (Error.captureStackTrace) {\n Error.captureStackTrace(error, prompt);\n }\n throw error;\n }\n case \"undefined\": {\n return undefined;\n }\n case \"null\": {\n return null;\n }\n case \"symbol\": {\n return kCancel;\n }\n default:\n case \"default\": {\n return opts.default ?? opts.initial;\n }\n }\n };\n if (!opts.type || opts.type === \"text\") {\n return await ue({\n message,\n defaultValue: opts.default,\n placeholder: opts.placeholder,\n initialValue: opts.initial\n }).then(handleCancel);\n }\n if (opts.type === \"confirm\") {\n return await me({\n message,\n initialValue: opts.initial\n }).then(handleCancel);\n }\n if (opts.type === \"select\") {\n return await de({\n message,\n options: opts.options.map(\n (o) => typeof o === \"string\" ? { value: o, label: o } : o\n ),\n initialValue: opts.initial\n }).then(handleCancel);\n }\n if (opts.type === \"multiselect\") {\n return await pe({\n message,\n options: opts.options.map(\n (o) => typeof o === \"string\" ? { value: o, label: o } : o\n ),\n required: opts.required,\n initialValues: opts.initial\n }).then(handleCancel);\n }\n throw new Error(`Unknown prompt type: ${opts.type}`);\n}\n\nexport { kCancel, prompt };\n"]}
|