@glion/config 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema2.js","names":[],"sources":["../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js","../../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js","../src/json-schema.ts"],"sourcesContent":["export const ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nexport const jsonDescription = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n }\n catch { }\n }\n return jsonSchema;\n};\nexport const defaultOptions = {\n name: undefined,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n target: \"jsonSchema7\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n markdownDescription: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\",\n openAiAnyTypeName: \"OpenAiAnyType\"\n};\nexport const getDefaultOptions = (options) => (typeof options === \"string\"\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n });\n","import { getDefaultOptions } from \"./Options.js\";\nexport const getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n flags: { hasReferencedOpenAiAnyType: false },\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ])),\n };\n};\n","export function addErrorMessage(res, key, errorMessage, refs) {\n if (!refs?.errorMessages)\n return;\n if (errorMessage) {\n res.errorMessage = {\n ...res.errorMessage,\n [key]: errorMessage,\n };\n }\n}\nexport function setResponseValueAndErrors(res, key, value, errorMessage, refs) {\n res[key] = value;\n addErrorMessage(res, key, errorMessage, refs);\n}\n","export const getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i])\n break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\n","import { getRelativePath } from \"../getRelativePath.js\";\nexport function parseAnyDef(refs) {\n if (refs.target !== \"openAi\") {\n return {};\n }\n const anyDefinitionPath = [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ];\n refs.flags.hasReferencedOpenAiAnyType = true;\n return {\n $ref: refs.$refStrategy === \"relative\"\n ? getRelativePath(anyDefinitionPath, refs.currentPath)\n : anyDefinitionPath.join(\"/\"),\n };\n}\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseArrayDef(def, refs) {\n const res = {\n type: \"array\",\n };\n if (def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n }\n if (def.minLength) {\n setResponseValueAndErrors(res, \"minItems\", def.minLength.value, def.minLength.message, refs);\n }\n if (def.maxLength) {\n setResponseValueAndErrors(res, \"maxItems\", def.maxLength.value, def.maxLength.message, refs);\n }\n if (def.exactLength) {\n setResponseValueAndErrors(res, \"minItems\", def.exactLength.value, def.exactLength.message, refs);\n setResponseValueAndErrors(res, \"maxItems\", def.exactLength.value, def.exactLength.message, refs);\n }\n return res;\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseBigintDef(def, refs) {\n const res = {\n type: \"integer\",\n format: \"int64\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","export function parseBooleanDef() {\n return {\n type: \"boolean\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\",\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\",\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\nconst integerDateParser = (def, refs) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\",\n };\n if (refs.target === \"openApi3\") {\n return res;\n }\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minimum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maximum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n }\n }\n return res;\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parseDefaultDef(_def, refs) {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\"\n ? parseDef(_def.schema._def, refs)\n : parseAnyDef(refs);\n}\n","export function parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nconst isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\")\n return false;\n return \"allOf\" in type;\n};\nexport function parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"1\"],\n }),\n ].filter((x) => !!x);\n let unevaluatedProperties = refs.target === \"jsonSchema2019-09\"\n ? { unevaluatedProperties: false }\n : undefined;\n const mergedAllOf = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n if (schema.unevaluatedProperties === undefined) {\n // If one of the schemas has no unevaluatedProperties set,\n // the merged schema should also have no unevaluatedProperties set\n unevaluatedProperties = undefined;\n }\n }\n else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema &&\n schema.additionalProperties === false) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n else {\n // As soon as one of the schemas has additionalProperties set not to false, we allow unevaluatedProperties\n unevaluatedProperties = undefined;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length\n ? {\n allOf: mergedAllOf,\n ...unevaluatedProperties,\n }\n : undefined;\n}\n","export function parseLiteralDef(def, refs) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" &&\n parsedType !== \"number\" &&\n parsedType !== \"boolean\" &&\n parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\",\n };\n }\n if (refs.target === \"openApi3\") {\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n enum: [def.value],\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value,\n };\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n","import { ZodFirstPartyTypeKind, } from \"zod/v3\";\nimport { parseDef } from \"../parseDef.js\";\nimport { parseStringDef } from \"./string.js\";\nimport { parseBrandedDef } from \"./branded.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseRecordDef(def, refs) {\n if (refs.target === \"openAi\") {\n console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");\n }\n if (refs.target === \"openApi3\" &&\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n type: \"object\",\n required: def.keyType._def.values,\n properties: def.keyType._def.values.reduce((acc, key) => ({\n ...acc,\n [key]: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", key],\n }) ?? parseAnyDef(refs),\n }), {}),\n additionalProperties: refs.rejectedAdditionalProperties,\n };\n }\n const schema = {\n type: \"object\",\n additionalProperties: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? refs.allowedAdditionalProperties,\n };\n if (refs.target === \"openApi3\") {\n return schema;\n }\n if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length) {\n const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseRecordDef } from \"./record.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"],\n }) || parseAnyDef(refs);\n const values = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"],\n }) || parseAnyDef(refs);\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n","export function parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n return {\n type: parsedTypes.length === 1\n ? parsedTypes[0] === \"string\"\n ? \"string\"\n : \"number\"\n : [\"string\", \"number\"],\n enum: actualValues,\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseNeverDef(refs) {\n return refs.target === \"openAi\"\n ? undefined\n : {\n not: parseAnyDef({\n ...refs,\n currentPath: [...refs.currentPath, \"not\"],\n }),\n };\n}\n","export function parseNullDef(refs) {\n return refs.target === \"openApi3\"\n ? {\n enum: [\"null\"],\n nullable: true,\n }\n : {\n type: \"null\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\",\n};\nexport function parseUnionDef(def, refs) {\n if (refs.target === \"openApi3\")\n return asAnyOf(def, refs);\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (options.every((x) => x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length))) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n const types = options.reduce((types, x) => {\n const type = primitiveMappings[x._def.typeName]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n return {\n type: types.length > 1 ? types : types[0],\n };\n }\n else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n // all options literals\n const types = options.reduce((acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null)\n return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n }, []);\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce((acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n }, []),\n };\n }\n }\n else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce((acc, x) => [\n ...acc,\n ...x._def.values.filter((x) => !acc.includes(x)),\n ], []),\n };\n }\n return asAnyOf(def, refs);\n}\nconst asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options)\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`],\n }))\n .filter((x) => !!x &&\n (!refs.strictUnions ||\n (typeof x === \"object\" && Object.keys(x).length > 0)));\n return anyOf.length ? { anyOf } : undefined;\n};\n","import { parseDef } from \"../parseDef.js\";\nimport { primitiveMappings } from \"./union.js\";\nexport function parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(def.innerType._def.typeName) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n if (refs.target === \"openApi3\") {\n return {\n type: primitiveMappings[def.innerType._def.typeName],\n nullable: true,\n };\n }\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\",\n ],\n };\n }\n if (refs.target === \"openApi3\") {\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath],\n });\n if (base && \"$ref\" in base)\n return { allOf: [base], nullable: true };\n return base && { ...base, nullable: true };\n }\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"],\n });\n return base && { anyOf: [base, { type: \"null\" }] };\n}\n","import { addErrorMessage, setResponseValueAndErrors, } from \"../errorMessages.js\";\nexport function parseNumberDef(def, refs) {\n const res = {\n type: \"number\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n addErrorMessage(res, \"type\", check.message, refs);\n break;\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseObjectDef(def, refs) {\n const forceOptionalIntoNullable = refs.target === \"openAi\";\n const result = {\n type: \"object\",\n properties: {},\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n let propOptional = safeIsOptional(propDef);\n if (propOptional && forceOptionalIntoNullable) {\n if (propDef._def.typeName === \"ZodOptional\") {\n propDef = propDef._def.innerType;\n }\n if (!propDef.isNullable()) {\n propDef = propDef.nullable();\n }\n propOptional = false;\n }\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName],\n });\n if (parsedDef === undefined) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n });\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\"\n ? refs.allowedAdditionalProperties\n : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n }\n catch {\n return true;\n }\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport const parseOptionalDef = (def, refs) => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"],\n });\n return innerSchema\n ? {\n anyOf: [\n {\n not: parseAnyDef(refs),\n },\n innerSchema,\n ],\n }\n : parseAnyDef(refs);\n};\n","import { parseDef } from \"../parseDef.js\";\nexport const parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n }\n else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"],\n });\n return {\n allOf: [a, b].filter((x) => x !== undefined),\n };\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items,\n };\n if (def.minSize) {\n setResponseValueAndErrors(schema, \"minItems\", def.minSize.value, def.minSize.message, refs);\n }\n if (def.maxSize) {\n setResponseValueAndErrors(schema, \"maxItems\", def.maxSize.value, def.maxSize.message, refs);\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalItems\"],\n }),\n };\n }\n else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n };\n }\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUndefinedDef(refs) {\n return {\n not: parseAnyDef(refs),\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUnknownDef(refs) {\n return parseAnyDef(refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nimport { parseArrayDef } from \"./parsers/array.js\";\nimport { parseBigintDef } from \"./parsers/bigint.js\";\nimport { parseBooleanDef } from \"./parsers/boolean.js\";\nimport { parseBrandedDef } from \"./parsers/branded.js\";\nimport { parseCatchDef } from \"./parsers/catch.js\";\nimport { parseDateDef } from \"./parsers/date.js\";\nimport { parseDefaultDef } from \"./parsers/default.js\";\nimport { parseEffectsDef } from \"./parsers/effects.js\";\nimport { parseEnumDef } from \"./parsers/enum.js\";\nimport { parseIntersectionDef } from \"./parsers/intersection.js\";\nimport { parseLiteralDef } from \"./parsers/literal.js\";\nimport { parseMapDef } from \"./parsers/map.js\";\nimport { parseNativeEnumDef } from \"./parsers/nativeEnum.js\";\nimport { parseNeverDef } from \"./parsers/never.js\";\nimport { parseNullDef } from \"./parsers/null.js\";\nimport { parseNullableDef } from \"./parsers/nullable.js\";\nimport { parseNumberDef } from \"./parsers/number.js\";\nimport { parseObjectDef } from \"./parsers/object.js\";\nimport { parseOptionalDef } from \"./parsers/optional.js\";\nimport { parsePipelineDef } from \"./parsers/pipeline.js\";\nimport { parsePromiseDef } from \"./parsers/promise.js\";\nimport { parseRecordDef } from \"./parsers/record.js\";\nimport { parseSetDef } from \"./parsers/set.js\";\nimport { parseStringDef } from \"./parsers/string.js\";\nimport { parseTupleDef } from \"./parsers/tuple.js\";\nimport { parseUndefinedDef } from \"./parsers/undefined.js\";\nimport { parseUnionDef } from \"./parsers/union.js\";\nimport { parseUnknownDef } from \"./parsers/unknown.js\";\nimport { parseReadonlyDef } from \"./parsers/readonly.js\";\nexport const selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def, refs);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef(refs);\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef(refs);\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def, refs);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef(refs);\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef(refs);\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef(refs);\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n return ((_) => undefined)(typeName);\n }\n};\n","import { ignoreOverride } from \"./Options.js\";\nimport { selectParser } from \"./selectParser.js\";\nimport { getRelativePath } from \"./getRelativePath.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nexport function parseDef(def, refs, forceResolution = false) {\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: undefined };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema = typeof jsonSchemaOrGetter === \"function\"\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n newItem.jsonSchema = jsonSchema;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema;\n return jsonSchema;\n}\nconst get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n return parseAnyDef(refs);\n }\n return refs.$refStrategy === \"seen\" ? parseAnyDef(refs) : undefined;\n }\n }\n};\nconst addMeta = (def, refs, jsonSchema) => {\n if (def.description) {\n jsonSchema.description = def.description;\n if (refs.markdownDescription) {\n jsonSchema.markdownDescription = def.description;\n }\n }\n return jsonSchema;\n};\n","import { parseDef } from \"./parseDef.js\";\nimport { getRefs } from \"./Refs.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nconst zodToJsonSchema = (schema, options) => {\n const refs = getRefs(options);\n let definitions = typeof options === \"object\" && options.definitions\n ? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({\n ...acc,\n [name]: parseDef(schema._def, {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, true) ?? parseAnyDef(refs),\n }), {})\n : undefined;\n const name = typeof options === \"string\"\n ? options\n : options?.nameStrategy === \"title\"\n ? undefined\n : options?.name;\n const main = parseDef(schema._def, name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, false) ?? parseAnyDef(refs);\n const title = typeof options === \"object\" &&\n options.name !== undefined &&\n options.nameStrategy === \"title\"\n ? options.name\n : undefined;\n if (title !== undefined) {\n main.title = title;\n }\n if (refs.flags.hasReferencedOpenAiAnyType) {\n if (!definitions) {\n definitions = {};\n }\n if (!definitions[refs.openAiAnyTypeName]) {\n definitions[refs.openAiAnyTypeName] = {\n // Skipping \"object\" as no properties can be defined and additionalProperties must be \"false\"\n type: [\"string\", \"number\", \"integer\", \"boolean\", \"array\", \"null\"],\n items: {\n $ref: refs.$refStrategy === \"relative\"\n ? \"1\"\n : [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ].join(\"/\"),\n },\n };\n }\n }\n const combined = name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === \"relative\" ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join(\"/\"),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n if (refs.target === \"jsonSchema7\") {\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (refs.target === \"jsonSchema2019-09\" || refs.target === \"openAi\") {\n combined.$schema = \"https://json-schema.org/draft/2019-09/schema#\";\n }\n if (refs.target === \"openAi\" &&\n (\"anyOf\" in combined ||\n \"oneOf\" in combined ||\n \"allOf\" in combined ||\n (\"type\" in combined && Array.isArray(combined.type)))) {\n console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");\n }\n return combined;\n};\nexport { zodToJsonSchema };\n","import { zodToJsonSchema } from \"zod-to-json-schema\";\n\nimport { HL7v2ConfigSchema } from \"./schema\";\n\n/**\n * JSON Schema for hl7v2 configuration.\n *\n * This schema can be used for IDE autocomplete by adding:\n *\n * ```json\n * {\n * \"$schema\": \"https://raw.githubusercontent.com/rethinkhealth/hl7v2/main/packages/hl7v2-config/schema.json\"\n * }\n * ```\n */\nexport const jsonSchema = zodToJsonSchema(HL7v2ConfigSchema, {\n $refStrategy: \"none\",\n name: \"HL7v2Config\",\n target: \"jsonSchema7\",\n});\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { HL7v2Config } from "./schema";
2
+ /**
3
+ * Error thrown when configuration validation fails.
4
+ */
5
+ export declare class ConfigurationError extends Error {
6
+ cause?: unknown;
7
+ constructor(message: string, cause?: unknown);
8
+ }
9
+ /**
10
+ * Load and validate hl7v2 configuration from configuration files (synchronous).
11
+ *
12
+ * @example
13
+ * Load full configuration:
14
+ * ```typescript
15
+ * const config = loadConfig();
16
+ * console.log(config.plugins); // Array of plugin configurations
17
+ * console.log(config.settings.experimental.emptyMode); // 'legacy' or 'empty'
18
+ * ```
19
+ *
20
+ * @example
21
+ * Load only settings:
22
+ * ```typescript
23
+ * const { settings } = loadConfig();
24
+ * console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
25
+ * ```
26
+ *
27
+ * @param searchFrom - Optional directory to start searching from (defaults to
28
+ * cwd)
29
+ * @returns Validated hl7v2 configuration with defaults applied
30
+ * @throws ConfigurationError if configuration is invalid
31
+ */
32
+ export declare function loadConfig(searchFrom?: string): HL7v2Config;
33
+ /**
34
+ * Load and validate hl7v2 configuration from configuration files
35
+ * (asynchronous).
36
+ *
37
+ * Use this version when you need non-blocking I/O or are in an async context.
38
+ * For most use cases (CLI tools, startup code), prefer the synchronous
39
+ * `loadConfig()`.
40
+ *
41
+ * @example
42
+ * Load full configuration:
43
+ * ```typescript
44
+ * const config = await loadConfigAsync();
45
+ * console.log(config.plugins); // Array of plugin configurations
46
+ * console.log(config.settings.experimental.emptyMode); // 'legacy' or 'empty'
47
+ * ```
48
+ *
49
+ * @example
50
+ * Load only settings:
51
+ * ```typescript
52
+ * const { settings } = await loadConfigAsync();
53
+ * console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
54
+ * ```
55
+ *
56
+ * @param searchFrom - Optional directory to start searching from (defaults to
57
+ * cwd)
58
+ * @returns Promise resolving to validated hl7v2 configuration with defaults
59
+ * applied
60
+ * @throws ConfigurationError if configuration is invalid
61
+ */
62
+ export declare function loadConfigAsync(searchFrom?: string): Promise<HL7v2Config>;
63
+ /**
64
+ * Clear the configuration cache.
65
+ * Useful for testing to ensure fresh config loads between tests.
66
+ */
67
+ export declare function clearCaches(): void;
68
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK7C;AA0CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAc3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,eAAe,CACnC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CActB;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
package/dist/loader.js ADDED
@@ -0,0 +1,119 @@
1
+ import { HL7v2ConfigSchema } from "./schema.js";
2
+ import { cosmiconfig, cosmiconfigSync } from "cosmiconfig";
3
+ //#region src/loader.ts
4
+ /**
5
+ * Error thrown when configuration validation fails.
6
+ */
7
+ var ConfigurationError = class extends Error {
8
+ cause;
9
+ constructor(message, cause) {
10
+ super(message);
11
+ this.name = "ConfigurationError";
12
+ this.cause = cause;
13
+ }
14
+ };
15
+ const searchPlaces = [
16
+ "package.json",
17
+ ".hl7v2rc",
18
+ ".hl7v2rc.json",
19
+ ".hl7v2rc.yaml",
20
+ ".hl7v2rc.yml",
21
+ ".hl7v2rc.js",
22
+ ".hl7v2rc.cjs",
23
+ "hl7v2.config.js",
24
+ "hl7v2.config.cjs"
25
+ ];
26
+ const explorerSync = cosmiconfigSync("hl7v2", { searchPlaces });
27
+ const explorerAsync = cosmiconfig("hl7v2", { searchPlaces: [
28
+ ...searchPlaces,
29
+ ".hl7v2rc.mjs",
30
+ "hl7v2.config.mjs"
31
+ ] });
32
+ /**
33
+ * Validate configuration using Zod schema.
34
+ */
35
+ function validateConfig(rawConfig) {
36
+ const parsed = HL7v2ConfigSchema.safeParse(rawConfig);
37
+ if (!parsed.success) throw new ConfigurationError(`Invalid hl7v2 configuration:\n${parsed.error.errors.map((err) => ` - ${err.path.join(".")}: ${err.message}`).join("\n")}`, parsed.error);
38
+ return parsed.data;
39
+ }
40
+ /**
41
+ * Load and validate hl7v2 configuration from configuration files (synchronous).
42
+ *
43
+ * @example
44
+ * Load full configuration:
45
+ * ```typescript
46
+ * const config = loadConfig();
47
+ * console.log(config.plugins); // Array of plugin configurations
48
+ * console.log(config.settings.experimental.emptyMode); // 'legacy' or 'empty'
49
+ * ```
50
+ *
51
+ * @example
52
+ * Load only settings:
53
+ * ```typescript
54
+ * const { settings } = loadConfig();
55
+ * console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
56
+ * ```
57
+ *
58
+ * @param searchFrom - Optional directory to start searching from (defaults to
59
+ * cwd)
60
+ * @returns Validated hl7v2 configuration with defaults applied
61
+ * @throws ConfigurationError if configuration is invalid
62
+ */
63
+ function loadConfig(searchFrom) {
64
+ try {
65
+ return validateConfig(explorerSync.search(searchFrom)?.config ?? {});
66
+ } catch (error) {
67
+ if (error instanceof ConfigurationError) throw error;
68
+ throw new ConfigurationError(`Failed to load hl7v2 configuration: ${error instanceof Error ? error.message : String(error)}`, error);
69
+ }
70
+ }
71
+ /**
72
+ * Load and validate hl7v2 configuration from configuration files
73
+ * (asynchronous).
74
+ *
75
+ * Use this version when you need non-blocking I/O or are in an async context.
76
+ * For most use cases (CLI tools, startup code), prefer the synchronous
77
+ * `loadConfig()`.
78
+ *
79
+ * @example
80
+ * Load full configuration:
81
+ * ```typescript
82
+ * const config = await loadConfigAsync();
83
+ * console.log(config.plugins); // Array of plugin configurations
84
+ * console.log(config.settings.experimental.emptyMode); // 'legacy' or 'empty'
85
+ * ```
86
+ *
87
+ * @example
88
+ * Load only settings:
89
+ * ```typescript
90
+ * const { settings } = await loadConfigAsync();
91
+ * console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'
92
+ * ```
93
+ *
94
+ * @param searchFrom - Optional directory to start searching from (defaults to
95
+ * cwd)
96
+ * @returns Promise resolving to validated hl7v2 configuration with defaults
97
+ * applied
98
+ * @throws ConfigurationError if configuration is invalid
99
+ */
100
+ async function loadConfigAsync(searchFrom) {
101
+ try {
102
+ return validateConfig((await explorerAsync.search(searchFrom))?.config ?? {});
103
+ } catch (error) {
104
+ if (error instanceof ConfigurationError) throw error;
105
+ throw new ConfigurationError(`Failed to load hl7v2 configuration: ${error instanceof Error ? error.message : String(error)}`, error);
106
+ }
107
+ }
108
+ /**
109
+ * Clear the configuration cache.
110
+ * Useful for testing to ensure fresh config loads between tests.
111
+ */
112
+ function clearCaches() {
113
+ explorerSync.clearCaches();
114
+ explorerAsync.clearCaches();
115
+ }
116
+ //#endregion
117
+ export { ConfigurationError, clearCaches, loadConfig, loadConfigAsync };
118
+
119
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","names":[],"sources":["../src/loader.ts"],"sourcesContent":["import { cosmiconfig, cosmiconfigSync } from \"cosmiconfig\";\n\nimport type { HL7v2Config } from \"./schema\";\nimport { HL7v2ConfigSchema } from \"./schema\";\n\n/**\n * Error thrown when configuration validation fails.\n */\nexport class ConfigurationError extends Error {\n override cause?: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = \"ConfigurationError\";\n this.cause = cause;\n }\n}\n\nconst searchPlaces = [\n \"package.json\",\n \".hl7v2rc\",\n \".hl7v2rc.json\",\n \".hl7v2rc.yaml\",\n \".hl7v2rc.yml\",\n \".hl7v2rc.js\",\n \".hl7v2rc.cjs\",\n \"hl7v2.config.js\",\n \"hl7v2.config.cjs\",\n];\n\nconst explorerSync = cosmiconfigSync(\"hl7v2\", {\n searchPlaces,\n});\n\nconst explorerAsync = cosmiconfig(\"hl7v2\", {\n searchPlaces: [...searchPlaces, \".hl7v2rc.mjs\", \"hl7v2.config.mjs\"],\n});\n\n/**\n * Validate configuration using Zod schema.\n */\nfunction validateConfig(rawConfig: unknown): HL7v2Config {\n const parsed = HL7v2ConfigSchema.safeParse(rawConfig);\n\n if (!parsed.success) {\n const errorMessage = parsed.error.errors\n .map((err) => ` - ${err.path.join(\".\")}: ${err.message}`)\n .join(\"\\n\");\n\n throw new ConfigurationError(\n `Invalid hl7v2 configuration:\\n${errorMessage}`,\n parsed.error\n );\n }\n\n return parsed.data;\n}\n\n/**\n * Load and validate hl7v2 configuration from configuration files (synchronous).\n *\n * @example\n * Load full configuration:\n * ```typescript\n * const config = loadConfig();\n * console.log(config.plugins); // Array of plugin configurations\n * console.log(config.settings.experimental.emptyMode); // 'legacy' or 'empty'\n * ```\n *\n * @example\n * Load only settings:\n * ```typescript\n * const { settings } = loadConfig();\n * console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'\n * ```\n *\n * @param searchFrom - Optional directory to start searching from (defaults to\n * cwd)\n * @returns Validated hl7v2 configuration with defaults applied\n * @throws ConfigurationError if configuration is invalid\n */\nexport function loadConfig(searchFrom?: string): HL7v2Config {\n try {\n const result = explorerSync.search(searchFrom);\n const rawConfig = result?.config ?? {};\n return validateConfig(rawConfig);\n } catch (error) {\n if (error instanceof ConfigurationError) {\n throw error;\n }\n throw new ConfigurationError(\n `Failed to load hl7v2 configuration: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n}\n\n/**\n * Load and validate hl7v2 configuration from configuration files\n * (asynchronous).\n *\n * Use this version when you need non-blocking I/O or are in an async context.\n * For most use cases (CLI tools, startup code), prefer the synchronous\n * `loadConfig()`.\n *\n * @example\n * Load full configuration:\n * ```typescript\n * const config = await loadConfigAsync();\n * console.log(config.plugins); // Array of plugin configurations\n * console.log(config.settings.experimental.emptyMode); // 'legacy' or 'empty'\n * ```\n *\n * @example\n * Load only settings:\n * ```typescript\n * const { settings } = await loadConfigAsync();\n * console.log(settings.experimental.emptyMode); // 'legacy' or 'empty'\n * ```\n *\n * @param searchFrom - Optional directory to start searching from (defaults to\n * cwd)\n * @returns Promise resolving to validated hl7v2 configuration with defaults\n * applied\n * @throws ConfigurationError if configuration is invalid\n */\nexport async function loadConfigAsync(\n searchFrom?: string\n): Promise<HL7v2Config> {\n try {\n const result = await explorerAsync.search(searchFrom);\n const rawConfig = result?.config ?? {};\n return validateConfig(rawConfig);\n } catch (error) {\n if (error instanceof ConfigurationError) {\n throw error;\n }\n throw new ConfigurationError(\n `Failed to load hl7v2 configuration: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n}\n\n/**\n * Clear the configuration cache.\n * Useful for testing to ensure fresh config loads between tests.\n */\nexport function clearCaches(): void {\n explorerSync.clearCaches();\n explorerAsync.clearCaches();\n}\n"],"mappings":";;;;;;AAQA,IAAa,qBAAb,cAAwC,MAAM;CAC5C;CAEA,YAAY,SAAiB,OAAiB;AAC5C,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,QAAQ;;;AAIjB,MAAM,eAAe;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAM,eAAe,gBAAgB,SAAS,EAC5C,cACD,CAAC;AAEF,MAAM,gBAAgB,YAAY,SAAS,EACzC,cAAc;CAAC,GAAG;CAAc;CAAgB;CAAmB,EACpE,CAAC;;;;AAKF,SAAS,eAAe,WAAiC;CACvD,MAAM,SAAS,kBAAkB,UAAU,UAAU;AAErD,KAAI,CAAC,OAAO,QAKV,OAAM,IAAI,mBACR,iCALmB,OAAO,MAAM,OAC/B,KAAK,QAAQ,OAAO,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CACzD,KAAK,KAAK,IAIX,OAAO,MACR;AAGH,QAAO,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;AA0BhB,SAAgB,WAAW,YAAkC;AAC3D,KAAI;AAGF,SAAO,eAFQ,aAAa,OAAO,WAAW,EACpB,UAAU,EAAE,CACN;UACzB,OAAO;AACd,MAAI,iBAAiB,mBACnB,OAAM;AAER,QAAM,IAAI,mBACR,uCAAuC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,IAC7F,MACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCL,eAAsB,gBACpB,YACsB;AACtB,KAAI;AAGF,SAAO,gBAFQ,MAAM,cAAc,OAAO,WAAW,GAC3B,UAAU,EAAE,CACN;UACzB,OAAO;AACd,MAAI,iBAAiB,mBACnB,OAAM;AAER,QAAM,IAAI,mBACR,uCAAuC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,IAC7F,MACD;;;;;;;AAQL,SAAgB,cAAoB;AAClC,cAAa,aAAa;AAC1B,eAAc,aAAa"}