@kubb/core 4.11.0 → 4.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{getBarrelFiles-BkDzzugQ.cjs → getBarrelFiles-8VEWWk9Z.cjs} +80 -111
- package/dist/getBarrelFiles-8VEWWk9Z.cjs.map +1 -0
- package/dist/{getBarrelFiles-BVMBhc50.d.cts → getBarrelFiles-B_2WDywH.d.cts} +3 -3
- package/dist/{getBarrelFiles-a-GlnjYa.js → getBarrelFiles-DQ0hksqD.js} +80 -111
- package/dist/getBarrelFiles-DQ0hksqD.js.map +1 -0
- package/dist/{getBarrelFiles-DjQ68d4e.d.ts → getBarrelFiles-ZIHk_1ln.d.ts} +3 -3
- package/dist/hooks.d.cts +1 -1
- package/dist/hooks.d.ts +1 -1
- package/dist/index.cjs +261 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -7
- package/dist/index.d.ts +5 -7
- package/dist/index.js +262 -43
- package/dist/index.js.map +1 -1
- package/dist/{logger-DIA19Yfz.js → logger-CQn6sdC0.js} +72 -7
- package/dist/{logger-CPt4U57Z.cjs.map → logger-CQn6sdC0.js.map} +1 -1
- package/dist/{logger-CPt4U57Z.cjs → logger-US5g7KdM.cjs} +72 -7
- package/dist/logger-US5g7KdM.cjs.map +1 -0
- package/dist/{logger-C96jDrSt.d.ts → logger-mq06Cxxv.d.cts} +29 -4
- package/dist/{logger-BJDkLsF0.d.cts → logger-o16AyvGp.d.ts} +29 -4
- package/dist/logger.cjs +1 -1
- package/dist/logger.d.cts +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +1 -1
- package/dist/{types-tSSA1oz8.d.cts → types-CCEy_FVr.d.cts} +36 -27
- package/dist/{types-69-evK37.d.ts → types-DgfEZ3IN.d.ts} +36 -27
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/src/PluginManager.ts +81 -114
- package/src/build.ts +229 -25
- package/src/logger.ts +87 -9
- package/src/utils/ciDetection.ts +40 -0
- package/src/utils/diagnostics.ts +15 -0
- package/dist/getBarrelFiles-BkDzzugQ.cjs.map +0 -1
- package/dist/getBarrelFiles-a-GlnjYa.js.map +0 -1
- package/dist/logger-DIA19Yfz.js.map +0 -1
|
@@ -501,8 +501,8 @@ const isForced = "FORCE_COLOR" in env || argv.includes("--color");
|
|
|
501
501
|
const isWindows = platform === "win32";
|
|
502
502
|
const isDumbTerminal = env.TERM === "dumb";
|
|
503
503
|
const isCompatibleTerminal = node_tty && node_tty.isatty && node_tty.isatty(1) && env.TERM && !isDumbTerminal;
|
|
504
|
-
const isCI = "CI" in env && ("GITHUB_ACTIONS" in env || "GITLAB_CI" in env || "CIRCLECI" in env);
|
|
505
|
-
const isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI);
|
|
504
|
+
const isCI$1 = "CI" in env && ("GITHUB_ACTIONS" in env || "GITLAB_CI" in env || "CIRCLECI" in env);
|
|
505
|
+
const isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI$1);
|
|
506
506
|
function replaceClose(index, string, close, replace, head = string.slice(0, Math.max(0, index)) + replace, tail = string.slice(Math.max(0, index + close.length)), next = tail.indexOf(close)) {
|
|
507
507
|
return head + (next < 0 ? tail : replaceClose(next, tail, close, replace));
|
|
508
508
|
}
|
|
@@ -998,13 +998,52 @@ function _getDefaultLogLevel() {
|
|
|
998
998
|
}
|
|
999
999
|
const consola = createConsola();
|
|
1000
1000
|
|
|
1001
|
+
//#endregion
|
|
1002
|
+
//#region src/utils/ciDetection.ts
|
|
1003
|
+
/**
|
|
1004
|
+
* Detect if running in a CI environment
|
|
1005
|
+
* Note: Currently exported for potential future use in plugins or extensions
|
|
1006
|
+
*/
|
|
1007
|
+
function isCI() {
|
|
1008
|
+
return !!(process.env.CI || process.env.CONTINUOUS_INTEGRATION || process.env.BUILD_NUMBER || process.env.RUN_ID);
|
|
1009
|
+
}
|
|
1010
|
+
/**
|
|
1011
|
+
* Detect if running in GitHub Actions
|
|
1012
|
+
*/
|
|
1013
|
+
function isGitHubActions() {
|
|
1014
|
+
return process.env.GITHUB_ACTIONS === "true";
|
|
1015
|
+
}
|
|
1016
|
+
/**
|
|
1017
|
+
* GitHub Actions group markers
|
|
1018
|
+
*/
|
|
1019
|
+
const GITHUB_ACTIONS_GROUP_START = "::group::";
|
|
1020
|
+
const GITHUB_ACTIONS_GROUP_END = "::endgroup::";
|
|
1021
|
+
/**
|
|
1022
|
+
* Create a collapsible group marker for GitHub Actions logs
|
|
1023
|
+
*/
|
|
1024
|
+
function startGroup(title) {
|
|
1025
|
+
if (isCI() && isGitHubActions()) return `${GITHUB_ACTIONS_GROUP_START}${title}`;
|
|
1026
|
+
return "";
|
|
1027
|
+
}
|
|
1028
|
+
/**
|
|
1029
|
+
* End a collapsible group in GitHub Actions logs
|
|
1030
|
+
*/
|
|
1031
|
+
function endGroup() {
|
|
1032
|
+
if (isGitHubActions()) return GITHUB_ACTIONS_GROUP_END;
|
|
1033
|
+
return "";
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1001
1036
|
//#endregion
|
|
1002
1037
|
//#region src/logger.ts
|
|
1003
1038
|
const LogMapper = {
|
|
1004
1039
|
silent: Number.NEGATIVE_INFINITY,
|
|
1040
|
+
error: 0,
|
|
1041
|
+
warn: 1,
|
|
1005
1042
|
info: 3,
|
|
1006
|
-
|
|
1043
|
+
verbose: 4,
|
|
1044
|
+
debug: 5
|
|
1007
1045
|
};
|
|
1046
|
+
const DEBUG_LOG_TITLE_MAX_LENGTH = 50;
|
|
1008
1047
|
function createLogger({ logLevel = 3, name, consola: _consola } = {}) {
|
|
1009
1048
|
const events = new require_EventEmitter.EventEmitter();
|
|
1010
1049
|
const startDate = Date.now();
|
|
@@ -1031,8 +1070,35 @@ function createLogger({ logLevel = 3, name, consola: _consola } = {}) {
|
|
|
1031
1070
|
events.on("info", (message) => {
|
|
1032
1071
|
consola$1.info(picocolors.default.yellow(message));
|
|
1033
1072
|
});
|
|
1073
|
+
events.on("verbose", (message) => {
|
|
1074
|
+
if (logLevel >= LogMapper.verbose) {
|
|
1075
|
+
const formattedLogs = message.logs.join("\n");
|
|
1076
|
+
consola$1.log(picocolors.default.dim(formattedLogs));
|
|
1077
|
+
}
|
|
1078
|
+
cachedLogs.add(message);
|
|
1079
|
+
});
|
|
1034
1080
|
events.on("debug", (message) => {
|
|
1035
|
-
|
|
1081
|
+
const fullLog = message.logs.join("\n");
|
|
1082
|
+
if (logLevel >= LogMapper.debug) {
|
|
1083
|
+
if (isGitHubActions()) {
|
|
1084
|
+
if (message.pluginGroupMarker === "start") {
|
|
1085
|
+
const title = message.pluginName || "Plugin";
|
|
1086
|
+
console.log(startGroup(title));
|
|
1087
|
+
return;
|
|
1088
|
+
}
|
|
1089
|
+
if (message.pluginGroupMarker === "end") {
|
|
1090
|
+
console.log(endGroup());
|
|
1091
|
+
return;
|
|
1092
|
+
}
|
|
1093
|
+
if (!message.pluginName && message.category && ["setup", "file"].includes(message.category)) {
|
|
1094
|
+
const firstLine = message.logs[0] || "Debug Details";
|
|
1095
|
+
const title = firstLine.length > DEBUG_LOG_TITLE_MAX_LENGTH ? `${firstLine.substring(0, DEBUG_LOG_TITLE_MAX_LENGTH)}...` : firstLine;
|
|
1096
|
+
console.log(startGroup(title));
|
|
1097
|
+
console.log(picocolors.default.dim(fullLog));
|
|
1098
|
+
console.log(endGroup());
|
|
1099
|
+
} else consola$1.log(picocolors.default.dim(fullLog));
|
|
1100
|
+
} else if (!message.pluginGroupMarker) consola$1.log(picocolors.default.dim(fullLog));
|
|
1101
|
+
}
|
|
1036
1102
|
cachedLogs.add(message);
|
|
1037
1103
|
});
|
|
1038
1104
|
events.on("error", (message, cause) => {
|
|
@@ -1056,12 +1122,11 @@ function createLogger({ logLevel = 3, name, consola: _consola } = {}) {
|
|
|
1056
1122
|
cachedLogs.forEach((log) => {
|
|
1057
1123
|
const fileName = (0, node_path.resolve)(process.cwd(), ".kubb", log.fileName || `kubb-${startDate}.log`);
|
|
1058
1124
|
if (!files[fileName]) files[fileName] = [];
|
|
1059
|
-
files[fileName] = [...files[fileName], `[${log.date.toLocaleString()}]: ${log.logs.join("\n
|
|
1125
|
+
if (log.logs.length) files[fileName] = [...files[fileName], `[${log.date.toLocaleString()}]: \n${log.logs.join("\n")}`];
|
|
1060
1126
|
});
|
|
1061
1127
|
await Promise.all(Object.entries(files).map(async ([fileName, logs]) => {
|
|
1062
1128
|
return write(fileName, logs.join("\n"));
|
|
1063
1129
|
}));
|
|
1064
|
-
return Object.keys(files);
|
|
1065
1130
|
}
|
|
1066
1131
|
};
|
|
1067
1132
|
}
|
|
@@ -1119,4 +1184,4 @@ Object.defineProperty(exports, 'write', {
|
|
|
1119
1184
|
return write;
|
|
1120
1185
|
}
|
|
1121
1186
|
});
|
|
1122
|
-
//# sourceMappingURL=logger-
|
|
1187
|
+
//# sourceMappingURL=logger-US5g7KdM.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-US5g7KdM.cjs","names":["fs","c","i","createConsola","sep","l","tty","isCI","getColor","ansiRegex","i","s","stripAnsi","g$1","env","c","stripAnsi$1","EventEmitter","consola","pc","files: Record<string, string[]>"],"sources":["../src/fs/write.ts","../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/core.mjs","../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs","../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs","../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/index.mjs","../src/utils/ciDetection.ts","../src/logger.ts"],"sourcesContent":["import { resolve } from 'node:path'\n\nimport fs from 'fs-extra'\nimport { switcher } from 'js-runtime'\n\ntype Options = { sanity?: boolean }\n\nconst writer = switcher(\n {\n node: async (path: string, data: string, { sanity }: Options) => {\n try {\n const oldContent = await fs.readFile(resolve(path), {\n encoding: 'utf-8',\n })\n if (oldContent?.toString() === data?.toString()) {\n return\n }\n } catch (_err) {\n /* empty */\n }\n\n await fs.outputFile(resolve(path), data, { encoding: 'utf-8' })\n\n if (sanity) {\n const savedData = await fs.readFile(resolve(path), {\n encoding: 'utf-8',\n })\n\n if (savedData?.toString() !== data?.toString()) {\n throw new Error(`Sanity check failed for ${path}\\n\\nData[${data.length}]:\\n${data}\\n\\nSaved[${savedData.length}]:\\n${savedData}\\n`)\n }\n\n return savedData\n }\n\n return data\n },\n bun: async (path: string, data: string, { sanity }: Options) => {\n try {\n await Bun.write(resolve(path), data)\n\n if (sanity) {\n const file = Bun.file(resolve(path))\n const savedData = await file.text()\n\n if (savedData?.toString() !== data?.toString()) {\n throw new Error(`Sanity check failed for ${path}\\n\\nData[${path.length}]:\\n${path}\\n\\nSaved[${savedData.length}]:\\n${savedData}\\n`)\n }\n\n return savedData\n }\n\n return data\n } catch (e) {\n console.error(e)\n }\n },\n },\n 'node',\n)\n\nexport async function write(path: string, data: string, options: Options = {}): Promise<string | undefined> {\n if (data.trim() === '') {\n return undefined\n }\n return writer(path, data.trim(), options)\n}\n","const LogLevels = {\n silent: Number.NEGATIVE_INFINITY,\n fatal: 0,\n error: 0,\n warn: 1,\n log: 2,\n info: 3,\n success: 3,\n fail: 3,\n ready: 3,\n start: 3,\n box: 3,\n debug: 4,\n trace: 5,\n verbose: Number.POSITIVE_INFINITY\n};\nconst LogTypes = {\n // Silent\n silent: {\n level: -1\n },\n // Level 0\n fatal: {\n level: LogLevels.fatal\n },\n error: {\n level: LogLevels.error\n },\n // Level 1\n warn: {\n level: LogLevels.warn\n },\n // Level 2\n log: {\n level: LogLevels.log\n },\n // Level 3\n info: {\n level: LogLevels.info\n },\n success: {\n level: LogLevels.success\n },\n fail: {\n level: LogLevels.fail\n },\n ready: {\n level: LogLevels.info\n },\n start: {\n level: LogLevels.info\n },\n box: {\n level: LogLevels.info\n },\n // Level 4\n debug: {\n level: LogLevels.debug\n },\n // Level 5\n trace: {\n level: LogLevels.trace\n },\n // Verbose\n verbose: {\n level: LogLevels.verbose\n }\n};\n\nfunction isPlainObject$1(value) {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) {\n return false;\n }\n if (Symbol.iterator in value) {\n return false;\n }\n if (Symbol.toStringTag in value) {\n return Object.prototype.toString.call(value) === \"[object Module]\";\n }\n return true;\n}\n\nfunction _defu(baseObject, defaults, namespace = \".\", merger) {\n if (!isPlainObject$1(defaults)) {\n return _defu(baseObject, {}, namespace, merger);\n }\n const object = Object.assign({}, defaults);\n for (const key in baseObject) {\n if (key === \"__proto__\" || key === \"constructor\") {\n continue;\n }\n const value = baseObject[key];\n if (value === null || value === void 0) {\n continue;\n }\n if (merger && merger(object, key, value, namespace)) {\n continue;\n }\n if (Array.isArray(value) && Array.isArray(object[key])) {\n object[key] = [...value, ...object[key]];\n } else if (isPlainObject$1(value) && isPlainObject$1(object[key])) {\n object[key] = _defu(\n value,\n object[key],\n (namespace ? `${namespace}.` : \"\") + key.toString(),\n merger\n );\n } else {\n object[key] = value;\n }\n }\n return object;\n}\nfunction createDefu(merger) {\n return (...arguments_) => (\n // eslint-disable-next-line unicorn/no-array-reduce\n arguments_.reduce((p, c) => _defu(p, c, \"\", merger), {})\n );\n}\nconst defu = createDefu();\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n}\nfunction isLogObj(arg) {\n if (!isPlainObject(arg)) {\n return false;\n }\n if (!arg.message && !arg.args) {\n return false;\n }\n if (arg.stack) {\n return false;\n }\n return true;\n}\n\nlet paused = false;\nconst queue = [];\nclass Consola {\n options;\n _lastLog;\n _mockFn;\n /**\n * Creates an instance of Consola with specified options or defaults.\n *\n * @param {Partial<ConsolaOptions>} [options={}] - Configuration options for the Consola instance.\n */\n constructor(options = {}) {\n const types = options.types || LogTypes;\n this.options = defu(\n {\n ...options,\n defaults: { ...options.defaults },\n level: _normalizeLogLevel(options.level, types),\n reporters: [...options.reporters || []]\n },\n {\n types: LogTypes,\n throttle: 1e3,\n throttleMin: 5,\n formatOptions: {\n date: true,\n colors: false,\n compact: true\n }\n }\n );\n for (const type in types) {\n const defaults = {\n type,\n ...this.options.defaults,\n ...types[type]\n };\n this[type] = this._wrapLogFn(defaults);\n this[type].raw = this._wrapLogFn(\n defaults,\n true\n );\n }\n if (this.options.mockFn) {\n this.mockTypes();\n }\n this._lastLog = {};\n }\n /**\n * Gets the current log level of the Consola instance.\n *\n * @returns {number} The current log level.\n */\n get level() {\n return this.options.level;\n }\n /**\n * Sets the minimum log level that will be output by the instance.\n *\n * @param {number} level - The new log level to set.\n */\n set level(level) {\n this.options.level = _normalizeLogLevel(\n level,\n this.options.types,\n this.options.level\n );\n }\n /**\n * Displays a prompt to the user and returns the response.\n * Throw an error if `prompt` is not supported by the current configuration.\n *\n * @template T\n * @param {string} message - The message to display in the prompt.\n * @param {T} [opts] - Optional options for the prompt. See {@link PromptOptions}.\n * @returns {promise<T>} A promise that infer with the prompt options. See {@link PromptOptions}.\n */\n prompt(message, opts) {\n if (!this.options.prompt) {\n throw new Error(\"prompt is not supported!\");\n }\n return this.options.prompt(message, opts);\n }\n /**\n * Creates a new instance of Consola, inheriting options from the current instance, with possible overrides.\n *\n * @param {Partial<ConsolaOptions>} options - Optional overrides for the new instance. See {@link ConsolaOptions}.\n * @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.\n */\n create(options) {\n const instance = new Consola({\n ...this.options,\n ...options\n });\n if (this._mockFn) {\n instance.mockTypes(this._mockFn);\n }\n return instance;\n }\n /**\n * Creates a new Consola instance with the specified default log object properties.\n *\n * @param {InputLogObject} defaults - Default properties to include in any log from the new instance. See {@link InputLogObject}.\n * @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.\n */\n withDefaults(defaults) {\n return this.create({\n ...this.options,\n defaults: {\n ...this.options.defaults,\n ...defaults\n }\n });\n }\n /**\n * Creates a new Consola instance with a specified tag, which will be included in every log.\n *\n * @param {string} tag - The tag to include in each log of the new instance.\n * @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.\n */\n withTag(tag) {\n return this.withDefaults({\n tag: this.options.defaults.tag ? this.options.defaults.tag + \":\" + tag : tag\n });\n }\n /**\n * Adds a custom reporter to the Consola instance.\n * Reporters will be called for each log message, depending on their implementation and log level.\n *\n * @param {ConsolaReporter} reporter - The reporter to add. See {@link ConsolaReporter}.\n * @returns {Consola} The current Consola instance.\n */\n addReporter(reporter) {\n this.options.reporters.push(reporter);\n return this;\n }\n /**\n * Removes a custom reporter from the Consola instance.\n * If no reporter is specified, all reporters will be removed.\n *\n * @param {ConsolaReporter} reporter - The reporter to remove. See {@link ConsolaReporter}.\n * @returns {Consola} The current Consola instance.\n */\n removeReporter(reporter) {\n if (reporter) {\n const i = this.options.reporters.indexOf(reporter);\n if (i !== -1) {\n return this.options.reporters.splice(i, 1);\n }\n } else {\n this.options.reporters.splice(0);\n }\n return this;\n }\n /**\n * Replaces all reporters of the Consola instance with the specified array of reporters.\n *\n * @param {ConsolaReporter[]} reporters - The new reporters to set. See {@link ConsolaReporter}.\n * @returns {Consola} The current Consola instance.\n */\n setReporters(reporters) {\n this.options.reporters = Array.isArray(reporters) ? reporters : [reporters];\n return this;\n }\n wrapAll() {\n this.wrapConsole();\n this.wrapStd();\n }\n restoreAll() {\n this.restoreConsole();\n this.restoreStd();\n }\n /**\n * Overrides console methods with Consola logging methods for consistent logging.\n */\n wrapConsole() {\n for (const type in this.options.types) {\n if (!console[\"__\" + type]) {\n console[\"__\" + type] = console[type];\n }\n console[type] = this[type].raw;\n }\n }\n /**\n * Restores the original console methods, removing Consola overrides.\n */\n restoreConsole() {\n for (const type in this.options.types) {\n if (console[\"__\" + type]) {\n console[type] = console[\"__\" + type];\n delete console[\"__\" + type];\n }\n }\n }\n /**\n * Overrides standard output and error streams to redirect them through Consola.\n */\n wrapStd() {\n this._wrapStream(this.options.stdout, \"log\");\n this._wrapStream(this.options.stderr, \"log\");\n }\n _wrapStream(stream, type) {\n if (!stream) {\n return;\n }\n if (!stream.__write) {\n stream.__write = stream.write;\n }\n stream.write = (data) => {\n this[type].raw(String(data).trim());\n };\n }\n /**\n * Restores the original standard output and error streams, removing the Consola redirection.\n */\n restoreStd() {\n this._restoreStream(this.options.stdout);\n this._restoreStream(this.options.stderr);\n }\n _restoreStream(stream) {\n if (!stream) {\n return;\n }\n if (stream.__write) {\n stream.write = stream.__write;\n delete stream.__write;\n }\n }\n /**\n * Pauses logging, queues incoming logs until resumed.\n */\n pauseLogs() {\n paused = true;\n }\n /**\n * Resumes logging, processing any queued logs.\n */\n resumeLogs() {\n paused = false;\n const _queue = queue.splice(0);\n for (const item of _queue) {\n item[0]._logFn(item[1], item[2]);\n }\n }\n /**\n * Replaces logging methods with mocks if a mock function is provided.\n *\n * @param {ConsolaOptions[\"mockFn\"]} mockFn - The function to use for mocking logging methods. See {@link ConsolaOptions[\"mockFn\"]}.\n */\n mockTypes(mockFn) {\n const _mockFn = mockFn || this.options.mockFn;\n this._mockFn = _mockFn;\n if (typeof _mockFn !== \"function\") {\n return;\n }\n for (const type in this.options.types) {\n this[type] = _mockFn(type, this.options.types[type]) || this[type];\n this[type].raw = this[type];\n }\n }\n _wrapLogFn(defaults, isRaw) {\n return (...args) => {\n if (paused) {\n queue.push([this, defaults, args, isRaw]);\n return;\n }\n return this._logFn(defaults, args, isRaw);\n };\n }\n _logFn(defaults, args, isRaw) {\n if ((defaults.level || 0) > this.level) {\n return false;\n }\n const logObj = {\n date: /* @__PURE__ */ new Date(),\n args: [],\n ...defaults,\n level: _normalizeLogLevel(defaults.level, this.options.types)\n };\n if (!isRaw && args.length === 1 && isLogObj(args[0])) {\n Object.assign(logObj, args[0]);\n } else {\n logObj.args = [...args];\n }\n if (logObj.message) {\n logObj.args.unshift(logObj.message);\n delete logObj.message;\n }\n if (logObj.additional) {\n if (!Array.isArray(logObj.additional)) {\n logObj.additional = logObj.additional.split(\"\\n\");\n }\n logObj.args.push(\"\\n\" + logObj.additional.join(\"\\n\"));\n delete logObj.additional;\n }\n logObj.type = typeof logObj.type === \"string\" ? logObj.type.toLowerCase() : \"log\";\n logObj.tag = typeof logObj.tag === \"string\" ? logObj.tag : \"\";\n const resolveLog = (newLog = false) => {\n const repeated = (this._lastLog.count || 0) - this.options.throttleMin;\n if (this._lastLog.object && repeated > 0) {\n const args2 = [...this._lastLog.object.args];\n if (repeated > 1) {\n args2.push(`(repeated ${repeated} times)`);\n }\n this._log({ ...this._lastLog.object, args: args2 });\n this._lastLog.count = 1;\n }\n if (newLog) {\n this._lastLog.object = logObj;\n this._log(logObj);\n }\n };\n clearTimeout(this._lastLog.timeout);\n const diffTime = this._lastLog.time && logObj.date ? logObj.date.getTime() - this._lastLog.time.getTime() : 0;\n this._lastLog.time = logObj.date;\n if (diffTime < this.options.throttle) {\n try {\n const serializedLog = JSON.stringify([\n logObj.type,\n logObj.tag,\n logObj.args\n ]);\n const isSameLog = this._lastLog.serialized === serializedLog;\n this._lastLog.serialized = serializedLog;\n if (isSameLog) {\n this._lastLog.count = (this._lastLog.count || 0) + 1;\n if (this._lastLog.count > this.options.throttleMin) {\n this._lastLog.timeout = setTimeout(\n resolveLog,\n this.options.throttle\n );\n return;\n }\n }\n } catch {\n }\n }\n resolveLog(true);\n }\n _log(logObj) {\n for (const reporter of this.options.reporters) {\n reporter.log(logObj, {\n options: this.options\n });\n }\n }\n}\nfunction _normalizeLogLevel(input, types = {}, defaultLevel = 3) {\n if (input === void 0) {\n return defaultLevel;\n }\n if (typeof input === \"number\") {\n return input;\n }\n if (types[input] && types[input].level !== void 0) {\n return types[input].level;\n }\n return defaultLevel;\n}\nConsola.prototype.add = Consola.prototype.addReporter;\nConsola.prototype.remove = Consola.prototype.removeReporter;\nConsola.prototype.clear = Consola.prototype.removeReporter;\nConsola.prototype.withScope = Consola.prototype.withTag;\nConsola.prototype.mock = Consola.prototype.mockTypes;\nConsola.prototype.pause = Consola.prototype.pauseLogs;\nConsola.prototype.resume = Consola.prototype.resumeLogs;\nfunction createConsola(options = {}) {\n return new Consola(options);\n}\n\nexport { Consola, LogLevels, LogTypes, createConsola };\n","import { formatWithOptions } from 'node:util';\nimport { sep } from 'node:path';\n\nfunction parseStack(stack, message) {\n const cwd = process.cwd() + sep;\n const lines = stack.split(\"\\n\").splice(message.split(\"\\n\").length).map((l) => l.trim().replace(\"file://\", \"\").replace(cwd, \"\"));\n return lines;\n}\n\nfunction writeStream(data, stream) {\n const write = stream.__write || stream.write;\n return write.call(stream, data);\n}\n\nconst bracket = (x) => x ? `[${x}]` : \"\";\nclass BasicReporter {\n formatStack(stack, message, opts) {\n const indent = \" \".repeat((opts?.errorLevel || 0) + 1);\n return indent + parseStack(stack, message).join(`\n${indent}`);\n }\n formatError(err, opts) {\n const message = err.message ?? formatWithOptions(opts, err);\n const stack = err.stack ? this.formatStack(err.stack, message, opts) : \"\";\n const level = opts?.errorLevel || 0;\n const causedPrefix = level > 0 ? `${\" \".repeat(level)}[cause]: ` : \"\";\n const causedError = err.cause ? \"\\n\\n\" + this.formatError(err.cause, { ...opts, errorLevel: level + 1 }) : \"\";\n return causedPrefix + message + \"\\n\" + stack + causedError;\n }\n formatArgs(args, opts) {\n const _args = args.map((arg) => {\n if (arg && typeof arg.stack === \"string\") {\n return this.formatError(arg, opts);\n }\n return arg;\n });\n return formatWithOptions(opts, ..._args);\n }\n formatDate(date, opts) {\n return opts.date ? date.toLocaleTimeString() : \"\";\n }\n filterAndJoin(arr) {\n return arr.filter(Boolean).join(\" \");\n }\n formatLogObj(logObj, opts) {\n const message = this.formatArgs(logObj.args, opts);\n if (logObj.type === \"box\") {\n return \"\\n\" + [\n bracket(logObj.tag),\n logObj.title && logObj.title,\n ...message.split(\"\\n\")\n ].filter(Boolean).map((l) => \" > \" + l).join(\"\\n\") + \"\\n\";\n }\n return this.filterAndJoin([\n bracket(logObj.type),\n bracket(logObj.tag),\n message\n ]);\n }\n log(logObj, ctx) {\n const line = this.formatLogObj(logObj, {\n columns: ctx.options.stdout.columns || 0,\n ...ctx.options.formatOptions\n });\n return writeStream(\n line + \"\\n\",\n logObj.level < 2 ? ctx.options.stderr || process.stderr : ctx.options.stdout || process.stdout\n );\n }\n}\n\nexport { BasicReporter as B, parseStack as p };\n","import * as tty from 'node:tty';\n\nconst {\n env = {},\n argv = [],\n platform = \"\"\n} = typeof process === \"undefined\" ? {} : process;\nconst isDisabled = \"NO_COLOR\" in env || argv.includes(\"--no-color\");\nconst isForced = \"FORCE_COLOR\" in env || argv.includes(\"--color\");\nconst isWindows = platform === \"win32\";\nconst isDumbTerminal = env.TERM === \"dumb\";\nconst isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal;\nconst isCI = \"CI\" in env && (\"GITHUB_ACTIONS\" in env || \"GITLAB_CI\" in env || \"CIRCLECI\" in env);\nconst isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI);\nfunction replaceClose(index, string, close, replace, head = string.slice(0, Math.max(0, index)) + replace, tail = string.slice(Math.max(0, index + close.length)), next = tail.indexOf(close)) {\n return head + (next < 0 ? tail : replaceClose(next, tail, close, replace));\n}\nfunction clearBleed(index, string, open, close, replace) {\n return index < 0 ? open + string + close : open + replaceClose(index, string, close, replace) + close;\n}\nfunction filterEmpty(open, close, replace = open, at = open.length + 1) {\n return (string) => string || !(string === \"\" || string === void 0) ? clearBleed(\n (\"\" + string).indexOf(close, at),\n string,\n open,\n close,\n replace\n ) : \"\";\n}\nfunction init(open, close, replace) {\n return filterEmpty(`\\x1B[${open}m`, `\\x1B[${close}m`, replace);\n}\nconst colorDefs = {\n reset: init(0, 0),\n bold: init(1, 22, \"\\x1B[22m\\x1B[1m\"),\n dim: init(2, 22, \"\\x1B[22m\\x1B[2m\"),\n italic: init(3, 23),\n underline: init(4, 24),\n inverse: init(7, 27),\n hidden: init(8, 28),\n strikethrough: init(9, 29),\n black: init(30, 39),\n red: init(31, 39),\n green: init(32, 39),\n yellow: init(33, 39),\n blue: init(34, 39),\n magenta: init(35, 39),\n cyan: init(36, 39),\n white: init(37, 39),\n gray: init(90, 39),\n bgBlack: init(40, 49),\n bgRed: init(41, 49),\n bgGreen: init(42, 49),\n bgYellow: init(43, 49),\n bgBlue: init(44, 49),\n bgMagenta: init(45, 49),\n bgCyan: init(46, 49),\n bgWhite: init(47, 49),\n blackBright: init(90, 39),\n redBright: init(91, 39),\n greenBright: init(92, 39),\n yellowBright: init(93, 39),\n blueBright: init(94, 39),\n magentaBright: init(95, 39),\n cyanBright: init(96, 39),\n whiteBright: init(97, 39),\n bgBlackBright: init(100, 49),\n bgRedBright: init(101, 49),\n bgGreenBright: init(102, 49),\n bgYellowBright: init(103, 49),\n bgBlueBright: init(104, 49),\n bgMagentaBright: init(105, 49),\n bgCyanBright: init(106, 49),\n bgWhiteBright: init(107, 49)\n};\nfunction createColors(useColor = isColorSupported) {\n return useColor ? colorDefs : Object.fromEntries(Object.keys(colorDefs).map((key) => [key, String]));\n}\nconst colors = createColors();\nfunction getColor(color, fallback = \"reset\") {\n return colors[color] || colors[fallback];\n}\nfunction colorize(color, text) {\n return getColor(color)(text);\n}\n\nconst ansiRegex = [\n String.raw`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)`,\n String.raw`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`\n].join(\"|\");\nfunction stripAnsi(text) {\n return text.replace(new RegExp(ansiRegex, \"g\"), \"\");\n}\nfunction centerAlign(str, len, space = \" \") {\n const free = len - str.length;\n if (free <= 0) {\n return str;\n }\n const freeLeft = Math.floor(free / 2);\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < freeLeft || i >= freeLeft + str.length ? space : str[i - freeLeft];\n }\n return _str;\n}\nfunction rightAlign(str, len, space = \" \") {\n const free = len - str.length;\n if (free <= 0) {\n return str;\n }\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < free ? space : str[i - free];\n }\n return _str;\n}\nfunction leftAlign(str, len, space = \" \") {\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < str.length ? str[i] : space;\n }\n return _str;\n}\nfunction align(alignment, str, len, space = \" \") {\n switch (alignment) {\n case \"left\": {\n return leftAlign(str, len, space);\n }\n case \"right\": {\n return rightAlign(str, len, space);\n }\n case \"center\": {\n return centerAlign(str, len, space);\n }\n default: {\n return str;\n }\n }\n}\n\nconst boxStylePresets = {\n solid: {\n tl: \"\\u250C\",\n tr: \"\\u2510\",\n bl: \"\\u2514\",\n br: \"\\u2518\",\n h: \"\\u2500\",\n v: \"\\u2502\"\n },\n double: {\n tl: \"\\u2554\",\n tr: \"\\u2557\",\n bl: \"\\u255A\",\n br: \"\\u255D\",\n h: \"\\u2550\",\n v: \"\\u2551\"\n },\n doubleSingle: {\n tl: \"\\u2553\",\n tr: \"\\u2556\",\n bl: \"\\u2559\",\n br: \"\\u255C\",\n h: \"\\u2500\",\n v: \"\\u2551\"\n },\n doubleSingleRounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2500\",\n v: \"\\u2551\"\n },\n singleThick: {\n tl: \"\\u250F\",\n tr: \"\\u2513\",\n bl: \"\\u2517\",\n br: \"\\u251B\",\n h: \"\\u2501\",\n v: \"\\u2503\"\n },\n singleDouble: {\n tl: \"\\u2552\",\n tr: \"\\u2555\",\n bl: \"\\u2558\",\n br: \"\\u255B\",\n h: \"\\u2550\",\n v: \"\\u2502\"\n },\n singleDoubleRounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2550\",\n v: \"\\u2502\"\n },\n rounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2500\",\n v: \"\\u2502\"\n }\n};\nconst defaultStyle = {\n borderColor: \"white\",\n borderStyle: \"rounded\",\n valign: \"center\",\n padding: 2,\n marginLeft: 1,\n marginTop: 1,\n marginBottom: 1\n};\nfunction box(text, _opts = {}) {\n const opts = {\n ..._opts,\n style: {\n ...defaultStyle,\n ..._opts.style\n }\n };\n const textLines = text.split(\"\\n\");\n const boxLines = [];\n const _color = getColor(opts.style.borderColor);\n const borderStyle = {\n ...typeof opts.style.borderStyle === \"string\" ? boxStylePresets[opts.style.borderStyle] || boxStylePresets.solid : opts.style.borderStyle\n };\n if (_color) {\n for (const key in borderStyle) {\n borderStyle[key] = _color(\n borderStyle[key]\n );\n }\n }\n const paddingOffset = opts.style.padding % 2 === 0 ? opts.style.padding : opts.style.padding + 1;\n const height = textLines.length + paddingOffset;\n const width = Math.max(\n ...textLines.map((line) => stripAnsi(line).length),\n opts.title ? stripAnsi(opts.title).length : 0\n ) + paddingOffset;\n const widthOffset = width + paddingOffset;\n const leftSpace = opts.style.marginLeft > 0 ? \" \".repeat(opts.style.marginLeft) : \"\";\n if (opts.style.marginTop > 0) {\n boxLines.push(\"\".repeat(opts.style.marginTop));\n }\n if (opts.title) {\n const title = _color ? _color(opts.title) : opts.title;\n const left = borderStyle.h.repeat(\n Math.floor((width - stripAnsi(opts.title).length) / 2)\n );\n const right = borderStyle.h.repeat(\n width - stripAnsi(opts.title).length - stripAnsi(left).length + paddingOffset\n );\n boxLines.push(\n `${leftSpace}${borderStyle.tl}${left}${title}${right}${borderStyle.tr}`\n );\n } else {\n boxLines.push(\n `${leftSpace}${borderStyle.tl}${borderStyle.h.repeat(widthOffset)}${borderStyle.tr}`\n );\n }\n const valignOffset = opts.style.valign === \"center\" ? Math.floor((height - textLines.length) / 2) : opts.style.valign === \"top\" ? height - textLines.length - paddingOffset : height - textLines.length;\n for (let i = 0; i < height; i++) {\n if (i < valignOffset || i >= valignOffset + textLines.length) {\n boxLines.push(\n `${leftSpace}${borderStyle.v}${\" \".repeat(widthOffset)}${borderStyle.v}`\n );\n } else {\n const line = textLines[i - valignOffset];\n const left = \" \".repeat(paddingOffset);\n const right = \" \".repeat(width - stripAnsi(line).length);\n boxLines.push(\n `${leftSpace}${borderStyle.v}${left}${line}${right}${borderStyle.v}`\n );\n }\n }\n boxLines.push(\n `${leftSpace}${borderStyle.bl}${borderStyle.h.repeat(widthOffset)}${borderStyle.br}`\n );\n if (opts.style.marginBottom > 0) {\n boxLines.push(\"\".repeat(opts.style.marginBottom));\n }\n return boxLines.join(\"\\n\");\n}\n\nexport { centerAlign as a, align as b, colorize as c, box as d, colors as e, getColor as g, leftAlign as l, rightAlign as r, stripAnsi as s };\n","import { createConsola as createConsola$1, LogLevels } from './core.mjs';\nexport { Consola, LogTypes } from './core.mjs';\nimport { B as BasicReporter, p as parseStack } from './shared/consola.DRwqZj3T.mjs';\nimport g$1 from 'node:process';\nimport { e as colors, d as box, s as stripAnsi$1 } from './shared/consola.DXBYu-KD.mjs';\nimport 'node:util';\nimport 'node:path';\nimport 'node:tty';\n\nconst r=Object.create(null),i=e=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?r:globalThis),o=new Proxy(r,{get(e,s){return i()[s]??r[s]},has(e,s){const E=i();return s in E||s in r},set(e,s,E){const B=i(true);return B[s]=E,true},deleteProperty(e,s){if(!s)return false;const E=i(true);return delete E[s],true},ownKeys(){const e=i(true);return Object.keys(e)}}),t=typeof process<\"u\"&&process.env&&process.env.NODE_ENV||\"\",f=[[\"APPVEYOR\"],[\"AWS_AMPLIFY\",\"AWS_APP_ID\",{ci:true}],[\"AZURE_PIPELINES\",\"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI\"],[\"AZURE_STATIC\",\"INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN\"],[\"APPCIRCLE\",\"AC_APPCIRCLE\"],[\"BAMBOO\",\"bamboo_planKey\"],[\"BITBUCKET\",\"BITBUCKET_COMMIT\"],[\"BITRISE\",\"BITRISE_IO\"],[\"BUDDY\",\"BUDDY_WORKSPACE_ID\"],[\"BUILDKITE\"],[\"CIRCLE\",\"CIRCLECI\"],[\"CIRRUS\",\"CIRRUS_CI\"],[\"CLOUDFLARE_PAGES\",\"CF_PAGES\",{ci:true}],[\"CODEBUILD\",\"CODEBUILD_BUILD_ARN\"],[\"CODEFRESH\",\"CF_BUILD_ID\"],[\"DRONE\"],[\"DRONE\",\"DRONE_BUILD_EVENT\"],[\"DSARI\"],[\"GITHUB_ACTIONS\"],[\"GITLAB\",\"GITLAB_CI\"],[\"GITLAB\",\"CI_MERGE_REQUEST_ID\"],[\"GOCD\",\"GO_PIPELINE_LABEL\"],[\"LAYERCI\"],[\"HUDSON\",\"HUDSON_URL\"],[\"JENKINS\",\"JENKINS_URL\"],[\"MAGNUM\"],[\"NETLIFY\"],[\"NETLIFY\",\"NETLIFY_LOCAL\",{ci:false}],[\"NEVERCODE\"],[\"RENDER\"],[\"SAIL\",\"SAILCI\"],[\"SEMAPHORE\"],[\"SCREWDRIVER\"],[\"SHIPPABLE\"],[\"SOLANO\",\"TDDIUM\"],[\"STRIDER\"],[\"TEAMCITY\",\"TEAMCITY_VERSION\"],[\"TRAVIS\"],[\"VERCEL\",\"NOW_BUILDER\"],[\"VERCEL\",\"VERCEL\",{ci:false}],[\"VERCEL\",\"VERCEL_ENV\",{ci:false}],[\"APPCENTER\",\"APPCENTER_BUILD_ID\"],[\"CODESANDBOX\",\"CODESANDBOX_SSE\",{ci:false}],[\"CODESANDBOX\",\"CODESANDBOX_HOST\",{ci:false}],[\"STACKBLITZ\"],[\"STORMKIT\"],[\"CLEAVR\"],[\"ZEABUR\"],[\"CODESPHERE\",\"CODESPHERE_APP_ID\",{ci:true}],[\"RAILWAY\",\"RAILWAY_PROJECT_ID\"],[\"RAILWAY\",\"RAILWAY_SERVICE_ID\"],[\"DENO-DEPLOY\",\"DENO_DEPLOYMENT_ID\"],[\"FIREBASE_APP_HOSTING\",\"FIREBASE_APP_HOSTING\",{ci:true}]];function b(){if(globalThis.process?.env)for(const e of f){const s=e[1]||e[0];if(globalThis.process?.env[s])return {name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL===\"/bin/jsh\"&&globalThis.process?.versions?.webcontainer?{name:\"stackblitz\",ci:false}:{name:\"\",ci:false}}const l=b();l.name;function n(e){return e?e!==\"false\":false}const I=globalThis.process?.platform||\"\",T=n(o.CI)||l.ci!==false,a=n(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),g=n(o.DEBUG),R=t===\"test\"||n(o.TEST);n(o.MINIMAL)||T||R||!a;const A=/^win/i.test(I);!n(o.NO_COLOR)&&(n(o.FORCE_COLOR)||(a||A)&&o.TERM!==\"dumb\"||T);const C=(globalThis.process?.versions?.node||\"\").replace(/^v/,\"\")||null;Number(C?.split(\".\")[0])||null;const y=globalThis.process||Object.create(null),_={versions:{}};new Proxy(y,{get(e,s){if(s===\"env\")return o;if(s in e)return e[s];if(s in _)return _[s]}});const c=globalThis.process?.release?.name===\"node\",O=!!globalThis.Bun||!!globalThis.process?.versions?.bun,D=!!globalThis.Deno,L=!!globalThis.fastly,S=!!globalThis.Netlify,u=!!globalThis.EdgeRuntime,N=globalThis.navigator?.userAgent===\"Cloudflare-Workers\",F=[[S,\"netlify\"],[u,\"edge-light\"],[N,\"workerd\"],[L,\"fastly\"],[D,\"deno\"],[O,\"bun\"],[c,\"node\"]];function G(){const e=F.find(s=>s[0]);if(e)return {name:e[1]}}const P=G();P?.name||\"\";\n\nfunction ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n\nconst regex = ansiRegex();\n\nfunction stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n\n// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2630 && x <= 0x2637\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x >= 0x268A && x <= 0x268F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E5\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x === 0x16FF0\n\t\t|| x === 0x16FF1\n\t\t|| x >= 0x17000 && x <= 0x187F7\n\t\t|| x >= 0x18800 && x <= 0x18CD5\n\t\t|| x >= 0x18CFF && x <= 0x18D08\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x >= 0x1D300 && x <= 0x1D356\n\t\t|| x >= 0x1D360 && x <= 0x1D376\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D7\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA89\n\t\t|| x >= 0x1FA8F && x <= 0x1FAC6\n\t\t|| x >= 0x1FACE && x <= 0x1FADC\n\t\t|| x >= 0x1FADF && x <= 0x1FAE9\n\t\t|| x >= 0x1FAF0 && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nfunction eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\nconst emojiRegex = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n\nconst segmenter = globalThis.Intl?.Segmenter ? new Intl.Segmenter() : { segment: (str) => str.split('') };\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nfunction stringWidth$1(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n\nfunction isUnicodeSupported() {\n\tconst {env} = g$1;\n\tconst {TERM, TERM_PROGRAM} = env;\n\n\tif (g$1.platform !== 'win32') {\n\t\treturn TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| TERM_PROGRAM === 'vscode'\n\t\t|| TERM === 'xterm-256color'\n\t\t|| TERM === 'alacritty'\n\t\t|| TERM === 'rxvt-unicode'\n\t\t|| TERM === 'rxvt-unicode-256color'\n\t\t|| env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n\nconst TYPE_COLOR_MAP = {\n info: \"cyan\",\n fail: \"red\",\n success: \"green\",\n ready: \"green\",\n start: \"magenta\"\n};\nconst LEVEL_COLOR_MAP = {\n 0: \"red\",\n 1: \"yellow\"\n};\nconst unicode = isUnicodeSupported();\nconst s = (c, fallback) => unicode ? c : fallback;\nconst TYPE_ICONS = {\n error: s(\"\\u2716\", \"\\xD7\"),\n fatal: s(\"\\u2716\", \"\\xD7\"),\n ready: s(\"\\u2714\", \"\\u221A\"),\n warn: s(\"\\u26A0\", \"\\u203C\"),\n info: s(\"\\u2139\", \"i\"),\n success: s(\"\\u2714\", \"\\u221A\"),\n debug: s(\"\\u2699\", \"D\"),\n trace: s(\"\\u2192\", \"\\u2192\"),\n fail: s(\"\\u2716\", \"\\xD7\"),\n start: s(\"\\u25D0\", \"o\"),\n log: \"\"\n};\nfunction stringWidth(str) {\n const hasICU = typeof Intl === \"object\";\n if (!hasICU || !Intl.Segmenter) {\n return stripAnsi$1(str).length;\n }\n return stringWidth$1(str);\n}\nclass FancyReporter extends BasicReporter {\n formatStack(stack, message, opts) {\n const indent = \" \".repeat((opts?.errorLevel || 0) + 1);\n return `\n${indent}` + parseStack(stack, message).map(\n (line) => \" \" + line.replace(/^at +/, (m) => colors.gray(m)).replace(/\\((.+)\\)/, (_, m) => `(${colors.cyan(m)})`)\n ).join(`\n${indent}`);\n }\n formatType(logObj, isBadge, opts) {\n const typeColor = TYPE_COLOR_MAP[logObj.type] || LEVEL_COLOR_MAP[logObj.level] || \"gray\";\n if (isBadge) {\n return getBgColor(typeColor)(\n colors.black(` ${logObj.type.toUpperCase()} `)\n );\n }\n const _type = typeof TYPE_ICONS[logObj.type] === \"string\" ? TYPE_ICONS[logObj.type] : logObj.icon || logObj.type;\n return _type ? getColor(typeColor)(_type) : \"\";\n }\n formatLogObj(logObj, opts) {\n const [message, ...additional] = this.formatArgs(logObj.args, opts).split(\n \"\\n\"\n );\n if (logObj.type === \"box\") {\n return box(\n characterFormat(\n message + (additional.length > 0 ? \"\\n\" + additional.join(\"\\n\") : \"\")\n ),\n {\n title: logObj.title ? characterFormat(logObj.title) : void 0,\n style: logObj.style\n }\n );\n }\n const date = this.formatDate(logObj.date, opts);\n const coloredDate = date && colors.gray(date);\n const isBadge = logObj.badge ?? logObj.level < 2;\n const type = this.formatType(logObj, isBadge, opts);\n const tag = logObj.tag ? colors.gray(logObj.tag) : \"\";\n let line;\n const left = this.filterAndJoin([type, characterFormat(message)]);\n const right = this.filterAndJoin(opts.columns ? [tag, coloredDate] : [tag]);\n const space = (opts.columns || 0) - stringWidth(left) - stringWidth(right) - 2;\n line = space > 0 && (opts.columns || 0) >= 80 ? left + \" \".repeat(space) + right : (right ? `${colors.gray(`[${right}]`)} ` : \"\") + left;\n line += characterFormat(\n additional.length > 0 ? \"\\n\" + additional.join(\"\\n\") : \"\"\n );\n if (logObj.type === \"trace\") {\n const _err = new Error(\"Trace: \" + logObj.message);\n line += this.formatStack(_err.stack || \"\", _err.message);\n }\n return isBadge ? \"\\n\" + line + \"\\n\" : line;\n }\n}\nfunction characterFormat(str) {\n return str.replace(/`([^`]+)`/gm, (_, m) => colors.cyan(m)).replace(/\\s+_([^_]+)_\\s+/gm, (_, m) => ` ${colors.underline(m)} `);\n}\nfunction getColor(color = \"white\") {\n return colors[color] || colors.white;\n}\nfunction getBgColor(color = \"bgWhite\") {\n return colors[`bg${color[0].toUpperCase()}${color.slice(1)}`] || colors.bgWhite;\n}\n\nfunction createConsola(options = {}) {\n let level = _getDefaultLogLevel();\n if (process.env.CONSOLA_LEVEL) {\n level = Number.parseInt(process.env.CONSOLA_LEVEL) ?? level;\n }\n const consola2 = createConsola$1({\n level,\n defaults: { level },\n stdout: process.stdout,\n stderr: process.stderr,\n prompt: (...args) => import('./chunks/prompt.mjs').then((m) => m.prompt(...args)),\n reporters: options.reporters || [\n options.fancy ?? !(T || R) ? new FancyReporter() : new BasicReporter()\n ],\n ...options\n });\n return consola2;\n}\nfunction _getDefaultLogLevel() {\n if (g) {\n return LogLevels.debug;\n }\n if (R) {\n return LogLevels.warn;\n }\n return LogLevels.info;\n}\nconst consola = createConsola();\n\nexport { LogLevels, consola, createConsola, consola as default };\n","/**\n * Detect if running in a CI environment\n * Note: Currently exported for potential future use in plugins or extensions\n */\nexport function isCI(): boolean {\n return !!(process.env.CI || process.env.CONTINUOUS_INTEGRATION || process.env.BUILD_NUMBER || process.env.RUN_ID)\n}\n\n/**\n * Detect if running in GitHub Actions\n */\nexport function isGitHubActions(): boolean {\n return process.env.GITHUB_ACTIONS === 'true'\n}\n\n/**\n * GitHub Actions group markers\n */\nconst GITHUB_ACTIONS_GROUP_START = '::group::'\nconst GITHUB_ACTIONS_GROUP_END = '::endgroup::'\n\n/**\n * Create a collapsible group marker for GitHub Actions logs\n */\nexport function startGroup(title: string): string {\n if (isCI() && isGitHubActions()) {\n return `${GITHUB_ACTIONS_GROUP_START}${title}`\n }\n return ''\n}\n\n/**\n * End a collapsible group in GitHub Actions logs\n */\nexport function endGroup(): string {\n if (isGitHubActions()) {\n return GITHUB_ACTIONS_GROUP_END\n }\n return ''\n}\n","import { resolve } from 'node:path'\nimport type { ConsolaInstance, LogLevel } from 'consola'\nimport { createConsola } from 'consola'\nimport pc from 'picocolors'\nimport seedrandom from 'seedrandom'\nimport { write } from './fs/write.ts'\nimport { endGroup, isGitHubActions, startGroup } from './utils/ciDetection.ts'\nimport { EventEmitter } from './utils/EventEmitter.ts'\n\ntype DebugEvent = {\n date: Date\n logs: string[]\n fileName?: string\n /**\n * Category of the debug log, used for GitHub Actions grouping\n * - 'setup': Initial configuration and environment setup\n * - 'plugin': Plugin installation and execution\n * - 'hook': Plugin hook execution details\n * - 'schema': Schema parsing and generation\n * - 'file': File operations (read/write/generate)\n * - 'error': Error details and stack traces\n * - undefined: Generic logs (always inline)\n */\n category?: 'setup' | 'plugin' | 'hook' | 'schema' | 'file' | 'error'\n /**\n * Plugin name for grouping plugin-specific logs together\n */\n pluginName?: string\n /**\n * Indicates if this is the start or end of a plugin's execution\n * - 'start': Start of plugin execution group\n * - 'end': End of plugin execution group\n */\n pluginGroupMarker?: 'start' | 'end'\n}\n\ntype Events = {\n start: [message: string]\n success: [message: string]\n error: [message: string, error: Error]\n warning: [message: string]\n debug: [DebugEvent]\n verbose: [DebugEvent]\n info: [message: string]\n progress_start: [{ id: string; size: number; message?: string }]\n progressed: [{ id: string; message?: string }]\n progress_stop: [{ id: string }]\n}\n\nexport const LogMapper = {\n silent: Number.NEGATIVE_INFINITY,\n error: 0,\n warn: 1,\n info: 3,\n verbose: 4,\n debug: 5,\n} as const\n\nconst DEBUG_LOG_TITLE_MAX_LENGTH = 50 // Characters - max length for group titles\n\nexport type Logger = {\n /**\n * Optional config name to show in CLI output\n */\n name?: string\n logLevel: LogLevel\n consola?: ConsolaInstance\n on: EventEmitter<Events>['on']\n emit: EventEmitter<Events>['emit']\n writeLogs: () => Promise<void>\n}\n\ntype Props = {\n name?: string\n logLevel?: LogLevel\n consola?: ConsolaInstance\n}\n\nexport function createLogger({ logLevel = 3, name, consola: _consola }: Props = {}): Logger {\n const events = new EventEmitter<Events>()\n const startDate = Date.now()\n const cachedLogs = new Set<DebugEvent>()\n\n const consola =\n _consola ||\n createConsola({\n level: logLevel,\n formatOptions: {\n colors: true,\n date: true,\n columns: 80,\n compact: logLevel !== LogMapper.debug,\n },\n }).withTag(name ? randomCliColour(name) : '')\n\n consola?.wrapConsole()\n\n events.on('start', (message) => {\n consola.start(message)\n })\n\n events.on('success', (message) => {\n consola.success(message)\n })\n\n events.on('warning', (message) => {\n consola.warn(pc.yellow(message))\n })\n\n events.on('info', (message) => {\n consola.info(pc.yellow(message))\n })\n\n events.on('verbose', (message) => {\n if (logLevel >= LogMapper.verbose) {\n const formattedLogs = message.logs.join('\\n')\n consola.log(pc.dim(formattedLogs))\n }\n\n cachedLogs.add(message)\n })\n\n events.on('debug', (message) => {\n const fullLog = message.logs.join('\\n')\n\n if (logLevel >= LogMapper.debug) {\n // Handle plugin group markers in GitHub Actions\n if (isGitHubActions()) {\n if (message.pluginGroupMarker === 'start') {\n // Start a new plugin group\n const title = message.pluginName || 'Plugin'\n console.log(startGroup(title))\n\n return undefined // Don't log the marker itself\n }\n if (message.pluginGroupMarker === 'end') {\n // End the plugin group\n console.log(endGroup())\n\n return undefined // Don't log the marker itself\n }\n\n // For setup/file operations that aren't plugin-specific, create individual groups\n if (!message.pluginName && message.category && ['setup', 'file'].includes(message.category)) {\n const firstLine = message.logs[0] || 'Debug Details'\n const title = firstLine.length > DEBUG_LOG_TITLE_MAX_LENGTH ? `${firstLine.substring(0, DEBUG_LOG_TITLE_MAX_LENGTH)}...` : firstLine\n\n console.log(startGroup(title))\n console.log(pc.dim(fullLog))\n console.log(endGroup())\n } else {\n // Plugin-specific logs are shown inline within their plugin group\n // Non-categorized logs are shown inline\n consola.log(pc.dim(fullLog))\n }\n } else {\n // Non-CI environments - show all logs inline (except group markers)\n if (!message.pluginGroupMarker) {\n consola.log(pc.dim(fullLog))\n }\n }\n }\n\n cachedLogs.add(message)\n })\n\n events.on('error', (message, cause) => {\n const error = new Error(message || 'Something went wrong')\n error.cause = cause\n\n throw error\n })\n\n if (consola) {\n consola.level = logLevel\n }\n\n const logger: Logger = {\n name,\n logLevel,\n consola,\n on(...args) {\n return events.on(...args)\n },\n emit(...args) {\n return events.emit(...args)\n },\n async writeLogs() {\n const files: Record<string, string[]> = {}\n\n cachedLogs.forEach((log) => {\n const fileName = resolve(process.cwd(), '.kubb', log.fileName || `kubb-${startDate}.log`)\n\n if (!files[fileName]) {\n files[fileName] = []\n }\n\n if (log.logs.length) {\n files[fileName] = [...files[fileName], `[${log.date.toLocaleString()}]: \\n${log.logs.join('\\n')}`]\n }\n })\n\n await Promise.all(\n Object.entries(files).map(async ([fileName, logs]) => {\n return write(fileName, logs.join('\\n'))\n }),\n )\n },\n }\n\n return logger\n}\n\nexport function randomColour(text?: string): 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' {\n if (!text) {\n return 'white'\n }\n\n const defaultColours = ['black', 'red', 'green', 'yellow', 'blue', 'red', 'green', 'magenta', 'cyan', 'gray'] as const\n\n const random = seedrandom(text)\n const colour = defaultColours.at(Math.floor(random() * defaultColours.length)) || 'white'\n\n return colour\n}\n\nexport function randomCliColour(text?: string): string {\n if (!text) {\n return ''\n }\n\n const colour = randomColour(text)\n\n const fn = pc[colour]\n return fn ? fn(text) : text\n}\n"],"x_google_ignoreList":[1,2,3,4],"mappings":"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"}
|
|
@@ -15,13 +15,35 @@ type DebugEvent = {
|
|
|
15
15
|
date: Date;
|
|
16
16
|
logs: string[];
|
|
17
17
|
fileName?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Category of the debug log, used for GitHub Actions grouping
|
|
20
|
+
* - 'setup': Initial configuration and environment setup
|
|
21
|
+
* - 'plugin': Plugin installation and execution
|
|
22
|
+
* - 'hook': Plugin hook execution details
|
|
23
|
+
* - 'schema': Schema parsing and generation
|
|
24
|
+
* - 'file': File operations (read/write/generate)
|
|
25
|
+
* - 'error': Error details and stack traces
|
|
26
|
+
* - undefined: Generic logs (always inline)
|
|
27
|
+
*/
|
|
28
|
+
category?: 'setup' | 'plugin' | 'hook' | 'schema' | 'file' | 'error';
|
|
29
|
+
/**
|
|
30
|
+
* Plugin name for grouping plugin-specific logs together
|
|
31
|
+
*/
|
|
32
|
+
pluginName?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Indicates if this is the start or end of a plugin's execution
|
|
35
|
+
* - 'start': Start of plugin execution group
|
|
36
|
+
* - 'end': End of plugin execution group
|
|
37
|
+
*/
|
|
38
|
+
pluginGroupMarker?: 'start' | 'end';
|
|
18
39
|
};
|
|
19
40
|
type Events = {
|
|
20
41
|
start: [message: string];
|
|
21
42
|
success: [message: string];
|
|
22
|
-
error: [message: string,
|
|
43
|
+
error: [message: string, error: Error];
|
|
23
44
|
warning: [message: string];
|
|
24
45
|
debug: [DebugEvent];
|
|
46
|
+
verbose: [DebugEvent];
|
|
25
47
|
info: [message: string];
|
|
26
48
|
progress_start: [{
|
|
27
49
|
id: string;
|
|
@@ -38,8 +60,11 @@ type Events = {
|
|
|
38
60
|
};
|
|
39
61
|
declare const LogMapper: {
|
|
40
62
|
readonly silent: number;
|
|
63
|
+
readonly error: 0;
|
|
64
|
+
readonly warn: 1;
|
|
41
65
|
readonly info: 3;
|
|
42
|
-
readonly
|
|
66
|
+
readonly verbose: 4;
|
|
67
|
+
readonly debug: 5;
|
|
43
68
|
};
|
|
44
69
|
type Logger = {
|
|
45
70
|
/**
|
|
@@ -50,7 +75,7 @@ type Logger = {
|
|
|
50
75
|
consola?: ConsolaInstance;
|
|
51
76
|
on: EventEmitter<Events>['on'];
|
|
52
77
|
emit: EventEmitter<Events>['emit'];
|
|
53
|
-
writeLogs: () => Promise<
|
|
78
|
+
writeLogs: () => Promise<void>;
|
|
54
79
|
};
|
|
55
80
|
type Props = {
|
|
56
81
|
name?: string;
|
|
@@ -66,4 +91,4 @@ declare function randomColour(text?: string): 'black' | 'red' | 'green' | 'yello
|
|
|
66
91
|
declare function randomCliColour(text?: string): string;
|
|
67
92
|
//#endregion
|
|
68
93
|
export { randomColour as a, randomCliColour as i, Logger as n, EventEmitter as o, createLogger as r, LogMapper as t };
|
|
69
|
-
//# sourceMappingURL=logger-
|
|
94
|
+
//# sourceMappingURL=logger-mq06Cxxv.d.cts.map
|
|
@@ -15,13 +15,35 @@ type DebugEvent = {
|
|
|
15
15
|
date: Date;
|
|
16
16
|
logs: string[];
|
|
17
17
|
fileName?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Category of the debug log, used for GitHub Actions grouping
|
|
20
|
+
* - 'setup': Initial configuration and environment setup
|
|
21
|
+
* - 'plugin': Plugin installation and execution
|
|
22
|
+
* - 'hook': Plugin hook execution details
|
|
23
|
+
* - 'schema': Schema parsing and generation
|
|
24
|
+
* - 'file': File operations (read/write/generate)
|
|
25
|
+
* - 'error': Error details and stack traces
|
|
26
|
+
* - undefined: Generic logs (always inline)
|
|
27
|
+
*/
|
|
28
|
+
category?: 'setup' | 'plugin' | 'hook' | 'schema' | 'file' | 'error';
|
|
29
|
+
/**
|
|
30
|
+
* Plugin name for grouping plugin-specific logs together
|
|
31
|
+
*/
|
|
32
|
+
pluginName?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Indicates if this is the start or end of a plugin's execution
|
|
35
|
+
* - 'start': Start of plugin execution group
|
|
36
|
+
* - 'end': End of plugin execution group
|
|
37
|
+
*/
|
|
38
|
+
pluginGroupMarker?: 'start' | 'end';
|
|
18
39
|
};
|
|
19
40
|
type Events = {
|
|
20
41
|
start: [message: string];
|
|
21
42
|
success: [message: string];
|
|
22
|
-
error: [message: string,
|
|
43
|
+
error: [message: string, error: Error];
|
|
23
44
|
warning: [message: string];
|
|
24
45
|
debug: [DebugEvent];
|
|
46
|
+
verbose: [DebugEvent];
|
|
25
47
|
info: [message: string];
|
|
26
48
|
progress_start: [{
|
|
27
49
|
id: string;
|
|
@@ -38,8 +60,11 @@ type Events = {
|
|
|
38
60
|
};
|
|
39
61
|
declare const LogMapper: {
|
|
40
62
|
readonly silent: number;
|
|
63
|
+
readonly error: 0;
|
|
64
|
+
readonly warn: 1;
|
|
41
65
|
readonly info: 3;
|
|
42
|
-
readonly
|
|
66
|
+
readonly verbose: 4;
|
|
67
|
+
readonly debug: 5;
|
|
43
68
|
};
|
|
44
69
|
type Logger = {
|
|
45
70
|
/**
|
|
@@ -50,7 +75,7 @@ type Logger = {
|
|
|
50
75
|
consola?: ConsolaInstance;
|
|
51
76
|
on: EventEmitter<Events>['on'];
|
|
52
77
|
emit: EventEmitter<Events>['emit'];
|
|
53
|
-
writeLogs: () => Promise<
|
|
78
|
+
writeLogs: () => Promise<void>;
|
|
54
79
|
};
|
|
55
80
|
type Props = {
|
|
56
81
|
name?: string;
|
|
@@ -66,4 +91,4 @@ declare function randomColour(text?: string): 'black' | 'red' | 'green' | 'yello
|
|
|
66
91
|
declare function randomCliColour(text?: string): string;
|
|
67
92
|
//#endregion
|
|
68
93
|
export { randomColour as a, randomCliColour as i, Logger as n, EventEmitter as o, createLogger as r, LogMapper as t };
|
|
69
|
-
//# sourceMappingURL=logger-
|
|
94
|
+
//# sourceMappingURL=logger-o16AyvGp.d.ts.map
|
package/dist/logger.cjs
CHANGED
package/dist/logger.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as randomColour, i as randomCliColour, n as Logger, r as createLogger, t as LogMapper } from "./logger-
|
|
1
|
+
import { a as randomColour, i as randomCliColour, n as Logger, r as createLogger, t as LogMapper } from "./logger-mq06Cxxv.cjs";
|
|
2
2
|
export { LogMapper, Logger, createLogger, randomCliColour, randomColour };
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as randomColour, i as randomCliColour, n as Logger, r as createLogger, t as LogMapper } from "./logger-
|
|
1
|
+
import { a as randomColour, i as randomCliColour, n as Logger, r as createLogger, t as LogMapper } from "./logger-o16AyvGp.js";
|
|
2
2
|
export { LogMapper, Logger, createLogger, randomCliColour, randomColour };
|
package/dist/logger.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as randomColour, n as createLogger, r as randomCliColour, t as LogMapper } from "./logger-
|
|
1
|
+
import { i as randomColour, n as createLogger, r as randomCliColour, t as LogMapper } from "./logger-CQn6sdC0.js";
|
|
2
2
|
|
|
3
3
|
export { LogMapper, createLogger, randomCliColour, randomColour };
|