{"version":3,"sources":["../source/emoji/emoji.ts","../source/sample/groups/array.ts","../source/sample/groups/bigint.ts","../source/sample/groups/boolean.ts","../source/sample/groups/date.ts","../source/sample/groups/function.ts","../source/sample/groups/map.ts","../source/sample/groups/null.ts","../source/sample/groups/infinity.ts","../source/sample/groups/nan.ts","../source/sample/groups/number.ts","../source/sample/groups/object.ts","../source/sample/groups/regexp.ts","../source/sample/groups/set.ts","../source/sample/groups/string.ts","../source/sample/groups/symbol.ts","../source/sample/groups/undefined.ts","../source/sample/sample.ts","../source/unit/unit.ts"],"names":["isBuiltInObjectName","getConstructorName","getPrimitiveName","isPrimitiveName","PRIMITIVES_EMOJIS","BUILT_IN_OBJECTS_EMOJIS","CUSTOM_TYPE_EMOJIS","UNRECOGNIZED_TYPE_EMOJI","VALUE_TYPE_EMOJIS","getPrimitiveEmoji","value","primitiveName","getValueTypeEmoji","name","SAMPLE_EMPTY_ARRAY","SAMPLE_ARRAYS","SAMPLE_BIG_INT","FALSY_BIG_INTS","TRUTHY_BIG_INTS","SAMPLE_BIG_INTS","FALSY_BOOLEANS","TRUTHY_BOOLEANS","SAMPLE_BOOLEANS","SAMPLE_DATES","SAMPLE_ARROW_FUNCTION","SAMPLE_ARROW_ASYNC_FUNCTION","SAMPLE_SIMPLE_FUNCTION","SAMPLE_SIMPLE_ASYNC_FUNCTION","SAMPLE_SIMPLE_ASYNC_GENERATOR_FUNCTION","SAMPLE_SIMPLE_GENERATOR_FUNCTION","SAMPLE_BUILT_IN_METHODS","SAMPLE_OBJECT_WITH_METHODS","SampleClass","__publicField","sampleClass","SAMPLE_CLASS_METHODS","SAMPLE_OBJECT_METHODS","SAMPLE_ARROW_FUNCTIONS","SAMPLE_SIMPLE_FUNCTIONS","SAMPLE_FUNCTIONS","SAMPLE_MAPS","SAMPLE_NULLS","SAMPLE_INFINITIES","SAMPLE_NANS","SAMPLE_NUMBER","FALSY_NUMBERS","TRUTHY_NUMBERS","SAMPLE_NUMBERS","SAMPLE_EMPTY_OBJECT","SAMPLE_OBJECTS","SAMPLE_REGEXES","SAMPLE_EMPTY_SET","SAMPLE_SETS","FALSY_STRINGS","NUMERIC_STRINGS","TRUTHY_STRINGS","SAMPLE_STRINGS","SAMPLE_SYMBOL","SAMPLE_SYMBOLS","SAMPLE_UNDEFINEDES","FALSY_PRIMITIVES","TRUTHY_PRIMITIVES","SAMPLE_PRIMITIVES","SAMPLE_NON_PRIMITIVES","ALL_SAMPLES","description","situation","stringified","data","getStringifiedAndTruncatedArray","options","stringifiedOptions","getFormattedPrimitiveValue","getFormattedNonPrimitiveValue","valueType","stringifyValue","array","length","maxLength","firstItems","middle","lastItems","jsonReplacer","isCustomValueDescription","createPrint","prefixEmoji","prefix","processedValue","valueTypeName","valueTypeEmoji","stringifiedValue","displayStringifiedValue","_key","throws","returns"],"mappings":"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","sourcesContent":["import { type BuiltInObjectName, isBuiltInObjectName } from \"@terminal-nerds/snippets-type/built-in\";\nimport { getConstructorName } from \"@terminal-nerds/snippets-type/constructor\";\nimport { getPrimitiveName, isPrimitiveName, type PrimitiveName } from \"@terminal-nerds/snippets-type/primitive\";\n\nexport const PRIMITIVES_EMOJIS = {\n\tbigint: `🇧`,\n\tboolean: {\n\t\tfalse: `🔴`,\n\t\ttrue: `🟢`,\n\t},\n\tnull: `❎`,\n\tnumber: `🇳`,\n\tsymbol: `💠`,\n\tstring: `🇸`,\n\tundefined: `🫥`,\n} as const;\nexport type PrimitiveEmoji =\n\t| (typeof PRIMITIVES_EMOJIS)[Exclude<PrimitiveName, \"boolean\">]\n\t| (typeof PRIMITIVES_EMOJIS.boolean)[\"false\" | \"true\"];\n\nexport const BUILT_IN_OBJECTS_EMOJIS = {\n\t// Fundamental\n\tFunction: `🇫`,\n\tObject: `🇴`,\n\t// Error\n\tError: `📛`,\n\tAggregateError: `📛`,\n\tEvalError: `📛`,\n\tRangeError: `📛`,\n\tReferenceError: `📛`,\n\tSyntaxError: `📛`,\n\tTypeError: `📛`,\n\tURIError: `📛`,\n\t// Math and date\n\tDate: `🗓️`,\n\tMath: `🧮`,\n\t// Text processing\n\tRegExp: `🔎🇸\"`,\n\t// Indexed collection\n\tArray: `🇦`,\n\tInt8Array: `❔`,\n\tUint8Array: `❔`,\n\tUint8ClampedArray: `❔`,\n\tInt16Array: `❔`,\n\tUint16Array: `❔`,\n\tInt32Array: `❔`,\n\tUint32Array: `❔`,\n\tBigInt64Array: `❔`,\n\tBigUint64Array: `❔`,\n\tFloat32Array: `❔`,\n\tFloat64Array: `❔`,\n\t// Keyed collection\n\tMap: `🇲`,\n\tSet: `🦄`,\n\tWeakMap: `❔`,\n\tWeakSet: `❔`,\n\t// Structured data\n\tArrayBuffer: `❔`,\n\tSharedArrayBuffer: `❔`,\n\tDataView: `❔`,\n\tAtomics: `❔`,\n\tJSON: `❔`,\n\t// Managing memory\n\tWeakRef: `❔`,\n\tFinalizationRegistry: `❔`,\n\t// Control abstraction\n\tPromise: `❔`,\n\tAsyncFunction: `❔`,\n\tAsyncGeneratorFunction: `❔`,\n\tGeneratorFunction: `❔`,\n\t// AsyncGenerator: `❔`,\n\t// Generator: `❔`,\n\t// Reflection\n\tReflect: `❔`,\n\tProxy: `❔`,\n\t// Internationalization\n\tIntl: `🌐`,\n} as const;\n\ntype BuiltInNameWithoutPrimitives = Exclude<BuiltInObjectName, \"BigInt\" | \"Boolean\" | \"Number\" | \"String\" | \"Symbol\">;\nexport type BuiltInEmoji = (typeof BUILT_IN_OBJECTS_EMOJIS)[BuiltInNameWithoutPrimitives];\n\nexport const CUSTOM_TYPE_EMOJIS = {\n\tZodError: `📛`,\n} as const;\n\nexport type CustomTypeName = keyof typeof CUSTOM_TYPE_EMOJIS;\nexport type CustomTypeEmoji = (typeof CUSTOM_TYPE_EMOJIS)[CustomTypeName];\n\nexport const UNRECOGNIZED_TYPE_EMOJI = `❓`;\nexport type UnrecognizedTypeEmoji = typeof UNRECOGNIZED_TYPE_EMOJI;\n\nexport const VALUE_TYPE_EMOJIS = {\n\t...PRIMITIVES_EMOJIS,\n\t...BUILT_IN_OBJECTS_EMOJIS,\n\t...CUSTOM_TYPE_EMOJIS,\n\tUNRECOGNIZED_TYPE_EMOJI,\n} as const;\n\nexport type ValueTypeName = keyof typeof PRIMITIVES_EMOJIS | keyof typeof BUILT_IN_OBJECTS_EMOJIS;\nexport type ValueTypeEmoji =\n\t| (typeof VALUE_TYPE_EMOJIS)[Exclude<ValueTypeName, \"boolean\">]\n\t| (typeof PRIMITIVES_EMOJIS)[\"boolean\"][\"true\" | \"false\"]\n\t| UnrecognizedTypeEmoji;\n\nfunction getPrimitiveEmoji(value: unknown): PrimitiveEmoji {\n\tconst primitiveName = getPrimitiveName(value);\n\n\tif (primitiveName) {\n\t\treturn primitiveName === \"boolean\"\n\t\t\t? PRIMITIVES_EMOJIS[\"boolean\"][String(value) as \"true\" | \"false\"]\n\t\t\t: PRIMITIVES_EMOJIS[primitiveName];\n\t} else {\n\t\tthrow new TypeError(`Unrecognized primitive, cannot get emoji.`);\n\t}\n}\n\nexport function getValueTypeEmoji(value: unknown): ValueTypeEmoji {\n\tconst name = getConstructorName(value);\n\n\tif (isPrimitiveName(name.toLowerCase())) {\n\t\treturn getPrimitiveEmoji(value);\n\t} else if (isBuiltInObjectName(name)) {\n\t\treturn BUILT_IN_OBJECTS_EMOJIS[name as BuiltInNameWithoutPrimitives];\n\t} else {\n\t\t// @ts-ignore TODO: Add type safety for custom objects?\n\t\tconst emoji = CUSTOM_TYPE_EMOJIS[name];\n\n\t\treturn emoji ?? UNRECOGNIZED_TYPE_EMOJI;\n\t}\n}\n","export const SAMPLE_EMPTY_ARRAY = [] as const;\n\n/* prettier-ignore */\nexport const SAMPLE_ARRAYS = [\n\tSAMPLE_EMPTY_ARRAY,\n\t[1, 2],\n] as const;\n","export const SAMPLE_BIG_INT = BigInt(987);\n/* prettier-ignore */\nexport const FALSY_BIG_INTS = [\n\t0n,\n\t-0n,\n\tBigInt(0),\n\tBigInt(-0),\n] as const;\n\nexport const TRUTHY_BIG_INTS = [\n\tBigInt(Number.MIN_SAFE_INTEGER),\n\tBigInt(Number.MAX_SAFE_INTEGER),\n\tBigInt(Number.MAX_VALUE),\n] as const;\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt} */\nexport const SAMPLE_BIG_INTS = [...FALSY_BIG_INTS, ...TRUTHY_BIG_INTS] as const;\n","export const FALSY_BOOLEANS = [\n\tfalse,\n\tBoolean(false),\n\tBoolean(),\n\tBoolean(0),\n\tBoolean(\"\"),\n\t// eslint-disable-next-line unicorn/no-useless-undefined\n\tBoolean(undefined),\n\t// eslint-disable-next-line unicorn/no-null\n\tBoolean(null),\n] as const;\n\n/* prettier-ignore */\nexport const TRUTHY_BOOLEANS = [\n\ttrue,\n\tBoolean(true),\n\tBoolean(1),\n\tBoolean(\"a\"),\n] as const;\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean} */\nexport const SAMPLE_BOOLEANS = [...FALSY_BOOLEANS, ...TRUTHY_BOOLEANS] as const;\n","/* prettier-ignore */\nexport const SAMPLE_DATES = [\n\tnew Date(),\n\tnew Date(\"2023-01-01T00:00:00.000Z\"),\n] as const;\n","export const SAMPLE_ARROW_FUNCTION = () => void 0;\n\nexport const SAMPLE_ARROW_ASYNC_FUNCTION = async () => void 0;\n\nexport const SAMPLE_SIMPLE_FUNCTION = function () {\n\treturn void 0;\n};\n\nexport const SAMPLE_SIMPLE_ASYNC_FUNCTION = async function () {\n\treturn void 0;\n};\n\nexport const SAMPLE_SIMPLE_ASYNC_GENERATOR_FUNCTION = async function* () {\n\tyield void 0;\n\treturn void 0;\n};\n\nexport const SAMPLE_SIMPLE_GENERATOR_FUNCTION = function* () {\n\tyield void 0;\n\treturn void 0;\n};\n\nexport const SAMPLE_ASYNC_FUNCTIONS = [\n\tSAMPLE_ARROW_ASYNC_FUNCTION,\n\tSAMPLE_SIMPLE_ASYNC_FUNCTION,\n\tSAMPLE_SIMPLE_ASYNC_GENERATOR_FUNCTION,\n] as const;\n\nexport const SAMPLE_SYNC_FUNCTIONS = [\n\tSAMPLE_ARROW_FUNCTION,\n\tSAMPLE_SIMPLE_FUNCTION,\n\tSAMPLE_SIMPLE_GENERATOR_FUNCTION,\n] as const;\n\nexport const SAMPLE_GENERATOR_FUNCTIONS = [\n\tSAMPLE_SIMPLE_ASYNC_GENERATOR_FUNCTION,\n\tSAMPLE_SIMPLE_GENERATOR_FUNCTION,\n] as const;\n\nexport const SAMPLE_NON_GENERATOR_FUNCTIONS = [\n\tSAMPLE_ARROW_FUNCTION,\n\tSAMPLE_ARROW_ASYNC_FUNCTION,\n\tSAMPLE_SIMPLE_FUNCTION,\n\tSAMPLE_SIMPLE_ASYNC_FUNCTION,\n] as const;\n\nexport const SAMPLE_BUILT_IN_METHODS = [\n\tDate.now,\n\tIntl.NumberFormat.supportedLocalesOf,\n\tMath.min,\n\tMath.max,\n\tNumber.isNaN,\n\tString.prototype.match,\n] as const;\n\nexport const SAMPLE_OBJECT_WITH_METHODS = {\n\tarrow: SAMPLE_ARROW_FUNCTION,\n\tarrowAsync: SAMPLE_ARROW_ASYNC_FUNCTION,\n\tsimple: SAMPLE_SIMPLE_FUNCTION,\n\tsimpleAsync: SAMPLE_SIMPLE_ASYNC_FUNCTION,\n\tsimpleAsyncGenerator: SAMPLE_SIMPLE_ASYNC_GENERATOR_FUNCTION,\n\tsimpleGenerator: SAMPLE_SIMPLE_GENERATOR_FUNCTION,\n} as const;\n\nclass SampleClass {\n\tstatic staticArrow = SAMPLE_ARROW_FUNCTION;\n\tstatic staticSimple = SAMPLE_SIMPLE_FUNCTION;\n\n\t/* prettier-ignore */\n\tconstructor() { void 0; }\n\n\tpublic arrow = SAMPLE_ARROW_FUNCTION;\n\tpublic simple = SAMPLE_SIMPLE_FUNCTION;\n\t/* prettier-ignore */\n\tpublic method() { return void 0; }\n}\n\nconst sampleClass = new SampleClass();\n\nexport const SAMPLE_CLASS_METHODS = [\n\tSampleClass.staticArrow,\n\tSampleClass.staticSimple,\n\tsampleClass.arrow,\n\tsampleClass.simple,\n\tsampleClass.method,\n] as const;\n\nexport const SAMPLE_OBJECT_METHODS = [\n\tSAMPLE_OBJECT_WITH_METHODS.arrow,\n\tSAMPLE_OBJECT_WITH_METHODS.arrowAsync,\n\tSAMPLE_OBJECT_WITH_METHODS.simple,\n\tSAMPLE_OBJECT_WITH_METHODS.simpleAsync,\n\tSAMPLE_OBJECT_WITH_METHODS.simpleAsyncGenerator,\n\tSAMPLE_OBJECT_WITH_METHODS.simpleGenerator,\n] as const;\n\nexport const SAMPLE_ARROW_FUNCTIONS = [\n\tSampleClass.staticArrow,\n\tSAMPLE_OBJECT_WITH_METHODS.arrow,\n\tSAMPLE_OBJECT_WITH_METHODS.arrowAsync,\n\tsampleClass.arrow,\n\tSAMPLE_ARROW_FUNCTION,\n\t() => SAMPLE_SIMPLE_FUNCTION,\n\tSAMPLE_ARROW_ASYNC_FUNCTION,\n\tasync () => SAMPLE_SIMPLE_FUNCTION,\n] as const;\n\n/* prettier-ignore */\nexport const SAMPLE_SIMPLE_FUNCTIONS = [\n\tSAMPLE_SIMPLE_FUNCTION,\n\tfunction simple() { return SAMPLE_ARROW_FUNCTION; },\n\tSAMPLE_SIMPLE_ASYNC_FUNCTION,\n\tasync function simple() { return SAMPLE_ARROW_FUNCTION; },\n\tSAMPLE_SIMPLE_ASYNC_GENERATOR_FUNCTION,\n\tasync function* simple() { yield void 0; return SAMPLE_ARROW_FUNCTION; },\n\tSAMPLE_SIMPLE_GENERATOR_FUNCTION,\n\tfunction* simple() { yield void 0; return SAMPLE_ARROW_FUNCTION; },\n\tSampleClass.staticSimple,\n\tsampleClass.simple,\n\tSAMPLE_OBJECT_WITH_METHODS.simple,\n\tSAMPLE_OBJECT_WITH_METHODS.simpleAsync,\n\tSAMPLE_OBJECT_WITH_METHODS.simpleAsyncGenerator,\n\tSAMPLE_OBJECT_WITH_METHODS.simpleGenerator,\n\tsampleClass.method,\n\t...SAMPLE_BUILT_IN_METHODS,\n] as const;\n\nexport const SAMPLE_FUNCTIONS = [...SAMPLE_ARROW_FUNCTIONS, ...SAMPLE_SIMPLE_FUNCTIONS] as const;\n","export const SAMPLE_EMPTY_MAP = new Map();\n\nexport const SAMPLE_MAPS = [\n\tnew Map(),\n\tnew Map([\n\t\t[1, \"one\"],\n\t\t[2, \"two\"],\n\t\t[3, \"three\"],\n\t]),\n] as const;\n","/* prettier-ignore */\n/** @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Null} Null */\nexport const SAMPLE_NULLS = [\n\t// eslint-disable-next-line unicorn/no-null\n\tnull,\n] as const;\n","export const SAMPLE_INFINITIES = [\n\t// eslint-disable-next-line unicorn/prefer-number-properties\n\t-Infinity,\n\tNumber.NEGATIVE_INFINITY,\n\t// eslint-disable-next-line unicorn/prefer-number-properties\n\tInfinity,\n\tNumber.POSITIVE_INFINITY,\n] as const;\n","/** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN} NaN - Not-A-Number */\nexport const SAMPLE_NANS = [\n\t// eslint-disable-next-line unicorn/prefer-number-properties\n\tNaN,\n\tNumber.NaN,\n\t// eslint-disable-next-line unicorn/prefer-number-properties\n\tNumber(NaN),\n\tNumber(Number.NaN),\n] as const;\n","import { SAMPLE_INFINITIES } from \"./infinity.ts\";\nimport { SAMPLE_NANS } from \"./nan.ts\";\n\nexport const SAMPLE_NUMBER = 1337;\n\n/* prettier-ignore */\nexport const FALSY_NUMBERS = [\n\t-0,\n\t0,\n\tNumber(),\n\t...SAMPLE_NANS,\n] as const;\n\nexport const TRUTHY_NUMBERS = [\n\tSAMPLE_NUMBER,\n\t...SAMPLE_INFINITIES,\n\tNumber.MIN_SAFE_INTEGER,\n\tNumber.MIN_VALUE,\n\tNumber.EPSILON,\n\tNumber.MAX_SAFE_INTEGER,\n\tNumber.MAX_VALUE,\n] as const;\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number} Number */\nexport const SAMPLE_NUMBERS = [...FALSY_NUMBERS, ...TRUTHY_NUMBERS] as const;\n","export const SAMPLE_EMPTY_OBJECT = {} as const;\n\n/* prettier-ignore */\nexport const SAMPLE_OBJECTS = [\n\tSAMPLE_EMPTY_OBJECT,\n\t{ key: \"value\" },\n] as const;\n","export const SAMPLE_REGEXES = [\n\t// eslint-disable-next-line prefer-regex-literals\n\tnew RegExp(\"\"),\n\t/nerds/i,\n] as const;\n","export const SAMPLE_EMPTY_SET = new Set();\n\n/* prettier-ignore */\nexport const SAMPLE_SETS = [\n\tSAMPLE_EMPTY_SET,\n\tnew Set([1, 2, 2])\n] as const;\n","export const SAMPLE_STRING = \"terminal-nerds.DEV@2023\";\n\n/* prettier-ignore */\nexport const FALSY_STRINGS = [\n\t\"\",\n\t'',\n\t``,\n\tString(),\n\tString(\"\"),\n\tString(''),\n\tString(``),\n] as const;\n\nexport const NUMERIC_STRINGS = [\n\t\"123456789\",\n\t\"-123456789\",\n\t\"123.456789\",\n\t\"-123.456789\",\n\t\" 123.456789 \",\n\t\" -123.456789 \",\n\t\"0b11111111\", // 255\n\t\"0o377\", // 255\n\t\"0xFF\", // 255\n\t\"10e1000\",\n\t\"Infinity\",\n\t\"-Infinity\",\n] as const;\n\nexport const TRUTHY_STRINGS = [\n\t'string from double quotes (\")',\n\t\"string from single quotes (')\",\n\t`string from backtick - ${\"template literals\"} - (\\`)`,\n\t...NUMERIC_STRINGS,\n] as const;\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String} String */\nexport const SAMPLE_STRINGS = [...FALSY_STRINGS, ...TRUTHY_STRINGS] as const;\n","export const SAMPLE_SYMBOL = Symbol(\"terminal-nerds\");\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol} */\nexport const SAMPLE_SYMBOLS = [\n\tSymbol(),\n\tSymbol(1),\n\tSymbol(0),\n\tSymbol(-0),\n\t// eslint-disable-next-line unicorn/prefer-number-properties\n\tSymbol(NaN),\n\t// eslint-disable-next-line unicorn/no-useless-undefined\n\tSymbol(undefined),\n\tSymbol(\"string\"),\n\tSymbol(\"\"),\n] as const;\n","/* prettier-ignore */\n/** @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Undefined} */\nexport const SAMPLE_UNDEFINEDES = [\n\tundefined,\n\tvoid 0,\n];\n","import { SAMPLE_ARRAYS } from \"./groups/array.ts\";\nimport { FALSY_BIG_INTS, SAMPLE_BIG_INTS, TRUTHY_BIG_INTS } from \"./groups/bigint.ts\";\nimport { FALSY_BOOLEANS, SAMPLE_BOOLEANS, TRUTHY_BOOLEANS } from \"./groups/boolean.ts\";\nimport { SAMPLE_DATES } from \"./groups/date.ts\";\nimport { SAMPLE_FUNCTIONS } from \"./groups/function.ts\";\nimport { SAMPLE_MAPS } from \"./groups/map.ts\";\nimport { SAMPLE_NULLS } from \"./groups/null.ts\";\nimport { FALSY_NUMBERS, SAMPLE_NUMBERS, TRUTHY_NUMBERS } from \"./groups/number.ts\";\nimport { SAMPLE_OBJECTS } from \"./groups/object.ts\";\nimport { SAMPLE_REGEXES } from \"./groups/regexp.ts\";\nimport { SAMPLE_SETS } from \"./groups/set.ts\";\nimport { FALSY_STRINGS, SAMPLE_STRINGS, TRUTHY_STRINGS } from \"./groups/string.ts\";\nimport { SAMPLE_SYMBOLS } from \"./groups/symbol.ts\";\nimport { SAMPLE_UNDEFINEDES } from \"./groups/undefined.ts\";\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Falsy} */\nexport const FALSY_PRIMITIVES = [\n\t...FALSY_BIG_INTS,\n\t...FALSY_BOOLEANS,\n\t...FALSY_NUMBERS,\n\t...SAMPLE_NULLS,\n\t...FALSY_STRINGS,\n\t...SAMPLE_UNDEFINEDES,\n] as const;\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Truthy} */\nexport const TRUTHY_PRIMITIVES = [\n\t...TRUTHY_BIG_INTS,\n\t...TRUTHY_BOOLEANS,\n\t...TRUTHY_NUMBERS,\n\t...TRUTHY_STRINGS,\n] as const;\n\nexport const SAMPLE_PRIMITIVES = [\n\t...SAMPLE_BIG_INTS,\n\t...SAMPLE_BOOLEANS,\n\t...SAMPLE_NULLS,\n\t...SAMPLE_NUMBERS,\n\t...SAMPLE_STRINGS,\n\t...SAMPLE_SYMBOLS,\n\t...SAMPLE_UNDEFINEDES,\n] as const;\n\nexport const SAMPLE_NON_PRIMITIVES = [\n\t...SAMPLE_ARRAYS,\n\t...SAMPLE_DATES,\n\t...SAMPLE_FUNCTIONS,\n\t...SAMPLE_MAPS,\n\t...SAMPLE_OBJECTS,\n\t...SAMPLE_SETS,\n\t...SAMPLE_REGEXES,\n] as const;\n\nexport const ALL_SAMPLES = [...SAMPLE_PRIMITIVES, ...SAMPLE_NON_PRIMITIVES] as const;\n","import { getConstructorName } from \"@terminal-nerds/snippets-type/constructor\";\nimport { isPrimitiveName } from \"@terminal-nerds/snippets-type/primitive\";\n\nimport { getValueTypeEmoji } from \"../emoji/emoji.ts\";\n\ndeclare global {\n\tinterface String {\n\t\tand: (_description: string) => string;\n\t\ton: (_situation: string) => string;\n\t\tsample: (_data: unknown) => string;\n\t\tsamples: (_data: unknown) => string;\n\t\twith: (_options: Record<string, unknown>) => string;\n\t}\n}\n\n/* eslint-disable func-names */\nString.prototype.and = function (description: string): string {\n\treturn `${this}, and ${description}`;\n};\n\n/* eslint-disable func-names */\nString.prototype.on = function (situation: string): string {\n\treturn `${this} - on ${situation}`;\n};\n\n/* eslint-disable func-names */\nString.prototype.sample = function (value: unknown): string {\n\t/* prettier-ignore */\n\tswitch (typeof value) {\n\t\t/* eslint-disable unicorn/switch-case-braces */\n\t\tcase \"bigint\": return `${this}: ${value}n`;\n\t\tcase \"boolean\": return `${this}: ${value}`;\n\t\tcase \"function\": return `${this}: ${value.toString()}`;\n\t\tcase \"number\": return `${this}: ${value}`;\n\t\tcase \"object\": {\n\t\t\tconst stringified = value ? value.toString() : `null`;\n\n\t\t\treturn `${this}: ${stringified}`;\n\t\t}\n\t\tcase \"undefined\": return this.toString();\n\t\tcase \"string\": return `${this}: \"${value}\"`;\n\t\tcase \"symbol\": return `${this}: ${value.toString()}`;\n\t\t/* eslint-enable unicorn/switch-case-braces */\n\t}\n};\n\n/* eslint-disable func-names */\nString.prototype.samples = function (data: unknown): string {\n\tif (Array.isArray(data) || data instanceof Set) {\n\t\treturn `${this}: ${getStringifiedAndTruncatedArray([...data])}`;\n\t} else {\n\t\t// TODO: Handle more cases\n\t\tthrow new TypeError(\"Unhandled sample data type\");\n\t}\n};\n\n/* eslint-disable func-names */\nString.prototype.with = function (options: Record<string, unknown>): string {\n\tconst stringifiedOptions = JSON.stringify(options, undefined, 1);\n\n\treturn `${this} - with options: ${stringifiedOptions}`;\n};\n\nfunction getFormattedPrimitiveValue(value: unknown): string {\n\t/* prettier-ignore */\n\tswitch(typeof value) {\n\t\t\t/* eslint-disable unicorn/switch-case-braces */\n\t\t\tcase \"bigint\": return `${value}n`;\n\t\t\tcase \"boolean\": return `${value}`;\n\t\t\tcase \"function\": return `${value.toString()}`;\n\t\t\tcase \"number\": return `${value}`;\n\t\t\tcase \"string\": return `\"${value}\"`;\n\t\t\tcase \"symbol\": return `\"${value.toString()}\"`;\n\t\t\tcase \"undefined\": return ``;\n\t\t\tdefault: throw new TypeError(`The value is non-primitive.`);\n\t\t\t/* eslint-enable unicorn/switch-case-braces */\n\t\t}\n}\n\nfunction getFormattedNonPrimitiveValue(value: unknown, valueType: string): string {\n\tswitch (valueType) {\n\t\t/* eslint-disable unicorn/switch-case-braces */\n\t\tcase \"Array\":\n\t\t\treturn `[ ...${(value as Array<unknown>).length} item(s)... ]`;\n\t\tcase \"Set\":\n\t\t\treturn `[ ...${(value as Set<unknown>).size} item(s)... ]`;\n\t\tcase \"Error\":\n\t\t\treturn (value as Error).message;\n\t\tcase \"Map\":\n\t\t\treturn `{ ...${(value as Map<unknown, unknown>).size} entry(ies)... }`;\n\t\tcase \"Object\":\n\t\t\treturn `{ ...${Object.entries(value as object).length} entry(ies)... }`;\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t/* eslint-enable unicorn/switch-case-braces */\n\t}\n}\n\nfunction stringifyValue(value: unknown, valueType: string): string | undefined {\n\treturn isPrimitiveName(valueType.toLowerCase())\n\t\t? getFormattedPrimitiveValue(value)\n\t\t: getFormattedNonPrimitiveValue(value, valueType);\n}\n\nfunction getStringifiedAndTruncatedArray(array: Array<unknown>): string {\n\tconst { length } = array;\n\tconst maxLength = 4;\n\n\tif (length > maxLength) {\n\t\tconst firstItems = array.slice(0, maxLength / 2);\n\t\tconst middle = `\\n... ${length - maxLength} items ...`;\n\t\tconst lastItems = array.slice(-(maxLength / 2), length);\n\n\t\treturn JSON.stringify([...firstItems, \"%mid%\", ...lastItems], jsonReplacer, 1).replace(/,\\n \"%mid%\",?/, middle);\n\t} else {\n\t\treturn JSON.stringify(array, jsonReplacer, 1);\n\t}\n}\n\ninterface CustomValueDescription {\n\twhat: string;\n\tvalue: unknown;\n}\nfunction isCustomValueDescription(value: unknown): value is CustomValueDescription {\n\t/* prettier-ignore */\n\treturn typeof value === \"object\" &&\n\t\tvalue\n\t\t\t? Object.hasOwn(value, \"what\") &&\n\t\t\t  Object.hasOwn(value, \"value\")\n\t\t\t: false;\n}\n\nfunction createPrint(prefixEmoji: string, prefix: string, value: unknown | CustomValueDescription): string {\n\tlet processedValue: unknown;\n\tlet valueTypeName: string;\n\n\tif (isCustomValueDescription(value)) {\n\t\tvalueTypeName = value.what;\n\t\tprocessedValue = value.value;\n\t} else {\n\t\tprocessedValue = value;\n\t\tvalueTypeName = getConstructorName(value);\n\t}\n\n\tconst valueTypeEmoji = getValueTypeEmoji(processedValue);\n\tconst stringifiedValue = stringifyValue(processedValue, valueTypeName);\n\tconst displayStringifiedValue = stringifiedValue ? ` (${stringifiedValue})` : \"\";\n\n\treturn `${prefixEmoji} ${prefix} ${valueTypeEmoji} '${valueTypeName}'${displayStringifiedValue}`;\n}\n\nfunction jsonReplacer(_key: string, value: unknown) {\n\t/* prettier-ignore */\n\tswitch(typeof value) {\n\t\t/* eslint-disable unicorn/switch-case-braces */\n\t\tcase \"bigint\": return `${value.toString()}n`;\n\t\tcase \"function\": return value.toString();\n\t\tcase \"undefined\": return `undefined`;\n\t\tdefault: return value;\n\t\t/* eslint-enable unicorn/switch-case-braces */\n\t}\n}\n\nexport const throws = (value: unknown) => createPrint(`💥`, `throws`, value);\nexport const returns = (value?: unknown) => createPrint(`🔙`, `returns`, value);\n"]}