colorino 0.15.0 → 0.15.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/cdn.js +9 -7
- package/dist/cdn.js.map +1 -1
- package/dist/cdn.min.js +1 -1
- package/dist/cdn.min.js.map +1 -1
- package/dist/node.cjs +2 -2
- package/dist/node.mjs +2 -2
- package/package.json +1 -1
package/dist/cdn.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(
|
|
3
|
-
typeof define === 'function' && define.amd ? define(
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self,
|
|
5
|
-
})(this, (function (
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.colorino = factory());
|
|
5
|
+
})(this, (function () { 'use strict';
|
|
6
6
|
|
|
7
7
|
const ColorinoBrowserColorized = Symbol("colorino.browserColorized");
|
|
8
8
|
const ColorinoBrowserObject = Symbol("colorino.browserObject");
|
|
@@ -926,9 +926,11 @@ ${arg}` : arg
|
|
|
926
926
|
}
|
|
927
927
|
const colorino = createColorino();
|
|
928
928
|
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
929
|
+
const colorinoUmdGlobal = colorino;
|
|
930
|
+
colorinoUmdGlobal.createColorino = createColorino;
|
|
931
|
+
colorinoUmdGlobal.themePalettes = themePalettes;
|
|
932
|
+
|
|
933
|
+
return colorinoUmdGlobal;
|
|
932
934
|
|
|
933
935
|
}));
|
|
934
936
|
//# sourceMappingURL=cdn.js.map
|
package/dist/cdn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn.js","sources":["../src/types.ts","../src/enums.ts","../src/type-validator.ts","../src/abstract-colorino.ts","../src/colorino-browser.ts","../src/browser-color-support-detector.ts","../node_modules/neverthrow/dist/index.es.js","../src/errors.ts","../src/input-validator.ts","../src/palettes.ts","../src/theme.ts","../src/determine-base-theme.ts","../src/browser.ts"],"sourcesContent":["export type ConsoleMethod =\n | 'log'\n | 'info'\n | 'warn'\n | 'error'\n | 'trace'\n | 'debug'\nexport type LogLevel = ConsoleMethod & string\n\nexport type RgbColor = [number, number, number]\nexport type HslColor = [number, number, number]\nexport type RgbaColor = [number, number, number, number]\n\nexport type Palette = Record<LogLevel, string>\nexport type TerminalTheme = 'dark' | 'light' | 'unknown'\n\nexport type ThemeName =\n | 'catppuccin-mocha'\n | 'catppuccin-latte'\n | 'dracula'\n | 'github-light'\n\nexport const ColorinoBrowserColorized = Symbol('colorino.browserColorized')\nexport const ColorinoBrowserObject = Symbol('colorino.browserObject')\nexport const ColorinoBrowserCss = Symbol('colorino.browserCss')\n\nexport type CssConsoleStyle = string | Record<string, string>\n\nexport interface BrowserCssArg {\n [ColorinoBrowserCss]: true\n text: string\n css: string\n}\n\nexport type BrowserColorizedArg = {\n [ColorinoBrowserColorized]: true\n text: string\n hex: string\n}\n\nexport type BrowserObjectArg = {\n [ColorinoBrowserObject]: true\n value: unknown\n}\n","export enum ColorLevel {\n NO_COLOR = 0,\n ANSI = 1,\n ANSI256 = 2,\n TRUECOLOR = 3,\n}\n","import {\n BrowserColorizedArg,\n BrowserCssArg,\n BrowserObjectArg,\n ColorinoBrowserColorized,\n ColorinoBrowserCss,\n ColorinoBrowserObject,\n ConsoleMethod,\n} from './types.js'\n\nexport class TypeValidator {\n static isNull(value: unknown): value is null {\n return value === null\n }\n\n static isUndefined(value: unknown): value is undefined {\n return value === undefined\n }\n\n static isNullOrUndefined(value: unknown): value is null | undefined {\n return value == null\n }\n\n static isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n }\n\n static isString(value: unknown): value is string | string {\n return typeof value === 'string' || value instanceof String\n }\n\n static isArray(value: unknown): value is unknown[] {\n return Array.isArray(value)\n }\n\n static isError(value: unknown): value is Error {\n return value instanceof Error\n }\n\n static isBrowserColorizedArg(value: unknown): value is BrowserColorizedArg {\n return TypeValidator.isObject(value) && ColorinoBrowserColorized in value\n }\n\n static isBrowserCssArg(value: unknown): value is BrowserCssArg {\n return (\n typeof value === 'object' &&\n value !== null &&\n ColorinoBrowserCss in value &&\n (value as BrowserCssArg)[ColorinoBrowserCss] === true\n )\n }\n\n static isBrowserObjectArg(value: unknown): value is BrowserObjectArg {\n return TypeValidator.isObject(value) && ColorinoBrowserObject in value\n }\n\n static isAnsiColoredString(value: unknown): value is string {\n // eslint-disable\n return (\n TypeValidator.isString(value) && /\\x1b\\[[0-9;]*m/.test(value.toString())\n )\n }\n\n static isFormattableObject(value: unknown): value is Record<string, unknown> {\n return (\n TypeValidator.isObject(value) &&\n !TypeValidator.isError(value) &&\n !TypeValidator.isBrowserColorizedArg(value) &&\n !TypeValidator.isString(value) // Treat String objects as strings, not general objects\n )\n }\n\n static isConsoleMethod(level: string): level is ConsoleMethod {\n return ['log', 'info', 'warn', 'error', 'trace', 'debug'].includes(level)\n }\n}\n","import {\n type Palette,\n type LogLevel,\n ConsoleMethod,\n ColorinoBrowserColorized,\n BrowserColorizedArg,\n} from './types.js'\nimport { type ColorinoOptions } from './interfaces.js'\nimport { InputValidator } from './input-validator.js'\nimport { ColorLevel } from './enums.js'\nimport { TypeValidator } from './type-validator.js'\n\nexport abstract class AbstractColorino {\n protected _alreadyWarned = false\n protected _colorLevel: ColorLevel | 'UnknownEnv'\n protected _palette: Palette\n\n protected constructor(\n initialPalette: Palette,\n protected readonly _userPalette: Partial<Palette>,\n protected readonly _validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n protected readonly _options: ColorinoOptions = {}\n ) {\n this._palette = initialPalette\n\n const validatePaletteResult = this._validator.validatePalette(this._palette)\n if (validatePaletteResult.isErr()) throw validatePaletteResult.error\n\n this._colorLevel = colorLevel\n }\n log(...args: unknown[]): void {\n this._out('log', args)\n }\n info(...args: unknown[]): void {\n this._out('info', args)\n }\n warn(...args: unknown[]): void {\n this._out('warn', args)\n }\n error(...args: unknown[]): void {\n this._out('error', args)\n }\n trace(...args: unknown[]): void {\n this._out('trace', args)\n }\n debug(...args: unknown[]): void {\n this._out('debug', args)\n }\n\n colorize(text: string, hex: string): string | BrowserColorizedArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n if (this.isBrowser()) {\n return {\n [ColorinoBrowserColorized]: true,\n text,\n hex,\n }\n }\n\n const ansiPrefix = this._toAnsiPrefix(hex)\n if (!ansiPrefix) {\n return text\n }\n\n return `${ansiPrefix}${text}\\x1b[0m`\n }\n\n private _out(level: LogLevel, args: unknown[]): void {\n const consoleMethod = TypeValidator.isConsoleMethod(level) ? level : 'log'\n const processedArgs = this._processArgs(args)\n\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n this._output(consoleMethod, processedArgs)\n return\n }\n\n const coloredArgs = this._applyColors(consoleMethod, processedArgs)\n this._output(consoleMethod, coloredArgs)\n }\n protected abstract _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[]\n protected abstract _output(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): void\n protected abstract _processArgs(args: unknown[]): unknown[]\n protected abstract isBrowser(): boolean\n\n protected _toAnsiPrefix(_hex: string): string {\n return ''\n }\n\n protected _formatValue(\n value: unknown,\n maxDepth = this._options.maxDepth ?? 5\n ): string {\n const seen = new WeakSet<object>()\n\n const sanitizeArray = (items: unknown[], depth: number): unknown[] => {\n return items.map(item => sanitize(item, depth))\n }\n\n const sanitizeObject = (\n obj: Record<string, unknown>,\n depth: number\n ): Record<string, unknown> => {\n const result: Record<string, unknown> = {}\n for (const key in obj) {\n result[key] = sanitize(obj[key], depth)\n }\n return result\n }\n\n const sanitize = (val: unknown, currentDepth: number): unknown => {\n if (\n TypeValidator.isNullOrUndefined(val) ||\n !TypeValidator.isObject(val)\n ) {\n return val\n }\n\n if (seen.has(val)) return '[Circular]'\n seen.add(val)\n\n if (currentDepth >= maxDepth) return '[Object]'\n\n const nextDepth = currentDepth + 1\n\n if (TypeValidator.isArray(val)) {\n return sanitizeArray(val as unknown[], nextDepth)\n }\n\n return sanitizeObject(val as Record<string, unknown>, nextDepth)\n }\n\n return JSON.stringify(sanitize(value, 0), null, 2)\n }\n\n protected _filterStack(stack: string): string {\n return stack\n .split('\\n')\n .filter(line => !line.match(/.*colorino.*/gi))\n .join('\\n')\n }\n\n protected _cleanErrorStack(error: Error): Error {\n if (!error.stack) return error\n\n const cleanStack = this._filterStack(error.stack)\n\n const cloned = Object.create(Object.getPrototypeOf(error)) as Error\n Object.assign(cloned, error)\n cloned.stack = cleanStack\n\n return cloned\n }\n\n protected _printCleanTrace(args: unknown[]): void {\n const error = new Error()\n\n if (error.stack) {\n const cleanStack = this._filterStack(error.stack)\n console.log(...args, `\\n${cleanStack}`)\n } else {\n console.log(...args)\n }\n }\n}\n","import { AbstractColorino } from './abstract-colorino.js'\nimport { ColorLevel } from './enums.js'\nimport {\n ConsoleMethod,\n ColorinoBrowserObject,\n Palette,\n BrowserCssArg,\n CssConsoleStyle,\n ColorinoBrowserCss,\n} from './types.js'\nimport { ColorinoBrowserInterface, ColorinoOptions } from './interfaces.js'\nimport { TypeValidator } from './type-validator.js'\nimport { InputValidator } from './input-validator.js'\n\nexport class ColorinoBrowser\n extends AbstractColorino\n implements ColorinoBrowserInterface\n{\n constructor(\n initialPalette: Palette,\n userPalette: Partial<Palette>,\n validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n options: ColorinoOptions = {}\n ) {\n super(initialPalette, userPalette, validator, colorLevel, options)\n }\n\n public css(text: string, style: CssConsoleStyle): string | BrowserCssArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n const css = this._normalizeCssStyle(style)\n\n return {\n [ColorinoBrowserCss]: true,\n text,\n css,\n }\n }\n\n protected _normalizeCssStyle(style: CssConsoleStyle): string {\n if (TypeValidator.isString(style)) return style\n\n const parts: string[] = []\n\n for (const propertyName in style) {\n if (!Object.prototype.hasOwnProperty.call(style, propertyName)) {\n continue\n }\n\n const value = style[propertyName]\n if (!value) continue\n\n parts.push(`${propertyName}:${value}`)\n }\n\n return parts.join(';')\n }\n\n protected _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[] {\n const formatParts: string[] = []\n const formatArgs: unknown[] = []\n\n const paletteHex = this._palette[consoleMethod]\n\n for (const arg of args) {\n if (TypeValidator.isBrowserColorizedArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(`color:${arg.hex}`)\n continue\n }\n\n if (TypeValidator.isBrowserCssArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(arg.css)\n continue\n }\n\n if (TypeValidator.isBrowserObjectArg(arg)) {\n formatParts.push('%o')\n formatArgs.push(arg.value)\n continue\n }\n\n if (TypeValidator.isString(arg)) {\n formatParts.push(`%c${arg}`)\n formatArgs.push(`color:${paletteHex}`)\n continue\n }\n\n // Fallback: non-string, non-wrapper → log as object\n formatParts.push('%o')\n formatArgs.push(arg)\n }\n\n if (formatParts.length === 0) return args\n\n return [formatParts.join(''), ...formatArgs]\n }\n\n protected _output(consoleMethod: ConsoleMethod, args: unknown[]): void {\n console[consoleMethod](...args)\n }\n\n protected _processArgs(args: unknown[]): unknown[] {\n const processedArgs: unknown[] = []\n let previousWasObject = false\n\n for (const arg of args) {\n if (\n TypeValidator.isBrowserColorizedArg(arg) ||\n TypeValidator.isBrowserCssArg(arg)\n ) {\n processedArgs.push(arg)\n\n previousWasObject = false\n continue\n }\n\n if (TypeValidator.isFormattableObject(arg)) {\n processedArgs.push({\n [ColorinoBrowserObject]: true,\n value: arg,\n })\n\n previousWasObject = true\n } else if (TypeValidator.isError(arg)) {\n processedArgs.push('\\n', this._cleanErrorStack(arg))\n\n previousWasObject = true\n } else {\n processedArgs.push(\n TypeValidator.isString(arg) && previousWasObject ? `\\n${arg}` : arg\n )\n\n previousWasObject = false\n }\n }\n\n return processedArgs\n }\n\n protected isBrowser(): boolean {\n return true\n }\n}\n","import type { ColorSupportDetectorInterface } from './interfaces.js'\nimport { ColorLevel } from './enums.js'\nimport type { TerminalTheme } from './types.js'\n\nexport class BrowserColorSupportDetector implements ColorSupportDetectorInterface {\n constructor(\n private readonly _window:\n | {\n document: HTMLDocument\n matchMedia(arg0: string): { matches: unknown }\n }\n | undefined,\n private readonly _navigator: { userAgent: string } | undefined,\n private readonly _overrideTheme?: TerminalTheme\n ) {}\n\n isBrowserEnv(): boolean {\n return !!this._window && !!this._navigator?.userAgent\n }\n\n getColorLevel(): ColorLevel {\n const isTruecolor = window.matchMedia('(color-gamut: p3)').matches\n if (isTruecolor) {\n return ColorLevel.TRUECOLOR\n }\n\n const isAnsi256 = window.matchMedia('(monochrome: 0)').matches\n if (isAnsi256) {\n return ColorLevel.ANSI256\n }\n\n // Default to basic ANSI\n return ColorLevel.ANSI\n }\n\n getTheme(): TerminalTheme {\n if (this._overrideTheme) {\n return this._overrideTheme\n }\n\n if (\n !this.isBrowserEnv() ||\n typeof this._window!.matchMedia !== 'function'\n ) {\n return 'unknown'\n }\n\n const isDarkTheme = this._window!.matchMedia(\n '(prefers-color-scheme: dark)'\n ).matches\n if (isDarkTheme) {\n return 'dark'\n }\n\n const isLightTheme = '(prefers-color-scheme: light)'\n if (this._window!.matchMedia(isLightTheme).matches) {\n return 'light'\n }\n\n return 'unknown'\n }\n}\n","const defaultErrorConfig = {\r\n withStackTrace: false,\r\n};\r\n// Custom error object\r\n// Context / discussion: https://github.com/supermacro/neverthrow/pull/215\r\nconst createNeverThrowError = (message, result, config = defaultErrorConfig) => {\r\n const data = result.isOk()\r\n ? { type: 'Ok', value: result.value }\r\n : { type: 'Err', value: result.error };\r\n const maybeStack = config.withStackTrace ? new Error().stack : undefined;\r\n return {\r\n data,\r\n message,\r\n stack: maybeStack,\r\n };\r\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass ResultAsync {\r\n constructor(res) {\r\n this._promise = res;\r\n }\r\n static fromSafePromise(promise) {\r\n const newPromise = promise.then((value) => new Ok(value));\r\n return new ResultAsync(newPromise);\r\n }\r\n static fromPromise(promise, errorFn) {\r\n const newPromise = promise\r\n .then((value) => new Ok(value))\r\n .catch((e) => new Err(errorFn(e)));\r\n return new ResultAsync(newPromise);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n return new ResultAsync((() => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return new Ok(yield fn(...args));\r\n }\r\n catch (error) {\r\n return new Err(errorFn ? errorFn(error) : error);\r\n }\r\n }))());\r\n };\r\n }\r\n static combine(asyncResultList) {\r\n return combineResultAsyncList(asyncResultList);\r\n }\r\n static combineWithAllErrors(asyncResultList) {\r\n return combineResultAsyncListWithAllErrors(asyncResultList);\r\n }\r\n map(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n return new Ok(yield f(res.value));\r\n })));\r\n }\r\n andThrough(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newRes = yield f(res.value);\r\n if (newRes.isErr()) {\r\n return new Err(newRes.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n andTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n try {\r\n yield f(res.value);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n orTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n try {\r\n yield f(res.error);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Err(res.error);\r\n })));\r\n }\r\n mapErr(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n return new Err(yield f(res.error));\r\n })));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return new ResultAsync(this._promise.then((res) => {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newValue = f(res.value);\r\n return newValue instanceof ResultAsync ? newValue._promise : newValue;\r\n }));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return f(res.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n match(ok, _err) {\r\n return this._promise.then((res) => res.match(ok, _err));\r\n }\r\n unwrapOr(t) {\r\n return this._promise.then((res) => res.unwrapOr(t));\r\n }\r\n /**\r\n * @deprecated will be removed in 9.0.0.\r\n *\r\n * You can use `safeTry` without this method.\r\n * @example\r\n * ```typescript\r\n * safeTry(async function* () {\r\n * const okValue = yield* yourResult\r\n * })\r\n * ```\r\n * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.\r\n */\r\n safeUnwrap() {\r\n return __asyncGenerator(this, arguments, function* safeUnwrap_1() {\r\n return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(yield __await(this._promise.then((res) => res.safeUnwrap()))))));\r\n });\r\n }\r\n // Makes ResultAsync implement PromiseLike<Result>\r\n then(successCallback, failureCallback) {\r\n return this._promise.then(successCallback, failureCallback);\r\n }\r\n [Symbol.asyncIterator]() {\r\n return __asyncGenerator(this, arguments, function* _a() {\r\n const result = yield __await(this._promise);\r\n if (result.isErr()) {\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield yield __await(errAsync(result.error));\r\n }\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return yield __await(result.value);\r\n });\r\n }\r\n}\r\nfunction okAsync(value) {\r\n return new ResultAsync(Promise.resolve(new Ok(value)));\r\n}\r\nfunction errAsync(err) {\r\n return new ResultAsync(Promise.resolve(new Err(err)));\r\n}\r\nconst fromPromise = ResultAsync.fromPromise;\r\nconst fromSafePromise = ResultAsync.fromSafePromise;\r\nconst fromAsyncThrowable = ResultAsync.fromThrowable;\n\n/**\r\n * Short circuits on the FIRST Err value that we find\r\n */\r\nconst combineResultList = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr()) {\r\n acc = err(result.error);\r\n break;\r\n }\r\n else {\r\n acc.map((list) => list.push(result.value));\r\n }\r\n }\r\n return acc;\r\n};\r\n/* This is the typesafe version of Promise.all\r\n *\r\n * Takes a list of ResultAsync<T, E> and success if all inner results are Ok values\r\n * or fails if one (or more) of the inner results are Err values\r\n */\r\nconst combineResultAsyncList = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultList);\r\n/**\r\n * Give a list of all the errors we find\r\n */\r\nconst combineResultListWithAllErrors = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr() && acc.isErr()) {\r\n acc.error.push(result.error);\r\n }\r\n else if (result.isErr() && acc.isOk()) {\r\n acc = err([result.error]);\r\n }\r\n else if (result.isOk() && acc.isOk()) {\r\n acc.value.push(result.value);\r\n }\r\n // do nothing when result.isOk() && acc.isErr()\r\n }\r\n return acc;\r\n};\r\nconst combineResultAsyncListWithAllErrors = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultListWithAllErrors);\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nvar Result;\r\n(function (Result) {\r\n /**\r\n * Wraps a function with a try catch, creating a new function with the same\r\n * arguments but returning `Ok` if successful, `Err` if the function throws\r\n *\r\n * @param fn function to wrap with ok on success or err on failure\r\n * @param errorFn when an error is thrown, this will wrap the error result if provided\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n try {\r\n const result = fn(...args);\r\n return ok(result);\r\n }\r\n catch (e) {\r\n return err(errorFn ? errorFn(e) : e);\r\n }\r\n };\r\n }\r\n Result.fromThrowable = fromThrowable;\r\n function combine(resultList) {\r\n return combineResultList(resultList);\r\n }\r\n Result.combine = combine;\r\n function combineWithAllErrors(resultList) {\r\n return combineResultListWithAllErrors(resultList);\r\n }\r\n Result.combineWithAllErrors = combineWithAllErrors;\r\n})(Result || (Result = {}));\r\nfunction ok(value) {\r\n return new Ok(value);\r\n}\r\nfunction err(err) {\r\n return new Err(err);\r\n}\r\nfunction safeTry(body) {\r\n const n = body().next();\r\n if (n instanceof Promise) {\r\n return new ResultAsync(n.then((r) => r.value));\r\n }\r\n return n.value;\r\n}\r\nclass Ok {\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n isOk() {\r\n return true;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n map(f) {\r\n return ok(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n mapErr(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThrough(f) {\r\n return f(this.value).map((_value) => this.value);\r\n }\r\n andTee(f) {\r\n try {\r\n f(this.value);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return ok(this.value);\r\n }\r\n orTee(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(_f) {\r\n return ok(this.value);\r\n }\r\n asyncAndThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n asyncAndThrough(f) {\r\n return f(this.value).map(() => this.value);\r\n }\r\n asyncMap(f) {\r\n return ResultAsync.fromSafePromise(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unwrapOr(_v) {\r\n return this.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n match(ok, _err) {\r\n return ok(this.value);\r\n }\r\n safeUnwrap() {\r\n const value = this.value;\r\n /* eslint-disable-next-line require-yield */\r\n return (function* () {\r\n return value;\r\n })();\r\n }\r\n _unsafeUnwrap(_) {\r\n return this.value;\r\n }\r\n _unsafeUnwrapErr(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrapErr` on an Ok', this, config);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias, require-yield\r\n *[Symbol.iterator]() {\r\n return this.value;\r\n }\r\n}\r\nclass Err {\r\n constructor(error) {\r\n this.error = error;\r\n }\r\n isOk() {\r\n return false;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n map(_f) {\r\n return err(this.error);\r\n }\r\n mapErr(f) {\r\n return err(f(this.error));\r\n }\r\n andThrough(_f) {\r\n return err(this.error);\r\n }\r\n andTee(_f) {\r\n return err(this.error);\r\n }\r\n orTee(f) {\r\n try {\r\n f(this.error);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(_f) {\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return f(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncAndThen(_f) {\r\n return errAsync(this.error);\r\n }\r\n asyncAndThrough(_f) {\r\n return errAsync(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncMap(_f) {\r\n return errAsync(this.error);\r\n }\r\n unwrapOr(v) {\r\n return v;\r\n }\r\n match(_ok, err) {\r\n return err(this.error);\r\n }\r\n safeUnwrap() {\r\n const error = this.error;\r\n return (function* () {\r\n yield err(error);\r\n throw new Error('Do not use this generator out of `safeTry`');\r\n })();\r\n }\r\n _unsafeUnwrap(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrap` on an Err', this, config);\r\n }\r\n _unsafeUnwrapErr(_) {\r\n return this.error;\r\n }\r\n *[Symbol.iterator]() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self = this;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield self;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return self;\r\n }\r\n}\r\nconst fromThrowable = Result.fromThrowable;\r\n//#endregion\n\nexport { Err, Ok, Result, ResultAsync, err, errAsync, fromAsyncThrowable, fromPromise, fromSafePromise, fromThrowable, ok, okAsync, safeTry };\n","export class InputValidationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'InputValidationError'\n Object.setPrototypeOf(this, InputValidationError.prototype)\n }\n}\n","import { ok, err, Result } from 'neverthrow'\nimport { InputValidationError } from './errors.js'\nimport type { Palette } from './types.js'\n\nexport class InputValidator {\n validateHex(hex: string): Result<boolean, InputValidationError> {\n const trimmedHex = hex.trim()\n const isHexValid = /^#[0-9A-F]{6}$/i.test(trimmedHex)\n if (!isHexValid) {\n return err(new InputValidationError(`Invalid hex color: '${hex}'`))\n }\n return ok(true)\n }\n\n validatePalette(palette: Palette): Result<boolean, InputValidationError> {\n for (const level in palette) {\n const hex = palette[level as keyof Palette]\n const result = this.validateHex(hex)\n if (result.isErr()) {\n return err(result.error)\n }\n }\n return ok(true)\n }\n}\n","import { type Palette } from './types.js'\n\n// Low-contrast palette for dark backgrounds (light text)\nexport const catppuccinMochaPalette: Palette = {\n log: '#cdd6f4', // Text\n info: '#89b4fa', // Blue\n warn: '#f9e2af', // Yellow\n error: '#f38ba8', // Red\n debug: '#a6adc8', // Subtext0\n trace: '#9399b2', // Subtext1\n}\n\n// Low-contrast palette for light backgrounds (dark text)\nexport const catppuccinLattePalette: Palette = {\n log: '#4c4f69', // Text\n info: '#1e66f5', // Blue\n warn: '#df8e1d', // Yellow\n error: '#d20f39', // Red\n debug: '#7c7f93', // Subtext0\n trace: '#8c8fa1', // Subtext1\n}\n\n// High-contrast palette for dark backgrounds (light text)\nexport const draculaPalette: Palette = {\n log: '#f8f8f2', // Foreground\n info: '#8be9fd', // Cyan\n warn: '#f1fa8c', // Yellow\n error: '#ff5555', // Red\n debug: '#bd93f9', // Purple\n trace: '#6272a4', // Comment\n}\n\n// High-contrast palette for light backgrounds (dark text)\nexport const githubLightPalette: Palette = {\n log: '#24292e', // Text\n info: '#0366d6', // Blue\n warn: '#f9a002', // Yellow\n error: '#d73a49', // Red\n debug: '#586069', // Gray\n trace: '#6a737d', // Gray-light\n}\n","import {\n catppuccinMochaPalette,\n catppuccinLattePalette,\n draculaPalette,\n githubLightPalette,\n} from './palettes.js'\nimport type { Palette, ThemeName } from './types.js'\n\nexport const themePalettes: Record<ThemeName, Palette> = {\n 'catppuccin-mocha': catppuccinMochaPalette,\n 'catppuccin-latte': catppuccinLattePalette,\n dracula: draculaPalette,\n 'github-light': githubLightPalette,\n}\n\nexport const defaultDarkTheme: ThemeName = 'dracula'\nexport const defaultLightTheme: ThemeName = 'github-light'\n\nexport function isThemeName(theme: string): theme is ThemeName {\n return theme in themePalettes\n}\n","import { defaultLightTheme, defaultDarkTheme, isThemeName } from './theme.js'\nimport { type ThemeName } from './types.js'\n\nexport function determineBaseTheme(\n themeOpt: string,\n detectedBrowserTheme: string\n) {\n let baseThemeName: ThemeName\n\n if (isThemeName(themeOpt)) {\n baseThemeName = themeOpt\n } else if (themeOpt === 'light') {\n baseThemeName = defaultLightTheme\n } else if (themeOpt === 'dark') {\n baseThemeName = defaultDarkTheme\n } else {\n // Fallback to 'auto' detection\n baseThemeName =\n detectedBrowserTheme === 'light' ? defaultLightTheme : defaultDarkTheme\n }\n return baseThemeName\n}\n","import { ColorinoBrowser } from './colorino-browser.js'\nimport { BrowserColorSupportDetector } from './browser-color-support-detector.js'\nimport { InputValidator } from './input-validator.js'\nimport { themePalettes } from './theme.js'\nimport { determineBaseTheme } from './determine-base-theme.js'\nimport { LogLevel, Palette, TerminalTheme, ThemeName } from './types.js'\nimport { ColorinoOptions, ColorinoBrowserInterface } from './interfaces.js'\n\nexport function createColorino(\n userPalette: Partial<Palette> = {},\n options: ColorinoOptions = {}\n): ColorinoBrowserInterface {\n const validator = new InputValidator()\n\n let detectorThemeOverride: TerminalTheme | undefined\n if (options.theme === 'dark' || options.theme === 'light') {\n detectorThemeOverride = options.theme\n }\n\n const browserDetector = new BrowserColorSupportDetector(\n window,\n navigator,\n detectorThemeOverride\n )\n\n const detectedBrowserTheme = browserDetector.getTheme()\n\n const themeOpt = options.theme ?? 'auto'\n const baseThemeName = determineBaseTheme(themeOpt, detectedBrowserTheme)\n\n const basePalette = themePalettes[baseThemeName]\n const finalPalette: Palette = { ...basePalette, ...userPalette }\n\n const colorLevel = browserDetector.isBrowserEnv()\n ? (browserDetector.getColorLevel() ?? 'UnknownEnv')\n : 'UnknownEnv'\n\n return new ColorinoBrowser(\n finalPalette,\n userPalette,\n validator,\n colorLevel,\n options\n )\n}\n\nexport type { Palette, LogLevel, ThemeName }\nexport type { ColorinoOptions, ColorinoBrowserInterface }\nexport { themePalettes }\nexport const colorino = createColorino()\n"],"names":[],"mappings":"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","x_google_ignoreList":[6]}
|
|
1
|
+
{"version":3,"file":"cdn.js","sources":["../src/types.ts","../src/enums.ts","../src/type-validator.ts","../src/abstract-colorino.ts","../src/colorino-browser.ts","../src/browser-color-support-detector.ts","../node_modules/neverthrow/dist/index.es.js","../src/errors.ts","../src/input-validator.ts","../src/palettes.ts","../src/theme.ts","../src/determine-base-theme.ts","../src/browser.ts","../src/browser-umd.ts"],"sourcesContent":["export type ConsoleMethod =\n | 'log'\n | 'info'\n | 'warn'\n | 'error'\n | 'trace'\n | 'debug'\nexport type LogLevel = ConsoleMethod & string\n\nexport type RgbColor = [number, number, number]\nexport type HslColor = [number, number, number]\nexport type RgbaColor = [number, number, number, number]\n\nexport type Palette = Record<LogLevel, string>\nexport type TerminalTheme = 'dark' | 'light' | 'unknown'\n\nexport type ThemeName =\n | 'catppuccin-mocha'\n | 'catppuccin-latte'\n | 'dracula'\n | 'github-light'\n\nexport const ColorinoBrowserColorized = Symbol('colorino.browserColorized')\nexport const ColorinoBrowserObject = Symbol('colorino.browserObject')\nexport const ColorinoBrowserCss = Symbol('colorino.browserCss')\n\nexport type CssConsoleStyle = string | Record<string, string>\n\nexport interface BrowserCssArg {\n [ColorinoBrowserCss]: true\n text: string\n css: string\n}\n\nexport type BrowserColorizedArg = {\n [ColorinoBrowserColorized]: true\n text: string\n hex: string\n}\n\nexport type BrowserObjectArg = {\n [ColorinoBrowserObject]: true\n value: unknown\n}\n","export enum ColorLevel {\n NO_COLOR = 0,\n ANSI = 1,\n ANSI256 = 2,\n TRUECOLOR = 3,\n}\n","import {\n BrowserColorizedArg,\n BrowserCssArg,\n BrowserObjectArg,\n ColorinoBrowserColorized,\n ColorinoBrowserCss,\n ColorinoBrowserObject,\n ConsoleMethod,\n} from './types.js'\n\nexport class TypeValidator {\n static isNull(value: unknown): value is null {\n return value === null\n }\n\n static isUndefined(value: unknown): value is undefined {\n return value === undefined\n }\n\n static isNullOrUndefined(value: unknown): value is null | undefined {\n return value == null\n }\n\n static isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n }\n\n static isString(value: unknown): value is string | string {\n return typeof value === 'string' || value instanceof String\n }\n\n static isArray(value: unknown): value is unknown[] {\n return Array.isArray(value)\n }\n\n static isError(value: unknown): value is Error {\n return value instanceof Error\n }\n\n static isBrowserColorizedArg(value: unknown): value is BrowserColorizedArg {\n return TypeValidator.isObject(value) && ColorinoBrowserColorized in value\n }\n\n static isBrowserCssArg(value: unknown): value is BrowserCssArg {\n return (\n typeof value === 'object' &&\n value !== null &&\n ColorinoBrowserCss in value &&\n (value as BrowserCssArg)[ColorinoBrowserCss] === true\n )\n }\n\n static isBrowserObjectArg(value: unknown): value is BrowserObjectArg {\n return TypeValidator.isObject(value) && ColorinoBrowserObject in value\n }\n\n static isAnsiColoredString(value: unknown): value is string {\n // eslint-disable\n return (\n TypeValidator.isString(value) && /\\x1b\\[[0-9;]*m/.test(value.toString())\n )\n }\n\n static isFormattableObject(value: unknown): value is Record<string, unknown> {\n return (\n TypeValidator.isObject(value) &&\n !TypeValidator.isError(value) &&\n !TypeValidator.isBrowserColorizedArg(value) &&\n !TypeValidator.isString(value) // Treat String objects as strings, not general objects\n )\n }\n\n static isConsoleMethod(level: string): level is ConsoleMethod {\n return ['log', 'info', 'warn', 'error', 'trace', 'debug'].includes(level)\n }\n}\n","import {\n type Palette,\n type LogLevel,\n ConsoleMethod,\n ColorinoBrowserColorized,\n BrowserColorizedArg,\n} from './types.js'\nimport { type ColorinoOptions } from './interfaces.js'\nimport { InputValidator } from './input-validator.js'\nimport { ColorLevel } from './enums.js'\nimport { TypeValidator } from './type-validator.js'\n\nexport abstract class AbstractColorino {\n protected _alreadyWarned = false\n protected _colorLevel: ColorLevel | 'UnknownEnv'\n protected _palette: Palette\n\n protected constructor(\n initialPalette: Palette,\n protected readonly _userPalette: Partial<Palette>,\n protected readonly _validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n protected readonly _options: ColorinoOptions = {}\n ) {\n this._palette = initialPalette\n\n const validatePaletteResult = this._validator.validatePalette(this._palette)\n if (validatePaletteResult.isErr()) throw validatePaletteResult.error\n\n this._colorLevel = colorLevel\n }\n log(...args: unknown[]): void {\n this._out('log', args)\n }\n info(...args: unknown[]): void {\n this._out('info', args)\n }\n warn(...args: unknown[]): void {\n this._out('warn', args)\n }\n error(...args: unknown[]): void {\n this._out('error', args)\n }\n trace(...args: unknown[]): void {\n this._out('trace', args)\n }\n debug(...args: unknown[]): void {\n this._out('debug', args)\n }\n\n colorize(text: string, hex: string): string | BrowserColorizedArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n if (this.isBrowser()) {\n return {\n [ColorinoBrowserColorized]: true,\n text,\n hex,\n }\n }\n\n const ansiPrefix = this._toAnsiPrefix(hex)\n if (!ansiPrefix) {\n return text\n }\n\n return `${ansiPrefix}${text}\\x1b[0m`\n }\n\n private _out(level: LogLevel, args: unknown[]): void {\n const consoleMethod = TypeValidator.isConsoleMethod(level) ? level : 'log'\n const processedArgs = this._processArgs(args)\n\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n this._output(consoleMethod, processedArgs)\n return\n }\n\n const coloredArgs = this._applyColors(consoleMethod, processedArgs)\n this._output(consoleMethod, coloredArgs)\n }\n protected abstract _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[]\n protected abstract _output(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): void\n protected abstract _processArgs(args: unknown[]): unknown[]\n protected abstract isBrowser(): boolean\n\n protected _toAnsiPrefix(_hex: string): string {\n return ''\n }\n\n protected _formatValue(\n value: unknown,\n maxDepth = this._options.maxDepth ?? 5\n ): string {\n const seen = new WeakSet<object>()\n\n const sanitizeArray = (items: unknown[], depth: number): unknown[] => {\n return items.map(item => sanitize(item, depth))\n }\n\n const sanitizeObject = (\n obj: Record<string, unknown>,\n depth: number\n ): Record<string, unknown> => {\n const result: Record<string, unknown> = {}\n for (const key in obj) {\n result[key] = sanitize(obj[key], depth)\n }\n return result\n }\n\n const sanitize = (val: unknown, currentDepth: number): unknown => {\n if (\n TypeValidator.isNullOrUndefined(val) ||\n !TypeValidator.isObject(val)\n ) {\n return val\n }\n\n if (seen.has(val)) return '[Circular]'\n seen.add(val)\n\n if (currentDepth >= maxDepth) return '[Object]'\n\n const nextDepth = currentDepth + 1\n\n if (TypeValidator.isArray(val)) {\n return sanitizeArray(val as unknown[], nextDepth)\n }\n\n return sanitizeObject(val as Record<string, unknown>, nextDepth)\n }\n\n return JSON.stringify(sanitize(value, 0), null, 2)\n }\n\n protected _filterStack(stack: string): string {\n return stack\n .split('\\n')\n .filter(line => !line.match(/.*colorino.*/gi))\n .join('\\n')\n }\n\n protected _cleanErrorStack(error: Error): Error {\n if (!error.stack) return error\n\n const cleanStack = this._filterStack(error.stack)\n\n const cloned = Object.create(Object.getPrototypeOf(error)) as Error\n Object.assign(cloned, error)\n cloned.stack = cleanStack\n\n return cloned\n }\n\n protected _printCleanTrace(args: unknown[]): void {\n const error = new Error()\n\n if (error.stack) {\n const cleanStack = this._filterStack(error.stack)\n console.log(...args, `\\n${cleanStack}`)\n } else {\n console.log(...args)\n }\n }\n}\n","import { AbstractColorino } from './abstract-colorino.js'\nimport { ColorLevel } from './enums.js'\nimport {\n ConsoleMethod,\n ColorinoBrowserObject,\n Palette,\n BrowserCssArg,\n CssConsoleStyle,\n ColorinoBrowserCss,\n} from './types.js'\nimport { ColorinoBrowserInterface, ColorinoOptions } from './interfaces.js'\nimport { TypeValidator } from './type-validator.js'\nimport { InputValidator } from './input-validator.js'\n\nexport class ColorinoBrowser\n extends AbstractColorino\n implements ColorinoBrowserInterface\n{\n constructor(\n initialPalette: Palette,\n userPalette: Partial<Palette>,\n validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n options: ColorinoOptions = {}\n ) {\n super(initialPalette, userPalette, validator, colorLevel, options)\n }\n\n public css(text: string, style: CssConsoleStyle): string | BrowserCssArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n const css = this._normalizeCssStyle(style)\n\n return {\n [ColorinoBrowserCss]: true,\n text,\n css,\n }\n }\n\n protected _normalizeCssStyle(style: CssConsoleStyle): string {\n if (TypeValidator.isString(style)) return style\n\n const parts: string[] = []\n\n for (const propertyName in style) {\n if (!Object.prototype.hasOwnProperty.call(style, propertyName)) {\n continue\n }\n\n const value = style[propertyName]\n if (!value) continue\n\n parts.push(`${propertyName}:${value}`)\n }\n\n return parts.join(';')\n }\n\n protected _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[] {\n const formatParts: string[] = []\n const formatArgs: unknown[] = []\n\n const paletteHex = this._palette[consoleMethod]\n\n for (const arg of args) {\n if (TypeValidator.isBrowserColorizedArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(`color:${arg.hex}`)\n continue\n }\n\n if (TypeValidator.isBrowserCssArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(arg.css)\n continue\n }\n\n if (TypeValidator.isBrowserObjectArg(arg)) {\n formatParts.push('%o')\n formatArgs.push(arg.value)\n continue\n }\n\n if (TypeValidator.isString(arg)) {\n formatParts.push(`%c${arg}`)\n formatArgs.push(`color:${paletteHex}`)\n continue\n }\n\n // Fallback: non-string, non-wrapper → log as object\n formatParts.push('%o')\n formatArgs.push(arg)\n }\n\n if (formatParts.length === 0) return args\n\n return [formatParts.join(''), ...formatArgs]\n }\n\n protected _output(consoleMethod: ConsoleMethod, args: unknown[]): void {\n console[consoleMethod](...args)\n }\n\n protected _processArgs(args: unknown[]): unknown[] {\n const processedArgs: unknown[] = []\n let previousWasObject = false\n\n for (const arg of args) {\n if (\n TypeValidator.isBrowserColorizedArg(arg) ||\n TypeValidator.isBrowserCssArg(arg)\n ) {\n processedArgs.push(arg)\n\n previousWasObject = false\n continue\n }\n\n if (TypeValidator.isFormattableObject(arg)) {\n processedArgs.push({\n [ColorinoBrowserObject]: true,\n value: arg,\n })\n\n previousWasObject = true\n } else if (TypeValidator.isError(arg)) {\n processedArgs.push('\\n', this._cleanErrorStack(arg))\n\n previousWasObject = true\n } else {\n processedArgs.push(\n TypeValidator.isString(arg) && previousWasObject ? `\\n${arg}` : arg\n )\n\n previousWasObject = false\n }\n }\n\n return processedArgs\n }\n\n protected isBrowser(): boolean {\n return true\n }\n}\n","import type { ColorSupportDetectorInterface } from './interfaces.js'\nimport { ColorLevel } from './enums.js'\nimport type { TerminalTheme } from './types.js'\n\nexport class BrowserColorSupportDetector implements ColorSupportDetectorInterface {\n constructor(\n private readonly _window:\n | {\n document: HTMLDocument\n matchMedia(arg0: string): { matches: unknown }\n }\n | undefined,\n private readonly _navigator: { userAgent: string } | undefined,\n private readonly _overrideTheme?: TerminalTheme\n ) {}\n\n isBrowserEnv(): boolean {\n return !!this._window && !!this._navigator?.userAgent\n }\n\n getColorLevel(): ColorLevel {\n const isTruecolor = window.matchMedia('(color-gamut: p3)').matches\n if (isTruecolor) {\n return ColorLevel.TRUECOLOR\n }\n\n const isAnsi256 = window.matchMedia('(monochrome: 0)').matches\n if (isAnsi256) {\n return ColorLevel.ANSI256\n }\n\n // Default to basic ANSI\n return ColorLevel.ANSI\n }\n\n getTheme(): TerminalTheme {\n if (this._overrideTheme) {\n return this._overrideTheme\n }\n\n if (\n !this.isBrowserEnv() ||\n typeof this._window!.matchMedia !== 'function'\n ) {\n return 'unknown'\n }\n\n const isDarkTheme = this._window!.matchMedia(\n '(prefers-color-scheme: dark)'\n ).matches\n if (isDarkTheme) {\n return 'dark'\n }\n\n const isLightTheme = '(prefers-color-scheme: light)'\n if (this._window!.matchMedia(isLightTheme).matches) {\n return 'light'\n }\n\n return 'unknown'\n }\n}\n","const defaultErrorConfig = {\r\n withStackTrace: false,\r\n};\r\n// Custom error object\r\n// Context / discussion: https://github.com/supermacro/neverthrow/pull/215\r\nconst createNeverThrowError = (message, result, config = defaultErrorConfig) => {\r\n const data = result.isOk()\r\n ? { type: 'Ok', value: result.value }\r\n : { type: 'Err', value: result.error };\r\n const maybeStack = config.withStackTrace ? new Error().stack : undefined;\r\n return {\r\n data,\r\n message,\r\n stack: maybeStack,\r\n };\r\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass ResultAsync {\r\n constructor(res) {\r\n this._promise = res;\r\n }\r\n static fromSafePromise(promise) {\r\n const newPromise = promise.then((value) => new Ok(value));\r\n return new ResultAsync(newPromise);\r\n }\r\n static fromPromise(promise, errorFn) {\r\n const newPromise = promise\r\n .then((value) => new Ok(value))\r\n .catch((e) => new Err(errorFn(e)));\r\n return new ResultAsync(newPromise);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n return new ResultAsync((() => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return new Ok(yield fn(...args));\r\n }\r\n catch (error) {\r\n return new Err(errorFn ? errorFn(error) : error);\r\n }\r\n }))());\r\n };\r\n }\r\n static combine(asyncResultList) {\r\n return combineResultAsyncList(asyncResultList);\r\n }\r\n static combineWithAllErrors(asyncResultList) {\r\n return combineResultAsyncListWithAllErrors(asyncResultList);\r\n }\r\n map(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n return new Ok(yield f(res.value));\r\n })));\r\n }\r\n andThrough(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newRes = yield f(res.value);\r\n if (newRes.isErr()) {\r\n return new Err(newRes.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n andTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n try {\r\n yield f(res.value);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n orTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n try {\r\n yield f(res.error);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Err(res.error);\r\n })));\r\n }\r\n mapErr(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n return new Err(yield f(res.error));\r\n })));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return new ResultAsync(this._promise.then((res) => {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newValue = f(res.value);\r\n return newValue instanceof ResultAsync ? newValue._promise : newValue;\r\n }));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return f(res.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n match(ok, _err) {\r\n return this._promise.then((res) => res.match(ok, _err));\r\n }\r\n unwrapOr(t) {\r\n return this._promise.then((res) => res.unwrapOr(t));\r\n }\r\n /**\r\n * @deprecated will be removed in 9.0.0.\r\n *\r\n * You can use `safeTry` without this method.\r\n * @example\r\n * ```typescript\r\n * safeTry(async function* () {\r\n * const okValue = yield* yourResult\r\n * })\r\n * ```\r\n * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.\r\n */\r\n safeUnwrap() {\r\n return __asyncGenerator(this, arguments, function* safeUnwrap_1() {\r\n return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(yield __await(this._promise.then((res) => res.safeUnwrap()))))));\r\n });\r\n }\r\n // Makes ResultAsync implement PromiseLike<Result>\r\n then(successCallback, failureCallback) {\r\n return this._promise.then(successCallback, failureCallback);\r\n }\r\n [Symbol.asyncIterator]() {\r\n return __asyncGenerator(this, arguments, function* _a() {\r\n const result = yield __await(this._promise);\r\n if (result.isErr()) {\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield yield __await(errAsync(result.error));\r\n }\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return yield __await(result.value);\r\n });\r\n }\r\n}\r\nfunction okAsync(value) {\r\n return new ResultAsync(Promise.resolve(new Ok(value)));\r\n}\r\nfunction errAsync(err) {\r\n return new ResultAsync(Promise.resolve(new Err(err)));\r\n}\r\nconst fromPromise = ResultAsync.fromPromise;\r\nconst fromSafePromise = ResultAsync.fromSafePromise;\r\nconst fromAsyncThrowable = ResultAsync.fromThrowable;\n\n/**\r\n * Short circuits on the FIRST Err value that we find\r\n */\r\nconst combineResultList = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr()) {\r\n acc = err(result.error);\r\n break;\r\n }\r\n else {\r\n acc.map((list) => list.push(result.value));\r\n }\r\n }\r\n return acc;\r\n};\r\n/* This is the typesafe version of Promise.all\r\n *\r\n * Takes a list of ResultAsync<T, E> and success if all inner results are Ok values\r\n * or fails if one (or more) of the inner results are Err values\r\n */\r\nconst combineResultAsyncList = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultList);\r\n/**\r\n * Give a list of all the errors we find\r\n */\r\nconst combineResultListWithAllErrors = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr() && acc.isErr()) {\r\n acc.error.push(result.error);\r\n }\r\n else if (result.isErr() && acc.isOk()) {\r\n acc = err([result.error]);\r\n }\r\n else if (result.isOk() && acc.isOk()) {\r\n acc.value.push(result.value);\r\n }\r\n // do nothing when result.isOk() && acc.isErr()\r\n }\r\n return acc;\r\n};\r\nconst combineResultAsyncListWithAllErrors = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultListWithAllErrors);\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nvar Result;\r\n(function (Result) {\r\n /**\r\n * Wraps a function with a try catch, creating a new function with the same\r\n * arguments but returning `Ok` if successful, `Err` if the function throws\r\n *\r\n * @param fn function to wrap with ok on success or err on failure\r\n * @param errorFn when an error is thrown, this will wrap the error result if provided\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n try {\r\n const result = fn(...args);\r\n return ok(result);\r\n }\r\n catch (e) {\r\n return err(errorFn ? errorFn(e) : e);\r\n }\r\n };\r\n }\r\n Result.fromThrowable = fromThrowable;\r\n function combine(resultList) {\r\n return combineResultList(resultList);\r\n }\r\n Result.combine = combine;\r\n function combineWithAllErrors(resultList) {\r\n return combineResultListWithAllErrors(resultList);\r\n }\r\n Result.combineWithAllErrors = combineWithAllErrors;\r\n})(Result || (Result = {}));\r\nfunction ok(value) {\r\n return new Ok(value);\r\n}\r\nfunction err(err) {\r\n return new Err(err);\r\n}\r\nfunction safeTry(body) {\r\n const n = body().next();\r\n if (n instanceof Promise) {\r\n return new ResultAsync(n.then((r) => r.value));\r\n }\r\n return n.value;\r\n}\r\nclass Ok {\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n isOk() {\r\n return true;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n map(f) {\r\n return ok(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n mapErr(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThrough(f) {\r\n return f(this.value).map((_value) => this.value);\r\n }\r\n andTee(f) {\r\n try {\r\n f(this.value);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return ok(this.value);\r\n }\r\n orTee(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(_f) {\r\n return ok(this.value);\r\n }\r\n asyncAndThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n asyncAndThrough(f) {\r\n return f(this.value).map(() => this.value);\r\n }\r\n asyncMap(f) {\r\n return ResultAsync.fromSafePromise(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unwrapOr(_v) {\r\n return this.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n match(ok, _err) {\r\n return ok(this.value);\r\n }\r\n safeUnwrap() {\r\n const value = this.value;\r\n /* eslint-disable-next-line require-yield */\r\n return (function* () {\r\n return value;\r\n })();\r\n }\r\n _unsafeUnwrap(_) {\r\n return this.value;\r\n }\r\n _unsafeUnwrapErr(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrapErr` on an Ok', this, config);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias, require-yield\r\n *[Symbol.iterator]() {\r\n return this.value;\r\n }\r\n}\r\nclass Err {\r\n constructor(error) {\r\n this.error = error;\r\n }\r\n isOk() {\r\n return false;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n map(_f) {\r\n return err(this.error);\r\n }\r\n mapErr(f) {\r\n return err(f(this.error));\r\n }\r\n andThrough(_f) {\r\n return err(this.error);\r\n }\r\n andTee(_f) {\r\n return err(this.error);\r\n }\r\n orTee(f) {\r\n try {\r\n f(this.error);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(_f) {\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return f(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncAndThen(_f) {\r\n return errAsync(this.error);\r\n }\r\n asyncAndThrough(_f) {\r\n return errAsync(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncMap(_f) {\r\n return errAsync(this.error);\r\n }\r\n unwrapOr(v) {\r\n return v;\r\n }\r\n match(_ok, err) {\r\n return err(this.error);\r\n }\r\n safeUnwrap() {\r\n const error = this.error;\r\n return (function* () {\r\n yield err(error);\r\n throw new Error('Do not use this generator out of `safeTry`');\r\n })();\r\n }\r\n _unsafeUnwrap(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrap` on an Err', this, config);\r\n }\r\n _unsafeUnwrapErr(_) {\r\n return this.error;\r\n }\r\n *[Symbol.iterator]() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self = this;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield self;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return self;\r\n }\r\n}\r\nconst fromThrowable = Result.fromThrowable;\r\n//#endregion\n\nexport { Err, Ok, Result, ResultAsync, err, errAsync, fromAsyncThrowable, fromPromise, fromSafePromise, fromThrowable, ok, okAsync, safeTry };\n","export class InputValidationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'InputValidationError'\n Object.setPrototypeOf(this, InputValidationError.prototype)\n }\n}\n","import { ok, err, Result } from 'neverthrow'\nimport { InputValidationError } from './errors.js'\nimport type { Palette } from './types.js'\n\nexport class InputValidator {\n validateHex(hex: string): Result<boolean, InputValidationError> {\n const trimmedHex = hex.trim()\n const isHexValid = /^#[0-9A-F]{6}$/i.test(trimmedHex)\n if (!isHexValid) {\n return err(new InputValidationError(`Invalid hex color: '${hex}'`))\n }\n return ok(true)\n }\n\n validatePalette(palette: Palette): Result<boolean, InputValidationError> {\n for (const level in palette) {\n const hex = palette[level as keyof Palette]\n const result = this.validateHex(hex)\n if (result.isErr()) {\n return err(result.error)\n }\n }\n return ok(true)\n }\n}\n","import { type Palette } from './types.js'\n\n// Low-contrast palette for dark backgrounds (light text)\nexport const catppuccinMochaPalette: Palette = {\n log: '#cdd6f4', // Text\n info: '#89b4fa', // Blue\n warn: '#f9e2af', // Yellow\n error: '#f38ba8', // Red\n debug: '#a6adc8', // Subtext0\n trace: '#9399b2', // Subtext1\n}\n\n// Low-contrast palette for light backgrounds (dark text)\nexport const catppuccinLattePalette: Palette = {\n log: '#4c4f69', // Text\n info: '#1e66f5', // Blue\n warn: '#df8e1d', // Yellow\n error: '#d20f39', // Red\n debug: '#7c7f93', // Subtext0\n trace: '#8c8fa1', // Subtext1\n}\n\n// High-contrast palette for dark backgrounds (light text)\nexport const draculaPalette: Palette = {\n log: '#f8f8f2', // Foreground\n info: '#8be9fd', // Cyan\n warn: '#f1fa8c', // Yellow\n error: '#ff5555', // Red\n debug: '#bd93f9', // Purple\n trace: '#6272a4', // Comment\n}\n\n// High-contrast palette for light backgrounds (dark text)\nexport const githubLightPalette: Palette = {\n log: '#24292e', // Text\n info: '#0366d6', // Blue\n warn: '#f9a002', // Yellow\n error: '#d73a49', // Red\n debug: '#586069', // Gray\n trace: '#6a737d', // Gray-light\n}\n","import {\n catppuccinMochaPalette,\n catppuccinLattePalette,\n draculaPalette,\n githubLightPalette,\n} from './palettes.js'\nimport type { Palette, ThemeName } from './types.js'\n\nexport const themePalettes: Record<ThemeName, Palette> = {\n 'catppuccin-mocha': catppuccinMochaPalette,\n 'catppuccin-latte': catppuccinLattePalette,\n dracula: draculaPalette,\n 'github-light': githubLightPalette,\n}\n\nexport const defaultDarkTheme: ThemeName = 'dracula'\nexport const defaultLightTheme: ThemeName = 'github-light'\n\nexport function isThemeName(theme: string): theme is ThemeName {\n return theme in themePalettes\n}\n","import { defaultLightTheme, defaultDarkTheme, isThemeName } from './theme.js'\nimport { type ThemeName } from './types.js'\n\nexport function determineBaseTheme(\n themeOpt: string,\n detectedBrowserTheme: string\n) {\n let baseThemeName: ThemeName\n\n if (isThemeName(themeOpt)) {\n baseThemeName = themeOpt\n } else if (themeOpt === 'light') {\n baseThemeName = defaultLightTheme\n } else if (themeOpt === 'dark') {\n baseThemeName = defaultDarkTheme\n } else {\n // Fallback to 'auto' detection\n baseThemeName =\n detectedBrowserTheme === 'light' ? defaultLightTheme : defaultDarkTheme\n }\n return baseThemeName\n}\n","import { ColorinoBrowser } from './colorino-browser.js'\nimport { BrowserColorSupportDetector } from './browser-color-support-detector.js'\nimport { InputValidator } from './input-validator.js'\nimport { themePalettes } from './theme.js'\nimport { determineBaseTheme } from './determine-base-theme.js'\nimport { LogLevel, Palette, TerminalTheme, ThemeName } from './types.js'\nimport { ColorinoOptions, ColorinoBrowserInterface } from './interfaces.js'\n\nexport function createColorino(\n userPalette: Partial<Palette> = {},\n options: ColorinoOptions = {}\n): ColorinoBrowserInterface {\n const validator = new InputValidator()\n\n let detectorThemeOverride: TerminalTheme | undefined\n if (options.theme === 'dark' || options.theme === 'light') {\n detectorThemeOverride = options.theme\n }\n\n const browserDetector = new BrowserColorSupportDetector(\n window,\n navigator,\n detectorThemeOverride\n )\n\n const detectedBrowserTheme = browserDetector.getTheme()\n\n const themeOpt = options.theme ?? 'auto'\n const baseThemeName = determineBaseTheme(themeOpt, detectedBrowserTheme)\n\n const basePalette = themePalettes[baseThemeName]\n const finalPalette: Palette = { ...basePalette, ...userPalette }\n\n const colorLevel = browserDetector.isBrowserEnv()\n ? (browserDetector.getColorLevel() ?? 'UnknownEnv')\n : 'UnknownEnv'\n\n return new ColorinoBrowser(\n finalPalette,\n userPalette,\n validator,\n colorLevel,\n options\n )\n}\n\nexport type { Palette, LogLevel, ThemeName }\nexport type { ColorinoOptions, ColorinoBrowserInterface }\nexport { themePalettes }\nexport const colorino = createColorino()\n","import {\n colorino as colorinoInstance,\n createColorino,\n themePalettes,\n} from './browser.js'\n\ntype ColorinoUmdGlobal = typeof colorinoInstance & {\n createColorino: typeof createColorino\n themePalettes: typeof themePalettes\n}\n\n// Attach extras onto the instance so the UMD global stays `colorino.info(...)`\nconst colorinoUmdGlobal = colorinoInstance as ColorinoUmdGlobal\ncolorinoUmdGlobal.createColorino = createColorino\ncolorinoUmdGlobal.themePalettes = themePalettes\n\nexport default colorinoUmdGlobal\n"],"names":["colorinoInstance"],"mappings":"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","x_google_ignoreList":[6]}
|
package/dist/cdn.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((r="undefined"!=typeof globalThis?globalThis:r||self).colorino={})}(this,function(r){"use strict";const t=Symbol("colorino.browserColorized"),e=Symbol("colorino.browserObject"),n=Symbol("colorino.browserCss");var o=(r=>(r[r.NO_COLOR=0]="NO_COLOR",r[r.ANSI=1]="ANSI",r[r.ANSI256=2]="ANSI256",r[r.TRUECOLOR=3]="TRUECOLOR",r))(o||{});class i{static isNull(r){return null===r}static isUndefined(r){return void 0===r}static isNullOrUndefined(r){return null==r}static isObject(r){return"object"==typeof r&&null!==r}static isString(r){return"string"==typeof r||r instanceof String}static isArray(r){return Array.isArray(r)}static isError(r){return r instanceof Error}static isBrowserColorizedArg(r){return i.isObject(r)&&t in r}static isBrowserCssArg(r){return"object"==typeof r&&null!==r&&n in r&&!0===r[n]}static isBrowserObjectArg(r){return i.isObject(r)&&e in r}static isAnsiColoredString(r){return i.isString(r)&&/\x1b\[[0-9;]*m/.test(r.toString())}static isFormattableObject(r){return i.isObject(r)&&!i.isError(r)&&!i.isBrowserColorizedArg(r)&&!i.isString(r)}static isConsoleMethod(r){return["log","info","warn","error","trace","debug"].includes(r)}}class s{constructor(r,t,e,n,o={}){this._userPalette=t,this._validator=e,this._options=o,this._palette=r;const i=this._validator.validatePalette(this._palette);if(i.isErr())throw i.error;this._colorLevel=n}_alreadyWarned=!1;_colorLevel;_palette;log(...r){this._out("log",r)}info(...r){this._out("info",r)}warn(...r){this._out("warn",r)}error(...r){this._out("error",r)}trace(...r){this._out("trace",r)}debug(...r){this._out("debug",r)}colorize(r,e){if(this._colorLevel===o.NO_COLOR||"UnknownEnv"===this._colorLevel)return r;if(this.isBrowser())return{[t]:!0,text:r,hex:e};const n=this._toAnsiPrefix(e);return n?`${n}${r}[0m`:r}_out(r,t){const e=i.isConsoleMethod(r)?r:"log",n=this._processArgs(t);if(this._colorLevel===o.NO_COLOR||"UnknownEnv"===this._colorLevel)return void this._output(e,n);const s=this._applyColors(e,n);this._output(e,s)}_toAnsiPrefix(r){return""}_formatValue(r,t=this._options.maxDepth??5){const e=new WeakSet,n=(r,o)=>{if(i.isNullOrUndefined(r)||!i.isObject(r))return r;if(e.has(r))return"[Circular]";if(e.add(r),o>=t)return"[Object]";const s=o+1;return i.isArray(r)?(u=s,r.map(r=>n(r,u))):((r,t)=>{const e={};for(const o in r)e[o]=n(r[o],t);return e})(r,s);var u};return JSON.stringify(n(r,0),null,2)}_filterStack(r){return r.split("\n").filter(r=>!r.match(/.*colorino.*/gi)).join("\n")}_cleanErrorStack(r){if(!r.stack)return r;const t=this._filterStack(r.stack),e=Object.create(Object.getPrototypeOf(r));return Object.assign(e,r),e.stack=t,e}_printCleanTrace(r){const t=new Error;if(t.stack){const e=this._filterStack(t.stack);console.log(...r,`\n${e}`)}else console.log(...r)}}class u extends s{constructor(r,t,e,n,o={}){super(r,t,e,n,o)}css(r,t){if(this._colorLevel===o.NO_COLOR||"UnknownEnv"===this._colorLevel)return r;const e=this._normalizeCssStyle(t);return{[n]:!0,text:r,css:e}}_normalizeCssStyle(r){if(i.isString(r))return r;const t=[];for(const e in r){if(!Object.prototype.hasOwnProperty.call(r,e))continue;const n=r[e];n&&t.push(`${e}:${n}`)}return t.join(";")}_applyColors(r,t){const e=[],n=[],o=this._palette[r];for(const r of t)i.isBrowserColorizedArg(r)?(e.push(`%c${r.text}`),n.push(`color:${r.hex}`)):i.isBrowserCssArg(r)?(e.push(`%c${r.text}`),n.push(r.css)):i.isBrowserObjectArg(r)?(e.push("%o"),n.push(r.value)):i.isString(r)?(e.push(`%c${r}`),n.push(`color:${o}`)):(e.push("%o"),n.push(r));return 0===e.length?t:[e.join(""),...n]}_output(r,t){console[r](...t)}_processArgs(r){const t=[];let n=!1;for(const o of r)i.isBrowserColorizedArg(o)||i.isBrowserCssArg(o)?(t.push(o),n=!1):i.isFormattableObject(o)?(t.push({[e]:!0,value:o}),n=!0):i.isError(o)?(t.push("\n",this._cleanErrorStack(o)),n=!0):(t.push(i.isString(o)&&n?`\n${o}`:o),n=!1);return t}isBrowser(){return!0}}class a{constructor(r,t,e){this._window=r,this._navigator=t,this._overrideTheme=e}isBrowserEnv(){return!!this._window&&!!this._navigator?.userAgent}getColorLevel(){return window.matchMedia("(color-gamut: p3)").matches?o.TRUECOLOR:window.matchMedia("(monochrome: 0)").matches?o.ANSI256:o.ANSI}getTheme(){return this._overrideTheme?this._overrideTheme:this.isBrowserEnv()&&"function"==typeof this._window.matchMedia?this._window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":this._window.matchMedia("(prefers-color-scheme: light)").matches?"light":"unknown":"unknown"}}const c={withStackTrace:!1},l=(r,t,e=c)=>({data:t.isOk()?{type:"Ok",value:t.value}:{type:"Err",value:t.error},message:r,stack:e.withStackTrace?(new Error).stack:void 0});function h(r,t,e,n){return new(e||(e=Promise))(function(t,o){function i(r){try{u(n.next(r))}catch(r){o(r)}}function s(r){try{u(n.throw(r))}catch(r){o(r)}}function u(r){var n;r.done?t(r.value):(n=r.value,n instanceof e?n:new e(function(r){r(n)})).then(i,s)}u((n=n.apply(r,[])).next())})}function f(r){return this instanceof f?(this.v=r,this):new f(r)}function d(r,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=e.apply(r,t||[]),i=[];return n=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(r){return function(t){return Promise.resolve(t).then(r,c)}}),n[Symbol.asyncIterator]=function(){return this},n;function s(r,t){o[r]&&(n[r]=function(t){return new Promise(function(e,n){i.push([r,t,e,n])>1||u(r,t)})},t&&(n[r]=t(n[r])))}function u(r,t){try{(e=o[r](t)).value instanceof f?Promise.resolve(e.value.v).then(a,c):l(i[0][2],e)}catch(r){l(i[0][3],r)}var e}function a(r){u("next",r)}function c(r){u("throw",r)}function l(r,t){r(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}function w(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,e=r[Symbol.asyncIterator];return e?e.call(r):(r=function(r){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&r[t],n=0;if(e)return e.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(r),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(e){t[e]=r[e]&&function(t){return new Promise(function(n,o){!function(r,t,e,n){Promise.resolve(n).then(function(t){r({value:t,done:e})},t)}(n,o,(t=r[e](t)).done,t.value)})}}}"function"==typeof SuppressedError&&SuppressedError;class p{constructor(r){this._promise=r}static fromSafePromise(r){const t=r.then(r=>new S(r));return new p(t)}static fromPromise(r,t){const e=r.then(r=>new S(r)).catch(r=>new k(t(r)));return new p(e)}static fromThrowable(r,t){return(...e)=>new p((()=>h(this,0,void 0,function*(){try{return new S(yield r(...e))}catch(r){return new k(t?t(r):r)}}))())}static combine(r){return y(r)}static combineWithAllErrors(r){return g(r)}map(r){return new p(this._promise.then(t=>h(this,0,void 0,function*(){return t.isErr()?new k(t.error):new S(yield r(t.value))})))}andThrough(r){return new p(this._promise.then(t=>h(this,0,void 0,function*(){if(t.isErr())return new k(t.error);const e=yield r(t.value);return e.isErr()?new k(e.error):new S(t.value)})))}andTee(r){return new p(this._promise.then(t=>h(this,0,void 0,function*(){if(t.isErr())return new k(t.error);try{yield r(t.value)}catch(r){}return new S(t.value)})))}orTee(r){return new p(this._promise.then(t=>h(this,0,void 0,function*(){if(t.isOk())return new S(t.value);try{yield r(t.error)}catch(r){}return new k(t.error)})))}mapErr(r){return new p(this._promise.then(t=>h(this,0,void 0,function*(){return t.isOk()?new S(t.value):new k(yield r(t.error))})))}andThen(r){return new p(this._promise.then(t=>{if(t.isErr())return new k(t.error);const e=r(t.value);return e instanceof p?e._promise:e}))}orElse(r){return new p(this._promise.then(t=>h(this,0,void 0,function*(){return t.isErr()?r(t.error):new S(t.value)})))}match(r,t){return this._promise.then(e=>e.match(r,t))}unwrapOr(r){return this._promise.then(t=>t.unwrapOr(r))}safeUnwrap(){return d(this,arguments,function*(){return yield f(yield f(yield*function(r){var t,e;return t={},n("next"),n("throw",function(r){throw r}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=r[n]?function(t){return(e=!e)?{value:f(r[n](t)),done:!1}:o?o(t):t}:o}}(w(yield f(this._promise.then(r=>r.safeUnwrap()))))))})}then(r,t){return this._promise.then(r,t)}[Symbol.asyncIterator](){return d(this,arguments,function*(){const r=yield f(this._promise);return r.isErr()&&(yield yield f(m(r.error))),yield f(r.value)})}}function m(r){return new p(Promise.resolve(new k(r)))}const v=r=>{let t=O([]);for(const e of r){if(e.isErr()){t=E(e.error);break}t.map(r=>r.push(e.value))}return t},y=r=>p.fromSafePromise(Promise.all(r)).andThen(v),_=r=>{let t=O([]);for(const e of r)e.isErr()&&t.isErr()?t.error.push(e.error):e.isErr()&&t.isOk()?t=E([e.error]):e.isOk()&&t.isOk()&&t.value.push(e.value);return t},g=r=>p.fromSafePromise(Promise.all(r)).andThen(_);var b;function O(r){return new S(r)}function E(r){return new k(r)}!function(r){r.fromThrowable=function(r,t){return(...e)=>{try{return O(r(...e))}catch(r){return E(t?t(r):r)}}},r.combine=function(r){return v(r)},r.combineWithAllErrors=function(r){return _(r)}}(b||(b={}));class S{constructor(r){this.value=r}isOk(){return!0}isErr(){return!this.isOk()}map(r){return O(r(this.value))}mapErr(r){return O(this.value)}andThen(r){return r(this.value)}andThrough(r){return r(this.value).map(r=>this.value)}andTee(r){try{r(this.value)}catch(r){}return O(this.value)}orTee(r){return O(this.value)}orElse(r){return O(this.value)}asyncAndThen(r){return r(this.value)}asyncAndThrough(r){return r(this.value).map(()=>this.value)}asyncMap(r){return p.fromSafePromise(r(this.value))}unwrapOr(r){return this.value}match(r,t){return r(this.value)}safeUnwrap(){const r=this.value;return function*(){return r}()}_unsafeUnwrap(r){return this.value}_unsafeUnwrapErr(r){throw l("Called `_unsafeUnwrapErr` on an Ok",this,r)}*[Symbol.iterator](){return this.value}}class k{constructor(r){this.error=r}isOk(){return!1}isErr(){return!this.isOk()}map(r){return E(this.error)}mapErr(r){return E(r(this.error))}andThrough(r){return E(this.error)}andTee(r){return E(this.error)}orTee(r){try{r(this.error)}catch(r){}return E(this.error)}andThen(r){return E(this.error)}orElse(r){return r(this.error)}asyncAndThen(r){return m(this.error)}asyncAndThrough(r){return m(this.error)}asyncMap(r){return m(this.error)}unwrapOr(r){return r}match(r,t){return t(this.error)}safeUnwrap(){const r=this.error;return function*(){throw yield E(r),new Error("Do not use this generator out of `safeTry`")}()}_unsafeUnwrap(r){throw l("Called `_unsafeUnwrap` on an Err",this,r)}_unsafeUnwrapErr(r){return this.error}*[Symbol.iterator](){return yield this,this}}b.fromThrowable;class T extends Error{constructor(r){super(r),this.name="InputValidationError",Object.setPrototypeOf(this,T.prototype)}}class A{validateHex(r){const t=r.trim();return/^#[0-9A-F]{6}$/i.test(t)?O(!0):E(new T(`Invalid hex color: '${r}'`))}validatePalette(r){for(const t in r){const e=r[t],n=this.validateHex(e);if(n.isErr())return E(n.error)}return O(!0)}}const C={"catppuccin-mocha":{log:"#cdd6f4",info:"#89b4fa",warn:"#f9e2af",error:"#f38ba8",debug:"#a6adc8",trace:"#9399b2"},"catppuccin-latte":{log:"#4c4f69",info:"#1e66f5",warn:"#df8e1d",error:"#d20f39",debug:"#7c7f93",trace:"#8c8fa1"},dracula:{log:"#f8f8f2",info:"#8be9fd",warn:"#f1fa8c",error:"#ff5555",debug:"#bd93f9",trace:"#6272a4"},"github-light":{log:"#24292e",info:"#0366d6",warn:"#f9a002",error:"#d73a49",debug:"#586069",trace:"#6a737d"}},j="dracula",x="github-light";function P(r={},t={}){const e=new A;let n;"dark"!==t.theme&&"light"!==t.theme||(n=t.theme);const o=new a(window,navigator,n),i=o.getTheme(),s=function(r,t){let e;return e=r in C?r:"light"===r?x:"dark"===r?j:"light"===t?x:j,e}(t.theme??"auto",i),c={...C[s],...r},l=o.isBrowserEnv()?o.getColorLevel()??"UnknownEnv":"UnknownEnv";return new u(c,r,e,l,t)}const U=P();r.colorino=U,r.createColorino=P,r.themePalettes=C});
|
|
1
|
+
!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(r="undefined"!=typeof globalThis?globalThis:r||self).colorino=t()}(this,function(){"use strict";const r=Symbol("colorino.browserColorized"),t=Symbol("colorino.browserObject"),e=Symbol("colorino.browserCss");var n=(r=>(r[r.NO_COLOR=0]="NO_COLOR",r[r.ANSI=1]="ANSI",r[r.ANSI256=2]="ANSI256",r[r.TRUECOLOR=3]="TRUECOLOR",r))(n||{});class o{static isNull(r){return null===r}static isUndefined(r){return void 0===r}static isNullOrUndefined(r){return null==r}static isObject(r){return"object"==typeof r&&null!==r}static isString(r){return"string"==typeof r||r instanceof String}static isArray(r){return Array.isArray(r)}static isError(r){return r instanceof Error}static isBrowserColorizedArg(t){return o.isObject(t)&&r in t}static isBrowserCssArg(r){return"object"==typeof r&&null!==r&&e in r&&!0===r[e]}static isBrowserObjectArg(r){return o.isObject(r)&&t in r}static isAnsiColoredString(r){return o.isString(r)&&/\x1b\[[0-9;]*m/.test(r.toString())}static isFormattableObject(r){return o.isObject(r)&&!o.isError(r)&&!o.isBrowserColorizedArg(r)&&!o.isString(r)}static isConsoleMethod(r){return["log","info","warn","error","trace","debug"].includes(r)}}class i{constructor(r,t,e,n,o={}){this._userPalette=t,this._validator=e,this._options=o,this._palette=r;const i=this._validator.validatePalette(this._palette);if(i.isErr())throw i.error;this._colorLevel=n}_alreadyWarned=!1;_colorLevel;_palette;log(...r){this._out("log",r)}info(...r){this._out("info",r)}warn(...r){this._out("warn",r)}error(...r){this._out("error",r)}trace(...r){this._out("trace",r)}debug(...r){this._out("debug",r)}colorize(t,e){if(this._colorLevel===n.NO_COLOR||"UnknownEnv"===this._colorLevel)return t;if(this.isBrowser())return{[r]:!0,text:t,hex:e};const o=this._toAnsiPrefix(e);return o?`${o}${t}[0m`:t}_out(r,t){const e=o.isConsoleMethod(r)?r:"log",i=this._processArgs(t);if(this._colorLevel===n.NO_COLOR||"UnknownEnv"===this._colorLevel)return void this._output(e,i);const s=this._applyColors(e,i);this._output(e,s)}_toAnsiPrefix(r){return""}_formatValue(r,t=this._options.maxDepth??5){const e=new WeakSet,n=(r,i)=>{if(o.isNullOrUndefined(r)||!o.isObject(r))return r;if(e.has(r))return"[Circular]";if(e.add(r),i>=t)return"[Object]";const s=i+1;return o.isArray(r)?(u=s,r.map(r=>n(r,u))):((r,t)=>{const e={};for(const o in r)e[o]=n(r[o],t);return e})(r,s);var u};return JSON.stringify(n(r,0),null,2)}_filterStack(r){return r.split("\n").filter(r=>!r.match(/.*colorino.*/gi)).join("\n")}_cleanErrorStack(r){if(!r.stack)return r;const t=this._filterStack(r.stack),e=Object.create(Object.getPrototypeOf(r));return Object.assign(e,r),e.stack=t,e}_printCleanTrace(r){const t=new Error;if(t.stack){const e=this._filterStack(t.stack);console.log(...r,`\n${e}`)}else console.log(...r)}}class s extends i{constructor(r,t,e,n,o={}){super(r,t,e,n,o)}css(r,t){if(this._colorLevel===n.NO_COLOR||"UnknownEnv"===this._colorLevel)return r;const o=this._normalizeCssStyle(t);return{[e]:!0,text:r,css:o}}_normalizeCssStyle(r){if(o.isString(r))return r;const t=[];for(const e in r){if(!Object.prototype.hasOwnProperty.call(r,e))continue;const n=r[e];n&&t.push(`${e}:${n}`)}return t.join(";")}_applyColors(r,t){const e=[],n=[],i=this._palette[r];for(const r of t)o.isBrowserColorizedArg(r)?(e.push(`%c${r.text}`),n.push(`color:${r.hex}`)):o.isBrowserCssArg(r)?(e.push(`%c${r.text}`),n.push(r.css)):o.isBrowserObjectArg(r)?(e.push("%o"),n.push(r.value)):o.isString(r)?(e.push(`%c${r}`),n.push(`color:${i}`)):(e.push("%o"),n.push(r));return 0===e.length?t:[e.join(""),...n]}_output(r,t){console[r](...t)}_processArgs(r){const e=[];let n=!1;for(const i of r)o.isBrowserColorizedArg(i)||o.isBrowserCssArg(i)?(e.push(i),n=!1):o.isFormattableObject(i)?(e.push({[t]:!0,value:i}),n=!0):o.isError(i)?(e.push("\n",this._cleanErrorStack(i)),n=!0):(e.push(o.isString(i)&&n?`\n${i}`:i),n=!1);return e}isBrowser(){return!0}}class u{constructor(r,t,e){this._window=r,this._navigator=t,this._overrideTheme=e}isBrowserEnv(){return!!this._window&&!!this._navigator?.userAgent}getColorLevel(){return window.matchMedia("(color-gamut: p3)").matches?n.TRUECOLOR:window.matchMedia("(monochrome: 0)").matches?n.ANSI256:n.ANSI}getTheme(){return this._overrideTheme?this._overrideTheme:this.isBrowserEnv()&&"function"==typeof this._window.matchMedia?this._window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":this._window.matchMedia("(prefers-color-scheme: light)").matches?"light":"unknown":"unknown"}}const a={withStackTrace:!1},c=(r,t,e=a)=>({data:t.isOk()?{type:"Ok",value:t.value}:{type:"Err",value:t.error},message:r,stack:e.withStackTrace?(new Error).stack:void 0});function l(r,t,e,n){return new(e||(e=Promise))(function(t,o){function i(r){try{u(n.next(r))}catch(r){o(r)}}function s(r){try{u(n.throw(r))}catch(r){o(r)}}function u(r){var n;r.done?t(r.value):(n=r.value,n instanceof e?n:new e(function(r){r(n)})).then(i,s)}u((n=n.apply(r,[])).next())})}function h(r){return this instanceof h?(this.v=r,this):new h(r)}function f(r,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=e.apply(r,t||[]),i=[];return n=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(r){return function(t){return Promise.resolve(t).then(r,c)}}),n[Symbol.asyncIterator]=function(){return this},n;function s(r,t){o[r]&&(n[r]=function(t){return new Promise(function(e,n){i.push([r,t,e,n])>1||u(r,t)})},t&&(n[r]=t(n[r])))}function u(r,t){try{(e=o[r](t)).value instanceof h?Promise.resolve(e.value.v).then(a,c):l(i[0][2],e)}catch(r){l(i[0][3],r)}var e}function a(r){u("next",r)}function c(r){u("throw",r)}function l(r,t){r(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}function d(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,e=r[Symbol.asyncIterator];return e?e.call(r):(r=function(r){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&r[t],n=0;if(e)return e.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(r),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(e){t[e]=r[e]&&function(t){return new Promise(function(n,o){!function(r,t,e,n){Promise.resolve(n).then(function(t){r({value:t,done:e})},t)}(n,o,(t=r[e](t)).done,t.value)})}}}"function"==typeof SuppressedError&&SuppressedError;class w{constructor(r){this._promise=r}static fromSafePromise(r){const t=r.then(r=>new E(r));return new w(t)}static fromPromise(r,t){const e=r.then(r=>new E(r)).catch(r=>new S(t(r)));return new w(e)}static fromThrowable(r,t){return(...e)=>new w((()=>l(this,0,void 0,function*(){try{return new E(yield r(...e))}catch(r){return new S(t?t(r):r)}}))())}static combine(r){return v(r)}static combineWithAllErrors(r){return _(r)}map(r){return new w(this._promise.then(t=>l(this,0,void 0,function*(){return t.isErr()?new S(t.error):new E(yield r(t.value))})))}andThrough(r){return new w(this._promise.then(t=>l(this,0,void 0,function*(){if(t.isErr())return new S(t.error);const e=yield r(t.value);return e.isErr()?new S(e.error):new E(t.value)})))}andTee(r){return new w(this._promise.then(t=>l(this,0,void 0,function*(){if(t.isErr())return new S(t.error);try{yield r(t.value)}catch(r){}return new E(t.value)})))}orTee(r){return new w(this._promise.then(t=>l(this,0,void 0,function*(){if(t.isOk())return new E(t.value);try{yield r(t.error)}catch(r){}return new S(t.error)})))}mapErr(r){return new w(this._promise.then(t=>l(this,0,void 0,function*(){return t.isOk()?new E(t.value):new S(yield r(t.error))})))}andThen(r){return new w(this._promise.then(t=>{if(t.isErr())return new S(t.error);const e=r(t.value);return e instanceof w?e._promise:e}))}orElse(r){return new w(this._promise.then(t=>l(this,0,void 0,function*(){return t.isErr()?r(t.error):new E(t.value)})))}match(r,t){return this._promise.then(e=>e.match(r,t))}unwrapOr(r){return this._promise.then(t=>t.unwrapOr(r))}safeUnwrap(){return f(this,arguments,function*(){return yield h(yield h(yield*function(r){var t,e;return t={},n("next"),n("throw",function(r){throw r}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=r[n]?function(t){return(e=!e)?{value:h(r[n](t)),done:!1}:o?o(t):t}:o}}(d(yield h(this._promise.then(r=>r.safeUnwrap()))))))})}then(r,t){return this._promise.then(r,t)}[Symbol.asyncIterator](){return f(this,arguments,function*(){const r=yield h(this._promise);return r.isErr()&&(yield yield h(p(r.error))),yield h(r.value)})}}function p(r){return new w(Promise.resolve(new S(r)))}const m=r=>{let t=b([]);for(const e of r){if(e.isErr()){t=O(e.error);break}t.map(r=>r.push(e.value))}return t},v=r=>w.fromSafePromise(Promise.all(r)).andThen(m),y=r=>{let t=b([]);for(const e of r)e.isErr()&&t.isErr()?t.error.push(e.error):e.isErr()&&t.isOk()?t=O([e.error]):e.isOk()&&t.isOk()&&t.value.push(e.value);return t},_=r=>w.fromSafePromise(Promise.all(r)).andThen(y);var g;function b(r){return new E(r)}function O(r){return new S(r)}!function(r){r.fromThrowable=function(r,t){return(...e)=>{try{return b(r(...e))}catch(r){return O(t?t(r):r)}}},r.combine=function(r){return m(r)},r.combineWithAllErrors=function(r){return y(r)}}(g||(g={}));class E{constructor(r){this.value=r}isOk(){return!0}isErr(){return!this.isOk()}map(r){return b(r(this.value))}mapErr(r){return b(this.value)}andThen(r){return r(this.value)}andThrough(r){return r(this.value).map(r=>this.value)}andTee(r){try{r(this.value)}catch(r){}return b(this.value)}orTee(r){return b(this.value)}orElse(r){return b(this.value)}asyncAndThen(r){return r(this.value)}asyncAndThrough(r){return r(this.value).map(()=>this.value)}asyncMap(r){return w.fromSafePromise(r(this.value))}unwrapOr(r){return this.value}match(r,t){return r(this.value)}safeUnwrap(){const r=this.value;return function*(){return r}()}_unsafeUnwrap(r){return this.value}_unsafeUnwrapErr(r){throw c("Called `_unsafeUnwrapErr` on an Ok",this,r)}*[Symbol.iterator](){return this.value}}class S{constructor(r){this.error=r}isOk(){return!1}isErr(){return!this.isOk()}map(r){return O(this.error)}mapErr(r){return O(r(this.error))}andThrough(r){return O(this.error)}andTee(r){return O(this.error)}orTee(r){try{r(this.error)}catch(r){}return O(this.error)}andThen(r){return O(this.error)}orElse(r){return r(this.error)}asyncAndThen(r){return p(this.error)}asyncAndThrough(r){return p(this.error)}asyncMap(r){return p(this.error)}unwrapOr(r){return r}match(r,t){return t(this.error)}safeUnwrap(){const r=this.error;return function*(){throw yield O(r),new Error("Do not use this generator out of `safeTry`")}()}_unsafeUnwrap(r){throw c("Called `_unsafeUnwrap` on an Err",this,r)}_unsafeUnwrapErr(r){return this.error}*[Symbol.iterator](){return yield this,this}}g.fromThrowable;class k extends Error{constructor(r){super(r),this.name="InputValidationError",Object.setPrototypeOf(this,k.prototype)}}class T{validateHex(r){const t=r.trim();return/^#[0-9A-F]{6}$/i.test(t)?b(!0):O(new k(`Invalid hex color: '${r}'`))}validatePalette(r){for(const t in r){const e=r[t],n=this.validateHex(e);if(n.isErr())return O(n.error)}return b(!0)}}const A={"catppuccin-mocha":{log:"#cdd6f4",info:"#89b4fa",warn:"#f9e2af",error:"#f38ba8",debug:"#a6adc8",trace:"#9399b2"},"catppuccin-latte":{log:"#4c4f69",info:"#1e66f5",warn:"#df8e1d",error:"#d20f39",debug:"#7c7f93",trace:"#8c8fa1"},dracula:{log:"#f8f8f2",info:"#8be9fd",warn:"#f1fa8c",error:"#ff5555",debug:"#bd93f9",trace:"#6272a4"},"github-light":{log:"#24292e",info:"#0366d6",warn:"#f9a002",error:"#d73a49",debug:"#586069",trace:"#6a737d"}},C="dracula",j="github-light";function x(r={},t={}){const e=new T;let n;"dark"!==t.theme&&"light"!==t.theme||(n=t.theme);const o=new u(window,navigator,n),i=o.getTheme(),a=function(r,t){let e;return e=r in A?r:"light"===r?j:"dark"===r?C:"light"===t?j:C,e}(t.theme??"auto",i),c={...A[a],...r},l=o.isBrowserEnv()?o.getColorLevel()??"UnknownEnv":"UnknownEnv";return new s(c,r,e,l,t)}const P=x();return P.createColorino=x,P.themePalettes=A,P});
|
|
2
2
|
//# sourceMappingURL=cdn.min.js.map
|
package/dist/cdn.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn.min.js","sources":["../src/types.ts","../src/enums.ts","../src/type-validator.ts","../src/abstract-colorino.ts","../src/colorino-browser.ts","../src/browser-color-support-detector.ts","../node_modules/neverthrow/dist/index.es.js","../src/errors.ts","../src/input-validator.ts","../src/palettes.ts","../src/theme.ts","../src/browser.ts","../src/determine-base-theme.ts"],"sourcesContent":["export type ConsoleMethod =\n | 'log'\n | 'info'\n | 'warn'\n | 'error'\n | 'trace'\n | 'debug'\nexport type LogLevel = ConsoleMethod & string\n\nexport type RgbColor = [number, number, number]\nexport type HslColor = [number, number, number]\nexport type RgbaColor = [number, number, number, number]\n\nexport type Palette = Record<LogLevel, string>\nexport type TerminalTheme = 'dark' | 'light' | 'unknown'\n\nexport type ThemeName =\n | 'catppuccin-mocha'\n | 'catppuccin-latte'\n | 'dracula'\n | 'github-light'\n\nexport const ColorinoBrowserColorized = Symbol('colorino.browserColorized')\nexport const ColorinoBrowserObject = Symbol('colorino.browserObject')\nexport const ColorinoBrowserCss = Symbol('colorino.browserCss')\n\nexport type CssConsoleStyle = string | Record<string, string>\n\nexport interface BrowserCssArg {\n [ColorinoBrowserCss]: true\n text: string\n css: string\n}\n\nexport type BrowserColorizedArg = {\n [ColorinoBrowserColorized]: true\n text: string\n hex: string\n}\n\nexport type BrowserObjectArg = {\n [ColorinoBrowserObject]: true\n value: unknown\n}\n","export enum ColorLevel {\n NO_COLOR = 0,\n ANSI = 1,\n ANSI256 = 2,\n TRUECOLOR = 3,\n}\n","import {\n BrowserColorizedArg,\n BrowserCssArg,\n BrowserObjectArg,\n ColorinoBrowserColorized,\n ColorinoBrowserCss,\n ColorinoBrowserObject,\n ConsoleMethod,\n} from './types.js'\n\nexport class TypeValidator {\n static isNull(value: unknown): value is null {\n return value === null\n }\n\n static isUndefined(value: unknown): value is undefined {\n return value === undefined\n }\n\n static isNullOrUndefined(value: unknown): value is null | undefined {\n return value == null\n }\n\n static isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n }\n\n static isString(value: unknown): value is string | string {\n return typeof value === 'string' || value instanceof String\n }\n\n static isArray(value: unknown): value is unknown[] {\n return Array.isArray(value)\n }\n\n static isError(value: unknown): value is Error {\n return value instanceof Error\n }\n\n static isBrowserColorizedArg(value: unknown): value is BrowserColorizedArg {\n return TypeValidator.isObject(value) && ColorinoBrowserColorized in value\n }\n\n static isBrowserCssArg(value: unknown): value is BrowserCssArg {\n return (\n typeof value === 'object' &&\n value !== null &&\n ColorinoBrowserCss in value &&\n (value as BrowserCssArg)[ColorinoBrowserCss] === true\n )\n }\n\n static isBrowserObjectArg(value: unknown): value is BrowserObjectArg {\n return TypeValidator.isObject(value) && ColorinoBrowserObject in value\n }\n\n static isAnsiColoredString(value: unknown): value is string {\n // eslint-disable\n return (\n TypeValidator.isString(value) && /\\x1b\\[[0-9;]*m/.test(value.toString())\n )\n }\n\n static isFormattableObject(value: unknown): value is Record<string, unknown> {\n return (\n TypeValidator.isObject(value) &&\n !TypeValidator.isError(value) &&\n !TypeValidator.isBrowserColorizedArg(value) &&\n !TypeValidator.isString(value) // Treat String objects as strings, not general objects\n )\n }\n\n static isConsoleMethod(level: string): level is ConsoleMethod {\n return ['log', 'info', 'warn', 'error', 'trace', 'debug'].includes(level)\n }\n}\n","import {\n type Palette,\n type LogLevel,\n ConsoleMethod,\n ColorinoBrowserColorized,\n BrowserColorizedArg,\n} from './types.js'\nimport { type ColorinoOptions } from './interfaces.js'\nimport { InputValidator } from './input-validator.js'\nimport { ColorLevel } from './enums.js'\nimport { TypeValidator } from './type-validator.js'\n\nexport abstract class AbstractColorino {\n protected _alreadyWarned = false\n protected _colorLevel: ColorLevel | 'UnknownEnv'\n protected _palette: Palette\n\n protected constructor(\n initialPalette: Palette,\n protected readonly _userPalette: Partial<Palette>,\n protected readonly _validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n protected readonly _options: ColorinoOptions = {}\n ) {\n this._palette = initialPalette\n\n const validatePaletteResult = this._validator.validatePalette(this._palette)\n if (validatePaletteResult.isErr()) throw validatePaletteResult.error\n\n this._colorLevel = colorLevel\n }\n log(...args: unknown[]): void {\n this._out('log', args)\n }\n info(...args: unknown[]): void {\n this._out('info', args)\n }\n warn(...args: unknown[]): void {\n this._out('warn', args)\n }\n error(...args: unknown[]): void {\n this._out('error', args)\n }\n trace(...args: unknown[]): void {\n this._out('trace', args)\n }\n debug(...args: unknown[]): void {\n this._out('debug', args)\n }\n\n colorize(text: string, hex: string): string | BrowserColorizedArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n if (this.isBrowser()) {\n return {\n [ColorinoBrowserColorized]: true,\n text,\n hex,\n }\n }\n\n const ansiPrefix = this._toAnsiPrefix(hex)\n if (!ansiPrefix) {\n return text\n }\n\n return `${ansiPrefix}${text}\\x1b[0m`\n }\n\n private _out(level: LogLevel, args: unknown[]): void {\n const consoleMethod = TypeValidator.isConsoleMethod(level) ? level : 'log'\n const processedArgs = this._processArgs(args)\n\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n this._output(consoleMethod, processedArgs)\n return\n }\n\n const coloredArgs = this._applyColors(consoleMethod, processedArgs)\n this._output(consoleMethod, coloredArgs)\n }\n protected abstract _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[]\n protected abstract _output(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): void\n protected abstract _processArgs(args: unknown[]): unknown[]\n protected abstract isBrowser(): boolean\n\n protected _toAnsiPrefix(_hex: string): string {\n return ''\n }\n\n protected _formatValue(\n value: unknown,\n maxDepth = this._options.maxDepth ?? 5\n ): string {\n const seen = new WeakSet<object>()\n\n const sanitizeArray = (items: unknown[], depth: number): unknown[] => {\n return items.map(item => sanitize(item, depth))\n }\n\n const sanitizeObject = (\n obj: Record<string, unknown>,\n depth: number\n ): Record<string, unknown> => {\n const result: Record<string, unknown> = {}\n for (const key in obj) {\n result[key] = sanitize(obj[key], depth)\n }\n return result\n }\n\n const sanitize = (val: unknown, currentDepth: number): unknown => {\n if (\n TypeValidator.isNullOrUndefined(val) ||\n !TypeValidator.isObject(val)\n ) {\n return val\n }\n\n if (seen.has(val)) return '[Circular]'\n seen.add(val)\n\n if (currentDepth >= maxDepth) return '[Object]'\n\n const nextDepth = currentDepth + 1\n\n if (TypeValidator.isArray(val)) {\n return sanitizeArray(val as unknown[], nextDepth)\n }\n\n return sanitizeObject(val as Record<string, unknown>, nextDepth)\n }\n\n return JSON.stringify(sanitize(value, 0), null, 2)\n }\n\n protected _filterStack(stack: string): string {\n return stack\n .split('\\n')\n .filter(line => !line.match(/.*colorino.*/gi))\n .join('\\n')\n }\n\n protected _cleanErrorStack(error: Error): Error {\n if (!error.stack) return error\n\n const cleanStack = this._filterStack(error.stack)\n\n const cloned = Object.create(Object.getPrototypeOf(error)) as Error\n Object.assign(cloned, error)\n cloned.stack = cleanStack\n\n return cloned\n }\n\n protected _printCleanTrace(args: unknown[]): void {\n const error = new Error()\n\n if (error.stack) {\n const cleanStack = this._filterStack(error.stack)\n console.log(...args, `\\n${cleanStack}`)\n } else {\n console.log(...args)\n }\n }\n}\n","import { AbstractColorino } from './abstract-colorino.js'\nimport { ColorLevel } from './enums.js'\nimport {\n ConsoleMethod,\n ColorinoBrowserObject,\n Palette,\n BrowserCssArg,\n CssConsoleStyle,\n ColorinoBrowserCss,\n} from './types.js'\nimport { ColorinoBrowserInterface, ColorinoOptions } from './interfaces.js'\nimport { TypeValidator } from './type-validator.js'\nimport { InputValidator } from './input-validator.js'\n\nexport class ColorinoBrowser\n extends AbstractColorino\n implements ColorinoBrowserInterface\n{\n constructor(\n initialPalette: Palette,\n userPalette: Partial<Palette>,\n validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n options: ColorinoOptions = {}\n ) {\n super(initialPalette, userPalette, validator, colorLevel, options)\n }\n\n public css(text: string, style: CssConsoleStyle): string | BrowserCssArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n const css = this._normalizeCssStyle(style)\n\n return {\n [ColorinoBrowserCss]: true,\n text,\n css,\n }\n }\n\n protected _normalizeCssStyle(style: CssConsoleStyle): string {\n if (TypeValidator.isString(style)) return style\n\n const parts: string[] = []\n\n for (const propertyName in style) {\n if (!Object.prototype.hasOwnProperty.call(style, propertyName)) {\n continue\n }\n\n const value = style[propertyName]\n if (!value) continue\n\n parts.push(`${propertyName}:${value}`)\n }\n\n return parts.join(';')\n }\n\n protected _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[] {\n const formatParts: string[] = []\n const formatArgs: unknown[] = []\n\n const paletteHex = this._palette[consoleMethod]\n\n for (const arg of args) {\n if (TypeValidator.isBrowserColorizedArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(`color:${arg.hex}`)\n continue\n }\n\n if (TypeValidator.isBrowserCssArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(arg.css)\n continue\n }\n\n if (TypeValidator.isBrowserObjectArg(arg)) {\n formatParts.push('%o')\n formatArgs.push(arg.value)\n continue\n }\n\n if (TypeValidator.isString(arg)) {\n formatParts.push(`%c${arg}`)\n formatArgs.push(`color:${paletteHex}`)\n continue\n }\n\n // Fallback: non-string, non-wrapper → log as object\n formatParts.push('%o')\n formatArgs.push(arg)\n }\n\n if (formatParts.length === 0) return args\n\n return [formatParts.join(''), ...formatArgs]\n }\n\n protected _output(consoleMethod: ConsoleMethod, args: unknown[]): void {\n console[consoleMethod](...args)\n }\n\n protected _processArgs(args: unknown[]): unknown[] {\n const processedArgs: unknown[] = []\n let previousWasObject = false\n\n for (const arg of args) {\n if (\n TypeValidator.isBrowserColorizedArg(arg) ||\n TypeValidator.isBrowserCssArg(arg)\n ) {\n processedArgs.push(arg)\n\n previousWasObject = false\n continue\n }\n\n if (TypeValidator.isFormattableObject(arg)) {\n processedArgs.push({\n [ColorinoBrowserObject]: true,\n value: arg,\n })\n\n previousWasObject = true\n } else if (TypeValidator.isError(arg)) {\n processedArgs.push('\\n', this._cleanErrorStack(arg))\n\n previousWasObject = true\n } else {\n processedArgs.push(\n TypeValidator.isString(arg) && previousWasObject ? `\\n${arg}` : arg\n )\n\n previousWasObject = false\n }\n }\n\n return processedArgs\n }\n\n protected isBrowser(): boolean {\n return true\n }\n}\n","import type { ColorSupportDetectorInterface } from './interfaces.js'\nimport { ColorLevel } from './enums.js'\nimport type { TerminalTheme } from './types.js'\n\nexport class BrowserColorSupportDetector implements ColorSupportDetectorInterface {\n constructor(\n private readonly _window:\n | {\n document: HTMLDocument\n matchMedia(arg0: string): { matches: unknown }\n }\n | undefined,\n private readonly _navigator: { userAgent: string } | undefined,\n private readonly _overrideTheme?: TerminalTheme\n ) {}\n\n isBrowserEnv(): boolean {\n return !!this._window && !!this._navigator?.userAgent\n }\n\n getColorLevel(): ColorLevel {\n const isTruecolor = window.matchMedia('(color-gamut: p3)').matches\n if (isTruecolor) {\n return ColorLevel.TRUECOLOR\n }\n\n const isAnsi256 = window.matchMedia('(monochrome: 0)').matches\n if (isAnsi256) {\n return ColorLevel.ANSI256\n }\n\n // Default to basic ANSI\n return ColorLevel.ANSI\n }\n\n getTheme(): TerminalTheme {\n if (this._overrideTheme) {\n return this._overrideTheme\n }\n\n if (\n !this.isBrowserEnv() ||\n typeof this._window!.matchMedia !== 'function'\n ) {\n return 'unknown'\n }\n\n const isDarkTheme = this._window!.matchMedia(\n '(prefers-color-scheme: dark)'\n ).matches\n if (isDarkTheme) {\n return 'dark'\n }\n\n const isLightTheme = '(prefers-color-scheme: light)'\n if (this._window!.matchMedia(isLightTheme).matches) {\n return 'light'\n }\n\n return 'unknown'\n }\n}\n","const defaultErrorConfig = {\r\n withStackTrace: false,\r\n};\r\n// Custom error object\r\n// Context / discussion: https://github.com/supermacro/neverthrow/pull/215\r\nconst createNeverThrowError = (message, result, config = defaultErrorConfig) => {\r\n const data = result.isOk()\r\n ? { type: 'Ok', value: result.value }\r\n : { type: 'Err', value: result.error };\r\n const maybeStack = config.withStackTrace ? new Error().stack : undefined;\r\n return {\r\n data,\r\n message,\r\n stack: maybeStack,\r\n };\r\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass ResultAsync {\r\n constructor(res) {\r\n this._promise = res;\r\n }\r\n static fromSafePromise(promise) {\r\n const newPromise = promise.then((value) => new Ok(value));\r\n return new ResultAsync(newPromise);\r\n }\r\n static fromPromise(promise, errorFn) {\r\n const newPromise = promise\r\n .then((value) => new Ok(value))\r\n .catch((e) => new Err(errorFn(e)));\r\n return new ResultAsync(newPromise);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n return new ResultAsync((() => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return new Ok(yield fn(...args));\r\n }\r\n catch (error) {\r\n return new Err(errorFn ? errorFn(error) : error);\r\n }\r\n }))());\r\n };\r\n }\r\n static combine(asyncResultList) {\r\n return combineResultAsyncList(asyncResultList);\r\n }\r\n static combineWithAllErrors(asyncResultList) {\r\n return combineResultAsyncListWithAllErrors(asyncResultList);\r\n }\r\n map(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n return new Ok(yield f(res.value));\r\n })));\r\n }\r\n andThrough(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newRes = yield f(res.value);\r\n if (newRes.isErr()) {\r\n return new Err(newRes.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n andTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n try {\r\n yield f(res.value);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n orTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n try {\r\n yield f(res.error);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Err(res.error);\r\n })));\r\n }\r\n mapErr(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n return new Err(yield f(res.error));\r\n })));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return new ResultAsync(this._promise.then((res) => {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newValue = f(res.value);\r\n return newValue instanceof ResultAsync ? newValue._promise : newValue;\r\n }));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return f(res.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n match(ok, _err) {\r\n return this._promise.then((res) => res.match(ok, _err));\r\n }\r\n unwrapOr(t) {\r\n return this._promise.then((res) => res.unwrapOr(t));\r\n }\r\n /**\r\n * @deprecated will be removed in 9.0.0.\r\n *\r\n * You can use `safeTry` without this method.\r\n * @example\r\n * ```typescript\r\n * safeTry(async function* () {\r\n * const okValue = yield* yourResult\r\n * })\r\n * ```\r\n * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.\r\n */\r\n safeUnwrap() {\r\n return __asyncGenerator(this, arguments, function* safeUnwrap_1() {\r\n return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(yield __await(this._promise.then((res) => res.safeUnwrap()))))));\r\n });\r\n }\r\n // Makes ResultAsync implement PromiseLike<Result>\r\n then(successCallback, failureCallback) {\r\n return this._promise.then(successCallback, failureCallback);\r\n }\r\n [Symbol.asyncIterator]() {\r\n return __asyncGenerator(this, arguments, function* _a() {\r\n const result = yield __await(this._promise);\r\n if (result.isErr()) {\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield yield __await(errAsync(result.error));\r\n }\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return yield __await(result.value);\r\n });\r\n }\r\n}\r\nfunction okAsync(value) {\r\n return new ResultAsync(Promise.resolve(new Ok(value)));\r\n}\r\nfunction errAsync(err) {\r\n return new ResultAsync(Promise.resolve(new Err(err)));\r\n}\r\nconst fromPromise = ResultAsync.fromPromise;\r\nconst fromSafePromise = ResultAsync.fromSafePromise;\r\nconst fromAsyncThrowable = ResultAsync.fromThrowable;\n\n/**\r\n * Short circuits on the FIRST Err value that we find\r\n */\r\nconst combineResultList = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr()) {\r\n acc = err(result.error);\r\n break;\r\n }\r\n else {\r\n acc.map((list) => list.push(result.value));\r\n }\r\n }\r\n return acc;\r\n};\r\n/* This is the typesafe version of Promise.all\r\n *\r\n * Takes a list of ResultAsync<T, E> and success if all inner results are Ok values\r\n * or fails if one (or more) of the inner results are Err values\r\n */\r\nconst combineResultAsyncList = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultList);\r\n/**\r\n * Give a list of all the errors we find\r\n */\r\nconst combineResultListWithAllErrors = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr() && acc.isErr()) {\r\n acc.error.push(result.error);\r\n }\r\n else if (result.isErr() && acc.isOk()) {\r\n acc = err([result.error]);\r\n }\r\n else if (result.isOk() && acc.isOk()) {\r\n acc.value.push(result.value);\r\n }\r\n // do nothing when result.isOk() && acc.isErr()\r\n }\r\n return acc;\r\n};\r\nconst combineResultAsyncListWithAllErrors = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultListWithAllErrors);\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nvar Result;\r\n(function (Result) {\r\n /**\r\n * Wraps a function with a try catch, creating a new function with the same\r\n * arguments but returning `Ok` if successful, `Err` if the function throws\r\n *\r\n * @param fn function to wrap with ok on success or err on failure\r\n * @param errorFn when an error is thrown, this will wrap the error result if provided\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n try {\r\n const result = fn(...args);\r\n return ok(result);\r\n }\r\n catch (e) {\r\n return err(errorFn ? errorFn(e) : e);\r\n }\r\n };\r\n }\r\n Result.fromThrowable = fromThrowable;\r\n function combine(resultList) {\r\n return combineResultList(resultList);\r\n }\r\n Result.combine = combine;\r\n function combineWithAllErrors(resultList) {\r\n return combineResultListWithAllErrors(resultList);\r\n }\r\n Result.combineWithAllErrors = combineWithAllErrors;\r\n})(Result || (Result = {}));\r\nfunction ok(value) {\r\n return new Ok(value);\r\n}\r\nfunction err(err) {\r\n return new Err(err);\r\n}\r\nfunction safeTry(body) {\r\n const n = body().next();\r\n if (n instanceof Promise) {\r\n return new ResultAsync(n.then((r) => r.value));\r\n }\r\n return n.value;\r\n}\r\nclass Ok {\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n isOk() {\r\n return true;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n map(f) {\r\n return ok(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n mapErr(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThrough(f) {\r\n return f(this.value).map((_value) => this.value);\r\n }\r\n andTee(f) {\r\n try {\r\n f(this.value);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return ok(this.value);\r\n }\r\n orTee(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(_f) {\r\n return ok(this.value);\r\n }\r\n asyncAndThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n asyncAndThrough(f) {\r\n return f(this.value).map(() => this.value);\r\n }\r\n asyncMap(f) {\r\n return ResultAsync.fromSafePromise(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unwrapOr(_v) {\r\n return this.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n match(ok, _err) {\r\n return ok(this.value);\r\n }\r\n safeUnwrap() {\r\n const value = this.value;\r\n /* eslint-disable-next-line require-yield */\r\n return (function* () {\r\n return value;\r\n })();\r\n }\r\n _unsafeUnwrap(_) {\r\n return this.value;\r\n }\r\n _unsafeUnwrapErr(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrapErr` on an Ok', this, config);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias, require-yield\r\n *[Symbol.iterator]() {\r\n return this.value;\r\n }\r\n}\r\nclass Err {\r\n constructor(error) {\r\n this.error = error;\r\n }\r\n isOk() {\r\n return false;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n map(_f) {\r\n return err(this.error);\r\n }\r\n mapErr(f) {\r\n return err(f(this.error));\r\n }\r\n andThrough(_f) {\r\n return err(this.error);\r\n }\r\n andTee(_f) {\r\n return err(this.error);\r\n }\r\n orTee(f) {\r\n try {\r\n f(this.error);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(_f) {\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return f(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncAndThen(_f) {\r\n return errAsync(this.error);\r\n }\r\n asyncAndThrough(_f) {\r\n return errAsync(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncMap(_f) {\r\n return errAsync(this.error);\r\n }\r\n unwrapOr(v) {\r\n return v;\r\n }\r\n match(_ok, err) {\r\n return err(this.error);\r\n }\r\n safeUnwrap() {\r\n const error = this.error;\r\n return (function* () {\r\n yield err(error);\r\n throw new Error('Do not use this generator out of `safeTry`');\r\n })();\r\n }\r\n _unsafeUnwrap(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrap` on an Err', this, config);\r\n }\r\n _unsafeUnwrapErr(_) {\r\n return this.error;\r\n }\r\n *[Symbol.iterator]() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self = this;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield self;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return self;\r\n }\r\n}\r\nconst fromThrowable = Result.fromThrowable;\r\n//#endregion\n\nexport { Err, Ok, Result, ResultAsync, err, errAsync, fromAsyncThrowable, fromPromise, fromSafePromise, fromThrowable, ok, okAsync, safeTry };\n","export class InputValidationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'InputValidationError'\n Object.setPrototypeOf(this, InputValidationError.prototype)\n }\n}\n","import { ok, err, Result } from 'neverthrow'\nimport { InputValidationError } from './errors.js'\nimport type { Palette } from './types.js'\n\nexport class InputValidator {\n validateHex(hex: string): Result<boolean, InputValidationError> {\n const trimmedHex = hex.trim()\n const isHexValid = /^#[0-9A-F]{6}$/i.test(trimmedHex)\n if (!isHexValid) {\n return err(new InputValidationError(`Invalid hex color: '${hex}'`))\n }\n return ok(true)\n }\n\n validatePalette(palette: Palette): Result<boolean, InputValidationError> {\n for (const level in palette) {\n const hex = palette[level as keyof Palette]\n const result = this.validateHex(hex)\n if (result.isErr()) {\n return err(result.error)\n }\n }\n return ok(true)\n }\n}\n","import { type Palette } from './types.js'\n\n// Low-contrast palette for dark backgrounds (light text)\nexport const catppuccinMochaPalette: Palette = {\n log: '#cdd6f4', // Text\n info: '#89b4fa', // Blue\n warn: '#f9e2af', // Yellow\n error: '#f38ba8', // Red\n debug: '#a6adc8', // Subtext0\n trace: '#9399b2', // Subtext1\n}\n\n// Low-contrast palette for light backgrounds (dark text)\nexport const catppuccinLattePalette: Palette = {\n log: '#4c4f69', // Text\n info: '#1e66f5', // Blue\n warn: '#df8e1d', // Yellow\n error: '#d20f39', // Red\n debug: '#7c7f93', // Subtext0\n trace: '#8c8fa1', // Subtext1\n}\n\n// High-contrast palette for dark backgrounds (light text)\nexport const draculaPalette: Palette = {\n log: '#f8f8f2', // Foreground\n info: '#8be9fd', // Cyan\n warn: '#f1fa8c', // Yellow\n error: '#ff5555', // Red\n debug: '#bd93f9', // Purple\n trace: '#6272a4', // Comment\n}\n\n// High-contrast palette for light backgrounds (dark text)\nexport const githubLightPalette: Palette = {\n log: '#24292e', // Text\n info: '#0366d6', // Blue\n warn: '#f9a002', // Yellow\n error: '#d73a49', // Red\n debug: '#586069', // Gray\n trace: '#6a737d', // Gray-light\n}\n","import {\n catppuccinMochaPalette,\n catppuccinLattePalette,\n draculaPalette,\n githubLightPalette,\n} from './palettes.js'\nimport type { Palette, ThemeName } from './types.js'\n\nexport const themePalettes: Record<ThemeName, Palette> = {\n 'catppuccin-mocha': catppuccinMochaPalette,\n 'catppuccin-latte': catppuccinLattePalette,\n dracula: draculaPalette,\n 'github-light': githubLightPalette,\n}\n\nexport const defaultDarkTheme: ThemeName = 'dracula'\nexport const defaultLightTheme: ThemeName = 'github-light'\n\nexport function isThemeName(theme: string): theme is ThemeName {\n return theme in themePalettes\n}\n","import { ColorinoBrowser } from './colorino-browser.js'\nimport { BrowserColorSupportDetector } from './browser-color-support-detector.js'\nimport { InputValidator } from './input-validator.js'\nimport { themePalettes } from './theme.js'\nimport { determineBaseTheme } from './determine-base-theme.js'\nimport { LogLevel, Palette, TerminalTheme, ThemeName } from './types.js'\nimport { ColorinoOptions, ColorinoBrowserInterface } from './interfaces.js'\n\nexport function createColorino(\n userPalette: Partial<Palette> = {},\n options: ColorinoOptions = {}\n): ColorinoBrowserInterface {\n const validator = new InputValidator()\n\n let detectorThemeOverride: TerminalTheme | undefined\n if (options.theme === 'dark' || options.theme === 'light') {\n detectorThemeOverride = options.theme\n }\n\n const browserDetector = new BrowserColorSupportDetector(\n window,\n navigator,\n detectorThemeOverride\n )\n\n const detectedBrowserTheme = browserDetector.getTheme()\n\n const themeOpt = options.theme ?? 'auto'\n const baseThemeName = determineBaseTheme(themeOpt, detectedBrowserTheme)\n\n const basePalette = themePalettes[baseThemeName]\n const finalPalette: Palette = { ...basePalette, ...userPalette }\n\n const colorLevel = browserDetector.isBrowserEnv()\n ? (browserDetector.getColorLevel() ?? 'UnknownEnv')\n : 'UnknownEnv'\n\n return new ColorinoBrowser(\n finalPalette,\n userPalette,\n validator,\n colorLevel,\n options\n )\n}\n\nexport type { Palette, LogLevel, ThemeName }\nexport type { ColorinoOptions, ColorinoBrowserInterface }\nexport { themePalettes }\nexport const colorino = createColorino()\n","import { defaultLightTheme, defaultDarkTheme, isThemeName } from './theme.js'\nimport { type ThemeName } from './types.js'\n\nexport function determineBaseTheme(\n themeOpt: string,\n detectedBrowserTheme: string\n) {\n let baseThemeName: ThemeName\n\n if (isThemeName(themeOpt)) {\n baseThemeName = themeOpt\n } else if (themeOpt === 'light') {\n baseThemeName = defaultLightTheme\n } else if (themeOpt === 'dark') {\n baseThemeName = defaultDarkTheme\n } else {\n // Fallback to 'auto' detection\n baseThemeName =\n detectedBrowserTheme === 'light' ? defaultLightTheme : defaultDarkTheme\n }\n return baseThemeName\n}\n"],"names":["ColorinoBrowserColorized","Symbol","ColorinoBrowserObject","ColorinoBrowserCss","ColorLevel","ColorLevel2","TypeValidator","isNull","value","isUndefined","isNullOrUndefined","isObject","isString","String","isArray","Array","isError","Error","isBrowserColorizedArg","isBrowserCssArg","isBrowserObjectArg","isAnsiColoredString","test","toString","isFormattableObject","isConsoleMethod","level","includes","AbstractColorino","constructor","initialPalette","_userPalette","_validator","colorLevel","_options","this","_palette","validatePaletteResult","validatePalette","isErr","error","_colorLevel","_alreadyWarned","log","args","_out","info","warn","trace","debug","colorize","text","hex","NO_COLOR","isBrowser","ansiPrefix","_toAnsiPrefix","consoleMethod","processedArgs","_processArgs","_output","coloredArgs","_applyColors","_hex","_formatValue","maxDepth","seen","WeakSet","sanitize","val","currentDepth","has","add","nextDepth","depth","map","item","obj","result","key","sanitizeObject","JSON","stringify","_filterStack","stack","split","filter","line","match","join","_cleanErrorStack","cleanStack","cloned","Object","create","getPrototypeOf","assign","_printCleanTrace","console","ColorinoBrowser","userPalette","validator","options","super","css","style","_normalizeCssStyle","parts","propertyName","prototype","hasOwnProperty","call","push","formatParts","formatArgs","paletteHex","arg","length","previousWasObject","BrowserColorSupportDetector","_window","_navigator","_overrideTheme","isBrowserEnv","userAgent","getColorLevel","window","matchMedia","matches","TRUECOLOR","ANSI256","ANSI","getTheme","defaultErrorConfig","withStackTrace","createNeverThrowError","message","config","data","isOk","type","undefined","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","then","apply","__await","v","__asyncGenerator","asyncIterator","TypeError","i","g","q","AsyncIterator","verb","f","n","a","b","resume","r","fulfill","settle","shift","__asyncValues","o","m","s","iterator","__values","d","SuppressedError","ResultAsync","res","_promise","fromSafePromise","promise","newPromise","Ok","fromPromise","errorFn","catch","Err","fromThrowable","fn","combine","asyncResultList","combineResultAsyncList","combineWithAllErrors","combineResultAsyncListWithAllErrors","andThrough","newRes","andTee","orTee","mapErr","andThen","newValue","orElse","ok","_err","unwrapOr","t","safeUnwrap","arguments","p","__asyncDelegator","successCallback","failureCallback","errAsync","err","combineResultList","resultList","acc","list","all","combineResultListWithAllErrors","Result","_f","_value","asyncAndThen","asyncAndThrough","asyncMap","_v","_unsafeUnwrap","_","_unsafeUnwrapErr","_ok","InputValidationError","name","setPrototypeOf","InputValidator","validateHex","trimmedHex","trim","palette","themePalettes","dracula","defaultDarkTheme","defaultLightTheme","createColorino","detectorThemeOverride","theme","browserDetector","navigator","detectedBrowserTheme","baseThemeName","themeOpt","determineBaseTheme","finalPalette","colorino"],"mappings":"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","x_google_ignoreList":[6]}
|
|
1
|
+
{"version":3,"file":"cdn.min.js","sources":["../src/types.ts","../src/enums.ts","../src/type-validator.ts","../src/abstract-colorino.ts","../src/colorino-browser.ts","../src/browser-color-support-detector.ts","../node_modules/neverthrow/dist/index.es.js","../src/errors.ts","../src/input-validator.ts","../src/palettes.ts","../src/theme.ts","../src/browser.ts","../src/determine-base-theme.ts","../src/browser-umd.ts"],"sourcesContent":["export type ConsoleMethod =\n | 'log'\n | 'info'\n | 'warn'\n | 'error'\n | 'trace'\n | 'debug'\nexport type LogLevel = ConsoleMethod & string\n\nexport type RgbColor = [number, number, number]\nexport type HslColor = [number, number, number]\nexport type RgbaColor = [number, number, number, number]\n\nexport type Palette = Record<LogLevel, string>\nexport type TerminalTheme = 'dark' | 'light' | 'unknown'\n\nexport type ThemeName =\n | 'catppuccin-mocha'\n | 'catppuccin-latte'\n | 'dracula'\n | 'github-light'\n\nexport const ColorinoBrowserColorized = Symbol('colorino.browserColorized')\nexport const ColorinoBrowserObject = Symbol('colorino.browserObject')\nexport const ColorinoBrowserCss = Symbol('colorino.browserCss')\n\nexport type CssConsoleStyle = string | Record<string, string>\n\nexport interface BrowserCssArg {\n [ColorinoBrowserCss]: true\n text: string\n css: string\n}\n\nexport type BrowserColorizedArg = {\n [ColorinoBrowserColorized]: true\n text: string\n hex: string\n}\n\nexport type BrowserObjectArg = {\n [ColorinoBrowserObject]: true\n value: unknown\n}\n","export enum ColorLevel {\n NO_COLOR = 0,\n ANSI = 1,\n ANSI256 = 2,\n TRUECOLOR = 3,\n}\n","import {\n BrowserColorizedArg,\n BrowserCssArg,\n BrowserObjectArg,\n ColorinoBrowserColorized,\n ColorinoBrowserCss,\n ColorinoBrowserObject,\n ConsoleMethod,\n} from './types.js'\n\nexport class TypeValidator {\n static isNull(value: unknown): value is null {\n return value === null\n }\n\n static isUndefined(value: unknown): value is undefined {\n return value === undefined\n }\n\n static isNullOrUndefined(value: unknown): value is null | undefined {\n return value == null\n }\n\n static isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n }\n\n static isString(value: unknown): value is string | string {\n return typeof value === 'string' || value instanceof String\n }\n\n static isArray(value: unknown): value is unknown[] {\n return Array.isArray(value)\n }\n\n static isError(value: unknown): value is Error {\n return value instanceof Error\n }\n\n static isBrowserColorizedArg(value: unknown): value is BrowserColorizedArg {\n return TypeValidator.isObject(value) && ColorinoBrowserColorized in value\n }\n\n static isBrowserCssArg(value: unknown): value is BrowserCssArg {\n return (\n typeof value === 'object' &&\n value !== null &&\n ColorinoBrowserCss in value &&\n (value as BrowserCssArg)[ColorinoBrowserCss] === true\n )\n }\n\n static isBrowserObjectArg(value: unknown): value is BrowserObjectArg {\n return TypeValidator.isObject(value) && ColorinoBrowserObject in value\n }\n\n static isAnsiColoredString(value: unknown): value is string {\n // eslint-disable\n return (\n TypeValidator.isString(value) && /\\x1b\\[[0-9;]*m/.test(value.toString())\n )\n }\n\n static isFormattableObject(value: unknown): value is Record<string, unknown> {\n return (\n TypeValidator.isObject(value) &&\n !TypeValidator.isError(value) &&\n !TypeValidator.isBrowserColorizedArg(value) &&\n !TypeValidator.isString(value) // Treat String objects as strings, not general objects\n )\n }\n\n static isConsoleMethod(level: string): level is ConsoleMethod {\n return ['log', 'info', 'warn', 'error', 'trace', 'debug'].includes(level)\n }\n}\n","import {\n type Palette,\n type LogLevel,\n ConsoleMethod,\n ColorinoBrowserColorized,\n BrowserColorizedArg,\n} from './types.js'\nimport { type ColorinoOptions } from './interfaces.js'\nimport { InputValidator } from './input-validator.js'\nimport { ColorLevel } from './enums.js'\nimport { TypeValidator } from './type-validator.js'\n\nexport abstract class AbstractColorino {\n protected _alreadyWarned = false\n protected _colorLevel: ColorLevel | 'UnknownEnv'\n protected _palette: Palette\n\n protected constructor(\n initialPalette: Palette,\n protected readonly _userPalette: Partial<Palette>,\n protected readonly _validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n protected readonly _options: ColorinoOptions = {}\n ) {\n this._palette = initialPalette\n\n const validatePaletteResult = this._validator.validatePalette(this._palette)\n if (validatePaletteResult.isErr()) throw validatePaletteResult.error\n\n this._colorLevel = colorLevel\n }\n log(...args: unknown[]): void {\n this._out('log', args)\n }\n info(...args: unknown[]): void {\n this._out('info', args)\n }\n warn(...args: unknown[]): void {\n this._out('warn', args)\n }\n error(...args: unknown[]): void {\n this._out('error', args)\n }\n trace(...args: unknown[]): void {\n this._out('trace', args)\n }\n debug(...args: unknown[]): void {\n this._out('debug', args)\n }\n\n colorize(text: string, hex: string): string | BrowserColorizedArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n if (this.isBrowser()) {\n return {\n [ColorinoBrowserColorized]: true,\n text,\n hex,\n }\n }\n\n const ansiPrefix = this._toAnsiPrefix(hex)\n if (!ansiPrefix) {\n return text\n }\n\n return `${ansiPrefix}${text}\\x1b[0m`\n }\n\n private _out(level: LogLevel, args: unknown[]): void {\n const consoleMethod = TypeValidator.isConsoleMethod(level) ? level : 'log'\n const processedArgs = this._processArgs(args)\n\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n this._output(consoleMethod, processedArgs)\n return\n }\n\n const coloredArgs = this._applyColors(consoleMethod, processedArgs)\n this._output(consoleMethod, coloredArgs)\n }\n protected abstract _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[]\n protected abstract _output(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): void\n protected abstract _processArgs(args: unknown[]): unknown[]\n protected abstract isBrowser(): boolean\n\n protected _toAnsiPrefix(_hex: string): string {\n return ''\n }\n\n protected _formatValue(\n value: unknown,\n maxDepth = this._options.maxDepth ?? 5\n ): string {\n const seen = new WeakSet<object>()\n\n const sanitizeArray = (items: unknown[], depth: number): unknown[] => {\n return items.map(item => sanitize(item, depth))\n }\n\n const sanitizeObject = (\n obj: Record<string, unknown>,\n depth: number\n ): Record<string, unknown> => {\n const result: Record<string, unknown> = {}\n for (const key in obj) {\n result[key] = sanitize(obj[key], depth)\n }\n return result\n }\n\n const sanitize = (val: unknown, currentDepth: number): unknown => {\n if (\n TypeValidator.isNullOrUndefined(val) ||\n !TypeValidator.isObject(val)\n ) {\n return val\n }\n\n if (seen.has(val)) return '[Circular]'\n seen.add(val)\n\n if (currentDepth >= maxDepth) return '[Object]'\n\n const nextDepth = currentDepth + 1\n\n if (TypeValidator.isArray(val)) {\n return sanitizeArray(val as unknown[], nextDepth)\n }\n\n return sanitizeObject(val as Record<string, unknown>, nextDepth)\n }\n\n return JSON.stringify(sanitize(value, 0), null, 2)\n }\n\n protected _filterStack(stack: string): string {\n return stack\n .split('\\n')\n .filter(line => !line.match(/.*colorino.*/gi))\n .join('\\n')\n }\n\n protected _cleanErrorStack(error: Error): Error {\n if (!error.stack) return error\n\n const cleanStack = this._filterStack(error.stack)\n\n const cloned = Object.create(Object.getPrototypeOf(error)) as Error\n Object.assign(cloned, error)\n cloned.stack = cleanStack\n\n return cloned\n }\n\n protected _printCleanTrace(args: unknown[]): void {\n const error = new Error()\n\n if (error.stack) {\n const cleanStack = this._filterStack(error.stack)\n console.log(...args, `\\n${cleanStack}`)\n } else {\n console.log(...args)\n }\n }\n}\n","import { AbstractColorino } from './abstract-colorino.js'\nimport { ColorLevel } from './enums.js'\nimport {\n ConsoleMethod,\n ColorinoBrowserObject,\n Palette,\n BrowserCssArg,\n CssConsoleStyle,\n ColorinoBrowserCss,\n} from './types.js'\nimport { ColorinoBrowserInterface, ColorinoOptions } from './interfaces.js'\nimport { TypeValidator } from './type-validator.js'\nimport { InputValidator } from './input-validator.js'\n\nexport class ColorinoBrowser\n extends AbstractColorino\n implements ColorinoBrowserInterface\n{\n constructor(\n initialPalette: Palette,\n userPalette: Partial<Palette>,\n validator: InputValidator,\n colorLevel: ColorLevel | 'UnknownEnv',\n options: ColorinoOptions = {}\n ) {\n super(initialPalette, userPalette, validator, colorLevel, options)\n }\n\n public css(text: string, style: CssConsoleStyle): string | BrowserCssArg {\n if (\n this._colorLevel === ColorLevel.NO_COLOR ||\n this._colorLevel === 'UnknownEnv'\n ) {\n return text\n }\n\n const css = this._normalizeCssStyle(style)\n\n return {\n [ColorinoBrowserCss]: true,\n text,\n css,\n }\n }\n\n protected _normalizeCssStyle(style: CssConsoleStyle): string {\n if (TypeValidator.isString(style)) return style\n\n const parts: string[] = []\n\n for (const propertyName in style) {\n if (!Object.prototype.hasOwnProperty.call(style, propertyName)) {\n continue\n }\n\n const value = style[propertyName]\n if (!value) continue\n\n parts.push(`${propertyName}:${value}`)\n }\n\n return parts.join(';')\n }\n\n protected _applyColors(\n consoleMethod: ConsoleMethod,\n args: unknown[]\n ): unknown[] {\n const formatParts: string[] = []\n const formatArgs: unknown[] = []\n\n const paletteHex = this._palette[consoleMethod]\n\n for (const arg of args) {\n if (TypeValidator.isBrowserColorizedArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(`color:${arg.hex}`)\n continue\n }\n\n if (TypeValidator.isBrowserCssArg(arg)) {\n formatParts.push(`%c${arg.text}`)\n formatArgs.push(arg.css)\n continue\n }\n\n if (TypeValidator.isBrowserObjectArg(arg)) {\n formatParts.push('%o')\n formatArgs.push(arg.value)\n continue\n }\n\n if (TypeValidator.isString(arg)) {\n formatParts.push(`%c${arg}`)\n formatArgs.push(`color:${paletteHex}`)\n continue\n }\n\n // Fallback: non-string, non-wrapper → log as object\n formatParts.push('%o')\n formatArgs.push(arg)\n }\n\n if (formatParts.length === 0) return args\n\n return [formatParts.join(''), ...formatArgs]\n }\n\n protected _output(consoleMethod: ConsoleMethod, args: unknown[]): void {\n console[consoleMethod](...args)\n }\n\n protected _processArgs(args: unknown[]): unknown[] {\n const processedArgs: unknown[] = []\n let previousWasObject = false\n\n for (const arg of args) {\n if (\n TypeValidator.isBrowserColorizedArg(arg) ||\n TypeValidator.isBrowserCssArg(arg)\n ) {\n processedArgs.push(arg)\n\n previousWasObject = false\n continue\n }\n\n if (TypeValidator.isFormattableObject(arg)) {\n processedArgs.push({\n [ColorinoBrowserObject]: true,\n value: arg,\n })\n\n previousWasObject = true\n } else if (TypeValidator.isError(arg)) {\n processedArgs.push('\\n', this._cleanErrorStack(arg))\n\n previousWasObject = true\n } else {\n processedArgs.push(\n TypeValidator.isString(arg) && previousWasObject ? `\\n${arg}` : arg\n )\n\n previousWasObject = false\n }\n }\n\n return processedArgs\n }\n\n protected isBrowser(): boolean {\n return true\n }\n}\n","import type { ColorSupportDetectorInterface } from './interfaces.js'\nimport { ColorLevel } from './enums.js'\nimport type { TerminalTheme } from './types.js'\n\nexport class BrowserColorSupportDetector implements ColorSupportDetectorInterface {\n constructor(\n private readonly _window:\n | {\n document: HTMLDocument\n matchMedia(arg0: string): { matches: unknown }\n }\n | undefined,\n private readonly _navigator: { userAgent: string } | undefined,\n private readonly _overrideTheme?: TerminalTheme\n ) {}\n\n isBrowserEnv(): boolean {\n return !!this._window && !!this._navigator?.userAgent\n }\n\n getColorLevel(): ColorLevel {\n const isTruecolor = window.matchMedia('(color-gamut: p3)').matches\n if (isTruecolor) {\n return ColorLevel.TRUECOLOR\n }\n\n const isAnsi256 = window.matchMedia('(monochrome: 0)').matches\n if (isAnsi256) {\n return ColorLevel.ANSI256\n }\n\n // Default to basic ANSI\n return ColorLevel.ANSI\n }\n\n getTheme(): TerminalTheme {\n if (this._overrideTheme) {\n return this._overrideTheme\n }\n\n if (\n !this.isBrowserEnv() ||\n typeof this._window!.matchMedia !== 'function'\n ) {\n return 'unknown'\n }\n\n const isDarkTheme = this._window!.matchMedia(\n '(prefers-color-scheme: dark)'\n ).matches\n if (isDarkTheme) {\n return 'dark'\n }\n\n const isLightTheme = '(prefers-color-scheme: light)'\n if (this._window!.matchMedia(isLightTheme).matches) {\n return 'light'\n }\n\n return 'unknown'\n }\n}\n","const defaultErrorConfig = {\r\n withStackTrace: false,\r\n};\r\n// Custom error object\r\n// Context / discussion: https://github.com/supermacro/neverthrow/pull/215\r\nconst createNeverThrowError = (message, result, config = defaultErrorConfig) => {\r\n const data = result.isOk()\r\n ? { type: 'Ok', value: result.value }\r\n : { type: 'Err', value: result.error };\r\n const maybeStack = config.withStackTrace ? new Error().stack : undefined;\r\n return {\r\n data,\r\n message,\r\n stack: maybeStack,\r\n };\r\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass ResultAsync {\r\n constructor(res) {\r\n this._promise = res;\r\n }\r\n static fromSafePromise(promise) {\r\n const newPromise = promise.then((value) => new Ok(value));\r\n return new ResultAsync(newPromise);\r\n }\r\n static fromPromise(promise, errorFn) {\r\n const newPromise = promise\r\n .then((value) => new Ok(value))\r\n .catch((e) => new Err(errorFn(e)));\r\n return new ResultAsync(newPromise);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n return new ResultAsync((() => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return new Ok(yield fn(...args));\r\n }\r\n catch (error) {\r\n return new Err(errorFn ? errorFn(error) : error);\r\n }\r\n }))());\r\n };\r\n }\r\n static combine(asyncResultList) {\r\n return combineResultAsyncList(asyncResultList);\r\n }\r\n static combineWithAllErrors(asyncResultList) {\r\n return combineResultAsyncListWithAllErrors(asyncResultList);\r\n }\r\n map(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n return new Ok(yield f(res.value));\r\n })));\r\n }\r\n andThrough(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newRes = yield f(res.value);\r\n if (newRes.isErr()) {\r\n return new Err(newRes.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n andTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n try {\r\n yield f(res.value);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n orTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n try {\r\n yield f(res.error);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Err(res.error);\r\n })));\r\n }\r\n mapErr(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n return new Err(yield f(res.error));\r\n })));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return new ResultAsync(this._promise.then((res) => {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newValue = f(res.value);\r\n return newValue instanceof ResultAsync ? newValue._promise : newValue;\r\n }));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return f(res.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n match(ok, _err) {\r\n return this._promise.then((res) => res.match(ok, _err));\r\n }\r\n unwrapOr(t) {\r\n return this._promise.then((res) => res.unwrapOr(t));\r\n }\r\n /**\r\n * @deprecated will be removed in 9.0.0.\r\n *\r\n * You can use `safeTry` without this method.\r\n * @example\r\n * ```typescript\r\n * safeTry(async function* () {\r\n * const okValue = yield* yourResult\r\n * })\r\n * ```\r\n * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.\r\n */\r\n safeUnwrap() {\r\n return __asyncGenerator(this, arguments, function* safeUnwrap_1() {\r\n return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(yield __await(this._promise.then((res) => res.safeUnwrap()))))));\r\n });\r\n }\r\n // Makes ResultAsync implement PromiseLike<Result>\r\n then(successCallback, failureCallback) {\r\n return this._promise.then(successCallback, failureCallback);\r\n }\r\n [Symbol.asyncIterator]() {\r\n return __asyncGenerator(this, arguments, function* _a() {\r\n const result = yield __await(this._promise);\r\n if (result.isErr()) {\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield yield __await(errAsync(result.error));\r\n }\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return yield __await(result.value);\r\n });\r\n }\r\n}\r\nfunction okAsync(value) {\r\n return new ResultAsync(Promise.resolve(new Ok(value)));\r\n}\r\nfunction errAsync(err) {\r\n return new ResultAsync(Promise.resolve(new Err(err)));\r\n}\r\nconst fromPromise = ResultAsync.fromPromise;\r\nconst fromSafePromise = ResultAsync.fromSafePromise;\r\nconst fromAsyncThrowable = ResultAsync.fromThrowable;\n\n/**\r\n * Short circuits on the FIRST Err value that we find\r\n */\r\nconst combineResultList = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr()) {\r\n acc = err(result.error);\r\n break;\r\n }\r\n else {\r\n acc.map((list) => list.push(result.value));\r\n }\r\n }\r\n return acc;\r\n};\r\n/* This is the typesafe version of Promise.all\r\n *\r\n * Takes a list of ResultAsync<T, E> and success if all inner results are Ok values\r\n * or fails if one (or more) of the inner results are Err values\r\n */\r\nconst combineResultAsyncList = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultList);\r\n/**\r\n * Give a list of all the errors we find\r\n */\r\nconst combineResultListWithAllErrors = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr() && acc.isErr()) {\r\n acc.error.push(result.error);\r\n }\r\n else if (result.isErr() && acc.isOk()) {\r\n acc = err([result.error]);\r\n }\r\n else if (result.isOk() && acc.isOk()) {\r\n acc.value.push(result.value);\r\n }\r\n // do nothing when result.isOk() && acc.isErr()\r\n }\r\n return acc;\r\n};\r\nconst combineResultAsyncListWithAllErrors = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultListWithAllErrors);\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nvar Result;\r\n(function (Result) {\r\n /**\r\n * Wraps a function with a try catch, creating a new function with the same\r\n * arguments but returning `Ok` if successful, `Err` if the function throws\r\n *\r\n * @param fn function to wrap with ok on success or err on failure\r\n * @param errorFn when an error is thrown, this will wrap the error result if provided\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n try {\r\n const result = fn(...args);\r\n return ok(result);\r\n }\r\n catch (e) {\r\n return err(errorFn ? errorFn(e) : e);\r\n }\r\n };\r\n }\r\n Result.fromThrowable = fromThrowable;\r\n function combine(resultList) {\r\n return combineResultList(resultList);\r\n }\r\n Result.combine = combine;\r\n function combineWithAllErrors(resultList) {\r\n return combineResultListWithAllErrors(resultList);\r\n }\r\n Result.combineWithAllErrors = combineWithAllErrors;\r\n})(Result || (Result = {}));\r\nfunction ok(value) {\r\n return new Ok(value);\r\n}\r\nfunction err(err) {\r\n return new Err(err);\r\n}\r\nfunction safeTry(body) {\r\n const n = body().next();\r\n if (n instanceof Promise) {\r\n return new ResultAsync(n.then((r) => r.value));\r\n }\r\n return n.value;\r\n}\r\nclass Ok {\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n isOk() {\r\n return true;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n map(f) {\r\n return ok(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n mapErr(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThrough(f) {\r\n return f(this.value).map((_value) => this.value);\r\n }\r\n andTee(f) {\r\n try {\r\n f(this.value);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return ok(this.value);\r\n }\r\n orTee(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(_f) {\r\n return ok(this.value);\r\n }\r\n asyncAndThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n asyncAndThrough(f) {\r\n return f(this.value).map(() => this.value);\r\n }\r\n asyncMap(f) {\r\n return ResultAsync.fromSafePromise(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unwrapOr(_v) {\r\n return this.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n match(ok, _err) {\r\n return ok(this.value);\r\n }\r\n safeUnwrap() {\r\n const value = this.value;\r\n /* eslint-disable-next-line require-yield */\r\n return (function* () {\r\n return value;\r\n })();\r\n }\r\n _unsafeUnwrap(_) {\r\n return this.value;\r\n }\r\n _unsafeUnwrapErr(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrapErr` on an Ok', this, config);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias, require-yield\r\n *[Symbol.iterator]() {\r\n return this.value;\r\n }\r\n}\r\nclass Err {\r\n constructor(error) {\r\n this.error = error;\r\n }\r\n isOk() {\r\n return false;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n map(_f) {\r\n return err(this.error);\r\n }\r\n mapErr(f) {\r\n return err(f(this.error));\r\n }\r\n andThrough(_f) {\r\n return err(this.error);\r\n }\r\n andTee(_f) {\r\n return err(this.error);\r\n }\r\n orTee(f) {\r\n try {\r\n f(this.error);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(_f) {\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return f(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncAndThen(_f) {\r\n return errAsync(this.error);\r\n }\r\n asyncAndThrough(_f) {\r\n return errAsync(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncMap(_f) {\r\n return errAsync(this.error);\r\n }\r\n unwrapOr(v) {\r\n return v;\r\n }\r\n match(_ok, err) {\r\n return err(this.error);\r\n }\r\n safeUnwrap() {\r\n const error = this.error;\r\n return (function* () {\r\n yield err(error);\r\n throw new Error('Do not use this generator out of `safeTry`');\r\n })();\r\n }\r\n _unsafeUnwrap(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrap` on an Err', this, config);\r\n }\r\n _unsafeUnwrapErr(_) {\r\n return this.error;\r\n }\r\n *[Symbol.iterator]() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self = this;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield self;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return self;\r\n }\r\n}\r\nconst fromThrowable = Result.fromThrowable;\r\n//#endregion\n\nexport { Err, Ok, Result, ResultAsync, err, errAsync, fromAsyncThrowable, fromPromise, fromSafePromise, fromThrowable, ok, okAsync, safeTry };\n","export class InputValidationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'InputValidationError'\n Object.setPrototypeOf(this, InputValidationError.prototype)\n }\n}\n","import { ok, err, Result } from 'neverthrow'\nimport { InputValidationError } from './errors.js'\nimport type { Palette } from './types.js'\n\nexport class InputValidator {\n validateHex(hex: string): Result<boolean, InputValidationError> {\n const trimmedHex = hex.trim()\n const isHexValid = /^#[0-9A-F]{6}$/i.test(trimmedHex)\n if (!isHexValid) {\n return err(new InputValidationError(`Invalid hex color: '${hex}'`))\n }\n return ok(true)\n }\n\n validatePalette(palette: Palette): Result<boolean, InputValidationError> {\n for (const level in palette) {\n const hex = palette[level as keyof Palette]\n const result = this.validateHex(hex)\n if (result.isErr()) {\n return err(result.error)\n }\n }\n return ok(true)\n }\n}\n","import { type Palette } from './types.js'\n\n// Low-contrast palette for dark backgrounds (light text)\nexport const catppuccinMochaPalette: Palette = {\n log: '#cdd6f4', // Text\n info: '#89b4fa', // Blue\n warn: '#f9e2af', // Yellow\n error: '#f38ba8', // Red\n debug: '#a6adc8', // Subtext0\n trace: '#9399b2', // Subtext1\n}\n\n// Low-contrast palette for light backgrounds (dark text)\nexport const catppuccinLattePalette: Palette = {\n log: '#4c4f69', // Text\n info: '#1e66f5', // Blue\n warn: '#df8e1d', // Yellow\n error: '#d20f39', // Red\n debug: '#7c7f93', // Subtext0\n trace: '#8c8fa1', // Subtext1\n}\n\n// High-contrast palette for dark backgrounds (light text)\nexport const draculaPalette: Palette = {\n log: '#f8f8f2', // Foreground\n info: '#8be9fd', // Cyan\n warn: '#f1fa8c', // Yellow\n error: '#ff5555', // Red\n debug: '#bd93f9', // Purple\n trace: '#6272a4', // Comment\n}\n\n// High-contrast palette for light backgrounds (dark text)\nexport const githubLightPalette: Palette = {\n log: '#24292e', // Text\n info: '#0366d6', // Blue\n warn: '#f9a002', // Yellow\n error: '#d73a49', // Red\n debug: '#586069', // Gray\n trace: '#6a737d', // Gray-light\n}\n","import {\n catppuccinMochaPalette,\n catppuccinLattePalette,\n draculaPalette,\n githubLightPalette,\n} from './palettes.js'\nimport type { Palette, ThemeName } from './types.js'\n\nexport const themePalettes: Record<ThemeName, Palette> = {\n 'catppuccin-mocha': catppuccinMochaPalette,\n 'catppuccin-latte': catppuccinLattePalette,\n dracula: draculaPalette,\n 'github-light': githubLightPalette,\n}\n\nexport const defaultDarkTheme: ThemeName = 'dracula'\nexport const defaultLightTheme: ThemeName = 'github-light'\n\nexport function isThemeName(theme: string): theme is ThemeName {\n return theme in themePalettes\n}\n","import { ColorinoBrowser } from './colorino-browser.js'\nimport { BrowserColorSupportDetector } from './browser-color-support-detector.js'\nimport { InputValidator } from './input-validator.js'\nimport { themePalettes } from './theme.js'\nimport { determineBaseTheme } from './determine-base-theme.js'\nimport { LogLevel, Palette, TerminalTheme, ThemeName } from './types.js'\nimport { ColorinoOptions, ColorinoBrowserInterface } from './interfaces.js'\n\nexport function createColorino(\n userPalette: Partial<Palette> = {},\n options: ColorinoOptions = {}\n): ColorinoBrowserInterface {\n const validator = new InputValidator()\n\n let detectorThemeOverride: TerminalTheme | undefined\n if (options.theme === 'dark' || options.theme === 'light') {\n detectorThemeOverride = options.theme\n }\n\n const browserDetector = new BrowserColorSupportDetector(\n window,\n navigator,\n detectorThemeOverride\n )\n\n const detectedBrowserTheme = browserDetector.getTheme()\n\n const themeOpt = options.theme ?? 'auto'\n const baseThemeName = determineBaseTheme(themeOpt, detectedBrowserTheme)\n\n const basePalette = themePalettes[baseThemeName]\n const finalPalette: Palette = { ...basePalette, ...userPalette }\n\n const colorLevel = browserDetector.isBrowserEnv()\n ? (browserDetector.getColorLevel() ?? 'UnknownEnv')\n : 'UnknownEnv'\n\n return new ColorinoBrowser(\n finalPalette,\n userPalette,\n validator,\n colorLevel,\n options\n )\n}\n\nexport type { Palette, LogLevel, ThemeName }\nexport type { ColorinoOptions, ColorinoBrowserInterface }\nexport { themePalettes }\nexport const colorino = createColorino()\n","import { defaultLightTheme, defaultDarkTheme, isThemeName } from './theme.js'\nimport { type ThemeName } from './types.js'\n\nexport function determineBaseTheme(\n themeOpt: string,\n detectedBrowserTheme: string\n) {\n let baseThemeName: ThemeName\n\n if (isThemeName(themeOpt)) {\n baseThemeName = themeOpt\n } else if (themeOpt === 'light') {\n baseThemeName = defaultLightTheme\n } else if (themeOpt === 'dark') {\n baseThemeName = defaultDarkTheme\n } else {\n // Fallback to 'auto' detection\n baseThemeName =\n detectedBrowserTheme === 'light' ? defaultLightTheme : defaultDarkTheme\n }\n return baseThemeName\n}\n","import {\n colorino as colorinoInstance,\n createColorino,\n themePalettes,\n} from './browser.js'\n\ntype ColorinoUmdGlobal = typeof colorinoInstance & {\n createColorino: typeof createColorino\n themePalettes: typeof themePalettes\n}\n\n// Attach extras onto the instance so the UMD global stays `colorino.info(...)`\nconst colorinoUmdGlobal = colorinoInstance as ColorinoUmdGlobal\ncolorinoUmdGlobal.createColorino = createColorino\ncolorinoUmdGlobal.themePalettes = themePalettes\n\nexport default colorinoUmdGlobal\n"],"names":["ColorinoBrowserColorized","Symbol","ColorinoBrowserObject","ColorinoBrowserCss","ColorLevel","ColorLevel2","TypeValidator","isNull","value","isUndefined","isNullOrUndefined","isObject","isString","String","isArray","Array","isError","Error","isBrowserColorizedArg","isBrowserCssArg","isBrowserObjectArg","isAnsiColoredString","test","toString","isFormattableObject","isConsoleMethod","level","includes","AbstractColorino","constructor","initialPalette","_userPalette","_validator","colorLevel","_options","this","_palette","validatePaletteResult","validatePalette","isErr","error","_colorLevel","_alreadyWarned","log","args","_out","info","warn","trace","debug","colorize","text","hex","NO_COLOR","isBrowser","ansiPrefix","_toAnsiPrefix","consoleMethod","processedArgs","_processArgs","_output","coloredArgs","_applyColors","_hex","_formatValue","maxDepth","seen","WeakSet","sanitize","val","currentDepth","has","add","nextDepth","depth","map","item","obj","result","key","sanitizeObject","JSON","stringify","_filterStack","stack","split","filter","line","match","join","_cleanErrorStack","cleanStack","cloned","Object","create","getPrototypeOf","assign","_printCleanTrace","console","ColorinoBrowser","userPalette","validator","options","super","css","style","_normalizeCssStyle","parts","propertyName","prototype","hasOwnProperty","call","push","formatParts","formatArgs","paletteHex","arg","length","previousWasObject","BrowserColorSupportDetector","_window","_navigator","_overrideTheme","isBrowserEnv","userAgent","getColorLevel","window","matchMedia","matches","TRUECOLOR","ANSI256","ANSI","getTheme","defaultErrorConfig","withStackTrace","createNeverThrowError","message","config","data","isOk","type","undefined","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","then","apply","__await","v","__asyncGenerator","asyncIterator","TypeError","i","g","q","AsyncIterator","verb","f","n","a","b","resume","r","fulfill","settle","shift","__asyncValues","o","m","s","iterator","__values","d","SuppressedError","ResultAsync","res","_promise","fromSafePromise","promise","newPromise","Ok","fromPromise","errorFn","catch","Err","fromThrowable","fn","combine","asyncResultList","combineResultAsyncList","combineWithAllErrors","combineResultAsyncListWithAllErrors","andThrough","newRes","andTee","orTee","mapErr","andThen","newValue","orElse","ok","_err","unwrapOr","t","safeUnwrap","arguments","p","__asyncDelegator","successCallback","failureCallback","errAsync","err","combineResultList","resultList","acc","list","all","combineResultListWithAllErrors","Result","_f","_value","asyncAndThen","asyncAndThrough","asyncMap","_v","_unsafeUnwrap","_","_unsafeUnwrapErr","_ok","InputValidationError","name","setPrototypeOf","InputValidator","validateHex","trimmedHex","trim","palette","themePalettes","dracula","defaultDarkTheme","defaultLightTheme","createColorino","detectorThemeOverride","theme","browserDetector","navigator","detectedBrowserTheme","baseThemeName","themeOpt","determineBaseTheme","finalPalette","colorinoUmdGlobal"],"mappings":"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","x_google_ignoreList":[6]}
|
package/dist/node.cjs
CHANGED
|
@@ -232,8 +232,8 @@ class ColorinoNode extends AbstractColorino {
|
|
|
232
232
|
const prefix = this._toAnsiPrefix(paletteHex);
|
|
233
233
|
if (!prefix) return args;
|
|
234
234
|
return args.map((arg) => {
|
|
235
|
-
if (!TypeValidator.isString(arg)
|
|
236
|
-
|
|
235
|
+
if (!TypeValidator.isString(arg) || TypeValidator.isAnsiColoredString(arg))
|
|
236
|
+
return arg;
|
|
237
237
|
return `${prefix}${String(arg)}\x1B[0m`;
|
|
238
238
|
});
|
|
239
239
|
}
|
package/dist/node.mjs
CHANGED
|
@@ -229,8 +229,8 @@ class ColorinoNode extends AbstractColorino {
|
|
|
229
229
|
const prefix = this._toAnsiPrefix(paletteHex);
|
|
230
230
|
if (!prefix) return args;
|
|
231
231
|
return args.map((arg) => {
|
|
232
|
-
if (!TypeValidator.isString(arg)
|
|
233
|
-
|
|
232
|
+
if (!TypeValidator.isString(arg) || TypeValidator.isAnsiColoredString(arg))
|
|
233
|
+
return arg;
|
|
234
234
|
return `${prefix}${String(arg)}\x1B[0m`;
|
|
235
235
|
});
|
|
236
236
|
}
|