{"version":3,"sources":["../source/keys/keys.ts","../source/schema/schema.ts","../source/schema/empty/empty.ts","../source/merge/merge.ts"],"names":["z","isNonPrimitive","validateNonPrimitive","EMPTY_OBJECT_SCHEMA","validateEmptyObject","value","isObjectEmpty","validateObject","isObject","OBJECT_KEY_SCHEMA","RENAMER_SCHEMA","renameObjectKeys","object","renamer","handleRename","key","index","OBJECT_SCHEMA","deepmerge","mergeDeepObjects","objects"],"mappings":"AAAA,OAAS,KAAAA,MAAS,MCAlB,OAAS,kBAAAC,EAAgB,wBAAAC,MAA4B,8CCCrD,OAAS,KAAAF,MAAS,MAEX,IAAMG,EAAsBH,EAAE,OAAOA,EAAE,UAAU,CAAC,EAIlD,SAASI,EAAoBC,EAA6C,CAChFF,EAAoB,MAAME,CAAK,CAChC,CAEO,SAASC,EAAcD,EAAqC,CAClE,OAAOF,EAAoB,UAAUE,CAAK,EAAE,OAC7C,CDXO,SAASE,EAAeF,EAAyC,CACvEH,EAAqBG,EAAO,QAAQ,CACrC,CAEO,SAASG,EAASH,EAAiC,CACzD,OAAOJ,EAAeI,EAAO,QAAQ,CACtC,CDJO,IAAMI,EAAoBT,EAAE,OAAO,EAAE,GAAGA,EAAE,OAAO,CAAC,EAAE,GAAGA,EAAE,OAAO,CAAC,EAElEU,EAAiBV,EAAE,SAAS,EAAE,KAAKS,EAAmBT,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,QAAQS,CAAiB,EAIrG,SAASE,EACfC,EACAC,EACwB,CACxBN,EAAeK,CAAM,EACrBF,EAAe,MAAMG,CAAO,EAE5B,SAASC,EAAaC,EAAaC,EAAe,CACjD,OAAOP,EAAkB,MAAMI,EAAQE,EAAKC,CAAK,CAAC,CACnD,CAEA,OAAO,OAAO,YACZ,OAAO,QAAQJ,CAAM,EAA6B,IAAI,CAAC,CAACG,EAAKV,CAAK,EAAGW,IAAU,CAC/EF,EAAaC,EAAKC,CAAK,EACvBX,CACD,CAAC,CACF,CACD,CG3BA,OAAS,iBAAAY,MAAqB,8CAC9B,OAAS,aAAAC,MAAiB,eAC1B,OAAS,KAAAlB,MAAS,MAEX,SAASmB,EAAiBC,EAAwC,CACxE,OAAApB,EAAE,MAAMiB,CAAa,EAAE,MAAMG,CAAO,EAE7BF,EAAU,GAAGE,CAAO,CAC5B","sourcesContent":["import { z } from \"zod\";\n\nimport { validateObject } from \"../schema/schema.ts\";\n\nexport const OBJECT_KEY_SCHEMA = z.number().or(z.string()).or(z.symbol());\n\nconst RENAMER_SCHEMA = z.function().args(OBJECT_KEY_SCHEMA, z.number().optional()).returns(OBJECT_KEY_SCHEMA);\n\nexport type ObjectKey = number | string | symbol;\n\nexport function renameObjectKeys<OldKey extends ObjectKey, Value, NewKey extends ObjectKey>(\n\tobject: Record<OldKey, Value>,\n\trenamer: (key: OldKey, index: number) => NewKey,\n): Record<NewKey, Value> {\n\tvalidateObject(object);\n\tRENAMER_SCHEMA.parse(renamer);\n\n\tfunction handleRename(key: OldKey, index: number) {\n\t\treturn OBJECT_KEY_SCHEMA.parse(renamer(key, index));\n\t}\n\n\treturn Object.fromEntries(\n\t\t(Object.entries(object) as Array<[OldKey, Value]>).map(([key, value], index) => [\n\t\t\thandleRename(key, index),\n\t\t\tvalue,\n\t\t]),\n\t) as Record<NewKey, Value>;\n}\n","import { isNonPrimitive, validateNonPrimitive } from \"@terminal-nerds/snippets-type/non-primitive\";\n\nexport function validateObject(value: unknown): asserts value is object {\n\tvalidateNonPrimitive(value, \"object\");\n}\n\nexport function isObject(value: unknown): value is object {\n\treturn isNonPrimitive(value, \"object\");\n}\n\nexport * from \"./empty/empty.ts\";\n","import type { EmptyObject } from \"type-fest\";\nimport { z } from \"zod\";\n\nexport const EMPTY_OBJECT_SCHEMA = z.record(z.undefined());\n\nexport type { EmptyObject } from \"type-fest\";\n\nexport function validateEmptyObject(value: object): asserts value is EmptyObject {\n\tEMPTY_OBJECT_SCHEMA.parse(value);\n}\n\nexport function isObjectEmpty(value: object): value is EmptyObject {\n\treturn EMPTY_OBJECT_SCHEMA.safeParse(value).success;\n}\n","import { OBJECT_SCHEMA } from \"@terminal-nerds/snippets-type/non-primitive\";\nimport { deepmerge } from \"deepmerge-ts\";\nimport { z } from \"zod\";\n\nexport function mergeDeepObjects(objects: ReadonlyArray<object>): object {\n\tz.array(OBJECT_SCHEMA).parse(objects);\n\n\treturn deepmerge(...objects) as object;\n}\n"]}