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.
- package/dist/calculate-cost-D3IraeGW.js +1 -4
- package/dist/calculate-cost.d.ts +2 -2
- package/dist/calculate-cost.js +1 -2
- package/dist/data-loader-CBwn9vk0.d.ts +464 -0
- package/dist/{data-loader-BzOeJe6y.js → data-loader-rsgRy-no.js} +139 -261
- package/dist/data-loader.d.ts +2 -2
- package/dist/data-loader.js +4 -6
- package/dist/{debug-CjjJciy1.js → debug-BhnEVNbA.js} +6 -11
- package/dist/debug.js +5 -7
- package/dist/index.js +444 -203
- package/dist/{logger-E_Utl_fr.js → logger-CTFDCX5W.js} +3 -22
- package/dist/logger.js +2 -3
- package/dist/mcp-Cg5potQX.js +20889 -0
- package/dist/mcp.d.ts +30 -6
- package/dist/mcp.js +5 -9
- package/dist/{types-5-VF7WcO.js → pricing-fetcher-3m6_Ejp8.js} +341 -22
- package/dist/pricing-fetcher-BkOpRIdx.d.ts +188 -0
- package/dist/pricing-fetcher.d.ts +1 -1
- package/dist/pricing-fetcher.js +3 -5
- package/dist/{prompt-CUbwSrjo.js → prompt-E8j7mEMw.js} +1 -5
- package/package.json +1 -1
- package/dist/arktype-C-GObzDh-Bx7Fdrqj.js +0 -5
- package/dist/core-eFvU0K4V.js +0 -698
- package/dist/data-loader-dbZm5kOW.d.ts +0 -247
- package/dist/dist-Cb1UHXV5.js +0 -469
- package/dist/dist-DCvt9hEv.js +0 -383
- package/dist/effect-WSjEuzC9-CZCpOgOT.js +0 -10
- package/dist/esm-D74K9ESq.js +0 -1090
- package/dist/index-CISmcbXk-DpuCarFe.js +0 -23
- package/dist/mcp-SPAE-cNK.js +0 -37610
- package/dist/pricing-fetcher-BtW4MVG7.js +0 -360
- package/dist/pricing-fetcher-DHaTs-k2.d.ts +0 -1737
- package/dist/sury-DmrZ3_Oj-Lq7x0IZW.js +0 -10
- package/dist/valibot-CQk-M5rL-btpzU8Qa.js +0 -10
- package/dist/zod-Db63SLXj-BqWqpKnQ.js +0 -30
package/dist/esm-D74K9ESq.js
DELETED
|
@@ -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 };
|