zod-nest 3.2.1 → 3.2.3
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/README.md +1 -0
- package/dist/{chunk-RTWHQFNA.mjs → chunk-47ML6LKE.mjs} +5 -5
- package/dist/{chunk-RTWHQFNA.mjs.map → chunk-47ML6LKE.mjs.map} +1 -1
- package/dist/{chunk-LXRBMFWD.js → chunk-4LOFWANL.js} +6 -6
- package/dist/{chunk-LXRBMFWD.js.map → chunk-4LOFWANL.js.map} +1 -1
- package/dist/{chunk-KSDHVGMB.js → chunk-6FL3HR4I.js} +45 -45
- package/dist/{chunk-KSDHVGMB.js.map → chunk-6FL3HR4I.js.map} +1 -1
- package/dist/{chunk-BAG3BDRM.mjs → chunk-7IPDYJNI.mjs} +37 -57
- package/dist/chunk-7IPDYJNI.mjs.map +1 -0
- package/dist/{chunk-T4KTFCJW.js → chunk-DUQLL62I.js} +94 -114
- package/dist/chunk-DUQLL62I.js.map +1 -0
- package/dist/chunk-EV5I5HGT.js +127 -0
- package/dist/chunk-EV5I5HGT.js.map +1 -0
- package/dist/{chunk-WI4JKXT6.mjs → chunk-IMEFMJTS.mjs} +3 -3
- package/dist/{chunk-WI4JKXT6.mjs.map → chunk-IMEFMJTS.mjs.map} +1 -1
- package/dist/chunk-MPNAA53V.mjs +119 -0
- package/dist/chunk-MPNAA53V.mjs.map +1 -0
- package/dist/express/index.js +20 -20
- package/dist/express/index.mjs +5 -5
- package/dist/fastify/index.js +11 -11
- package/dist/fastify/index.mjs +5 -5
- package/dist/helpers/index.js +24 -24
- package/dist/helpers/index.mjs +3 -3
- package/dist/index.js +203 -203
- package/dist/index.mjs +4 -4
- package/package.json +26 -33
- package/dist/chunk-4RXGLSPP.js +0 -73
- package/dist/chunk-4RXGLSPP.js.map +0 -1
- package/dist/chunk-BAG3BDRM.mjs.map +0 -1
- package/dist/chunk-T4KTFCJW.js.map +0 -1
- package/dist/chunk-ZZW54ETO.mjs +0 -67
- package/dist/chunk-ZZW54ETO.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkEV5I5HGT_js = require('./chunk-EV5I5HGT.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
var common = require('@nestjs/common');
|
|
6
6
|
|
|
@@ -10,6 +10,8 @@ var DEFS_PREFIX = "#/$defs/";
|
|
|
10
10
|
var ZOD_NEST_ERROR_EXTENSION = "x-zod-nest-error";
|
|
11
11
|
var ZOD_NEST_ERROR_DUPLICATE_ID = "duplicate-id";
|
|
12
12
|
var ZOD_NEST_DTO_EXTENSION = "x-zod-nest-dto";
|
|
13
|
+
|
|
14
|
+
// src/schema/discover-dependents.ts
|
|
13
15
|
var INNER_TYPE_WRAPPERS = /* @__PURE__ */ new Set([
|
|
14
16
|
"optional",
|
|
15
17
|
"nullable",
|
|
@@ -21,15 +23,7 @@ var INNER_TYPE_WRAPPERS = /* @__PURE__ */ new Set([
|
|
|
21
23
|
"readonly",
|
|
22
24
|
"promise"
|
|
23
25
|
]);
|
|
24
|
-
var
|
|
25
|
-
const meta = zod.z.globalRegistry.get(schema);
|
|
26
|
-
if (meta === void 0) {
|
|
27
|
-
return void 0;
|
|
28
|
-
}
|
|
29
|
-
const id = meta.id;
|
|
30
|
-
return typeof id === "string" ? id : void 0;
|
|
31
|
-
}, "readId");
|
|
32
|
-
var resolveLazyTarget = /* @__PURE__ */ chunk4RXGLSPP_js.__name((getter) => {
|
|
26
|
+
var resolveLazyTarget = /* @__PURE__ */ chunkEV5I5HGT_js.__name((getter) => {
|
|
33
27
|
try {
|
|
34
28
|
return [
|
|
35
29
|
getter()
|
|
@@ -41,16 +35,13 @@ var resolveLazyTarget = /* @__PURE__ */ chunk4RXGLSPP_js.__name((getter) => {
|
|
|
41
35
|
throw error;
|
|
42
36
|
}
|
|
43
37
|
}, "resolveLazyTarget");
|
|
44
|
-
var collectChildren = /* @__PURE__ */
|
|
38
|
+
var collectChildren = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => {
|
|
45
39
|
const def = schema._zod.def;
|
|
46
40
|
if (def.type === "object") {
|
|
47
|
-
const out = [];
|
|
48
41
|
const shape = def.shape;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
}
|
|
42
|
+
const out = [
|
|
43
|
+
...Object.values(shape)
|
|
44
|
+
];
|
|
54
45
|
if (def.catchall !== void 0) {
|
|
55
46
|
out.push(def.catchall);
|
|
56
47
|
}
|
|
@@ -104,7 +95,7 @@ var collectChildren = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema) => {
|
|
|
104
95
|
}
|
|
105
96
|
return [];
|
|
106
97
|
}, "collectChildren");
|
|
107
|
-
var discoverDependents = /* @__PURE__ */
|
|
98
|
+
var discoverDependents = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => {
|
|
108
99
|
const visited = /* @__PURE__ */ new WeakSet();
|
|
109
100
|
const out = [];
|
|
110
101
|
const stack = [
|
|
@@ -120,11 +111,11 @@ var discoverDependents = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema) => {
|
|
|
120
111
|
if (child === void 0 || visited.has(child)) {
|
|
121
112
|
continue;
|
|
122
113
|
}
|
|
123
|
-
const
|
|
124
|
-
if (
|
|
114
|
+
const named = chunkEV5I5HGT_js.findRefTarget(child);
|
|
115
|
+
if (named !== void 0) {
|
|
125
116
|
out.push([
|
|
126
|
-
|
|
127
|
-
id
|
|
117
|
+
named.owner,
|
|
118
|
+
named.id
|
|
128
119
|
]);
|
|
129
120
|
}
|
|
130
121
|
stack.push(child);
|
|
@@ -134,12 +125,12 @@ var discoverDependents = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema) => {
|
|
|
134
125
|
}, "discoverDependents");
|
|
135
126
|
|
|
136
127
|
// src/schema/registry.ts
|
|
137
|
-
var createRegistry = /* @__PURE__ */
|
|
128
|
+
var createRegistry = /* @__PURE__ */ chunkEV5I5HGT_js.__name(() => {
|
|
138
129
|
const seen = /* @__PURE__ */ new Map();
|
|
139
130
|
const forceExposed = /* @__PURE__ */ new Set();
|
|
140
131
|
const anonymous = /* @__PURE__ */ new Set();
|
|
141
132
|
const pendingRoots = [];
|
|
142
|
-
const recordOnce = /* @__PURE__ */
|
|
133
|
+
const recordOnce = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, id) => {
|
|
143
134
|
let set = seen.get(id);
|
|
144
135
|
if (set === void 0) {
|
|
145
136
|
set = /* @__PURE__ */ new Set();
|
|
@@ -151,7 +142,7 @@ var createRegistry = /* @__PURE__ */ chunk4RXGLSPP_js.__name(() => {
|
|
|
151
142
|
set.add(schema);
|
|
152
143
|
return true;
|
|
153
144
|
}, "recordOnce");
|
|
154
|
-
const flushPendingDiscovery = /* @__PURE__ */
|
|
145
|
+
const flushPendingDiscovery = /* @__PURE__ */ chunkEV5I5HGT_js.__name(() => {
|
|
155
146
|
for (const root of pendingRoots.splice(0)) {
|
|
156
147
|
for (const [child, childId] of discoverDependents(root)) {
|
|
157
148
|
recordOnce(child, childId);
|
|
@@ -160,7 +151,7 @@ var createRegistry = /* @__PURE__ */ chunk4RXGLSPP_js.__name(() => {
|
|
|
160
151
|
}, "flushPendingDiscovery");
|
|
161
152
|
return {
|
|
162
153
|
zodRegistry: zod.z.globalRegistry,
|
|
163
|
-
register: /* @__PURE__ */
|
|
154
|
+
register: /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, id, flags) => {
|
|
164
155
|
if (flags?.expose === true) {
|
|
165
156
|
forceExposed.add(id);
|
|
166
157
|
}
|
|
@@ -168,10 +159,10 @@ var createRegistry = /* @__PURE__ */ chunk4RXGLSPP_js.__name(() => {
|
|
|
168
159
|
anonymous.add(id);
|
|
169
160
|
}
|
|
170
161
|
if (zod.z.globalRegistry.has(schema)) {
|
|
171
|
-
const existing = zod.z.globalRegistry.get(schema);
|
|
172
|
-
if (existing
|
|
162
|
+
const existing = zod.z.globalRegistry.get(schema) ?? {};
|
|
163
|
+
if (existing.id !== id) {
|
|
173
164
|
zod.z.globalRegistry.add(schema, {
|
|
174
|
-
...existing
|
|
165
|
+
...existing,
|
|
175
166
|
id
|
|
176
167
|
});
|
|
177
168
|
}
|
|
@@ -185,12 +176,12 @@ var createRegistry = /* @__PURE__ */ chunk4RXGLSPP_js.__name(() => {
|
|
|
185
176
|
}
|
|
186
177
|
pendingRoots.push(schema);
|
|
187
178
|
}, "register"),
|
|
188
|
-
hasCollision: /* @__PURE__ */
|
|
179
|
+
hasCollision: /* @__PURE__ */ chunkEV5I5HGT_js.__name((id) => {
|
|
189
180
|
flushPendingDiscovery();
|
|
190
181
|
const set = seen.get(id);
|
|
191
182
|
return set !== void 0 && set.size > 1;
|
|
192
183
|
}, "hasCollision"),
|
|
193
|
-
getCollisions: /* @__PURE__ */
|
|
184
|
+
getCollisions: /* @__PURE__ */ chunkEV5I5HGT_js.__name(() => {
|
|
194
185
|
flushPendingDiscovery();
|
|
195
186
|
const out = /* @__PURE__ */ new Map();
|
|
196
187
|
for (const [id, set] of seen) {
|
|
@@ -201,22 +192,22 @@ var createRegistry = /* @__PURE__ */ chunk4RXGLSPP_js.__name(() => {
|
|
|
201
192
|
}
|
|
202
193
|
return out;
|
|
203
194
|
}, "getCollisions"),
|
|
204
|
-
ids: /* @__PURE__ */
|
|
195
|
+
ids: /* @__PURE__ */ chunkEV5I5HGT_js.__name(() => {
|
|
205
196
|
flushPendingDiscovery();
|
|
206
197
|
return [
|
|
207
198
|
...seen.keys()
|
|
208
199
|
];
|
|
209
200
|
}, "ids"),
|
|
210
|
-
forceExposedIds: /* @__PURE__ */
|
|
201
|
+
forceExposedIds: /* @__PURE__ */ chunkEV5I5HGT_js.__name(() => [
|
|
211
202
|
...forceExposed
|
|
212
203
|
], "forceExposedIds"),
|
|
213
|
-
anonymousIds: /* @__PURE__ */
|
|
204
|
+
anonymousIds: /* @__PURE__ */ chunkEV5I5HGT_js.__name(() => [
|
|
214
205
|
...anonymous
|
|
215
206
|
], "anonymousIds")
|
|
216
207
|
};
|
|
217
208
|
}, "createRegistry");
|
|
218
|
-
var defaultRegistry =
|
|
219
|
-
var registerSchema = /* @__PURE__ */
|
|
209
|
+
var defaultRegistry = chunkEV5I5HGT_js.singleton("default-registry", createRegistry);
|
|
210
|
+
var registerSchema = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, registry = defaultRegistry, options) => {
|
|
220
211
|
const flags = {
|
|
221
212
|
expose: options?.expose,
|
|
222
213
|
anonymous: options?.anonymous
|
|
@@ -226,36 +217,29 @@ var registerSchema = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema, registry =
|
|
|
226
217
|
registry.register(schema, explicit, flags);
|
|
227
218
|
return explicit;
|
|
228
219
|
}
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
if (typeof metaId !== "string" || metaId === "") {
|
|
220
|
+
const named = chunkEV5I5HGT_js.findIdOwner(schema, registry.zodRegistry);
|
|
221
|
+
if (named === void 0) {
|
|
232
222
|
return void 0;
|
|
233
223
|
}
|
|
234
|
-
registry.register(
|
|
235
|
-
return
|
|
224
|
+
registry.register(named.owner, named.id, flags);
|
|
225
|
+
return named.id;
|
|
236
226
|
}, "registerSchema");
|
|
237
227
|
|
|
238
228
|
// src/schema/composition.ts
|
|
239
|
-
var lineageMap =
|
|
240
|
-
var propsMap = chunk4RXGLSPP_js.singleton("props-map", () => /* @__PURE__ */ new WeakMap());
|
|
229
|
+
var lineageMap = chunkEV5I5HGT_js.singleton("lineage-map", () => /* @__PURE__ */ new WeakMap());
|
|
241
230
|
var OPTIONAL_WRAPPER_TYPES = /* @__PURE__ */ new Set([
|
|
242
231
|
"optional",
|
|
243
232
|
"default"
|
|
244
233
|
]);
|
|
245
|
-
var isOptionalProp = /* @__PURE__ */
|
|
246
|
-
var computeShapeKeys = /* @__PURE__ */
|
|
247
|
-
const
|
|
248
|
-
const properties = Object.keys(shape);
|
|
249
|
-
const required = properties.filter((key) => {
|
|
250
|
-
const propSchema = shape[key];
|
|
251
|
-
return propSchema !== void 0 && !isOptionalProp(propSchema);
|
|
252
|
-
});
|
|
234
|
+
var isOptionalProp = /* @__PURE__ */ chunkEV5I5HGT_js.__name((propSchema) => OPTIONAL_WRAPPER_TYPES.has(propSchema._zod.def.type), "isOptionalProp");
|
|
235
|
+
var computeShapeKeys = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => {
|
|
236
|
+
const entries = Object.entries(schema.shape);
|
|
253
237
|
return {
|
|
254
|
-
properties,
|
|
255
|
-
required
|
|
238
|
+
properties: entries.map(([key]) => key),
|
|
239
|
+
required: entries.filter(([, propSchema]) => !isOptionalProp(propSchema)).map(([key]) => key)
|
|
256
240
|
};
|
|
257
241
|
}, "computeShapeKeys");
|
|
258
|
-
var computeOverriddenKeys = /* @__PURE__ */
|
|
242
|
+
var computeOverriddenKeys = /* @__PURE__ */ chunkEV5I5HGT_js.__name((parent, child) => {
|
|
259
243
|
const overriddenKeys = /* @__PURE__ */ new Set();
|
|
260
244
|
for (const key of Object.keys(child.shape)) {
|
|
261
245
|
const parentProp = parent.shape[key];
|
|
@@ -265,23 +249,20 @@ var computeOverriddenKeys = /* @__PURE__ */ chunk4RXGLSPP_js.__name((parent, chi
|
|
|
265
249
|
}
|
|
266
250
|
return overriddenKeys;
|
|
267
251
|
}, "computeOverriddenKeys");
|
|
268
|
-
var extend = /* @__PURE__ */
|
|
252
|
+
var extend = /* @__PURE__ */ chunkEV5I5HGT_js.__name((parent, build) => {
|
|
269
253
|
const result = build(parent);
|
|
270
254
|
lineageMap.set(result, {
|
|
271
255
|
op: "extend",
|
|
272
256
|
parent,
|
|
273
257
|
overriddenKeys: computeOverriddenKeys(parent, result)
|
|
274
258
|
});
|
|
275
|
-
if (!propsMap.has(parent)) {
|
|
276
|
-
propsMap.set(parent, computeShapeKeys(parent));
|
|
277
|
-
}
|
|
278
259
|
registerSchema(parent);
|
|
279
260
|
registerSchema(result);
|
|
280
261
|
return result;
|
|
281
262
|
}, "extend");
|
|
282
|
-
var getLineage = /* @__PURE__ */
|
|
283
|
-
var DEFAULT_BUILD_REF = /* @__PURE__ */
|
|
284
|
-
var createCompositionOverride = /* @__PURE__ */
|
|
263
|
+
var getLineage = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => lineageMap.get(schema), "getLineage");
|
|
264
|
+
var DEFAULT_BUILD_REF = /* @__PURE__ */ chunkEV5I5HGT_js.__name((id) => `${DEFS_PREFIX}${id}`, "DEFAULT_BUILD_REF");
|
|
265
|
+
var createCompositionOverride = /* @__PURE__ */ chunkEV5I5HGT_js.__name((opts) => {
|
|
285
266
|
const { buildRef, registry } = opts;
|
|
286
267
|
return (ctx) => {
|
|
287
268
|
const { jsonSchema, zodSchema } = ctx;
|
|
@@ -289,15 +270,11 @@ var createCompositionOverride = /* @__PURE__ */ chunk4RXGLSPP_js.__name((opts) =
|
|
|
289
270
|
if (entry === void 0) {
|
|
290
271
|
return;
|
|
291
272
|
}
|
|
292
|
-
const parentCache =
|
|
293
|
-
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
const parentId = registry.zodRegistry.get(entry.parent)?.id;
|
|
273
|
+
const parentCache = computeShapeKeys(entry.parent);
|
|
274
|
+
const parentId = registerSchema(entry.parent, registry);
|
|
297
275
|
if (parentId === void 0) {
|
|
298
276
|
return;
|
|
299
277
|
}
|
|
300
|
-
registerSchema(entry.parent, registry);
|
|
301
278
|
const childProps = jsonSchema.properties ?? {};
|
|
302
279
|
const childRequired = jsonSchema.required ?? [];
|
|
303
280
|
const parentPropSet = new Set(parentCache.properties);
|
|
@@ -334,7 +311,7 @@ var createCompositionOverride = /* @__PURE__ */ chunk4RXGLSPP_js.__name((opts) =
|
|
|
334
311
|
// src/schema/errors.ts
|
|
335
312
|
var ZodNestError = class extends Error {
|
|
336
313
|
static {
|
|
337
|
-
|
|
314
|
+
chunkEV5I5HGT_js.__name(this, "ZodNestError");
|
|
338
315
|
}
|
|
339
316
|
constructor(message) {
|
|
340
317
|
super(message);
|
|
@@ -343,7 +320,7 @@ var ZodNestError = class extends Error {
|
|
|
343
320
|
};
|
|
344
321
|
var ZodNestUnrepresentableError = class extends ZodNestError {
|
|
345
322
|
static {
|
|
346
|
-
|
|
323
|
+
chunkEV5I5HGT_js.__name(this, "ZodNestUnrepresentableError");
|
|
347
324
|
}
|
|
348
325
|
path;
|
|
349
326
|
zodType;
|
|
@@ -354,7 +331,7 @@ var ZodNestUnrepresentableError = class extends ZodNestError {
|
|
|
354
331
|
this.zodType = zodType;
|
|
355
332
|
}
|
|
356
333
|
};
|
|
357
|
-
var formatPath = /* @__PURE__ */
|
|
334
|
+
var formatPath = /* @__PURE__ */ chunkEV5I5HGT_js.__name((path) => {
|
|
358
335
|
if (path.length === 0) {
|
|
359
336
|
return "<root>";
|
|
360
337
|
}
|
|
@@ -362,7 +339,7 @@ var formatPath = /* @__PURE__ */ chunk4RXGLSPP_js.__name((path) => {
|
|
|
362
339
|
}, "formatPath");
|
|
363
340
|
|
|
364
341
|
// src/schema/override.ts
|
|
365
|
-
var primitiveOverride = /* @__PURE__ */
|
|
342
|
+
var primitiveOverride = /* @__PURE__ */ chunkEV5I5HGT_js.__name(({ zodSchema, jsonSchema }) => {
|
|
366
343
|
const type = zodSchema._zod.def.type;
|
|
367
344
|
if (type === "bigint") {
|
|
368
345
|
jsonSchema.type = "integer";
|
|
@@ -374,7 +351,7 @@ var primitiveOverride = /* @__PURE__ */ chunk4RXGLSPP_js.__name(({ zodSchema, js
|
|
|
374
351
|
return;
|
|
375
352
|
}
|
|
376
353
|
}, "primitiveOverride");
|
|
377
|
-
var combine = /* @__PURE__ */
|
|
354
|
+
var combine = /* @__PURE__ */ chunkEV5I5HGT_js.__name((...overrides) => {
|
|
378
355
|
const list = [];
|
|
379
356
|
for (const candidate of overrides) {
|
|
380
357
|
if (typeof candidate !== "function") {
|
|
@@ -390,7 +367,7 @@ var combine = /* @__PURE__ */ chunk4RXGLSPP_js.__name((...overrides) => {
|
|
|
390
367
|
}, "combine");
|
|
391
368
|
|
|
392
369
|
// src/schema/post-process.ts
|
|
393
|
-
var rewriteRefs = /* @__PURE__ */
|
|
370
|
+
var rewriteRefs = /* @__PURE__ */ chunkEV5I5HGT_js.__name((node, rootRef) => {
|
|
394
371
|
if (Array.isArray(node)) {
|
|
395
372
|
for (const item of node) {
|
|
396
373
|
rewriteRefs(item, rootRef);
|
|
@@ -411,7 +388,7 @@ var rewriteRefs = /* @__PURE__ */ chunk4RXGLSPP_js.__name((node, rootRef) => {
|
|
|
411
388
|
rewriteRefs(value, rootRef);
|
|
412
389
|
}
|
|
413
390
|
}, "rewriteRefs");
|
|
414
|
-
var refsIn = /* @__PURE__ */
|
|
391
|
+
var refsIn = /* @__PURE__ */ chunkEV5I5HGT_js.__name(function* (node) {
|
|
415
392
|
if (Array.isArray(node)) {
|
|
416
393
|
for (const item of node) {
|
|
417
394
|
yield* refsIn(item);
|
|
@@ -429,14 +406,14 @@ var refsIn = /* @__PURE__ */ chunk4RXGLSPP_js.__name(function* (node) {
|
|
|
429
406
|
yield* refsIn(value);
|
|
430
407
|
}
|
|
431
408
|
}, "refsIn");
|
|
432
|
-
var rootDefId = /* @__PURE__ */
|
|
409
|
+
var rootDefId = /* @__PURE__ */ chunkEV5I5HGT_js.__name((raw) => {
|
|
433
410
|
const ref = raw.$ref;
|
|
434
411
|
if (typeof ref !== "string" || !ref.startsWith(DEFS_PREFIX)) {
|
|
435
412
|
return void 0;
|
|
436
413
|
}
|
|
437
414
|
return ref.slice(DEFS_PREFIX.length);
|
|
438
415
|
}, "rootDefId");
|
|
439
|
-
var isReferenced = /* @__PURE__ */
|
|
416
|
+
var isReferenced = /* @__PURE__ */ chunkEV5I5HGT_js.__name((defs, id) => {
|
|
440
417
|
const ownRef = `${DEFS_PREFIX}${id}`;
|
|
441
418
|
for (const ref of refsIn(defs)) {
|
|
442
419
|
if (ref === "#" || ref === ownRef) {
|
|
@@ -445,7 +422,7 @@ var isReferenced = /* @__PURE__ */ chunk4RXGLSPP_js.__name((defs, id) => {
|
|
|
445
422
|
}
|
|
446
423
|
return false;
|
|
447
424
|
}, "isReferenced");
|
|
448
|
-
var referencesRoot = /* @__PURE__ */
|
|
425
|
+
var referencesRoot = /* @__PURE__ */ chunkEV5I5HGT_js.__name((raw) => {
|
|
449
426
|
for (const ref of refsIn(raw)) {
|
|
450
427
|
if (ref === "#") {
|
|
451
428
|
return true;
|
|
@@ -453,7 +430,7 @@ var referencesRoot = /* @__PURE__ */ chunk4RXGLSPP_js.__name((raw) => {
|
|
|
453
430
|
}
|
|
454
431
|
return false;
|
|
455
432
|
}, "referencesRoot");
|
|
456
|
-
var stripEnvelope = /* @__PURE__ */
|
|
433
|
+
var stripEnvelope = /* @__PURE__ */ chunkEV5I5HGT_js.__name((raw) => {
|
|
457
434
|
const root = {
|
|
458
435
|
...raw
|
|
459
436
|
};
|
|
@@ -461,7 +438,7 @@ var stripEnvelope = /* @__PURE__ */ chunk4RXGLSPP_js.__name((raw) => {
|
|
|
461
438
|
delete root.$defs;
|
|
462
439
|
return root;
|
|
463
440
|
}, "stripEnvelope");
|
|
464
|
-
var resolveRoot = /* @__PURE__ */
|
|
441
|
+
var resolveRoot = /* @__PURE__ */ chunkEV5I5HGT_js.__name((raw, refs, options) => {
|
|
465
442
|
const liftedId = rootDefId(raw);
|
|
466
443
|
if (liftedId !== void 0) {
|
|
467
444
|
const body = refs.get(liftedId);
|
|
@@ -503,7 +480,7 @@ var resolveRoot = /* @__PURE__ */ chunk4RXGLSPP_js.__name((raw, refs, options) =
|
|
|
503
480
|
rootRef
|
|
504
481
|
};
|
|
505
482
|
}, "resolveRoot");
|
|
506
|
-
var postProcess = /* @__PURE__ */
|
|
483
|
+
var postProcess = /* @__PURE__ */ chunkEV5I5HGT_js.__name((raw, options) => {
|
|
507
484
|
const refs = /* @__PURE__ */ new Map();
|
|
508
485
|
const rawDefs = raw.$defs;
|
|
509
486
|
if (rawDefs !== void 0) {
|
|
@@ -548,38 +525,47 @@ var ANNOTATION_ONLY_KEYS = /* @__PURE__ */ new Set([
|
|
|
548
525
|
"$comment",
|
|
549
526
|
"id"
|
|
550
527
|
]);
|
|
551
|
-
var isStrictlyUnrepresentable = /* @__PURE__ */
|
|
528
|
+
var isStrictlyUnrepresentable = /* @__PURE__ */ chunkEV5I5HGT_js.__name((jsonSchema, zodSchema) => {
|
|
552
529
|
if (!STRICT_REQUIRES_OVERRIDE.has(zodSchema._zod.def.type)) {
|
|
553
530
|
return false;
|
|
554
531
|
}
|
|
555
532
|
return Object.keys(jsonSchema).every((key) => ANNOTATION_ONLY_KEYS.has(key));
|
|
556
533
|
}, "isStrictlyUnrepresentable");
|
|
557
|
-
var
|
|
534
|
+
var descentTarget = /* @__PURE__ */ chunkEV5I5HGT_js.__name(($in, out, io) => {
|
|
535
|
+
if (io === "output") {
|
|
536
|
+
return out;
|
|
537
|
+
}
|
|
538
|
+
if ($in._zod.traits.has("$ZodTransform")) {
|
|
539
|
+
return out;
|
|
540
|
+
}
|
|
541
|
+
return $in;
|
|
542
|
+
}, "descentTarget");
|
|
543
|
+
var markPipeCoverage = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, io, covered) => {
|
|
558
544
|
const def = schema._zod.def;
|
|
559
545
|
if (def.type !== "pipe" || def.in === void 0 || def.out === void 0) {
|
|
560
546
|
return;
|
|
561
547
|
}
|
|
562
|
-
const target =
|
|
548
|
+
const target = descentTarget(def.in, def.out, io);
|
|
563
549
|
if (covered.has(target)) {
|
|
564
550
|
return;
|
|
565
551
|
}
|
|
566
552
|
covered.add(target);
|
|
567
553
|
markPipeCoverage(target, io, covered);
|
|
568
554
|
}, "markPipeCoverage");
|
|
569
|
-
var buildToJsonSchemaOptions = /* @__PURE__ */
|
|
555
|
+
var buildToJsonSchemaOptions = /* @__PURE__ */ chunkEV5I5HGT_js.__name((params) => {
|
|
570
556
|
const strict = params.strict ?? true;
|
|
571
557
|
const compositionOverride = createCompositionOverride({
|
|
572
558
|
buildRef: params.uri ?? DEFAULT_BUILD_REF,
|
|
573
559
|
registry: params.registry
|
|
574
560
|
});
|
|
575
|
-
const customOverride =
|
|
561
|
+
const customOverride = chunkEV5I5HGT_js.createCustomOverride(params.io);
|
|
576
562
|
const merged = combine(primitiveOverride, compositionOverride, customOverride, params.override);
|
|
577
563
|
const unrepresentableHits = [];
|
|
578
564
|
const coveredByPipe = /* @__PURE__ */ new WeakSet();
|
|
579
|
-
const wrapped = /* @__PURE__ */
|
|
565
|
+
const wrapped = /* @__PURE__ */ chunkEV5I5HGT_js.__name((ctx) => {
|
|
580
566
|
merged(ctx);
|
|
581
567
|
if (ctx.zodSchema._zod.def.type === "pipe") {
|
|
582
|
-
const record =
|
|
568
|
+
const record = chunkEV5I5HGT_js.peekRegistration(ctx.zodSchema);
|
|
583
569
|
if (record !== void 0 && record[params.io] !== void 0) {
|
|
584
570
|
markPipeCoverage(ctx.zodSchema, params.io, coveredByPipe);
|
|
585
571
|
}
|
|
@@ -609,7 +595,7 @@ var buildToJsonSchemaOptions = /* @__PURE__ */ chunk4RXGLSPP_js.__name((params)
|
|
|
609
595
|
}
|
|
610
596
|
return {
|
|
611
597
|
options,
|
|
612
|
-
consumeUnrepresentable: /* @__PURE__ */
|
|
598
|
+
consumeUnrepresentable: /* @__PURE__ */ chunkEV5I5HGT_js.__name(() => {
|
|
613
599
|
const firstHit = unrepresentableHits.find((hit) => !coveredByPipe.has(hit.zodSchema));
|
|
614
600
|
if (firstHit !== void 0) {
|
|
615
601
|
throw new ZodNestUnrepresentableError(firstHit.path, firstHit.zodType);
|
|
@@ -617,11 +603,8 @@ var buildToJsonSchemaOptions = /* @__PURE__ */ chunk4RXGLSPP_js.__name((params)
|
|
|
617
603
|
}, "consumeUnrepresentable")
|
|
618
604
|
};
|
|
619
605
|
}, "buildToJsonSchemaOptions");
|
|
620
|
-
var resolveRootId = /* @__PURE__ */
|
|
621
|
-
|
|
622
|
-
return typeof id === "string" && id !== "" ? id : void 0;
|
|
623
|
-
}, "resolveRootId");
|
|
624
|
-
var toOpenApi = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema, opts) => {
|
|
606
|
+
var resolveRootId = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, registry) => chunkEV5I5HGT_js.findIdOwner(schema, registry.zodRegistry)?.id, "resolveRootId");
|
|
607
|
+
var toOpenApi = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, opts) => {
|
|
625
608
|
const built = buildToJsonSchemaOptions({
|
|
626
609
|
registry: opts.registry,
|
|
627
610
|
io: opts.io,
|
|
@@ -649,11 +632,11 @@ var toOpenApi = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema, opts) => {
|
|
|
649
632
|
|
|
650
633
|
// src/dto/symbols.ts
|
|
651
634
|
var ZOD_DTO_SYMBOL = /* @__PURE__ */ Symbol.for("zod-nest.dto");
|
|
652
|
-
var isZodDto = /* @__PURE__ */
|
|
653
|
-
var isZodSchema = /* @__PURE__ */
|
|
635
|
+
var isZodDto = /* @__PURE__ */ chunkEV5I5HGT_js.__name((value) => typeof value === "function" && value[ZOD_DTO_SYMBOL] === true, "isZodDto");
|
|
636
|
+
var isZodSchema = /* @__PURE__ */ chunkEV5I5HGT_js.__name((value) => value instanceof zod.z.ZodType, "isZodSchema");
|
|
654
637
|
var ZodValidationException = class extends common.BadRequestException {
|
|
655
638
|
static {
|
|
656
|
-
|
|
639
|
+
chunkEV5I5HGT_js.__name(this, "ZodValidationException");
|
|
657
640
|
}
|
|
658
641
|
zodError;
|
|
659
642
|
argMetadata;
|
|
@@ -673,11 +656,11 @@ var ZodValidationException = class extends common.BadRequestException {
|
|
|
673
656
|
// src/schema/anon-id.ts
|
|
674
657
|
var ANON_RESPONSE_PREFIX = "_AnonResponseSchema_";
|
|
675
658
|
var ANON_BODY_PREFIX = "_AnonBodySchema_";
|
|
676
|
-
var anonIdCache =
|
|
677
|
-
var counterRef =
|
|
659
|
+
var anonIdCache = chunkEV5I5HGT_js.singleton("anon-id-cache", () => /* @__PURE__ */ new WeakMap());
|
|
660
|
+
var counterRef = chunkEV5I5HGT_js.singleton("anon-id-counter", () => ({
|
|
678
661
|
value: 0
|
|
679
662
|
}));
|
|
680
|
-
var resolveAnonId = /* @__PURE__ */
|
|
663
|
+
var resolveAnonId = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, prefix) => {
|
|
681
664
|
const cached = anonIdCache.get(schema);
|
|
682
665
|
if (cached !== void 0) {
|
|
683
666
|
return cached;
|
|
@@ -727,11 +710,11 @@ function resolveSchemaRef(schema, options) {
|
|
|
727
710
|
schema: body
|
|
728
711
|
};
|
|
729
712
|
}
|
|
730
|
-
|
|
713
|
+
chunkEV5I5HGT_js.__name(resolveSchemaRef, "resolveSchemaRef");
|
|
731
714
|
|
|
732
715
|
// src/decorators/internal/zod-param-expand.ts
|
|
733
|
-
var isZodObject = /* @__PURE__ */
|
|
734
|
-
var expandObjectSchema = /* @__PURE__ */
|
|
716
|
+
var isZodObject = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => schema._zod.def.type === "object", "isZodObject");
|
|
717
|
+
var expandObjectSchema = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, options) => {
|
|
735
718
|
if (!isZodObject(schema)) {
|
|
736
719
|
throw new ZodNestError(`${options.decoratorName} requires a \`z.object({...})\` schema (got \`${schema._zod.def.type}\`). Each property of the object becomes one OpenAPI parameter. For non-object body shapes (intersections, unions, primitives), use \`@ZodBody\` instead.`);
|
|
737
720
|
}
|
|
@@ -753,8 +736,8 @@ var expandObjectSchema = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema, option
|
|
|
753
736
|
}
|
|
754
737
|
return result;
|
|
755
738
|
}, "expandObjectSchema");
|
|
756
|
-
var paramSchemaBody = /* @__PURE__ */
|
|
757
|
-
var intersectionArms = /* @__PURE__ */
|
|
739
|
+
var paramSchemaBody = /* @__PURE__ */ chunkEV5I5HGT_js.__name((resolution) => resolution.kind === "ref" ? resolution.ref : resolution.schema, "paramSchemaBody");
|
|
740
|
+
var intersectionArms = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => {
|
|
758
741
|
if (schema._zod.def.type !== "intersection") {
|
|
759
742
|
return null;
|
|
760
743
|
}
|
|
@@ -764,14 +747,14 @@ var intersectionArms = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema) => {
|
|
|
764
747
|
right: def.right
|
|
765
748
|
};
|
|
766
749
|
}, "intersectionArms");
|
|
767
|
-
var unionOptions = /* @__PURE__ */
|
|
750
|
+
var unionOptions = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => {
|
|
768
751
|
if (schema._zod.def.type !== "union") {
|
|
769
752
|
return null;
|
|
770
753
|
}
|
|
771
754
|
const def = schema._zod.def;
|
|
772
755
|
return def.options;
|
|
773
756
|
}, "unionOptions");
|
|
774
|
-
var collectObjectShapes = /* @__PURE__ */
|
|
757
|
+
var collectObjectShapes = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema) => {
|
|
775
758
|
if (isZodObject(schema)) {
|
|
776
759
|
return {
|
|
777
760
|
shapes: [
|
|
@@ -815,7 +798,7 @@ var collectObjectShapes = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema) => {
|
|
|
815
798
|
unionCrossed: left.unionCrossed || right.unionCrossed
|
|
816
799
|
};
|
|
817
800
|
}, "collectObjectShapes");
|
|
818
|
-
var flattenObjectIntersection = /* @__PURE__ */
|
|
801
|
+
var flattenObjectIntersection = /* @__PURE__ */ chunkEV5I5HGT_js.__name((schema, registry, decoratorName) => {
|
|
819
802
|
const collected = collectObjectShapes(schema);
|
|
820
803
|
if (collected === null) {
|
|
821
804
|
throw new ZodNestError(`${decoratorName} \`flatten: true\` requires every leaf of the schema to be a \`z.object({...})\` \u2014 intersections and unions of objects are supported, but primitives, tuples, transforms, and other non-object leaves are not. Drop \`flatten: true\` to emit the original schema with its composition intact.`);
|
|
@@ -825,11 +808,8 @@ var flattenObjectIntersection = /* @__PURE__ */ chunk4RXGLSPP_js.__name((schema,
|
|
|
825
808
|
Object.assign(mergedShape, shape);
|
|
826
809
|
}
|
|
827
810
|
if (collected.unionCrossed) {
|
|
828
|
-
for (const key of Object.
|
|
829
|
-
|
|
830
|
-
if (value !== void 0) {
|
|
831
|
-
mergedShape[key] = value.optional();
|
|
832
|
-
}
|
|
811
|
+
for (const [key, value] of Object.entries(mergedShape)) {
|
|
812
|
+
mergedShape[key] = value.optional();
|
|
833
813
|
}
|
|
834
814
|
}
|
|
835
815
|
const merged = zod.z.object(mergedShape);
|
|
@@ -868,5 +848,5 @@ exports.registerSchema = registerSchema;
|
|
|
868
848
|
exports.resolveAnonId = resolveAnonId;
|
|
869
849
|
exports.resolveSchemaRef = resolveSchemaRef;
|
|
870
850
|
exports.toOpenApi = toOpenApi;
|
|
871
|
-
//# sourceMappingURL=chunk-
|
|
872
|
-
//# sourceMappingURL=chunk-
|
|
851
|
+
//# sourceMappingURL=chunk-DUQLL62I.js.map
|
|
852
|
+
//# sourceMappingURL=chunk-DUQLL62I.js.map
|