{"version":3,"file":"index-nVOtHMCA.cjs","sources":["../../../std/src/array/create.ts","../../../std/src/object/filter.ts","../../../std/src/object/index.ts","../../../std/src/math.ts","../../../std/src/memoize.ts","../../../std/src/string.ts","../../src/http/utils.ts","../../../../node_modules/slice-ansi/node_modules/is-fullwidth-code-point/index.js","../../../../node_modules/slice-ansi/node_modules/ansi-styles/index.js","../../../../node_modules/slice-ansi/index.js","../../../../node_modules/cli-truncate/node_modules/ansi-regex/index.js","../../../../node_modules/cli-truncate/node_modules/strip-ansi/index.js","../../../../node_modules/get-east-asian-width/lookup.js","../../../../node_modules/get-east-asian-width/index.js","../../../../node_modules/cli-truncate/node_modules/emoji-regex/index.mjs","../../../../node_modules/cli-truncate/node_modules/string-width/index.js","../../../../node_modules/cli-truncate/index.js","../../src/node/shared.ts","../../src/node/error/source-map.ts","../../src/node/error/print-code-frame.ts","../../src/node/error/serialize-error.ts","../../src/node/error/stack-trace.ts","../../src/node/error/print-pretty-error.ts","../../src/node/serializers.ts","../../src/node/json.ts","../../src/node/pretty.ts","../../src/node/index.ts"],"sourcesContent":["import { identity } from '../shared';\n\ntype IteratorFn<T> = (index: number) => T;\n\nexport function fromLength(length: number): number[];\nexport function fromLength<T>(length: number, fn: IteratorFn<T>): T[];\nexport function fromLength<T>(length: number, fn: IteratorFn<T> = identity as IteratorFn<T>) {\n  return Array.from({ length }, (_, index) => fn(index));\n}\n\nexport function fromRange(start: number, end: number): number[];\nexport function fromRange<T>(start: number, end: number, fn: IteratorFn<T>): T[];\nexport function fromRange<T>(\n  start: number,\n  end: number,\n  fn: IteratorFn<T> = identity as IteratorFn<T>\n) {\n  if (start > end) [start, end] = [end, start];\n  return fromLength(end - start + 1, index => fn(index + start));\n}\n","import type { Falsy } from '../shared';\nimport { entries, isTruthy } from '../shared';\n\nexport type IsNever<T> = [T] extends [never] ? true : false;\n\ntype NotFalsyKeys<T> = {\n  [K in keyof T]: IsNever<Exclude<T[K], Falsy>> extends false ? K : never;\n}[keyof T];\n\nexport type Compacted<T> = {\n  [K in NotFalsyKeys<T>]: Exclude<T[K], Falsy>;\n};\n\nexport function filterObject<T>(\n  record: T,\n  fn: <K extends Extract<keyof T, string>>(value: T[K], key: K) => boolean\n) {\n  return Object.fromEntries(entries(record).filter(([key, value]) => fn(value, key))) as T;\n}\n\nexport const compactObject = <T>(target: T) => filterObject(target, isTruthy) as Compacted<T>;\n","import { isObject } from '../guards.ts';\nimport type { AnyKey, AnyRecord } from '../shared.ts';\nimport { filterObject } from './filter';\nimport { mapEntries } from './map.ts';\n\nexport { fromEntries, fromKeys, zipObject } from './create';\nexport { shallowEqual } from './equals';\nexport { compactObject, filterObject } from './filter';\nexport { mapEntries, mapKeysToObject, mapToObject, mapValues } from './map';\nexport { sortObject, sortObjectByKeys, sortObjectByOrder } from './sort';\n\nexport const omit = <T extends object, K extends keyof T>(obj: T, keys: K[]): Omit<T, K> =>\n  filterObject(obj, (_, key) => !keys.includes(key as any)) as Omit<T, K>;\n\nexport const pick = <T extends object, K extends keyof T>(target: T, keys: K[]) =>\n  Object.fromEntries(Object.entries(target).filter(([key]) => keys.includes(key as K))) as Pick<\n    T,\n    K\n  >;\n\nexport const pickProps =\n  <const K extends keyof any>(keys: K[]) =>\n  <const T extends Record<K, any>>(target: T): Pick<T, K> =>\n    pick(target, keys);\n\nexport const prop =\n  <P extends AnyKey>(prop: P) =>\n  <T extends { [K in P]?: unknown }>(value: T): T[P] =>\n    value[prop];\n\nexport const propEq = <PropName extends string, PropValue>(\n  propName: PropName,\n  propValue: PropValue\n) =>\n  ((value: unknown) => isObject(value) && value[propName] === propValue) as {\n    <T>(value: T): value is Extract<T, { [K in PropName]: PropValue }>;\n  };\n\nexport const transformKeys =\n  <const KeysMapping extends Record<string, string>>(mapping: KeysMapping) =>\n  <Shape extends Record<keyof KeysMapping, any>>(originalShape: Shape) =>\n    mapEntries(mapping, ([originalKey, mappedKey]) => [mappedKey, originalShape[originalKey]]) as {\n      [OriginalKey in keyof KeysMapping as KeysMapping[OriginalKey]]: Shape[OriginalKey];\n    };\n\nexport const renameKeys = <Input extends AnyRecord, const MapFn extends RenameFn<Input>>(\n  input: Input,\n  map: MapFn\n) => mapEntries(input, ([key, value]) => [map(key, value), value]) as RenameKeys<Input, MapFn>;\n\nexport type RenameFn<Input extends AnyRecord> = <K extends keyof Input>(\n  key: K,\n  value: Input[K]\n) => string;\nexport type RenameKeys<Input extends AnyRecord, MapFn extends RenameFn<Input>> = {\n  [Key in keyof Input as MapFn extends (key: Key) => infer R ? R : never]: Input[Key];\n};\n","export const sum = (values: number[]) => values.reduce((acc, item) => acc + item, 0);\n","import { getOrCreateMapValue, identity } from './shared.ts';\n\nexport function memoizeWeak<Input extends object, Output>(fn: (input: Input) => Output) {\n  return memoize(fn, {\n    cache: new WeakMap()\n  });\n}\n\nexport function memoize<Input, Output, CacheKey = Input>(\n  fn: (input: Input) => Output,\n  {\n    cache = new Map<CacheKey, Output>(),\n    key = identity as any\n  }: {\n    key?: (input: Input) => CacheKey;\n    cache?: {\n      has(key: CacheKey): boolean;\n      get(key: CacheKey): Output | undefined;\n      set(key: CacheKey, value: Output): any;\n    };\n  } = {}\n) {\n  function cachedFn(input: Input) {\n    return getOrCreateMapValue(cache, key(input), () => fn(input));\n  }\n\n  cachedFn.cache = cache;\n  return cachedFn;\n}\n","export const truncateString = (str: string, maxLength: number, suffix = '...') =>\n  str.length <= maxLength ? str : str.slice(0, maxLength - suffix.length) + suffix;\n\nexport const quickPluralize = (count: number, one: string, other: string) =>\n  rules.select(count) === 'one' ? one : other;\n\nconst rules = new Intl.PluralRules('en-US');\n","import { IncomingMessage, OutgoingMessage } from 'http';\nimport type { Colors } from '@neodx/colors';\nimport { truncateString } from '@neodx/std';\n\nexport const formatOutgoingMessageStatus = (res: OutgoingMessage) => {\n  if (!res.headersSent) return 'unknown status';\n  const { statusCode, statusMessage } = res as any;\n\n  return `${statusCode} ${statusMessage}`;\n};\n\nexport const formatIncomingMessage = (req: IncomingMessage, colors: Colors, delimiter = ' ') =>\n  `${colors.bold(req.method?.toUpperCase() ?? 'GET')}${delimiter}${colors.underline(\n    colors.gray(truncateString(getIncomingMessageUrl(req).split('?')?.shift() ?? '', 50))\n  )}`;\n\nexport const formatResponseTime = (time: number) => {\n  const showSeconds = time >= 100;\n  const timeValue = showSeconds ? time / 1000 : time;\n\n  return timeValue\n    .toLocaleString('en', {\n      style: 'unit',\n      unit: showSeconds ? 'second' : 'millisecond',\n      unitDisplay: 'narrow',\n      maximumFractionDigits: 1\n    })\n    .padEnd(4);\n};\n\nexport function serializeHttpRequest(req: IncomingMessage) {\n  const { id, info, query, method, params, headers, [HTTP_LOG_RAW_SYMBOL]: raw } = req as any;\n  const connection = info || req.socket;\n\n  return {\n    id: typeof id === 'function' ? id() : id ?? info?.id,\n    url: getIncomingMessageUrl(req),\n    query,\n    params,\n    method,\n    headers,\n    remotePort: connection?.remotePort,\n    remoteAddress: connection?.remoteAddress,\n    [HTTP_LOG_RAW_SYMBOL]: raw || req\n  };\n}\n\nexport function serializeHttpResponse(res: OutgoingMessage) {\n  return {\n    statusCode: res.headersSent ? (res as any).statusCode : null,\n    headers: res.getHeaders(),\n    [HTTP_LOG_RAW_SYMBOL]: res\n  };\n}\n\nexport const getIncomingMessageUrl = ({ originalUrl, path, url }: any) =>\n  originalUrl || (typeof path === 'string' ? path : url?.path ?? url);\n\nexport const createRequestIdGenerator = () => {\n  let currentRequestId = 0;\n\n  return function generateRequestId() {\n    currentRequestId = currentRequestId >= maxInt ? 0 : currentRequestId + 1;\n\n    return currentRequestId;\n  };\n};\n\nexport const HTTP_LOG_START_TIME_SYMBOL = Symbol('HTTP_LOG_START_TIME');\nexport const HTTP_LOG_RAW_SYMBOL = Symbol('raw');\n\nconst maxInt = 2147483647;\n","/* eslint-disable yoda */\n\nexport default function isFullwidthCodePoint(codePoint) {\n\tif (!Number.isInteger(codePoint)) {\n\t\treturn false;\n\t}\n\n\t// Code points are derived from:\n\t// https://unicode.org/Public/UNIDATA/EastAsianWidth.txt\n\treturn codePoint >= 0x1100 && (\n\t\tcodePoint <= 0x115F || // Hangul Jamo\n\t\tcodePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n\t\tcodePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET\n\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t(0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||\n\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t(0x3250 <= codePoint && codePoint <= 0x4DBF) ||\n\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t(0x4E00 <= codePoint && codePoint <= 0xA4C6) ||\n\t\t// Hangul Jamo Extended-A\n\t\t(0xA960 <= codePoint && codePoint <= 0xA97C) ||\n\t\t// Hangul Syllables\n\t\t(0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n\t\t// CJK Compatibility Ideographs\n\t\t(0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n\t\t// Vertical Forms\n\t\t(0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t(0xFE30 <= codePoint && codePoint <= 0xFE6B) ||\n\t\t// Halfwidth and Fullwidth Forms\n\t\t(0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n\t\t(0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||\n\t\t// Kana Supplement\n\t\t(0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n\t\t// Enclosed Ideographic Supplement\n\t\t(0x1F200 <= codePoint && codePoint <= 0x1F251) ||\n\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t(0x20000 <= codePoint && codePoint <= 0x3FFFD)\n\t);\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import isFullwidthCodePoint from 'is-fullwidth-code-point';\nimport ansiStyles from 'ansi-styles';\n\nconst astralRegex = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/;\n\nconst ESCAPES = [\n\t'\\u001B',\n\t'\\u009B'\n];\n\nconst wrapAnsi = code => `${ESCAPES[0]}[${code}m`;\n\nconst checkAnsi = (ansiCodes, isEscapes, endAnsiCode) => {\n\tlet output = [];\n\tansiCodes = [...ansiCodes];\n\n\tfor (let ansiCode of ansiCodes) {\n\t\tconst ansiCodeOrigin = ansiCode;\n\t\tif (ansiCode.includes(';')) {\n\t\t\tansiCode = ansiCode.split(';')[0][0] + '0';\n\t\t}\n\n\t\tconst item = ansiStyles.codes.get(Number.parseInt(ansiCode, 10));\n\t\tif (item) {\n\t\t\tconst indexEscape = ansiCodes.indexOf(item.toString());\n\t\t\tif (indexEscape === -1) {\n\t\t\t\toutput.push(wrapAnsi(isEscapes ? item : ansiCodeOrigin));\n\t\t\t} else {\n\t\t\t\tansiCodes.splice(indexEscape, 1);\n\t\t\t}\n\t\t} else if (isEscapes) {\n\t\t\toutput.push(wrapAnsi(0));\n\t\t\tbreak;\n\t\t} else {\n\t\t\toutput.push(wrapAnsi(ansiCodeOrigin));\n\t\t}\n\t}\n\n\tif (isEscapes) {\n\t\toutput = output.filter((element, index) => output.indexOf(element) === index);\n\n\t\tif (endAnsiCode !== undefined) {\n\t\t\tconst fistEscapeCode = wrapAnsi(ansiStyles.codes.get(Number.parseInt(endAnsiCode, 10)));\n\t\t\t// TODO: Remove the use of `.reduce` here.\n\t\t\t// eslint-disable-next-line unicorn/no-array-reduce\n\t\t\toutput = output.reduce((current, next) => next === fistEscapeCode ? [next, ...current] : [...current, next], []);\n\t\t}\n\t}\n\n\treturn output.join('');\n};\n\nexport default function sliceAnsi(string, begin, end) {\n\tconst characters = [...string];\n\tconst ansiCodes = [];\n\n\tlet stringEnd = typeof end === 'number' ? end : characters.length;\n\tlet isInsideEscape = false;\n\tlet ansiCode;\n\tlet visible = 0;\n\tlet output = '';\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tlet leftEscape = false;\n\n\t\tif (ESCAPES.includes(character)) {\n\t\t\tconst code = /\\d[^m]*/.exec(string.slice(index, index + 18));\n\t\t\tansiCode = code && code.length > 0 ? code[0] : undefined;\n\n\t\t\tif (visible < stringEnd) {\n\t\t\t\tisInsideEscape = true;\n\n\t\t\t\tif (ansiCode !== undefined) {\n\t\t\t\t\tansiCodes.push(ansiCode);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isInsideEscape && character === 'm') {\n\t\t\tisInsideEscape = false;\n\t\t\tleftEscape = true;\n\t\t}\n\n\t\tif (!isInsideEscape && !leftEscape) {\n\t\t\tvisible++;\n\t\t}\n\n\t\tif (!astralRegex.test(character) && isFullwidthCodePoint(character.codePointAt())) {\n\t\t\tvisible++;\n\n\t\t\tif (typeof end !== 'number') {\n\t\t\t\tstringEnd++;\n\t\t\t}\n\t\t}\n\n\t\tif (visible > begin && visible <= stringEnd) {\n\t\t\toutput += character;\n\t\t} else if (visible === begin && !isInsideEscape && ansiCode !== undefined) {\n\t\t\toutput = checkAnsi(ansiCodes);\n\t\t} else if (visible >= stringEnd) {\n\t\t\toutput += checkAnsi(ansiCodes, true, ansiCode);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn output;\n}\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\tconst pattern = [\n\t    '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E3\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0x4DBF\n\t\t|| x >= 0x4E00 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x === 0x16FF0\n\t\t|| x === 0x16FF1\n\t\t|| x >= 0x17000 && x <= 0x187F7\n\t\t|| x >= 0x18800 && x <= 0x18CD5\n\t\t|| x >= 0x18D00 && x <= 0x18D08\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D7\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA88\n\t\t|| x >= 0x1FA90 && x <= 0x1FABD\n\t\t|| x >= 0x1FABF && x <= 0x1FAC5\n\t\t|| x >= 0x1FACE && x <= 0x1FADB\n\t\t|| x >= 0x1FAE0 && x <= 0x1FAE8\n\t\t|| x >= 0x1FAF0 && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n","import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// For Prettier. This doesn't count \"ambiguous\" characters or check for valid input.\n// https://github.com/sindresorhus/get-east-asian-width/pull/6\nexport const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));\n","export default () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (codePoint >= 0x3_00 && codePoint <= 0x3_6F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n","import sliceAnsi from 'slice-ansi';\nimport stringWidth from 'string-width';\n\nfunction getIndexOfNearestSpace(string, wantedIndex, shouldSearchRight) {\n\tif (string.charAt(wantedIndex) === ' ') {\n\t\treturn wantedIndex;\n\t}\n\n\tconst direction = shouldSearchRight ? 1 : -1;\n\n\tfor (let index = 0; index <= 3; index++) {\n\t\tconst finalIndex = wantedIndex + (index * direction);\n\t\tif (string.charAt(finalIndex) === ' ') {\n\t\t\treturn finalIndex;\n\t\t}\n\t}\n\n\treturn wantedIndex;\n}\n\nexport default function cliTruncate(text, columns, options = {}) {\n\tconst {\n\t\tposition = 'end',\n\t\tspace = false,\n\t\tpreferTruncationOnSpace = false,\n\t} = options;\n\n\tlet {truncationCharacter = '…'} = options;\n\n\tif (typeof text !== 'string') {\n\t\tthrow new TypeError(`Expected \\`input\\` to be a string, got ${typeof text}`);\n\t}\n\n\tif (typeof columns !== 'number') {\n\t\tthrow new TypeError(`Expected \\`columns\\` to be a number, got ${typeof columns}`);\n\t}\n\n\tif (columns < 1) {\n\t\treturn '';\n\t}\n\n\tif (columns === 1) {\n\t\treturn truncationCharacter;\n\t}\n\n\tconst length = stringWidth(text);\n\n\tif (length <= columns) {\n\t\treturn text;\n\t}\n\n\tif (position === 'start') {\n\t\tif (preferTruncationOnSpace) {\n\t\t\tconst nearestSpace = getIndexOfNearestSpace(text, length - columns + 1, true);\n\t\t\treturn truncationCharacter + sliceAnsi(text, nearestSpace, length).trim();\n\t\t}\n\n\t\tif (space === true) {\n\t\t\ttruncationCharacter += ' ';\n\t\t}\n\n\t\treturn truncationCharacter + sliceAnsi(text, length - columns + stringWidth(truncationCharacter), length);\n\t}\n\n\tif (position === 'middle') {\n\t\tif (space === true) {\n\t\t\ttruncationCharacter = ` ${truncationCharacter} `;\n\t\t}\n\n\t\tconst half = Math.floor(columns / 2);\n\n\t\tif (preferTruncationOnSpace) {\n\t\t\tconst spaceNearFirstBreakPoint = getIndexOfNearestSpace(text, half);\n\t\t\tconst spaceNearSecondBreakPoint = getIndexOfNearestSpace(text, length - (columns - half) + 1, true);\n\t\t\treturn sliceAnsi(text, 0, spaceNearFirstBreakPoint) + truncationCharacter + sliceAnsi(text, spaceNearSecondBreakPoint, length).trim();\n\t\t}\n\n\t\treturn (\n\t\t\tsliceAnsi(text, 0, half)\n\t\t\t\t+ truncationCharacter\n\t\t\t\t+ sliceAnsi(text, length - (columns - half) + stringWidth(truncationCharacter), length)\n\t\t);\n\t}\n\n\tif (position === 'end') {\n\t\tif (preferTruncationOnSpace) {\n\t\t\tconst nearestSpace = getIndexOfNearestSpace(text, columns - 1);\n\t\t\treturn sliceAnsi(text, 0, nearestSpace) + truncationCharacter;\n\t\t}\n\n\t\tif (space === true) {\n\t\t\ttruncationCharacter = ` ${truncationCharacter}`;\n\t\t}\n\n\t\treturn sliceAnsi(text, 0, columns - stringWidth(truncationCharacter)) + truncationCharacter;\n\t}\n\n\tthrow new Error(`Expected \\`options.position\\` to be either \\`start\\`, \\`middle\\` or \\`end\\`, got ${position}`);\n}\n","export const cliSymbols = {\n  arrowUp: '↑',\n  arrowRight: '→',\n  arrowBottom: '↓',\n  enter: '↳',\n  cross: '×',\n  longDash: '─',\n  longArrowRight: '⇢',\n  more: '…',\n  pointer: '❯',\n  pointerSmall: '›',\n  pointerSmallDouble: '»'\n};\n\nexport const cliColumns = process.stdout.columns || 80;\n","import { fromLength, sum } from '@neodx/std';\n\n// eslint-disable-next-line @typescript-eslint/prefer-includes\nexport const getNewLineLength = (source: string): number => (/\\r\\n/.test(source) ? 2 : 1);\n\nexport function getPointerOffset(source: string, lineNumber: number, columnNumber: number): number {\n  const lines = source.split(newlineRe);\n\n  if (lineNumber > lines.length) {\n    return source.length;\n  }\n  const newLineLength = getNewLineLength(source);\n\n  return sum(fromLength(lineNumber - 1, no => lines[no]!.length + newLineLength)) + columnNumber;\n}\n\nexport const newlineRe = /\\r?\\n/;\n","import { type Colors, colors as defaultColors } from '@neodx/colors';\nimport { sum } from '@neodx/std';\nimport cliTruncate from 'cli-truncate';\nimport { cliColumns } from '../shared';\nimport { getNewLineLength, getPointerOffset, newlineRe } from './source-map';\n\nexport interface PrintCodeFrameOptions {\n  colors?: Colors;\n  source: string;\n  indent?: number;\n  lineNumber: number;\n  columnNumber: number;\n  overscan?: number;\n}\n\nexport function printCodeFrame({\n  colors = defaultColors,\n  indent = 0,\n  columnNumber,\n  lineNumber,\n  source,\n  overscan = 2\n}: PrintCodeFrameOptions): string {\n  const newLineLength = getNewLineLength(source);\n  const pointerOffset = getPointerOffset(source, lineNumber, columnNumber);\n\n  const lines = source.split(newlineRe);\n  const lineOffset = sum(lines.slice(0, lineNumber).map(line => line.length + newLineLength));\n  const startIndex = Math.max(0, lineNumber - 1 - overscan);\n  const printedLines = lines.slice(startIndex, lineNumber + overscan);\n\n  if (printedLines.length === 0 || printedLines.some(isMinifiedCodeLike)) return '';\n\n  const printUnderline = (line: string, offset: number) =>\n    fillSpace(offset) + colors.red('^'.repeat(Math.max(1, line.length - offset)));\n  const printLineNo = (no = '') => colors.gray(`${no.padStart(3, ' ')}| `);\n\n  return printedLines\n    .flatMap((line, index) => {\n      const lineNo = startIndex + index + 1;\n      const isCurrentLine = lineNo === lineNumber;\n      const color = isCurrentLine ? colors.yellowBright : colors.yellow;\n\n      return [\n        cliTruncate(\n          printLineNo(String(lineNo)) + color(line.replace(/\\t/g, ' ')),\n          cliColumns - indent\n        ),\n        isCurrentLine &&\n          printLineNo() + printUnderline(line, pointerOffset - (lineOffset - line.length))\n      ];\n    })\n    .filter(Boolean)\n    .map(line => (indent ? fillSpace(indent) + line : line))\n    .join('\\n');\n}\n\n// to long, maybe it's a minified file, skip for codeframe\nconst isMinifiedCodeLike = (code: string) => code.length > 240;\nconst fillSpace = (length: number) => ' '.repeat(Math.max(length, 0));\n","import { isEmptyObject, omit } from '@neodx/std';\n\n/**\n * Serialize an error into a plain object that can be serialized into JSON then.\n */\nexport function serializeError(error: unknown) {\n  if (!(error instanceof Error)) return error;\n  const result: Record<string, unknown> = {\n    name: error.name,\n    stack: error.stack,\n    message: error.message,\n    ...(getErrorCustomProperties(error) ?? {})\n  };\n\n  if (error.cause instanceof Error) {\n    result.cause = serializeError(error.cause);\n  }\n\n  return result;\n}\n\nexport function getErrorCustomProperties(error: Error) {\n  const errorProperties = omit(Object.fromEntries(Object.entries(error)), builtInErrorProps);\n\n  return isEmptyObject(errorProperties) ? null : errorProperties;\n}\n\nconst builtInErrorProps = ['stack', 'cause', 'name', 'message'];\n","import { toInt } from '@neodx/std';\nimport { resolve } from 'pathe';\n\nexport interface ParsedStack {\n  file: string;\n  line: number;\n  method: string;\n  column: number;\n}\n\nexport const parseStackTraces = (\n  originalTrace: string,\n  filter: (trace: ParsedStack) => boolean = notInternals\n) =>\n  originalTrace\n    .split('\\n')\n    .map(parseSingleStack)\n    .filter((stack): stack is ParsedStack => stack !== null && filter(stack));\n\n// Based on https://github.com/stacktracejs/error-stack-parser\n// Credit to stacktracejs\nexport function parseSingleStack(raw: string): ParsedStack | null {\n  let line = raw.trim();\n\n  if (line.includes('(eval ')) {\n    line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(,.*$)/g, '');\n  }\n\n  let sanitizedLine = line\n    .replace(/^\\s+/, '')\n    .replace(/\\(eval code/g, '(')\n    .replace(/^.*?\\s+/, '');\n\n  // capture and preserve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n  // case it has spaces in it, as the string is split on \\s+ later on\n  const location = sanitizedLine.match(/ (\\(.+\\)$)/);\n\n  if (location) {\n    // remove the parenthesized location from the line, if it was matched\n    sanitizedLine = sanitizedLine.replace(location[0], '');\n  }\n\n  // if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine\n  // because this line doesn't have function name\n  const [url, lineNumber, columnNumber] = parseTraceLocation(\n    location ? location[1]! : sanitizedLine\n  );\n  let method = (location && sanitizedLine) || '';\n  let file = url && ['eval', '<anonymous>'].includes(url) ? undefined : url;\n\n  if (!file || !lineNumber || !columnNumber) return null;\n  if (method.startsWith('async ')) method = method.slice(6);\n  if (file.startsWith('file://')) file = file.slice(7);\n\n  return {\n    // normalize Windows path (\\ -> /)\n    file: resolve(file),\n    line: toInt(lineNumber),\n    column: toInt(columnNumber),\n    method\n  };\n}\n\nexport type TraceLocation = [url: string, line?: string, column?: string];\n\nexport function parseTraceLocation(urlLike: string): TraceLocation {\n  // Fail-fast but return locations like \"(native)\"\n  if (!urlLike.includes(':')) return [urlLike];\n\n  return (\n    (LOCATIONS_RE.exec(urlLike.replace(/^\\(|\\)$/g, ''))?.slice(1, 4) as TraceLocation) ?? [urlLike]\n  );\n}\n\nconst LOCATIONS_RE = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\nconst notInternals = (stack: ParsedStack) => !stack.file.match('node:internal');\n","import type { Colors } from '@neodx/colors';\nimport { colors as defaultColors } from '@neodx/colors';\nimport { isPrimitive, pick, toArray, True } from '@neodx/std';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { relative } from 'pathe';\nimport { serializeJSON } from '../../utils';\nimport { cliSymbols } from '../shared';\nimport { printCodeFrame } from './print-code-frame';\nimport { getErrorCustomProperties } from './serialize-error';\nimport { newlineRe } from './source-map';\nimport { type ParsedStack, parseStackTraces } from './stack-trace';\n\nexport interface PrintPrettyErrorOptions {\n  cwd?: string;\n  indent?: number;\n  colors?: Colors;\n  fullStack?: boolean;\n  codeFrame?: boolean | 'auto' | GetHighlightStacks;\n  stringify?: (value: unknown) => string;\n  filterStack?: (stack: ParsedStack) => boolean;\n}\n\nexport type GetHighlightStacks = (stacks: ParsedStack[]) => ParsedStack | ParsedStack[];\n\nexport function printPrettyError(originalError: unknown, options: PrintPrettyErrorOptions = {}) {\n  const {\n    cwd = process.cwd(),\n    indent = 0,\n    codeFrame = true,\n    fullStack = false,\n    stringify = value => serializeJSON(value, 2),\n    filterStack,\n    colors = defaultColors\n  } = options;\n  const getHighlightedStacks = codeFrame ? toCodeFrameCondition(codeFrame) : null;\n  const error = toError(originalError);\n\n  const stacks = parseStackTraces(error.stack || '', fullStack ? True : filterStack);\n  const errorProperties = getErrorCustomProperties(error);\n  const highlightedStacks = toArray(getHighlightedStacks?.(stacks) ?? []);\n  const prefix = (value = indent) => (value ? ' '.repeat(value) : '');\n\n  const messageParts = stacks.flatMap(stack => {\n    const { file, column, line, method } = stack;\n    const highlighted = highlightedStacks.includes(stack);\n    const color = highlighted ? colors.cyan : colors.gray;\n    const path = relative(cwd, file);\n\n    return [\n      color(\n        `${prefix()} ${colors.dim(\n          highlighted ? cliSymbols.pointerSmallDouble : cliSymbols.pointerSmall\n        )} ${[method, `${prefix()}${path}:${colors.dim(`${line}:${column}`)}`]\n          .filter(Boolean)\n          .join(' ')}`\n      ),\n      highlighted &&\n        colors.yellow(\n          printCodeFrame({\n            lineNumber: line,\n            columnNumber: column,\n            source: readFileSync(file, 'utf-8'),\n            indent: indent + 3,\n            colors\n          })\n        )\n    ];\n  });\n\n  if (errorProperties) {\n    messageParts.push(\n      `${prefix()}${colors.red(`${cliSymbols.longArrowRight} serialized error properties:`)}`,\n      `${colors.gray(\n        stringify(errorProperties)\n          .split(newlineRe)\n          .map(line => `${prefix()}${line}`)\n          .slice(1, -1)\n          .join('\\n')\n      )}`\n    );\n  }\n\n  if (error.cause && typeof error.cause === 'object' && 'name' in error.cause) {\n    error.cause.name = `${cliSymbols.enter} caused by ${error.cause.name}`;\n\n    messageParts.push(\n      ' ',\n      printPrettyError(error.cause, {\n        ...options,\n        indent: indent + 2,\n        codeFrame: false\n      })\n    );\n  }\n\n  return [\n    colors.red(`${prefix()}${colors.bold(error.name || 'Unknown Error')}: ${error.message}`),\n    ...messageParts\n  ]\n    .filter(Boolean)\n    .join('\\n');\n}\n\nconst toCodeFrameCondition = (codeFrame: true | 'auto' | GetHighlightStacks): GetHighlightStacks =>\n  typeof codeFrame === 'function'\n    ? codeFrame\n    : stacks => stacks.find(stack => existsSync(stack.file))!;\n\nconst toError = (error?: unknown) => {\n  if (!error) {\n    return pick(new Error('unknown error'), ['message', 'stack']) as Error;\n  }\n  if (isPrimitive(error)) {\n    const stack = String(error);\n\n    return {\n      message: stack.split(/\\n/g)[0],\n      stack\n    } as Error;\n  }\n  return error as Error;\n};\n","import { hasOwn } from '@neodx/std';\nimport type { LoggerBaseMeta } from '../core/types';\nimport { serializeHttpRequest, serializeHttpResponse } from '../http/utils';\nimport { serializeError } from './error';\n\nexport { serializeJSON } from '../utils/serialize-json';\nexport { serializeError, serializeHttpRequest, serializeHttpResponse };\n\nexport type LogSerializers = Record<string, LogSerializer>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LogSerializer = (value: any) => any;\n\n// TODO https://linear.app/secundant/issue/SEC-42/neodxlog-top-level-serializers-api\nexport function serializeMeta(meta: LoggerBaseMeta, serializers?: LogSerializers) {\n  if (!serializers) return meta;\n  const result = {} as LoggerBaseMeta;\n\n  for (const [key, value] of Object.entries(meta)) {\n    result[key] = hasOwn(serializers, key) ? serializers[key]!(value) : value;\n  }\n  return result;\n}\n\nexport const DEFAULT_SERIALIZERS: LogSerializers = {\n  req: serializeHttpRequest,\n  res: serializeHttpResponse,\n  err: serializeError\n};\n","import { createWriteStream, type PathLike } from 'node:fs';\nimport type { Writable } from 'node:stream';\nimport type { LogChunk } from '../core/types';\nimport {\n  DEFAULT_SERIALIZERS,\n  type LogSerializers,\n  serializeError,\n  serializeJSON,\n  serializeMeta\n} from './serializers';\n\nexport interface JsonTargetParams {\n  target?: Writable | ((...args: unknown[]) => void);\n  dateKey?: string;\n  errorKey?: string;\n  messageKey?: string;\n  serializers?: LogSerializers;\n  levelValueKey?: string;\n}\n\nexport function file(filename: PathLike, options?: Omit<JsonTargetParams, 'target'>) {\n  return json({\n    target: createWriteStream(filename),\n    ...options\n  });\n}\n\nexport function json({\n  target = process.stdout,\n  dateKey = 'time',\n  errorKey = 'err',\n  messageKey = 'msg',\n  serializers = DEFAULT_SERIALIZERS,\n  levelValueKey = 'level'\n}: JsonTargetParams = {}) {\n  const write = 'writable' in target ? target.write.bind(target) : target;\n\n  return function handleLog({\n    msg,\n    error,\n    meta,\n    level,\n    name,\n    date,\n    __: { levels }\n  }: LogChunk<string>) {\n    const info = Object.assign(\n      {\n        [levelValueKey]: levels[level],\n        [dateKey]: date.getTime(),\n        [errorKey]: error && serializeError(error),\n        [messageKey]: msg\n      },\n      name && { name },\n      serializeMeta(meta, serializers)\n    );\n\n    write(serializeJSON(info) + '\\n');\n  };\n}\n","import { type ColorName, type Colors, colors as defaultColors } from '@neodx/colors';\nimport {\n  type Falsy,\n  hasOwn,\n  identity,\n  isEmpty,\n  isObject,\n  keys,\n  memoizeWeak,\n  omit,\n  values\n} from '@neodx/std';\nimport type { DefaultLoggerLevel } from '../core/shared';\nimport type { LogChunk } from '../core/types';\nimport { printPrettyError, type PrintPrettyErrorOptions } from './error';\nimport type { LogSerializers } from './serializers';\nimport { DEFAULT_SERIALIZERS, serializeJSON, serializeMeta } from './serializers';\nimport { cliSymbols } from './shared';\n\nexport interface PrettyTargetParams<Level extends string> {\n  /**\n   * Default handler for log messages without errors.\n   */\n  log?(...args: unknown[]): void;\n\n  /**\n   * Default handler for log messages with errors (e.g. `logger.error(new Error(), 'message')`).\n   */\n  logError?(...args: unknown[]): void;\n  /**\n   * Custom implementation of colors from `@neodx/colors` or other libraries with same contracts.\n   * @example `createColors(false, false)` - disable colors completely\n   */\n  colors?: Colors;\n  // Possible feature for future versions\n  // underline?: boolean;\n  /**\n   * Display milliseconds in log message (e.g. `12:34:56.789`).\n   * Works only if `displayTime` is `true`.\n   */\n  displayMs?: boolean;\n  serializers?: LogSerializers;\n  /**\n   * Display time in a log message\n   */\n  displayTime?: boolean;\n  /**\n   * Display log level in log message.\n   */\n  displayLevel?: boolean;\n\n  prettyErrors?: boolean | Partial<PrintPrettyErrorOptions>;\n\n  levelColors?: Partial<Record<Level, ColorName>> | null;\n  levelBadges?: Partial<Record<Level, string>> | null;\n}\n\n/**\n * Creates a pretty log handler for development mode in node.\n */\nexport function pretty<const Level extends string>({\n  // eslint-disable-next-line no-console\n  log = console.log,\n  logError = console.error,\n  colors = defaultColors,\n  displayMs = false,\n  serializers = DEFAULT_SERIALIZERS,\n  displayTime = true,\n  displayLevel = true,\n  prettyErrors = true,\n  levelColors = defaultLevelColors as any,\n  levelBadges = defaultLevelBadges as any\n}: PrettyTargetParams<Level> = {}) {\n  const getLevelSetting = <T>(\n    settings: Partial<Record<Level, T>> | null | false,\n    level: Level\n  ): T | null => (settings && hasOwn(settings, level) ? settings[level]! : null);\n  const maxBadgesLength = levelBadges\n    ? Math.max(...values(levelBadges).map(b => String(b).length))\n    : 0;\n  const prettyErrorCustomOptions: PrintPrettyErrorOptions = {\n    colors,\n    ...(isObject(prettyErrors) ? prettyErrors : {})\n  };\n\n  return function prettyHandler(chunk: LogChunk<Level>) {\n    const {\n      name,\n      date,\n      msg,\n      meta,\n      error,\n      level: resolvedLevel,\n      __: { levels, originalLevel: level }\n    } = chunk;\n\n    // In `prettyErrors` mode, we will display error in a more readable way\n    const possibleLabelFromError = prettyErrors ? null : error?.name;\n    const userDefinedMessage = prettyErrors && msg === error?.message ? null : msg;\n\n    const maxLevelLength = getMaxObjectKeysLength(levels);\n    const label = (possibleLabelFromError ?? level.toLowerCase()).padEnd(1);\n    const badge = getLevelSetting(levelBadges, level);\n    const levelColorName =\n      getLevelSetting(levelColors, level) ?? getLevelSetting(levelColors, resolvedLevel);\n    const levelColorFn = levelColorName ? colors[levelColorName] : identity;\n\n    const visibleMeta = omit(meta, ['pid', 'hostname']);\n\n    const fullLabel = mergeString([badge?.padEnd(maxBadgesLength), label]);\n    const firstPart = mergeString([\n      name && colors.gray(`[${name.split(':').join(nameDelimiter)}]`),\n      displayLevel && levelColorFn(fullLabel.padEnd(maxLevelLength + maxBadgesLength))\n    ]);\n\n    const haveVisibleMeta = !isEmpty(keys(visibleMeta));\n    const formatter = displayMs ? withMs : withoutMs;\n    const formatted = mergeString([\n      displayTime && colors.gray(formatter.format(date)),\n      firstPart,\n      userDefinedMessage,\n      haveVisibleMeta && serializeJSON(serializeMeta(visibleMeta, serializers), 2)\n    ]);\n\n    if (error) {\n      const [_, ...stackBody] = error.stack?.toString().split('\\n') ?? [];\n\n      if (prettyErrors) {\n        const shouldPrintErrorInAdditionalLine = userDefinedMessage || haveVisibleMeta;\n        const postfix = error instanceof Error ? '\\n' : '';\n\n        if (shouldPrintErrorInAdditionalLine) {\n          logError(formatted, '\\n', printPrettyError(error, prettyErrorCustomOptions), postfix);\n        } else {\n          logError(formatted, printPrettyError(error, prettyErrorCustomOptions), postfix);\n        }\n      } else {\n        logError(formatted, colors.gray(stackBody.map(line => line.replace(/^/, '\\n')).join('')));\n      }\n    } else {\n      log(formatted);\n    }\n  };\n}\n\nconst mergeString = (parts: Array<string | Falsy>): string => parts.filter(Boolean).join(' ');\nconst getMaxObjectKeysLength = memoizeWeak((levels: object) =>\n  Math.max(...Object.keys(levels).map(level => level.length))\n);\n\nconst nameDelimiter = ` ${cliSymbols.pointerSmall} `;\nconst defaultLevelBadges = {\n  info: '◌',\n  done: '✔',\n  warn: '⚠',\n  error: '✘',\n  debug: '⚙'\n} as Partial<Record<DefaultLoggerLevel, string>>;\n\nconst defaultLevelColors = {\n  info: 'cyanBright',\n  warn: 'yellowBright',\n  done: 'greenBright',\n  debug: 'blueBright',\n  error: 'red',\n  verbose: 'bold'\n} as Partial<Record<DefaultLoggerLevel, ColorName>>;\n\npretty.defaultBadges = defaultLevelBadges;\npretty.defaultColors = defaultLevelColors;\n\nconst formatOptions: Intl.DateTimeFormatOptions = {\n  hour: 'numeric',\n  minute: 'numeric',\n  second: 'numeric',\n  hour12: false\n};\n\nconst withMs = new Intl.DateTimeFormat('en-US', {\n  ...formatOptions,\n  fractionalSecondDigits: 3\n});\nconst withoutMs = new Intl.DateTimeFormat('en-US', {\n  ...formatOptions\n});\n","import { hostname } from 'node:os';\nimport { createLoggerFactory, type CreateLoggerFactoryParams } from '../core/create-logger-factory';\nimport {\n  DEFAULT_LOGGER_LEVELS,\n  DEFAULT_LOGGER_PARAMS,\n  type DefaultLoggerLevel,\n  LOGGER_SILENT_LEVEL\n} from '../core/shared';\nimport { printf, readArguments } from '../utils';\nimport { createLoggerAutoFactory } from '../utils/create-auto-logger-factory.ts';\nimport { file, json } from './json';\nimport { pretty } from './pretty';\n\nexport {\n  printCodeFrame,\n  type PrintCodeFrameOptions,\n  printPrettyError,\n  type PrintPrettyErrorOptions\n} from './error';\nexport type { JsonTargetParams } from './json';\nexport type { PrettyTargetParams } from './pretty';\n\nexport {\n  createLoggerFactory,\n  type CreateLoggerFactoryParams,\n  DEFAULT_LOGGER_LEVELS,\n  DEFAULT_LOGGER_PARAMS,\n  type DefaultLoggerLevel,\n  file,\n  json,\n  LOGGER_SILENT_LEVEL,\n  pretty\n};\n\nexport const NODE_LOGGER_SYSTEM_INFO = { pid: process.pid, hostname: hostname() };\n\nexport const createLogger = createLoggerFactory({\n  defaultParams: {\n    ...DEFAULT_LOGGER_PARAMS,\n    meta: NODE_LOGGER_SYSTEM_INFO,\n    target: process.env.NODE_ENV === 'production' ? json() : pretty()\n  },\n  formatMessage: printf,\n  readArguments\n});\nexport const createAutoLogger = createLoggerAutoFactory(createLogger);\n"],"names":["fromLength","length","fn","identity","Array","from","_","index","filterObject","record","Object","fromEntries","entries","filter","key","value","omit","obj","keys","includes","pick","target","sum","values","reduce","acc","item","memoizeWeak","memoize","cache","WeakMap","Map","cachedFn","input","getOrCreateMapValue","truncateString","str","maxLength","suffix","slice","formatOutgoingMessageStatus","res","headersSent","statusCode","statusMessage","formatIncomingMessage","req","colors","delimiter","bold","method","toUpperCase","underline","gray","getIncomingMessageUrl","split","shift","formatResponseTime","time","showSeconds","timeValue","toLocaleString","style","unit","unitDisplay","maximumFractionDigits","padEnd","serializeHttpRequest","id","info","query","params","headers","HTTP_LOG_RAW_SYMBOL","raw","connection","socket","url","remotePort","remoteAddress","serializeHttpResponse","getHeaders","originalUrl","path","createRequestIdGenerator","currentRequestId","generateRequestId","maxInt","HTTP_LOG_START_TIME_SYMBOL","Symbol","isFullwidthCodePoint","codePoint","Number","isInteger","ANSI_BACKGROUND_OFFSET","wrapAnsi16","offset","code","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","modifier","reset","dim","italic","overline","inverse","hidden","strikethrough","color","black","yellow","magenta","cyan","white","blackBright","grey","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgColor","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBlackBright","bgGray","bgGrey","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","assembleStyles","codes","groupName","group","styleName","open","close","set","defineProperty","enumerable","ansi","ansi256","ansi16m","defineProperties","rgbToAnsi256","Math","round","hexToRgb","hex","matches","exec","toString","colorString","map","character","join","integer","parseInt","hexToAnsi256","ansi256ToAnsi","remainder","floor","max","result","rgbToAnsi","hexToAnsi","ansiStyles","astralRegex","ESCAPES","wrapAnsi","checkAnsi","ansiCodes","isEscapes","endAnsiCode","output","ansiCode","ansiCodeOrigin","get","indexEscape","indexOf","push","splice","element","undefined","fistEscapeCode","current","next","sliceAnsi","string","begin","end","characters","stringEnd","isInsideEscape","visible","leftEscape","test","codePointAt","ansiRegex","onlyFirst","pattern","RegExp","regex","stripAnsi","TypeError","replace","isAmbiguous","x","isFullWidth","isWide","validate","isSafeInteger","eastAsianWidth","ambiguousAsWide","segmenter","Intl","Segmenter","stringWidth","options","ambiguousIsNarrow","countAnsiEscapeCodes","width","eastAsianWidthOptions","segment","emojiRegex","getIndexOfNearestSpace","wantedIndex","shouldSearchRight","charAt","direction","finalIndex","cliTruncate","text","columns","position","space","preferTruncationOnSpace","truncationCharacter","nearestSpace","trim","half","spaceNearFirstBreakPoint","spaceNearSecondBreakPoint","Error","cliSymbols","arrowUp","arrowRight","arrowBottom","enter","cross","longDash","longArrowRight","more","pointer","pointerSmall","pointerSmallDouble","cliColumns","process","stdout","getNewLineLength","source","getPointerOffset","lineNumber","columnNumber","lines","newlineRe","newLineLength","no","printCodeFrame","defaultColors","indent","overscan","pointerOffset","lineOffset","line","startIndex","printedLines","some","isMinifiedCodeLike","printUnderline","fillSpace","repeat","printLineNo","padStart","flatMap","lineNo","isCurrentLine","String","Boolean","serializeError","error","name","stack","message","getErrorCustomProperties","cause","errorProperties","builtInErrorProps","isEmptyObject","parseStackTraces","originalTrace","notInternals","parseSingleStack","sanitizedLine","location","match","parseTraceLocation","file","startsWith","resolve","toInt","column","urlLike","LOCATIONS_RE","printPrettyError","originalError","cwd","codeFrame","fullStack","stringify","serializeJSON","filterStack","getHighlightedStacks","toCodeFrameCondition","toError","stacks","True","highlightedStacks","toArray","prefix","messageParts","highlighted","relative","readFileSync","find","existsSync","isPrimitive","serializeMeta","meta","serializers","hasOwn","DEFAULT_SERIALIZERS","err","filename","json","createWriteStream","dateKey","errorKey","messageKey","levelValueKey","write","bind","handleLog","msg","level","date","__","levels","assign","getTime","pretty","log","console","logError","displayMs","displayTime","displayLevel","prettyErrors","levelColors","defaultLevelColors","levelBadges","defaultLevelBadges","getLevelSetting","settings","maxBadgesLength","b","prettyErrorCustomOptions","isObject","prettyHandler","chunk","resolvedLevel","originalLevel","possibleLabelFromError","userDefinedMessage","maxLevelLength","getMaxObjectKeysLength","label","toLowerCase","badge","levelColorName","levelColorFn","visibleMeta","fullLabel","mergeString","firstPart","nameDelimiter","haveVisibleMeta","isEmpty","formatter","withMs","withoutMs","formatted","format","stackBody","shouldPrintErrorInAdditionalLine","postfix","parts","done","warn","debug","verbose","defaultBadges","formatOptions","hour","minute","second","hour12","DateTimeFormat","fractionalSecondDigits","NODE_LOGGER_SYSTEM_INFO","pid","hostname","createLogger","createLoggerFactory","defaultParams","DEFAULT_LOGGER_PARAMS","env","NODE_ENV","formatMessage","printf","readArguments","createAutoLogger","createLoggerAutoFactory"],"mappings":"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","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16]}