{"version":3,"file":"error-codes.mjs","names":[],"sources":["../../src/utils/error-codes.ts"],"sourcesContent":["type UpperLetter =\n\t| \"A\"\n\t| \"B\"\n\t| \"C\"\n\t| \"D\"\n\t| \"E\"\n\t| \"F\"\n\t| \"G\"\n\t| \"H\"\n\t| \"I\"\n\t| \"J\"\n\t| \"K\"\n\t| \"L\"\n\t| \"M\"\n\t| \"N\"\n\t| \"O\"\n\t| \"P\"\n\t| \"Q\"\n\t| \"R\"\n\t| \"S\"\n\t| \"T\"\n\t| \"U\"\n\t| \"V\"\n\t| \"W\"\n\t| \"X\"\n\t| \"Y\"\n\t| \"Z\";\ntype SpecialCharacter = \"_\";\n\ntype IsValidUpperSnakeCase = S extends `${infer F}${infer R}`\n\t? F extends UpperLetter | SpecialCharacter\n\t\t? IsValidUpperSnakeCase\n\t\t: false\n\t: true;\n\ntype InvalidKeyError =\n\t`Invalid error code key: \"${K}\" - must only contain uppercase letters (A-Z) and underscores (_)`;\n\ntype ValidateErrorCodes = {\n\t[K in keyof T]: K extends string\n\t\t? IsValidUpperSnakeCase extends false\n\t\t\t? InvalidKeyError\n\t\t\t: T[K]\n\t\t: T[K];\n};\n\nexport function defineErrorCodes>(\n\tcodes: ValidateErrorCodes,\n): T {\n\treturn codes as T;\n}\n"],"mappings":";AA8CA,SAAgB,iBACf,OACI;AACJ,QAAO"}