ccusage 11.0.1 → 12.0.0

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