@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,1085 @@
1
+ import { HL7v2ConfigSchema } from "./schema.js";
2
+ import { ZodFirstPartyTypeKind } from "zod/v3";
3
+ //#region ../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js
4
+ const ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
5
+ const defaultOptions = {
6
+ name: void 0,
7
+ $refStrategy: "root",
8
+ basePath: ["#"],
9
+ effectStrategy: "input",
10
+ pipeStrategy: "all",
11
+ dateStrategy: "format:date-time",
12
+ mapStrategy: "entries",
13
+ removeAdditionalStrategy: "passthrough",
14
+ allowedAdditionalProperties: true,
15
+ rejectedAdditionalProperties: false,
16
+ definitionPath: "definitions",
17
+ target: "jsonSchema7",
18
+ strictUnions: false,
19
+ definitions: {},
20
+ errorMessages: false,
21
+ markdownDescription: false,
22
+ patternStrategy: "escape",
23
+ applyRegexFlags: false,
24
+ emailStrategy: "format:email",
25
+ base64Strategy: "contentEncoding:base64",
26
+ nameStrategy: "ref",
27
+ openAiAnyTypeName: "OpenAiAnyType"
28
+ };
29
+ const getDefaultOptions = (options) => typeof options === "string" ? {
30
+ ...defaultOptions,
31
+ name: options
32
+ } : {
33
+ ...defaultOptions,
34
+ ...options
35
+ };
36
+ //#endregion
37
+ //#region ../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js
38
+ const getRefs = (options) => {
39
+ const _options = getDefaultOptions(options);
40
+ const currentPath = _options.name !== void 0 ? [
41
+ ..._options.basePath,
42
+ _options.definitionPath,
43
+ _options.name
44
+ ] : _options.basePath;
45
+ return {
46
+ ..._options,
47
+ flags: { hasReferencedOpenAiAnyType: false },
48
+ currentPath,
49
+ propertyPath: void 0,
50
+ seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [def._def, {
51
+ def: def._def,
52
+ path: [
53
+ ..._options.basePath,
54
+ _options.definitionPath,
55
+ name
56
+ ],
57
+ jsonSchema: void 0
58
+ }]))
59
+ };
60
+ };
61
+ //#endregion
62
+ //#region ../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js
63
+ function addErrorMessage(res, key, errorMessage, refs) {
64
+ if (!refs?.errorMessages) return;
65
+ if (errorMessage) res.errorMessage = {
66
+ ...res.errorMessage,
67
+ [key]: errorMessage
68
+ };
69
+ }
70
+ function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
71
+ res[key] = value;
72
+ addErrorMessage(res, key, errorMessage, refs);
73
+ }
74
+ //#endregion
75
+ //#region ../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
76
+ const getRelativePath = (pathA, pathB) => {
77
+ let i = 0;
78
+ for (; i < pathA.length && i < pathB.length; i++) if (pathA[i] !== pathB[i]) break;
79
+ return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
80
+ };
81
+ //#endregion
82
+ //#region ../../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
83
+ function parseAnyDef(refs) {
84
+ if (refs.target !== "openAi") return {};
85
+ const anyDefinitionPath = [
86
+ ...refs.basePath,
87
+ refs.definitionPath,
88
+ refs.openAiAnyTypeName
89
+ ];
90
+ refs.flags.hasReferencedOpenAiAnyType = true;
91
+ return { $ref: refs.$refStrategy === "relative" ? getRelativePath(anyDefinitionPath, refs.currentPath) : anyDefinitionPath.join("/") };
92
+ }
93
+ //#endregion
94
+ //#region ../../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
95
+ function parseArrayDef(def, refs) {
96
+ const res = { type: "array" };
97
+ if (def.type?._def && def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) res.items = parseDef(def.type._def, {
98
+ ...refs,
99
+ currentPath: [...refs.currentPath, "items"]
100
+ });
101
+ if (def.minLength) setResponseValueAndErrors(res, "minItems", def.minLength.value, def.minLength.message, refs);
102
+ if (def.maxLength) setResponseValueAndErrors(res, "maxItems", def.maxLength.value, def.maxLength.message, refs);
103
+ if (def.exactLength) {
104
+ setResponseValueAndErrors(res, "minItems", def.exactLength.value, def.exactLength.message, refs);
105
+ setResponseValueAndErrors(res, "maxItems", def.exactLength.value, def.exactLength.message, refs);
106
+ }
107
+ return res;
108
+ }
109
+ //#endregion
110
+ //#region ../../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
111
+ function parseBigintDef(def, refs) {
112
+ const res = {
113
+ type: "integer",
114
+ format: "int64"
115
+ };
116
+ if (!def.checks) return res;
117
+ for (const check of def.checks) switch (check.kind) {
118
+ case "min":
119
+ if (refs.target === "jsonSchema7") if (check.inclusive) setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
120
+ else setResponseValueAndErrors(res, "exclusiveMinimum", check.value, check.message, refs);
121
+ else {
122
+ if (!check.inclusive) res.exclusiveMinimum = true;
123
+ setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
124
+ }
125
+ break;
126
+ case "max":
127
+ if (refs.target === "jsonSchema7") if (check.inclusive) setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
128
+ else setResponseValueAndErrors(res, "exclusiveMaximum", check.value, check.message, refs);
129
+ else {
130
+ if (!check.inclusive) res.exclusiveMaximum = true;
131
+ setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
132
+ }
133
+ break;
134
+ case "multipleOf":
135
+ setResponseValueAndErrors(res, "multipleOf", check.value, check.message, refs);
136
+ break;
137
+ }
138
+ return res;
139
+ }
140
+ //#endregion
141
+ //#region ../../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
142
+ function parseBooleanDef() {
143
+ return { type: "boolean" };
144
+ }
145
+ //#endregion
146
+ //#region ../../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
147
+ function parseBrandedDef(_def, refs) {
148
+ return parseDef(_def.type._def, refs);
149
+ }
150
+ //#endregion
151
+ //#region ../../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
152
+ const parseCatchDef = (def, refs) => {
153
+ return parseDef(def.innerType._def, refs);
154
+ };
155
+ //#endregion
156
+ //#region ../../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
157
+ function parseDateDef(def, refs, overrideDateStrategy) {
158
+ const strategy = overrideDateStrategy ?? refs.dateStrategy;
159
+ if (Array.isArray(strategy)) return { anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)) };
160
+ switch (strategy) {
161
+ case "string":
162
+ case "format:date-time": return {
163
+ type: "string",
164
+ format: "date-time"
165
+ };
166
+ case "format:date": return {
167
+ type: "string",
168
+ format: "date"
169
+ };
170
+ case "integer": return integerDateParser(def, refs);
171
+ }
172
+ }
173
+ const integerDateParser = (def, refs) => {
174
+ const res = {
175
+ type: "integer",
176
+ format: "unix-time"
177
+ };
178
+ if (refs.target === "openApi3") return res;
179
+ for (const check of def.checks) switch (check.kind) {
180
+ case "min":
181
+ setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
182
+ break;
183
+ case "max":
184
+ setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
185
+ break;
186
+ }
187
+ return res;
188
+ };
189
+ //#endregion
190
+ //#region ../../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
191
+ function parseDefaultDef(_def, refs) {
192
+ return {
193
+ ...parseDef(_def.innerType._def, refs),
194
+ default: _def.defaultValue()
195
+ };
196
+ }
197
+ //#endregion
198
+ //#region ../../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
199
+ function parseEffectsDef(_def, refs) {
200
+ return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs);
201
+ }
202
+ //#endregion
203
+ //#region ../../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
204
+ function parseEnumDef(def) {
205
+ return {
206
+ type: "string",
207
+ enum: Array.from(def.values)
208
+ };
209
+ }
210
+ //#endregion
211
+ //#region ../../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
212
+ const isJsonSchema7AllOfType = (type) => {
213
+ if ("type" in type && type.type === "string") return false;
214
+ return "allOf" in type;
215
+ };
216
+ function parseIntersectionDef(def, refs) {
217
+ const allOf = [parseDef(def.left._def, {
218
+ ...refs,
219
+ currentPath: [
220
+ ...refs.currentPath,
221
+ "allOf",
222
+ "0"
223
+ ]
224
+ }), parseDef(def.right._def, {
225
+ ...refs,
226
+ currentPath: [
227
+ ...refs.currentPath,
228
+ "allOf",
229
+ "1"
230
+ ]
231
+ })].filter((x) => !!x);
232
+ let unevaluatedProperties = refs.target === "jsonSchema2019-09" ? { unevaluatedProperties: false } : void 0;
233
+ const mergedAllOf = [];
234
+ allOf.forEach((schema) => {
235
+ if (isJsonSchema7AllOfType(schema)) {
236
+ mergedAllOf.push(...schema.allOf);
237
+ if (schema.unevaluatedProperties === void 0) unevaluatedProperties = void 0;
238
+ } else {
239
+ let nestedSchema = schema;
240
+ if ("additionalProperties" in schema && schema.additionalProperties === false) {
241
+ const { additionalProperties, ...rest } = schema;
242
+ nestedSchema = rest;
243
+ } else unevaluatedProperties = void 0;
244
+ mergedAllOf.push(nestedSchema);
245
+ }
246
+ });
247
+ return mergedAllOf.length ? {
248
+ allOf: mergedAllOf,
249
+ ...unevaluatedProperties
250
+ } : void 0;
251
+ }
252
+ //#endregion
253
+ //#region ../../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
254
+ function parseLiteralDef(def, refs) {
255
+ const parsedType = typeof def.value;
256
+ if (parsedType !== "bigint" && parsedType !== "number" && parsedType !== "boolean" && parsedType !== "string") return { type: Array.isArray(def.value) ? "array" : "object" };
257
+ if (refs.target === "openApi3") return {
258
+ type: parsedType === "bigint" ? "integer" : parsedType,
259
+ enum: [def.value]
260
+ };
261
+ return {
262
+ type: parsedType === "bigint" ? "integer" : parsedType,
263
+ const: def.value
264
+ };
265
+ }
266
+ //#endregion
267
+ //#region ../../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
268
+ let emojiRegex = void 0;
269
+ /**
270
+ * Generated from the regular expressions found here as of 2024-05-22:
271
+ * https://github.com/colinhacks/zod/blob/master/src/types.ts.
272
+ *
273
+ * Expressions with /i flag have been changed accordingly.
274
+ */
275
+ const zodPatterns = {
276
+ cuid: /^[cC][^\s-]{8,}$/,
277
+ cuid2: /^[0-9a-z]+$/,
278
+ ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,
279
+ email: /^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,
280
+ emoji: () => {
281
+ if (emojiRegex === void 0) emojiRegex = RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$", "u");
282
+ return emojiRegex;
283
+ },
284
+ 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}$/,
285
+ 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])$/,
286
+ 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])$/,
287
+ 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})))$/,
288
+ 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])$/,
289
+ base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,
290
+ base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,
291
+ nanoid: /^[a-zA-Z0-9_-]{21}$/,
292
+ jwt: /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/
293
+ };
294
+ function parseStringDef(def, refs) {
295
+ const res = { type: "string" };
296
+ if (def.checks) for (const check of def.checks) switch (check.kind) {
297
+ case "min":
298
+ setResponseValueAndErrors(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);
299
+ break;
300
+ case "max":
301
+ setResponseValueAndErrors(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);
302
+ break;
303
+ case "email":
304
+ switch (refs.emailStrategy) {
305
+ case "format:email":
306
+ addFormat(res, "email", check.message, refs);
307
+ break;
308
+ case "format:idn-email":
309
+ addFormat(res, "idn-email", check.message, refs);
310
+ break;
311
+ case "pattern:zod":
312
+ addPattern(res, zodPatterns.email, check.message, refs);
313
+ break;
314
+ }
315
+ break;
316
+ case "url":
317
+ addFormat(res, "uri", check.message, refs);
318
+ break;
319
+ case "uuid":
320
+ addFormat(res, "uuid", check.message, refs);
321
+ break;
322
+ case "regex":
323
+ addPattern(res, check.regex, check.message, refs);
324
+ break;
325
+ case "cuid":
326
+ addPattern(res, zodPatterns.cuid, check.message, refs);
327
+ break;
328
+ case "cuid2":
329
+ addPattern(res, zodPatterns.cuid2, check.message, refs);
330
+ break;
331
+ case "startsWith":
332
+ addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);
333
+ break;
334
+ case "endsWith":
335
+ addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);
336
+ break;
337
+ case "datetime":
338
+ addFormat(res, "date-time", check.message, refs);
339
+ break;
340
+ case "date":
341
+ addFormat(res, "date", check.message, refs);
342
+ break;
343
+ case "time":
344
+ addFormat(res, "time", check.message, refs);
345
+ break;
346
+ case "duration":
347
+ addFormat(res, "duration", check.message, refs);
348
+ break;
349
+ case "length":
350
+ setResponseValueAndErrors(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);
351
+ setResponseValueAndErrors(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);
352
+ break;
353
+ case "includes":
354
+ addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);
355
+ break;
356
+ case "ip":
357
+ if (check.version !== "v6") addFormat(res, "ipv4", check.message, refs);
358
+ if (check.version !== "v4") addFormat(res, "ipv6", check.message, refs);
359
+ break;
360
+ case "base64url":
361
+ addPattern(res, zodPatterns.base64url, check.message, refs);
362
+ break;
363
+ case "jwt":
364
+ addPattern(res, zodPatterns.jwt, check.message, refs);
365
+ break;
366
+ case "cidr":
367
+ if (check.version !== "v6") addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);
368
+ if (check.version !== "v4") addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);
369
+ break;
370
+ case "emoji":
371
+ addPattern(res, zodPatterns.emoji(), check.message, refs);
372
+ break;
373
+ case "ulid":
374
+ addPattern(res, zodPatterns.ulid, check.message, refs);
375
+ break;
376
+ case "base64":
377
+ switch (refs.base64Strategy) {
378
+ case "format:binary":
379
+ addFormat(res, "binary", check.message, refs);
380
+ break;
381
+ case "contentEncoding:base64":
382
+ setResponseValueAndErrors(res, "contentEncoding", "base64", check.message, refs);
383
+ break;
384
+ case "pattern:zod":
385
+ addPattern(res, zodPatterns.base64, check.message, refs);
386
+ break;
387
+ }
388
+ break;
389
+ case "nanoid": addPattern(res, zodPatterns.nanoid, check.message, refs);
390
+ case "toLowerCase":
391
+ case "toUpperCase":
392
+ case "trim": break;
393
+ default: ((_) => {})(check);
394
+ }
395
+ return res;
396
+ }
397
+ function escapeLiteralCheckValue(literal, refs) {
398
+ return refs.patternStrategy === "escape" ? escapeNonAlphaNumeric(literal) : literal;
399
+ }
400
+ const ALPHA_NUMERIC = /* @__PURE__ */ new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
401
+ function escapeNonAlphaNumeric(source) {
402
+ let result = "";
403
+ for (let i = 0; i < source.length; i++) {
404
+ if (!ALPHA_NUMERIC.has(source[i])) result += "\\";
405
+ result += source[i];
406
+ }
407
+ return result;
408
+ }
409
+ function addFormat(schema, value, message, refs) {
410
+ if (schema.format || schema.anyOf?.some((x) => x.format)) {
411
+ if (!schema.anyOf) schema.anyOf = [];
412
+ if (schema.format) {
413
+ schema.anyOf.push({
414
+ format: schema.format,
415
+ ...schema.errorMessage && refs.errorMessages && { errorMessage: { format: schema.errorMessage.format } }
416
+ });
417
+ delete schema.format;
418
+ if (schema.errorMessage) {
419
+ delete schema.errorMessage.format;
420
+ if (Object.keys(schema.errorMessage).length === 0) delete schema.errorMessage;
421
+ }
422
+ }
423
+ schema.anyOf.push({
424
+ format: value,
425
+ ...message && refs.errorMessages && { errorMessage: { format: message } }
426
+ });
427
+ } else setResponseValueAndErrors(schema, "format", value, message, refs);
428
+ }
429
+ function addPattern(schema, regex, message, refs) {
430
+ if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {
431
+ if (!schema.allOf) schema.allOf = [];
432
+ if (schema.pattern) {
433
+ schema.allOf.push({
434
+ pattern: schema.pattern,
435
+ ...schema.errorMessage && refs.errorMessages && { errorMessage: { pattern: schema.errorMessage.pattern } }
436
+ });
437
+ delete schema.pattern;
438
+ if (schema.errorMessage) {
439
+ delete schema.errorMessage.pattern;
440
+ if (Object.keys(schema.errorMessage).length === 0) delete schema.errorMessage;
441
+ }
442
+ }
443
+ schema.allOf.push({
444
+ pattern: stringifyRegExpWithFlags(regex, refs),
445
+ ...message && refs.errorMessages && { errorMessage: { pattern: message } }
446
+ });
447
+ } else setResponseValueAndErrors(schema, "pattern", stringifyRegExpWithFlags(regex, refs), message, refs);
448
+ }
449
+ function stringifyRegExpWithFlags(regex, refs) {
450
+ if (!refs.applyRegexFlags || !regex.flags) return regex.source;
451
+ const flags = {
452
+ i: regex.flags.includes("i"),
453
+ m: regex.flags.includes("m"),
454
+ s: regex.flags.includes("s")
455
+ };
456
+ const source = flags.i ? regex.source.toLowerCase() : regex.source;
457
+ let pattern = "";
458
+ let isEscaped = false;
459
+ let inCharGroup = false;
460
+ let inCharRange = false;
461
+ for (let i = 0; i < source.length; i++) {
462
+ if (isEscaped) {
463
+ pattern += source[i];
464
+ isEscaped = false;
465
+ continue;
466
+ }
467
+ if (flags.i) {
468
+ if (inCharGroup) {
469
+ if (source[i].match(/[a-z]/)) {
470
+ if (inCharRange) {
471
+ pattern += source[i];
472
+ pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();
473
+ inCharRange = false;
474
+ } else if (source[i + 1] === "-" && source[i + 2]?.match(/[a-z]/)) {
475
+ pattern += source[i];
476
+ inCharRange = true;
477
+ } else pattern += `${source[i]}${source[i].toUpperCase()}`;
478
+ continue;
479
+ }
480
+ } else if (source[i].match(/[a-z]/)) {
481
+ pattern += `[${source[i]}${source[i].toUpperCase()}]`;
482
+ continue;
483
+ }
484
+ }
485
+ if (flags.m) {
486
+ if (source[i] === "^") {
487
+ pattern += `(^|(?<=[\r\n]))`;
488
+ continue;
489
+ } else if (source[i] === "$") {
490
+ pattern += `($|(?=[\r\n]))`;
491
+ continue;
492
+ }
493
+ }
494
+ if (flags.s && source[i] === ".") {
495
+ pattern += inCharGroup ? `${source[i]}\r\n` : `[${source[i]}\r\n]`;
496
+ continue;
497
+ }
498
+ pattern += source[i];
499
+ if (source[i] === "\\") isEscaped = true;
500
+ else if (inCharGroup && source[i] === "]") inCharGroup = false;
501
+ else if (!inCharGroup && source[i] === "[") inCharGroup = true;
502
+ }
503
+ try {
504
+ new RegExp(pattern);
505
+ } catch {
506
+ console.warn(`Could not convert regex pattern at ${refs.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`);
507
+ return regex.source;
508
+ }
509
+ return pattern;
510
+ }
511
+ //#endregion
512
+ //#region ../../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
513
+ function parseRecordDef(def, refs) {
514
+ if (refs.target === "openAi") console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
515
+ if (refs.target === "openApi3" && def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) return {
516
+ type: "object",
517
+ required: def.keyType._def.values,
518
+ properties: def.keyType._def.values.reduce((acc, key) => ({
519
+ ...acc,
520
+ [key]: parseDef(def.valueType._def, {
521
+ ...refs,
522
+ currentPath: [
523
+ ...refs.currentPath,
524
+ "properties",
525
+ key
526
+ ]
527
+ }) ?? parseAnyDef(refs)
528
+ }), {}),
529
+ additionalProperties: refs.rejectedAdditionalProperties
530
+ };
531
+ const schema = {
532
+ type: "object",
533
+ additionalProperties: parseDef(def.valueType._def, {
534
+ ...refs,
535
+ currentPath: [...refs.currentPath, "additionalProperties"]
536
+ }) ?? refs.allowedAdditionalProperties
537
+ };
538
+ if (refs.target === "openApi3") return schema;
539
+ if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString && def.keyType._def.checks?.length) {
540
+ const { type, ...keyType } = parseStringDef(def.keyType._def, refs);
541
+ return {
542
+ ...schema,
543
+ propertyNames: keyType
544
+ };
545
+ } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) return {
546
+ ...schema,
547
+ propertyNames: { enum: def.keyType._def.values }
548
+ };
549
+ else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString && def.keyType._def.type._def.checks?.length) {
550
+ const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);
551
+ return {
552
+ ...schema,
553
+ propertyNames: keyType
554
+ };
555
+ }
556
+ return schema;
557
+ }
558
+ //#endregion
559
+ //#region ../../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
560
+ function parseMapDef(def, refs) {
561
+ if (refs.mapStrategy === "record") return parseRecordDef(def, refs);
562
+ return {
563
+ type: "array",
564
+ maxItems: 125,
565
+ items: {
566
+ type: "array",
567
+ items: [parseDef(def.keyType._def, {
568
+ ...refs,
569
+ currentPath: [
570
+ ...refs.currentPath,
571
+ "items",
572
+ "items",
573
+ "0"
574
+ ]
575
+ }) || parseAnyDef(refs), parseDef(def.valueType._def, {
576
+ ...refs,
577
+ currentPath: [
578
+ ...refs.currentPath,
579
+ "items",
580
+ "items",
581
+ "1"
582
+ ]
583
+ }) || parseAnyDef(refs)],
584
+ minItems: 2,
585
+ maxItems: 2
586
+ }
587
+ };
588
+ }
589
+ //#endregion
590
+ //#region ../../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
591
+ function parseNativeEnumDef(def) {
592
+ const object = def.values;
593
+ const actualValues = Object.keys(def.values).filter((key) => {
594
+ return typeof object[object[key]] !== "number";
595
+ }).map((key) => object[key]);
596
+ const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));
597
+ return {
598
+ type: parsedTypes.length === 1 ? parsedTypes[0] === "string" ? "string" : "number" : ["string", "number"],
599
+ enum: actualValues
600
+ };
601
+ }
602
+ //#endregion
603
+ //#region ../../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
604
+ function parseNeverDef(refs) {
605
+ return refs.target === "openAi" ? void 0 : { not: parseAnyDef({
606
+ ...refs,
607
+ currentPath: [...refs.currentPath, "not"]
608
+ }) };
609
+ }
610
+ //#endregion
611
+ //#region ../../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
612
+ function parseNullDef(refs) {
613
+ return refs.target === "openApi3" ? {
614
+ enum: ["null"],
615
+ nullable: true
616
+ } : { type: "null" };
617
+ }
618
+ //#endregion
619
+ //#region ../../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
620
+ const primitiveMappings = {
621
+ ZodString: "string",
622
+ ZodNumber: "number",
623
+ ZodBigInt: "integer",
624
+ ZodBoolean: "boolean",
625
+ ZodNull: "null"
626
+ };
627
+ function parseUnionDef(def, refs) {
628
+ if (refs.target === "openApi3") return asAnyOf(def, refs);
629
+ const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;
630
+ if (options.every((x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length))) {
631
+ const types = options.reduce((types, x) => {
632
+ const type = primitiveMappings[x._def.typeName];
633
+ return type && !types.includes(type) ? [...types, type] : types;
634
+ }, []);
635
+ return { type: types.length > 1 ? types : types[0] };
636
+ } else if (options.every((x) => x._def.typeName === "ZodLiteral" && !x.description)) {
637
+ const types = options.reduce((acc, x) => {
638
+ const type = typeof x._def.value;
639
+ switch (type) {
640
+ case "string":
641
+ case "number":
642
+ case "boolean": return [...acc, type];
643
+ case "bigint": return [...acc, "integer"];
644
+ case "object": if (x._def.value === null) return [...acc, "null"];
645
+ default: return acc;
646
+ }
647
+ }, []);
648
+ if (types.length === options.length) {
649
+ const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);
650
+ return {
651
+ type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],
652
+ enum: options.reduce((acc, x) => {
653
+ return acc.includes(x._def.value) ? acc : [...acc, x._def.value];
654
+ }, [])
655
+ };
656
+ }
657
+ } else if (options.every((x) => x._def.typeName === "ZodEnum")) return {
658
+ type: "string",
659
+ enum: options.reduce((acc, x) => [...acc, ...x._def.values.filter((x) => !acc.includes(x))], [])
660
+ };
661
+ return asAnyOf(def, refs);
662
+ }
663
+ const asAnyOf = (def, refs) => {
664
+ const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef(x._def, {
665
+ ...refs,
666
+ currentPath: [
667
+ ...refs.currentPath,
668
+ "anyOf",
669
+ `${i}`
670
+ ]
671
+ })).filter((x) => !!x && (!refs.strictUnions || typeof x === "object" && Object.keys(x).length > 0));
672
+ return anyOf.length ? { anyOf } : void 0;
673
+ };
674
+ //#endregion
675
+ //#region ../../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
676
+ function parseNullableDef(def, refs) {
677
+ if ([
678
+ "ZodString",
679
+ "ZodNumber",
680
+ "ZodBigInt",
681
+ "ZodBoolean",
682
+ "ZodNull"
683
+ ].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
684
+ if (refs.target === "openApi3") return {
685
+ type: primitiveMappings[def.innerType._def.typeName],
686
+ nullable: true
687
+ };
688
+ return { type: [primitiveMappings[def.innerType._def.typeName], "null"] };
689
+ }
690
+ if (refs.target === "openApi3") {
691
+ const base = parseDef(def.innerType._def, {
692
+ ...refs,
693
+ currentPath: [...refs.currentPath]
694
+ });
695
+ if (base && "$ref" in base) return {
696
+ allOf: [base],
697
+ nullable: true
698
+ };
699
+ return base && {
700
+ ...base,
701
+ nullable: true
702
+ };
703
+ }
704
+ const base = parseDef(def.innerType._def, {
705
+ ...refs,
706
+ currentPath: [
707
+ ...refs.currentPath,
708
+ "anyOf",
709
+ "0"
710
+ ]
711
+ });
712
+ return base && { anyOf: [base, { type: "null" }] };
713
+ }
714
+ //#endregion
715
+ //#region ../../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
716
+ function parseNumberDef(def, refs) {
717
+ const res = { type: "number" };
718
+ if (!def.checks) return res;
719
+ for (const check of def.checks) switch (check.kind) {
720
+ case "int":
721
+ res.type = "integer";
722
+ addErrorMessage(res, "type", check.message, refs);
723
+ break;
724
+ case "min":
725
+ if (refs.target === "jsonSchema7") if (check.inclusive) setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
726
+ else setResponseValueAndErrors(res, "exclusiveMinimum", check.value, check.message, refs);
727
+ else {
728
+ if (!check.inclusive) res.exclusiveMinimum = true;
729
+ setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
730
+ }
731
+ break;
732
+ case "max":
733
+ if (refs.target === "jsonSchema7") if (check.inclusive) setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
734
+ else setResponseValueAndErrors(res, "exclusiveMaximum", check.value, check.message, refs);
735
+ else {
736
+ if (!check.inclusive) res.exclusiveMaximum = true;
737
+ setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
738
+ }
739
+ break;
740
+ case "multipleOf":
741
+ setResponseValueAndErrors(res, "multipleOf", check.value, check.message, refs);
742
+ break;
743
+ }
744
+ return res;
745
+ }
746
+ //#endregion
747
+ //#region ../../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
748
+ function parseObjectDef(def, refs) {
749
+ const forceOptionalIntoNullable = refs.target === "openAi";
750
+ const result = {
751
+ type: "object",
752
+ properties: {}
753
+ };
754
+ const required = [];
755
+ const shape = def.shape();
756
+ for (const propName in shape) {
757
+ let propDef = shape[propName];
758
+ if (propDef === void 0 || propDef._def === void 0) continue;
759
+ let propOptional = safeIsOptional(propDef);
760
+ if (propOptional && forceOptionalIntoNullable) {
761
+ if (propDef._def.typeName === "ZodOptional") propDef = propDef._def.innerType;
762
+ if (!propDef.isNullable()) propDef = propDef.nullable();
763
+ propOptional = false;
764
+ }
765
+ const parsedDef = parseDef(propDef._def, {
766
+ ...refs,
767
+ currentPath: [
768
+ ...refs.currentPath,
769
+ "properties",
770
+ propName
771
+ ],
772
+ propertyPath: [
773
+ ...refs.currentPath,
774
+ "properties",
775
+ propName
776
+ ]
777
+ });
778
+ if (parsedDef === void 0) continue;
779
+ result.properties[propName] = parsedDef;
780
+ if (!propOptional) required.push(propName);
781
+ }
782
+ if (required.length) result.required = required;
783
+ const additionalProperties = decideAdditionalProperties(def, refs);
784
+ if (additionalProperties !== void 0) result.additionalProperties = additionalProperties;
785
+ return result;
786
+ }
787
+ function decideAdditionalProperties(def, refs) {
788
+ if (def.catchall._def.typeName !== "ZodNever") return parseDef(def.catchall._def, {
789
+ ...refs,
790
+ currentPath: [...refs.currentPath, "additionalProperties"]
791
+ });
792
+ switch (def.unknownKeys) {
793
+ case "passthrough": return refs.allowedAdditionalProperties;
794
+ case "strict": return refs.rejectedAdditionalProperties;
795
+ case "strip": return refs.removeAdditionalStrategy === "strict" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties;
796
+ }
797
+ }
798
+ function safeIsOptional(schema) {
799
+ try {
800
+ return schema.isOptional();
801
+ } catch {
802
+ return true;
803
+ }
804
+ }
805
+ //#endregion
806
+ //#region ../../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
807
+ const parseOptionalDef = (def, refs) => {
808
+ if (refs.currentPath.toString() === refs.propertyPath?.toString()) return parseDef(def.innerType._def, refs);
809
+ const innerSchema = parseDef(def.innerType._def, {
810
+ ...refs,
811
+ currentPath: [
812
+ ...refs.currentPath,
813
+ "anyOf",
814
+ "1"
815
+ ]
816
+ });
817
+ return innerSchema ? { anyOf: [{ not: parseAnyDef(refs) }, innerSchema] } : parseAnyDef(refs);
818
+ };
819
+ //#endregion
820
+ //#region ../../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
821
+ const parsePipelineDef = (def, refs) => {
822
+ if (refs.pipeStrategy === "input") return parseDef(def.in._def, refs);
823
+ else if (refs.pipeStrategy === "output") return parseDef(def.out._def, refs);
824
+ const a = parseDef(def.in._def, {
825
+ ...refs,
826
+ currentPath: [
827
+ ...refs.currentPath,
828
+ "allOf",
829
+ "0"
830
+ ]
831
+ });
832
+ return { allOf: [a, parseDef(def.out._def, {
833
+ ...refs,
834
+ currentPath: [
835
+ ...refs.currentPath,
836
+ "allOf",
837
+ a ? "1" : "0"
838
+ ]
839
+ })].filter((x) => x !== void 0) };
840
+ };
841
+ //#endregion
842
+ //#region ../../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
843
+ function parsePromiseDef(def, refs) {
844
+ return parseDef(def.type._def, refs);
845
+ }
846
+ //#endregion
847
+ //#region ../../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
848
+ function parseSetDef(def, refs) {
849
+ const schema = {
850
+ type: "array",
851
+ uniqueItems: true,
852
+ items: parseDef(def.valueType._def, {
853
+ ...refs,
854
+ currentPath: [...refs.currentPath, "items"]
855
+ })
856
+ };
857
+ if (def.minSize) setResponseValueAndErrors(schema, "minItems", def.minSize.value, def.minSize.message, refs);
858
+ if (def.maxSize) setResponseValueAndErrors(schema, "maxItems", def.maxSize.value, def.maxSize.message, refs);
859
+ return schema;
860
+ }
861
+ //#endregion
862
+ //#region ../../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
863
+ function parseTupleDef(def, refs) {
864
+ if (def.rest) return {
865
+ type: "array",
866
+ minItems: def.items.length,
867
+ items: def.items.map((x, i) => parseDef(x._def, {
868
+ ...refs,
869
+ currentPath: [
870
+ ...refs.currentPath,
871
+ "items",
872
+ `${i}`
873
+ ]
874
+ })).reduce((acc, x) => x === void 0 ? acc : [...acc, x], []),
875
+ additionalItems: parseDef(def.rest._def, {
876
+ ...refs,
877
+ currentPath: [...refs.currentPath, "additionalItems"]
878
+ })
879
+ };
880
+ else return {
881
+ type: "array",
882
+ minItems: def.items.length,
883
+ maxItems: def.items.length,
884
+ items: def.items.map((x, i) => parseDef(x._def, {
885
+ ...refs,
886
+ currentPath: [
887
+ ...refs.currentPath,
888
+ "items",
889
+ `${i}`
890
+ ]
891
+ })).reduce((acc, x) => x === void 0 ? acc : [...acc, x], [])
892
+ };
893
+ }
894
+ //#endregion
895
+ //#region ../../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
896
+ function parseUndefinedDef(refs) {
897
+ return { not: parseAnyDef(refs) };
898
+ }
899
+ //#endregion
900
+ //#region ../../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
901
+ function parseUnknownDef(refs) {
902
+ return parseAnyDef(refs);
903
+ }
904
+ //#endregion
905
+ //#region ../../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
906
+ const parseReadonlyDef = (def, refs) => {
907
+ return parseDef(def.innerType._def, refs);
908
+ };
909
+ //#endregion
910
+ //#region ../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js
911
+ const selectParser = (def, typeName, refs) => {
912
+ switch (typeName) {
913
+ case ZodFirstPartyTypeKind.ZodString: return parseStringDef(def, refs);
914
+ case ZodFirstPartyTypeKind.ZodNumber: return parseNumberDef(def, refs);
915
+ case ZodFirstPartyTypeKind.ZodObject: return parseObjectDef(def, refs);
916
+ case ZodFirstPartyTypeKind.ZodBigInt: return parseBigintDef(def, refs);
917
+ case ZodFirstPartyTypeKind.ZodBoolean: return parseBooleanDef();
918
+ case ZodFirstPartyTypeKind.ZodDate: return parseDateDef(def, refs);
919
+ case ZodFirstPartyTypeKind.ZodUndefined: return parseUndefinedDef(refs);
920
+ case ZodFirstPartyTypeKind.ZodNull: return parseNullDef(refs);
921
+ case ZodFirstPartyTypeKind.ZodArray: return parseArrayDef(def, refs);
922
+ case ZodFirstPartyTypeKind.ZodUnion:
923
+ case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: return parseUnionDef(def, refs);
924
+ case ZodFirstPartyTypeKind.ZodIntersection: return parseIntersectionDef(def, refs);
925
+ case ZodFirstPartyTypeKind.ZodTuple: return parseTupleDef(def, refs);
926
+ case ZodFirstPartyTypeKind.ZodRecord: return parseRecordDef(def, refs);
927
+ case ZodFirstPartyTypeKind.ZodLiteral: return parseLiteralDef(def, refs);
928
+ case ZodFirstPartyTypeKind.ZodEnum: return parseEnumDef(def);
929
+ case ZodFirstPartyTypeKind.ZodNativeEnum: return parseNativeEnumDef(def);
930
+ case ZodFirstPartyTypeKind.ZodNullable: return parseNullableDef(def, refs);
931
+ case ZodFirstPartyTypeKind.ZodOptional: return parseOptionalDef(def, refs);
932
+ case ZodFirstPartyTypeKind.ZodMap: return parseMapDef(def, refs);
933
+ case ZodFirstPartyTypeKind.ZodSet: return parseSetDef(def, refs);
934
+ case ZodFirstPartyTypeKind.ZodLazy: return () => def.getter()._def;
935
+ case ZodFirstPartyTypeKind.ZodPromise: return parsePromiseDef(def, refs);
936
+ case ZodFirstPartyTypeKind.ZodNaN:
937
+ case ZodFirstPartyTypeKind.ZodNever: return parseNeverDef(refs);
938
+ case ZodFirstPartyTypeKind.ZodEffects: return parseEffectsDef(def, refs);
939
+ case ZodFirstPartyTypeKind.ZodAny: return parseAnyDef(refs);
940
+ case ZodFirstPartyTypeKind.ZodUnknown: return parseUnknownDef(refs);
941
+ case ZodFirstPartyTypeKind.ZodDefault: return parseDefaultDef(def, refs);
942
+ case ZodFirstPartyTypeKind.ZodBranded: return parseBrandedDef(def, refs);
943
+ case ZodFirstPartyTypeKind.ZodReadonly: return parseReadonlyDef(def, refs);
944
+ case ZodFirstPartyTypeKind.ZodCatch: return parseCatchDef(def, refs);
945
+ case ZodFirstPartyTypeKind.ZodPipeline: return parsePipelineDef(def, refs);
946
+ case ZodFirstPartyTypeKind.ZodFunction:
947
+ case ZodFirstPartyTypeKind.ZodVoid:
948
+ case ZodFirstPartyTypeKind.ZodSymbol: return;
949
+ default: return ((_) => void 0)(typeName);
950
+ }
951
+ };
952
+ //#endregion
953
+ //#region ../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js
954
+ function parseDef(def, refs, forceResolution = false) {
955
+ const seenItem = refs.seen.get(def);
956
+ if (refs.override) {
957
+ const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);
958
+ if (overrideResult !== ignoreOverride) return overrideResult;
959
+ }
960
+ if (seenItem && !forceResolution) {
961
+ const seenSchema = get$ref(seenItem, refs);
962
+ if (seenSchema !== void 0) return seenSchema;
963
+ }
964
+ const newItem = {
965
+ def,
966
+ path: refs.currentPath,
967
+ jsonSchema: void 0
968
+ };
969
+ refs.seen.set(def, newItem);
970
+ const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);
971
+ const jsonSchema = typeof jsonSchemaOrGetter === "function" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;
972
+ if (jsonSchema) addMeta(def, refs, jsonSchema);
973
+ if (refs.postProcess) {
974
+ const postProcessResult = refs.postProcess(jsonSchema, def, refs);
975
+ newItem.jsonSchema = jsonSchema;
976
+ return postProcessResult;
977
+ }
978
+ newItem.jsonSchema = jsonSchema;
979
+ return jsonSchema;
980
+ }
981
+ const get$ref = (item, refs) => {
982
+ switch (refs.$refStrategy) {
983
+ case "root": return { $ref: item.path.join("/") };
984
+ case "relative": return { $ref: getRelativePath(refs.currentPath, item.path) };
985
+ case "none":
986
+ case "seen":
987
+ if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {
988
+ console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`);
989
+ return parseAnyDef(refs);
990
+ }
991
+ return refs.$refStrategy === "seen" ? parseAnyDef(refs) : void 0;
992
+ }
993
+ };
994
+ const addMeta = (def, refs, jsonSchema) => {
995
+ if (def.description) {
996
+ jsonSchema.description = def.description;
997
+ if (refs.markdownDescription) jsonSchema.markdownDescription = def.description;
998
+ }
999
+ return jsonSchema;
1000
+ };
1001
+ //#endregion
1002
+ //#region ../../node_modules/.pnpm/zod-to-json-schema@3.25.0_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
1003
+ const zodToJsonSchema = (schema, options) => {
1004
+ const refs = getRefs(options);
1005
+ let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({
1006
+ ...acc,
1007
+ [name]: parseDef(schema._def, {
1008
+ ...refs,
1009
+ currentPath: [
1010
+ ...refs.basePath,
1011
+ refs.definitionPath,
1012
+ name
1013
+ ]
1014
+ }, true) ?? parseAnyDef(refs)
1015
+ }), {}) : void 0;
1016
+ const name = typeof options === "string" ? options : options?.nameStrategy === "title" ? void 0 : options?.name;
1017
+ const main = parseDef(schema._def, name === void 0 ? refs : {
1018
+ ...refs,
1019
+ currentPath: [
1020
+ ...refs.basePath,
1021
+ refs.definitionPath,
1022
+ name
1023
+ ]
1024
+ }, false) ?? parseAnyDef(refs);
1025
+ const title = typeof options === "object" && options.name !== void 0 && options.nameStrategy === "title" ? options.name : void 0;
1026
+ if (title !== void 0) main.title = title;
1027
+ if (refs.flags.hasReferencedOpenAiAnyType) {
1028
+ if (!definitions) definitions = {};
1029
+ if (!definitions[refs.openAiAnyTypeName]) definitions[refs.openAiAnyTypeName] = {
1030
+ type: [
1031
+ "string",
1032
+ "number",
1033
+ "integer",
1034
+ "boolean",
1035
+ "array",
1036
+ "null"
1037
+ ],
1038
+ items: { $ref: refs.$refStrategy === "relative" ? "1" : [
1039
+ ...refs.basePath,
1040
+ refs.definitionPath,
1041
+ refs.openAiAnyTypeName
1042
+ ].join("/") }
1043
+ };
1044
+ }
1045
+ const combined = name === void 0 ? definitions ? {
1046
+ ...main,
1047
+ [refs.definitionPath]: definitions
1048
+ } : main : {
1049
+ $ref: [
1050
+ ...refs.$refStrategy === "relative" ? [] : refs.basePath,
1051
+ refs.definitionPath,
1052
+ name
1053
+ ].join("/"),
1054
+ [refs.definitionPath]: {
1055
+ ...definitions,
1056
+ [name]: main
1057
+ }
1058
+ };
1059
+ if (refs.target === "jsonSchema7") combined.$schema = "http://json-schema.org/draft-07/schema#";
1060
+ else if (refs.target === "jsonSchema2019-09" || refs.target === "openAi") combined.$schema = "https://json-schema.org/draft/2019-09/schema#";
1061
+ if (refs.target === "openAi" && ("anyOf" in combined || "oneOf" in combined || "allOf" in combined || "type" in combined && Array.isArray(combined.type))) console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");
1062
+ return combined;
1063
+ };
1064
+ //#endregion
1065
+ //#region src/json-schema.ts
1066
+ /**
1067
+ * JSON Schema for hl7v2 configuration.
1068
+ *
1069
+ * This schema can be used for IDE autocomplete by adding:
1070
+ *
1071
+ * ```json
1072
+ * {
1073
+ * "$schema": "https://raw.githubusercontent.com/rethinkhealth/hl7v2/main/packages/hl7v2-config/schema.json"
1074
+ * }
1075
+ * ```
1076
+ */
1077
+ const jsonSchema = zodToJsonSchema(HL7v2ConfigSchema, {
1078
+ $refStrategy: "none",
1079
+ name: "HL7v2Config",
1080
+ target: "jsonSchema7"
1081
+ });
1082
+ //#endregion
1083
+ export { jsonSchema as t };
1084
+
1085
+ //# sourceMappingURL=json-schema2.js.map