@zodyac/zod-mongoose 4.2.0 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/dist/index.cjs +84 -85
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +85 -100
- package/dist/index.js.map +1 -1
- package/package.json +14 -13
package/CHANGELOG.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -18,16 +19,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
20
|
|
|
20
21
|
// src/index.ts
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
23
|
-
default: () =>
|
|
22
|
+
var index_exports = {};
|
|
23
|
+
__export(index_exports, {
|
|
24
|
+
default: () => index_default,
|
|
24
25
|
extendZod: () => extendZod,
|
|
25
26
|
zId: () => zId,
|
|
26
27
|
zUUID: () => zUUID,
|
|
27
28
|
zodSchema: () => zodSchema,
|
|
28
29
|
zodSchemaRaw: () => zodSchemaRaw
|
|
29
30
|
});
|
|
30
|
-
module.exports = __toCommonJS(
|
|
31
|
+
module.exports = __toCommonJS(index_exports);
|
|
31
32
|
var import_mongoose2 = require("mongoose");
|
|
32
33
|
|
|
33
34
|
// src/assertions/constructor.ts
|
|
@@ -50,6 +51,9 @@ var zmAssert = {
|
|
|
50
51
|
enumerable(f) {
|
|
51
52
|
return f.constructor.name === "ZodEnum";
|
|
52
53
|
},
|
|
54
|
+
nativeEnumerable(f) {
|
|
55
|
+
return f.constructor.name === "ZodNativeEnum";
|
|
56
|
+
},
|
|
53
57
|
date(f) {
|
|
54
58
|
return f.constructor.name === "ZodDate";
|
|
55
59
|
},
|
|
@@ -77,17 +81,19 @@ var zmAssert = {
|
|
|
77
81
|
};
|
|
78
82
|
|
|
79
83
|
// src/assertions/custom.ts
|
|
80
|
-
|
|
81
|
-
((zmAssertIds2) => {
|
|
84
|
+
(function(zmAssertIds2) {
|
|
82
85
|
function objectId(f) {
|
|
83
86
|
return "__zm_type" in f && f.__zm_type === "ObjectId";
|
|
84
87
|
}
|
|
88
|
+
__name(objectId, "objectId");
|
|
85
89
|
zmAssertIds2.objectId = objectId;
|
|
86
90
|
function uuid(f) {
|
|
87
91
|
return "__zm_type" in f && f.__zm_type === "UUID";
|
|
88
92
|
}
|
|
93
|
+
__name(uuid, "uuid");
|
|
89
94
|
zmAssertIds2.uuid = uuid;
|
|
90
95
|
})(zmAssertIds || (zmAssertIds = {}));
|
|
96
|
+
var zmAssertIds;
|
|
91
97
|
|
|
92
98
|
// src/assertions/instanceOf.ts
|
|
93
99
|
var import_zod = require("zod");
|
|
@@ -110,6 +116,9 @@ var zmAssert2 = {
|
|
|
110
116
|
enumerable(f) {
|
|
111
117
|
return f instanceof import_zod.ZodEnum;
|
|
112
118
|
},
|
|
119
|
+
nativeEnumerable(f) {
|
|
120
|
+
return f instanceof import_zod.ZodNativeEnum;
|
|
121
|
+
},
|
|
113
122
|
date(f) {
|
|
114
123
|
return f instanceof import_zod.ZodDate;
|
|
115
124
|
},
|
|
@@ -156,6 +165,9 @@ var zmAssert3 = {
|
|
|
156
165
|
enumerable(f) {
|
|
157
166
|
return "__zm_type" in f && f.__zm_type === "Enum";
|
|
158
167
|
},
|
|
168
|
+
nativeEnumerable(f) {
|
|
169
|
+
return "__zm_type" in f && f.__zm_type === "NativeEnum";
|
|
170
|
+
},
|
|
159
171
|
date(f) {
|
|
160
172
|
return "__zm_type" in f && f.__zm_type === "Date";
|
|
161
173
|
},
|
|
@@ -183,7 +195,11 @@ var zmAssert3 = {
|
|
|
183
195
|
};
|
|
184
196
|
|
|
185
197
|
// src/assertions/assertions.ts
|
|
186
|
-
var assertions = [
|
|
198
|
+
var assertions = [
|
|
199
|
+
zmAssert,
|
|
200
|
+
zmAssert2,
|
|
201
|
+
zmAssert3
|
|
202
|
+
];
|
|
187
203
|
var zmAssert4 = Object.keys(zmAssert).map((key) => key).reduce((acc, key) => {
|
|
188
204
|
acc[key] = (f) => {
|
|
189
205
|
return assertions.some((assertion) => assertion[key](f));
|
|
@@ -200,18 +216,15 @@ var import_mongoose = require("mongoose");
|
|
|
200
216
|
var import_zod2 = require("zod");
|
|
201
217
|
var zod_extended = false;
|
|
202
218
|
function extendZod(z_0) {
|
|
203
|
-
if (zod_extended)
|
|
204
|
-
return;
|
|
219
|
+
if (zod_extended) return;
|
|
205
220
|
zod_extended = true;
|
|
206
221
|
const _refine = z_0.ZodType.prototype.refine;
|
|
207
222
|
z_0.ZodType.prototype.refine = function(check, opts) {
|
|
208
223
|
const zEffect = _refine.bind(this)(check, opts);
|
|
209
|
-
let message
|
|
224
|
+
let message;
|
|
210
225
|
if (opts) {
|
|
211
|
-
if (typeof opts === "string")
|
|
212
|
-
|
|
213
|
-
else if ("message" in opts)
|
|
214
|
-
message = opts.message;
|
|
226
|
+
if (typeof opts === "string") message = opts;
|
|
227
|
+
else if ("message" in opts) message = opts.message;
|
|
215
228
|
}
|
|
216
229
|
zEffect._def.effect.__zm_validation = {
|
|
217
230
|
validator: check,
|
|
@@ -219,7 +232,11 @@ function extendZod(z_0) {
|
|
|
219
232
|
};
|
|
220
233
|
return zEffect;
|
|
221
234
|
};
|
|
222
|
-
const UNIQUE_SUPPORT_LIST = [
|
|
235
|
+
const UNIQUE_SUPPORT_LIST = [
|
|
236
|
+
z_0.ZodString,
|
|
237
|
+
z_0.ZodNumber,
|
|
238
|
+
z_0.ZodDate
|
|
239
|
+
];
|
|
223
240
|
for (const type of UNIQUE_SUPPORT_LIST) {
|
|
224
241
|
type.prototype.unique = function(arg = true) {
|
|
225
242
|
this.__zm_unique = arg;
|
|
@@ -251,10 +268,13 @@ function extendZod(z_0) {
|
|
|
251
268
|
value.prototype.__zm_type = key;
|
|
252
269
|
}
|
|
253
270
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
271
|
+
__name(extendZod, "extendZod");
|
|
272
|
+
var createId = /* @__PURE__ */ __name(() => {
|
|
273
|
+
return import_zod2.z.string().refine((v) => (0, import_mongoose.isValidObjectId)(v), {
|
|
274
|
+
message: "Invalid ObjectId"
|
|
275
|
+
}).or(import_zod2.z.instanceof(import_mongoose.Types.ObjectId));
|
|
276
|
+
}, "createId");
|
|
277
|
+
var zId = /* @__PURE__ */ __name((ref) => {
|
|
258
278
|
const output = createId();
|
|
259
279
|
output.__zm_type = "ObjectId";
|
|
260
280
|
output.__zm_ref = ref;
|
|
@@ -275,11 +295,13 @@ var zId = (ref) => {
|
|
|
275
295
|
return this;
|
|
276
296
|
};
|
|
277
297
|
return output;
|
|
278
|
-
};
|
|
279
|
-
var createUUID = () => {
|
|
280
|
-
return import_zod2.z.string().uuid({
|
|
281
|
-
|
|
282
|
-
|
|
298
|
+
}, "zId");
|
|
299
|
+
var createUUID = /* @__PURE__ */ __name(() => {
|
|
300
|
+
return import_zod2.z.string().uuid({
|
|
301
|
+
message: "Invalid UUID"
|
|
302
|
+
}).or(import_zod2.z.instanceof(import_mongoose.Types.UUID));
|
|
303
|
+
}, "createUUID");
|
|
304
|
+
var zUUID = /* @__PURE__ */ __name((ref) => {
|
|
283
305
|
const output = createUUID();
|
|
284
306
|
output.__zm_type = "UUID";
|
|
285
307
|
output.__zm_ref = ref;
|
|
@@ -300,16 +322,18 @@ var zUUID = (ref) => {
|
|
|
300
322
|
return this;
|
|
301
323
|
};
|
|
302
324
|
return output;
|
|
303
|
-
};
|
|
325
|
+
}, "zUUID");
|
|
304
326
|
|
|
305
327
|
// src/index.ts
|
|
306
328
|
function zodSchema(schema, options) {
|
|
307
329
|
const definition = parseObject(schema);
|
|
308
330
|
return new import_mongoose2.Schema(definition, options);
|
|
309
331
|
}
|
|
332
|
+
__name(zodSchema, "zodSchema");
|
|
310
333
|
function zodSchemaRaw(schema) {
|
|
311
334
|
return parseObject(schema);
|
|
312
335
|
}
|
|
336
|
+
__name(zodSchemaRaw, "zodSchemaRaw");
|
|
313
337
|
function parseObject(obj) {
|
|
314
338
|
const object = {};
|
|
315
339
|
for (const [key, field] of Object.entries(obj.shape)) {
|
|
@@ -317,13 +341,13 @@ function parseObject(obj) {
|
|
|
317
341
|
object[key] = parseObject(field);
|
|
318
342
|
} else {
|
|
319
343
|
const f = parseField(field);
|
|
320
|
-
if (!f)
|
|
321
|
-
throw new Error(`Unsupported field type: ${field.constructor}`);
|
|
344
|
+
if (!f) throw new Error(`Unsupported field type: ${field.constructor}`);
|
|
322
345
|
object[key] = f;
|
|
323
346
|
}
|
|
324
347
|
}
|
|
325
348
|
return object;
|
|
326
349
|
}
|
|
350
|
+
__name(parseObject, "parseObject");
|
|
327
351
|
function parseField(field, required = true, def, refinement) {
|
|
328
352
|
if (assertions_default.objectId(field)) {
|
|
329
353
|
const ref = field.__zm_ref;
|
|
@@ -345,50 +369,29 @@ function parseField(field, required = true, def, refinement) {
|
|
|
345
369
|
if (assertions_default.number(field)) {
|
|
346
370
|
const isUnique = field.__zm_unique ?? false;
|
|
347
371
|
const isSparse = field.__zm_sparse ?? false;
|
|
348
|
-
return parseNumber(
|
|
349
|
-
field,
|
|
350
|
-
required,
|
|
351
|
-
def,
|
|
352
|
-
isUnique,
|
|
353
|
-
refinement,
|
|
354
|
-
isSparse
|
|
355
|
-
);
|
|
372
|
+
return parseNumber(field, required, def, isUnique, refinement, isSparse);
|
|
356
373
|
}
|
|
357
374
|
if (assertions_default.string(field)) {
|
|
358
375
|
const isUnique = field.__zm_unique ?? false;
|
|
359
376
|
const isSparse = field.__zm_sparse ?? false;
|
|
360
|
-
return parseString(
|
|
361
|
-
field,
|
|
362
|
-
required,
|
|
363
|
-
def,
|
|
364
|
-
isUnique,
|
|
365
|
-
refinement,
|
|
366
|
-
isSparse
|
|
367
|
-
);
|
|
377
|
+
return parseString(field, required, def, isUnique, refinement, isSparse);
|
|
368
378
|
}
|
|
369
379
|
if (assertions_default.enumerable(field)) {
|
|
370
380
|
return parseEnum(Object.keys(field.Values), required, def);
|
|
371
381
|
}
|
|
382
|
+
if (assertions_default.nativeEnumerable(field)) {
|
|
383
|
+
return parseEnum(Object.values(field._def.values), required, def);
|
|
384
|
+
}
|
|
372
385
|
if (assertions_default.boolean(field)) {
|
|
373
386
|
return parseBoolean(required, def);
|
|
374
387
|
}
|
|
375
388
|
if (assertions_default.date(field)) {
|
|
376
389
|
const isUnique = field.__zm_unique ?? false;
|
|
377
390
|
const isSparse = field.__zm_sparse ?? false;
|
|
378
|
-
return parseDate(
|
|
379
|
-
required,
|
|
380
|
-
def,
|
|
381
|
-
refinement,
|
|
382
|
-
isUnique,
|
|
383
|
-
isSparse
|
|
384
|
-
);
|
|
391
|
+
return parseDate(required, def, refinement, isUnique, isSparse);
|
|
385
392
|
}
|
|
386
393
|
if (assertions_default.array(field)) {
|
|
387
|
-
return parseArray(
|
|
388
|
-
required,
|
|
389
|
-
field.element,
|
|
390
|
-
def
|
|
391
|
-
);
|
|
394
|
+
return parseArray(required, field.element, def);
|
|
392
395
|
}
|
|
393
396
|
if (assertions_default.def(field)) {
|
|
394
397
|
return parseField(field._def.innerType, required, field._def.defaultValue);
|
|
@@ -397,11 +400,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
397
400
|
return parseField(field._def.innerType, false, void 0);
|
|
398
401
|
}
|
|
399
402
|
if (assertions_default.nullable(field)) {
|
|
400
|
-
return parseField(
|
|
401
|
-
field._def.innerType,
|
|
402
|
-
false,
|
|
403
|
-
typeof def !== "undefined" ? def : () => null
|
|
404
|
-
);
|
|
403
|
+
return parseField(field._def.innerType, false, typeof def !== "undefined" ? def : () => null);
|
|
405
404
|
}
|
|
406
405
|
if (assertions_default.union(field)) {
|
|
407
406
|
return parseField(field._def.options[0]);
|
|
@@ -410,11 +409,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
410
409
|
return parseMixed(required, def);
|
|
411
410
|
}
|
|
412
411
|
if (assertions_default.mapOrRecord(field)) {
|
|
413
|
-
return parseMap(
|
|
414
|
-
required,
|
|
415
|
-
field.valueSchema,
|
|
416
|
-
def
|
|
417
|
-
);
|
|
412
|
+
return parseMap(required, field.valueSchema, def);
|
|
418
413
|
}
|
|
419
414
|
if (assertions_default.effect(field)) {
|
|
420
415
|
const effect = field._def.effect;
|
|
@@ -428,6 +423,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
428
423
|
}
|
|
429
424
|
return null;
|
|
430
425
|
}
|
|
426
|
+
__name(parseField, "parseField");
|
|
431
427
|
function parseNumber(field, required = true, def, unique = false, validate, sparse = false) {
|
|
432
428
|
const output = {
|
|
433
429
|
type: Number,
|
|
@@ -438,10 +434,10 @@ function parseNumber(field, required = true, def, unique = false, validate, spar
|
|
|
438
434
|
unique,
|
|
439
435
|
sparse
|
|
440
436
|
};
|
|
441
|
-
if (validate)
|
|
442
|
-
output.validate = validate;
|
|
437
|
+
if (validate) output.validate = validate;
|
|
443
438
|
return output;
|
|
444
439
|
}
|
|
440
|
+
__name(parseNumber, "parseNumber");
|
|
445
441
|
function parseString(field, required = true, def, unique = false, validate, sparse = false) {
|
|
446
442
|
const output = {
|
|
447
443
|
type: String,
|
|
@@ -452,10 +448,10 @@ function parseString(field, required = true, def, unique = false, validate, spar
|
|
|
452
448
|
unique,
|
|
453
449
|
sparse
|
|
454
450
|
};
|
|
455
|
-
if (validate)
|
|
456
|
-
output.validate = validate;
|
|
451
|
+
if (validate) output.validate = validate;
|
|
457
452
|
return output;
|
|
458
453
|
}
|
|
454
|
+
__name(parseString, "parseString");
|
|
459
455
|
function parseEnum(values, required = true, def) {
|
|
460
456
|
return {
|
|
461
457
|
type: String,
|
|
@@ -466,6 +462,7 @@ function parseEnum(values, required = true, def) {
|
|
|
466
462
|
required
|
|
467
463
|
};
|
|
468
464
|
}
|
|
465
|
+
__name(parseEnum, "parseEnum");
|
|
469
466
|
function parseBoolean(required = true, def) {
|
|
470
467
|
return {
|
|
471
468
|
type: Boolean,
|
|
@@ -473,6 +470,7 @@ function parseBoolean(required = true, def) {
|
|
|
473
470
|
required
|
|
474
471
|
};
|
|
475
472
|
}
|
|
473
|
+
__name(parseBoolean, "parseBoolean");
|
|
476
474
|
function parseDate(required = true, def, validate, unique = false, sparse = false) {
|
|
477
475
|
const output = {
|
|
478
476
|
type: Date,
|
|
@@ -481,10 +479,10 @@ function parseDate(required = true, def, validate, unique = false, sparse = fals
|
|
|
481
479
|
unique,
|
|
482
480
|
sparse
|
|
483
481
|
};
|
|
484
|
-
if (validate)
|
|
485
|
-
output.validate = validate;
|
|
482
|
+
if (validate) output.validate = validate;
|
|
486
483
|
return output;
|
|
487
484
|
}
|
|
485
|
+
__name(parseDate, "parseDate");
|
|
488
486
|
function parseObjectId(required = true, ref, unique = false, refPath, sparse = false) {
|
|
489
487
|
const output = {
|
|
490
488
|
type: import_mongoose2.SchemaTypes.ObjectId,
|
|
@@ -492,26 +490,26 @@ function parseObjectId(required = true, ref, unique = false, refPath, sparse = f
|
|
|
492
490
|
unique,
|
|
493
491
|
sparse
|
|
494
492
|
};
|
|
495
|
-
if (ref)
|
|
496
|
-
|
|
497
|
-
if (refPath)
|
|
498
|
-
output.refPath = refPath;
|
|
493
|
+
if (ref) output.ref = ref;
|
|
494
|
+
if (refPath) output.refPath = refPath;
|
|
499
495
|
return output;
|
|
500
496
|
}
|
|
497
|
+
__name(parseObjectId, "parseObjectId");
|
|
501
498
|
function parseArray(required = true, element, def) {
|
|
502
499
|
const innerType = parseField(element);
|
|
503
|
-
if (!innerType)
|
|
504
|
-
throw new Error("Unsupported array type");
|
|
500
|
+
if (!innerType) throw new Error("Unsupported array type");
|
|
505
501
|
return {
|
|
506
|
-
type: [
|
|
502
|
+
type: [
|
|
503
|
+
innerType
|
|
504
|
+
],
|
|
507
505
|
default: def,
|
|
508
506
|
required
|
|
509
507
|
};
|
|
510
508
|
}
|
|
509
|
+
__name(parseArray, "parseArray");
|
|
511
510
|
function parseMap(required = true, valueType, def) {
|
|
512
511
|
const pointer = parseField(valueType);
|
|
513
|
-
if (!pointer)
|
|
514
|
-
throw new Error("Unsupported map value type");
|
|
512
|
+
if (!pointer) throw new Error("Unsupported map value type");
|
|
515
513
|
return {
|
|
516
514
|
type: Map,
|
|
517
515
|
of: pointer,
|
|
@@ -519,6 +517,7 @@ function parseMap(required = true, valueType, def) {
|
|
|
519
517
|
required
|
|
520
518
|
};
|
|
521
519
|
}
|
|
520
|
+
__name(parseMap, "parseMap");
|
|
522
521
|
function parseUUID(required = true, ref, unique = false, refPath, sparse = false) {
|
|
523
522
|
const output = {
|
|
524
523
|
type: import_mongoose2.SchemaTypes.UUID,
|
|
@@ -526,12 +525,11 @@ function parseUUID(required = true, ref, unique = false, refPath, sparse = false
|
|
|
526
525
|
unique,
|
|
527
526
|
sparse
|
|
528
527
|
};
|
|
529
|
-
if (ref)
|
|
530
|
-
|
|
531
|
-
if (refPath)
|
|
532
|
-
output.refPath = refPath;
|
|
528
|
+
if (ref) output.ref = ref;
|
|
529
|
+
if (refPath) output.refPath = refPath;
|
|
533
530
|
return output;
|
|
534
531
|
}
|
|
532
|
+
__name(parseUUID, "parseUUID");
|
|
535
533
|
function parseMixed(required = true, def) {
|
|
536
534
|
return {
|
|
537
535
|
type: import_mongoose2.SchemaTypes.Mixed,
|
|
@@ -539,7 +537,8 @@ function parseMixed(required = true, def) {
|
|
|
539
537
|
required
|
|
540
538
|
};
|
|
541
539
|
}
|
|
542
|
-
|
|
540
|
+
__name(parseMixed, "parseMixed");
|
|
541
|
+
var index_default = zodSchema;
|
|
543
542
|
// Annotate the CommonJS export names for ESM import in node:
|
|
544
543
|
0 && (module.exports = {
|
|
545
544
|
extendZod,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/assertions/constructor.ts","../src/assertions/custom.ts","../src/assertions/instanceOf.ts","../src/assertions/staticNames.ts","../src/assertions/assertions.ts","../src/extension.ts"],"sourcesContent":["import { Schema, type SchemaOptions, SchemaTypes } from \"mongoose\";\nimport type { ZodNumber, ZodObject, ZodRawShape, ZodString, ZodType, z } from \"zod\";\n\nimport zmAssert from \"./assertions/assertions.js\";\nimport type { zm } from \"./mongoose.types.js\";\nexport * from \"./extension.js\";\n\n/**\n * Converts a Zod schema to a Mongoose schema\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchema } from '@zodyac/zod-mongoose';\n * import { model } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const schema = zodSchema(zDoc);\n * const userModel = model('User', schema);\n */\nexport function zodSchema<T extends ZodRawShape>(\n schema: ZodObject<T>,\n options?: SchemaOptions<any>, // TODO: Fix any\n): Schema<z.infer<typeof schema>> {\n const definition = parseObject(schema);\n return new Schema<z.infer<typeof schema>>(definition, options);\n}\n\n/**\n * Converts a Zod schema to a raw Mongoose schema object\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchemaRaw } from '@zodyac/zod-mongoose';\n * import { model, Schema } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const rawSchema = zodSchemaRaw(zDoc);\n * const schema = new Schema(rawSchema);\n * const userModel = model('User', schema);\n */\nexport function zodSchemaRaw<T extends ZodRawShape>(schema: ZodObject<T>): zm._Schema<T> {\n return parseObject(schema);\n}\n\n// Helpers\nfunction parseObject<T extends ZodRawShape>(obj: ZodObject<T>): zm._Schema<T> {\n const object: any = {};\n for (const [key, field] of Object.entries(obj.shape)) {\n if (zmAssert.object(field)) {\n object[key] = parseObject(field);\n } else {\n const f = parseField(field);\n if (!f) throw new Error(`Unsupported field type: ${field.constructor}`);\n\n object[key] = f;\n }\n }\n\n return object;\n}\n\nfunction parseField<T>(\n field: ZodType<T>,\n required = true,\n def?: zm.mDefault<T>,\n refinement?: zm.EffectValidator<T>,\n): zm.mField | null {\n if (zmAssert.objectId(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_sparse;\n return parseObjectId(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.uuid(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_unique;\n return parseUUID(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.object(field)) {\n return parseObject(field);\n }\n\n if (zmAssert.number(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseNumber(\n field,\n required,\n def as zm.mDefault<number>,\n isUnique,\n refinement as zm.EffectValidator<number>,\n isSparse,\n );\n }\n\n if (zmAssert.string(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseString(\n field,\n required,\n def as zm.mDefault<string>,\n isUnique,\n refinement as zm.EffectValidator<string>,\n isSparse,\n );\n }\n\n if (zmAssert.enumerable(field)) {\n return parseEnum(Object.keys(field.Values), required, def as zm.mDefault<string>);\n }\n\n if (zmAssert.boolean(field)) {\n return parseBoolean(required, def as zm.mDefault<boolean>);\n }\n\n if (zmAssert.date(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseDate(\n required,\n def as zm.mDefault<Date>,\n refinement as zm.EffectValidator<Date>,\n isUnique,\n isSparse,\n );\n }\n\n if (zmAssert.array(field)) {\n return parseArray(\n required,\n field.element,\n def as zm.mDefault<T extends Array<infer K> ? K[] : never>,\n );\n }\n\n if (zmAssert.def(field)) {\n return parseField(field._def.innerType, required, field._def.defaultValue);\n }\n\n if (zmAssert.optional(field)) {\n return parseField(field._def.innerType, false, undefined);\n }\n\n if (zmAssert.nullable(field)) {\n return parseField(\n field._def.innerType,\n false,\n (typeof def !== \"undefined\" ? def : () => null) as zm.mDefault<null>,\n );\n }\n\n if (zmAssert.union(field)) {\n return parseField(field._def.options[0]);\n }\n\n if (zmAssert.any(field)) {\n return parseMixed(required, def);\n }\n\n if (zmAssert.mapOrRecord(field)) {\n return parseMap(\n required,\n field.valueSchema,\n def as zm.mDefault<\n Map<\n zm.UnwrapZodType<typeof field.keySchema>,\n zm.UnwrapZodType<typeof field.valueSchema>\n >\n >,\n );\n }\n\n if (zmAssert.effect(field)) {\n const effect = field._def.effect;\n\n if (effect.type === \"refinement\") {\n const validation = (<any>effect).__zm_validation as zm.EffectValidator<T>;\n return parseField(field._def.schema, required, def, validation);\n }\n\n if (effect.type === \"preprocess\" || effect.type === \"transform\") {\n return parseField(field._def.schema, required, def, refinement);\n }\n }\n\n return null;\n}\n\nfunction parseNumber(\n field: ZodNumber,\n required = true,\n def?: zm.mDefault<number>,\n unique = false,\n validate?: zm.EffectValidator<number>,\n sparse = false,\n): zm.mNumber {\n const output: zm.mNumber = {\n type: Number,\n default: def,\n min: field.minValue ?? undefined,\n max: field.maxValue ?? undefined,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseString(\n field: ZodString,\n required = true,\n def?: zm.mDefault<string>,\n unique = false,\n validate?: zm.EffectValidator<string>,\n sparse = false,\n): zm.mString {\n const output: zm.mString = {\n type: String,\n default: def,\n required,\n minLength: field.minLength ?? undefined,\n maxLength: field.maxLength ?? undefined,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseEnum(\n values: string[],\n required = true,\n def?: zm.mDefault<string>,\n): zm.mString {\n return {\n type: String,\n unique: false,\n sparse: false,\n default: def,\n enum: values,\n required,\n };\n}\n\nfunction parseBoolean(required = true, def?: zm.mDefault<boolean>): zm.mBoolean {\n return {\n type: Boolean,\n default: def,\n required,\n };\n}\n\nfunction parseDate(\n required = true,\n def?: zm.mDefault<Date>,\n validate?: zm.EffectValidator<Date>,\n unique = false,\n sparse = false,\n): zm.mDate {\n const output: zm.mDate = {\n type: Date,\n default: def,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseObjectId(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mObjectId {\n const output: zm.mObjectId = {\n type: SchemaTypes.ObjectId,\n required,\n unique,\n sparse,\n };\n\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseArray<T>(\n // biome-ignore lint/style/useDefaultParameterLast: Should be consistent with other functions\n required = true,\n element: ZodType<T>,\n def?: zm.mDefault<T[]>,\n): zm.mArray<T> {\n const innerType = parseField(element);\n if (!innerType) throw new Error(\"Unsupported array type\");\n return {\n type: [innerType as zm._Field<T>],\n default: def,\n required,\n };\n}\n\nfunction parseMap<T, K>(\n // biome-ignore lint/style/useDefaultParameterLast: Consistency with other functions\n required = true,\n valueType: ZodType<K>,\n def?: zm.mDefault<Map<NoInfer<T>, K>>,\n): zm.mMap<T, K> {\n const pointer = parseField(valueType);\n if (!pointer) throw new Error(\"Unsupported map value type\");\n\n return {\n type: Map,\n of: pointer as zm._Field<K>,\n default: def,\n required,\n };\n}\n\nfunction parseUUID(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mUUID {\n const output: zm.mUUID = {\n type: SchemaTypes.UUID,\n required,\n unique,\n sparse,\n };\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseMixed(required = true, def?: unknown): zm.mMixed<unknown> {\n return {\n type: SchemaTypes.Mixed,\n default: def as unknown as any,\n required,\n };\n}\n\nexport default zodSchema;\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Constructor assertions (CommonJS)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the constructor name of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f.constructor.name === \"ZodString\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f.constructor.name === \"ZodNumber\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f.constructor.name === \"ZodObject\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f.constructor.name === \"ZodArray\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f.constructor.name === \"ZodBoolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f.constructor.name === \"ZodEnum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f.constructor.name === \"ZodDate\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f.constructor.name === \"ZodDefault\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f.constructor.name === \"ZodOptional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f.constructor.name === \"ZodNullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f.constructor.name === \"ZodUnion\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f.constructor.name === \"ZodAny\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f.constructor.name === \"ZodMap\" || f.constructor.name === \"ZodRecord\";\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f.constructor.name === \"ZodEffects\";\n },\n};\n","import type { ZodType } from \"zod\";\n\nexport namespace zmAssertIds {\n export function objectId(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"ObjectId\";\n }\n\n export function uuid(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"UUID\";\n }\n}\n","import {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n type ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Instance assertions (ESM)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the instance of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f instanceof ZodString;\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f instanceof ZodNumber;\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f instanceof ZodObject;\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f instanceof ZodArray;\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f instanceof ZodBoolean;\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f instanceof ZodEnum;\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f instanceof ZodDate;\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f instanceof ZodDefault;\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f instanceof ZodOptional;\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f instanceof ZodNullable;\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f instanceof ZodUnion;\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f instanceof ZodAny;\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f instanceof ZodMap || f instanceof ZodRecord;\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f instanceof ZodEffects;\n },\n};\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Static names assertions (Bundlers)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the `__zm_type` property of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return \"__zm_type\" in f && f.__zm_type === \"String\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return \"__zm_type\" in f && f.__zm_type === \"Number\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Object\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Array\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return \"__zm_type\" in f && f.__zm_type === \"Boolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Enum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return \"__zm_type\" in f && f.__zm_type === \"Date\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Default\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Optional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Nullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Union\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return \"__zm_type\" in f && f.__zm_type === \"Any\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return \"__zm_type\" in f && (f.__zm_type === \"Map\" || f.__zm_type === \"Record\");\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Effects\";\n },\n};\n","import type { ZodType } from \"zod\";\nimport { zmAssert as aConstructor } from \"./constructor\";\nimport { zmAssertIds } from \"./custom\";\nimport { zmAssert as aInstance } from \"./instanceOf\";\nimport { zmAssert as aStaticName } from \"./staticNames\";\nimport type { IAsserts } from \"./types\";\n\nconst assertions = [aConstructor, aInstance, aStaticName];\nconst zmAssert = Object.keys(aConstructor)\n .map((key) => key as keyof IAsserts)\n .reduce((acc, key) => {\n (<any>acc[key]) = (f: ZodType<any>) => {\n return assertions.some((assertion) => assertion[key](f));\n };\n\n return acc;\n }, {} as IAsserts);\n\nexport default {\n ...zmAssert,\n ...zmAssertIds,\n};\n","import { Types, isValidObjectId } from \"mongoose\";\nimport { type CustomErrorParams, z } from \"zod\";\n\ndeclare module \"zod\" {\n interface ZodString {\n unique: (arg?: boolean) => ZodString;\n sparse: (arg?: boolean) => ZodString;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodNumber {\n unique: (arg?: boolean) => ZodNumber;\n sparse: (arg?: boolean) => ZodNumber;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodDate {\n unique: (arg?: boolean) => ZodDate;\n sparse: (arg?: boolean) => ZodDate;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodType<\n Output = any,\n Def extends z.ZodTypeDef = z.ZodTypeDef,\n Input = Output,\n > {\n // For future use\n }\n}\n\nlet zod_extended = false;\n/**\n * Extends the Zod library with additional functionality.\n *\n * This function modifies the Zod library to add custom validation and uniqueness checks.\n * It ensures that the extension is only applied once.\n *\n * @param z_0 - The Zod library to extend.\n *\n * @remarks\n * - Overrides `refine` method to `ZodType` that includes additional metadata for validation.\n * - Overrides `unique` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as unique.\n * - Overrides `sparse` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as sparse.\n *\n * @example\n * ```typescript\n * import { z } from \"zod\";\n * import { extendZod } from \"./extension\";\n *\n * extendZod(z);\n *\n * const schema = z.object({\n * name: z.string().unique();\n * });\n * ```\n */\nexport function extendZod(z_0: typeof z) {\n // Prevent zod from being extended multiple times\n if (zod_extended) return;\n zod_extended = true;\n\n // Refine support\n const _refine = z_0.ZodType.prototype.refine;\n z_0.ZodType.prototype.refine = function <T>(\n check: (arg0: T) => boolean,\n opts?: string | CustomErrorParams | ((arg: T) => CustomErrorParams),\n ) {\n const zEffect = _refine.bind(this)(check, opts);\n\n let message: string | undefined | ((v: T) => string | undefined) = undefined;\n if (opts) {\n if (typeof opts === \"string\") message = opts;\n else if (\"message\" in opts) message = opts.message;\n }\n\n (<any>zEffect._def.effect).__zm_validation = {\n validator: check,\n message: message,\n };\n\n return zEffect;\n };\n\n // Unique support\n const UNIQUE_SUPPORT_LIST = [z_0.ZodString, z_0.ZodNumber, z_0.ZodDate] as const;\n\n for (const type of UNIQUE_SUPPORT_LIST) {\n (<any>type.prototype).unique = function (arg = true) {\n (<any>this).__zm_unique = arg;\n return this;\n };\n\n (<any>type.prototype).sparse = function (arg = true) {\n (<any>this).__zm_sparse = arg;\n return this;\n };\n }\n\n // Assign static names to Zod types\n const TypesMap = {\n String: z_0.ZodString,\n Number: z_0.ZodNumber,\n Object: z_0.ZodObject,\n Array: z_0.ZodArray,\n Boolean: z_0.ZodBoolean,\n Enum: z_0.ZodEnum,\n Date: z_0.ZodDate,\n Default: z_0.ZodDefault,\n Optional: z_0.ZodOptional,\n Nullable: z_0.ZodNullable,\n Union: z_0.ZodUnion,\n Any: z_0.ZodAny,\n Map: z_0.ZodMap,\n Record: z_0.ZodRecord,\n Effects: z_0.ZodEffects,\n };\n\n for (const [key, value] of Object.entries(TypesMap)) {\n (<any>value.prototype).__zm_type = key;\n }\n}\n\nexport type TzmId = ReturnType<typeof createId> & {\n unique: (arg?: boolean) => TzmId;\n sparse: (arg?: boolean) => TzmId;\n ref: (arg: string) => TzmId;\n refPath: (arg: string) => TzmId;\n};\n\nconst createId = () => {\n return z\n .string()\n .refine((v) => isValidObjectId(v), { message: \"Invalid ObjectId\" })\n .or(z.instanceof(Types.ObjectId));\n};\n\nexport const zId = (ref?: string): TzmId => {\n const output = createId();\n\n (<any>output).__zm_type = \"ObjectId\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmId;\n};\n\nexport type TzmUUID = ReturnType<typeof createUUID> & {\n unique: (arg?: boolean) => TzmUUID;\n sparse: (arg?: boolean) => TzmUUID;\n ref: (arg: string) => TzmUUID;\n refPath: (arg: string) => TzmUUID;\n};\n\nconst createUUID = () => {\n return z.string().uuid({ message: \"Invalid UUID\" }).or(z.instanceof(Types.UUID));\n};\n\nexport const zUUID = (ref?: string): TzmUUID => {\n const output = createUUID();\n\n (<any>output).__zm_type = \"UUID\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmUUID;\n};\n"],"mappings":"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","names":["import_mongoose","zmAssertIds","zmAssert","zmAssert","zmAssert","import_zod","ref"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/assertions/constructor.ts","../src/assertions/custom.ts","../src/assertions/instanceOf.ts","../src/assertions/staticNames.ts","../src/assertions/assertions.ts","../src/extension.ts"],"sourcesContent":["import { Schema, type SchemaOptions, SchemaTypes } from \"mongoose\";\nimport type { ZodNumber, ZodObject, ZodRawShape, ZodString, ZodType, z } from \"zod\";\n\nimport zmAssert from \"./assertions/assertions.js\";\nimport type { zm } from \"./mongoose.types.js\";\n\nexport * from \"./extension.js\";\n\n/**\n * Converts a Zod schema to a Mongoose schema\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchema } from '@zodyac/zod-mongoose';\n * import { model } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const schema = zodSchema(zDoc);\n * const userModel = model('User', schema);\n */\nexport function zodSchema<T extends ZodRawShape>(\n schema: ZodObject<T>,\n options?: SchemaOptions<any>, // TODO: Fix any\n): Schema<z.infer<typeof schema>> {\n const definition = parseObject(schema);\n return new Schema<z.infer<typeof schema>>(definition, options);\n}\n\n/**\n * Converts a Zod schema to a raw Mongoose schema object\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchemaRaw } from '@zodyac/zod-mongoose';\n * import { model, Schema } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const rawSchema = zodSchemaRaw(zDoc);\n * const schema = new Schema(rawSchema);\n * const userModel = model('User', schema);\n */\nexport function zodSchemaRaw<T extends ZodRawShape>(schema: ZodObject<T>): zm._Schema<T> {\n return parseObject(schema);\n}\n\n// Helpers\nfunction parseObject<T extends ZodRawShape>(obj: ZodObject<T>): zm._Schema<T> {\n const object: any = {};\n for (const [key, field] of Object.entries(obj.shape)) {\n if (zmAssert.object(field)) {\n object[key] = parseObject(field);\n } else {\n const f = parseField(field);\n if (!f) throw new Error(`Unsupported field type: ${field.constructor}`);\n\n object[key] = f;\n }\n }\n\n return object;\n}\n\nfunction parseField<T>(\n field: ZodType<T>,\n required = true,\n def?: zm.mDefault<T>,\n refinement?: zm.EffectValidator<T>,\n): zm.mField | null {\n if (zmAssert.objectId(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_sparse;\n return parseObjectId(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.uuid(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_unique;\n return parseUUID(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.object(field)) {\n return parseObject(field);\n }\n\n if (zmAssert.number(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseNumber(\n field,\n required,\n def as zm.mDefault<number>,\n isUnique,\n refinement as zm.EffectValidator<number>,\n isSparse,\n );\n }\n\n if (zmAssert.string(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseString(\n field,\n required,\n def as zm.mDefault<string>,\n isUnique,\n refinement as zm.EffectValidator<string>,\n isSparse,\n );\n }\n\n if (zmAssert.enumerable(field)) {\n return parseEnum(Object.keys(field.Values), required, def as zm.mDefault<string>);\n }\n\n if (zmAssert.nativeEnumerable(field)) {\n return parseEnum(\n Object.values(field._def.values),\n required,\n def as zm.mDefault<string>,\n );\n }\n\n if (zmAssert.boolean(field)) {\n return parseBoolean(required, def as zm.mDefault<boolean>);\n }\n\n if (zmAssert.date(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseDate(\n required,\n def as zm.mDefault<Date>,\n refinement as zm.EffectValidator<Date>,\n isUnique,\n isSparse,\n );\n }\n\n if (zmAssert.array(field)) {\n return parseArray(\n required,\n field.element,\n def as zm.mDefault<T extends Array<infer K> ? K[] : never>,\n );\n }\n\n if (zmAssert.def(field)) {\n return parseField(field._def.innerType, required, field._def.defaultValue);\n }\n\n if (zmAssert.optional(field)) {\n return parseField(field._def.innerType, false, undefined);\n }\n\n if (zmAssert.nullable(field)) {\n return parseField(\n field._def.innerType,\n false,\n (typeof def !== \"undefined\" ? def : () => null) as zm.mDefault<null>,\n );\n }\n\n if (zmAssert.union(field)) {\n return parseField(field._def.options[0]);\n }\n\n if (zmAssert.any(field)) {\n return parseMixed(required, def);\n }\n\n if (zmAssert.mapOrRecord(field)) {\n return parseMap(\n required,\n field.valueSchema,\n def as zm.mDefault<\n Map<\n zm.UnwrapZodType<typeof field.keySchema>,\n zm.UnwrapZodType<typeof field.valueSchema>\n >\n >,\n );\n }\n\n if (zmAssert.effect(field)) {\n const effect = field._def.effect;\n\n if (effect.type === \"refinement\") {\n const validation = (<any>effect).__zm_validation as zm.EffectValidator<T>;\n return parseField(field._def.schema, required, def, validation);\n }\n\n if (effect.type === \"preprocess\" || effect.type === \"transform\") {\n return parseField(field._def.schema, required, def, refinement);\n }\n }\n\n return null;\n}\n\nfunction parseNumber(\n field: ZodNumber,\n required = true,\n def?: zm.mDefault<number>,\n unique = false,\n validate?: zm.EffectValidator<number>,\n sparse = false,\n): zm.mNumber {\n const output: zm.mNumber = {\n type: Number,\n default: def,\n min: field.minValue ?? undefined,\n max: field.maxValue ?? undefined,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseString(\n field: ZodString,\n required = true,\n def?: zm.mDefault<string>,\n unique = false,\n validate?: zm.EffectValidator<string>,\n sparse = false,\n): zm.mString {\n const output: zm.mString = {\n type: String,\n default: def,\n required,\n minLength: field.minLength ?? undefined,\n maxLength: field.maxLength ?? undefined,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseEnum(\n values: string[],\n required = true,\n def?: zm.mDefault<string>,\n): zm.mString {\n return {\n type: String,\n unique: false,\n sparse: false,\n default: def,\n enum: values,\n required,\n };\n}\n\nfunction parseBoolean(required = true, def?: zm.mDefault<boolean>): zm.mBoolean {\n return {\n type: Boolean,\n default: def,\n required,\n };\n}\n\nfunction parseDate(\n required = true,\n def?: zm.mDefault<Date>,\n validate?: zm.EffectValidator<Date>,\n unique = false,\n sparse = false,\n): zm.mDate {\n const output: zm.mDate = {\n type: Date,\n default: def,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseObjectId(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mObjectId {\n const output: zm.mObjectId = {\n type: SchemaTypes.ObjectId,\n required,\n unique,\n sparse,\n };\n\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseArray<T>(\n required = true,\n element: ZodType<T>,\n def?: zm.mDefault<T[]>,\n): zm.mArray<T> {\n const innerType = parseField(element);\n if (!innerType) throw new Error(\"Unsupported array type\");\n return {\n type: [innerType as zm._Field<T>],\n default: def,\n required,\n };\n}\n\nfunction parseMap<T, K>(\n required = true,\n valueType: ZodType<K>,\n def?: zm.mDefault<Map<NoInfer<T>, K>>,\n): zm.mMap<T, K> {\n const pointer = parseField(valueType);\n if (!pointer) throw new Error(\"Unsupported map value type\");\n\n return {\n type: Map,\n of: pointer as zm._Field<K>,\n default: def,\n required,\n };\n}\n\nfunction parseUUID(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mUUID {\n const output: zm.mUUID = {\n type: SchemaTypes.UUID,\n required,\n unique,\n sparse,\n };\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseMixed(required = true, def?: unknown): zm.mMixed<unknown> {\n return {\n type: SchemaTypes.Mixed,\n default: def as unknown as any,\n required,\n };\n}\n\nexport default zodSchema;\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNativeEnum,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Constructor assertions (CommonJS)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the constructor name of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f.constructor.name === \"ZodString\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f.constructor.name === \"ZodNumber\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f.constructor.name === \"ZodObject\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f.constructor.name === \"ZodArray\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f.constructor.name === \"ZodBoolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f.constructor.name === \"ZodEnum\";\n },\n\n nativeEnumerable(f: ZodType<any>): f is ZodNativeEnum<any> {\n return f.constructor.name === \"ZodNativeEnum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f.constructor.name === \"ZodDate\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f.constructor.name === \"ZodDefault\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f.constructor.name === \"ZodOptional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f.constructor.name === \"ZodNullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f.constructor.name === \"ZodUnion\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f.constructor.name === \"ZodAny\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f.constructor.name === \"ZodMap\" || f.constructor.name === \"ZodRecord\";\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f.constructor.name === \"ZodEffects\";\n },\n};\n","import type { ZodType } from \"zod\";\n\nexport namespace zmAssertIds {\n export function objectId(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"ObjectId\";\n }\n\n export function uuid(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"UUID\";\n }\n}\n","import {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNativeEnum,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n type ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Instance assertions (ESM)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the instance of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f instanceof ZodString;\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f instanceof ZodNumber;\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f instanceof ZodObject;\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f instanceof ZodArray;\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f instanceof ZodBoolean;\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f instanceof ZodEnum;\n },\n\n nativeEnumerable(f: ZodType<any>): f is ZodNativeEnum<any> {\n return f instanceof ZodNativeEnum;\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f instanceof ZodDate;\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f instanceof ZodDefault;\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f instanceof ZodOptional;\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f instanceof ZodNullable;\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f instanceof ZodUnion;\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f instanceof ZodAny;\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f instanceof ZodMap || f instanceof ZodRecord;\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f instanceof ZodEffects;\n },\n};\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNativeEnum,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Static names assertions (Bundlers)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the `__zm_type` property of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return \"__zm_type\" in f && f.__zm_type === \"String\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return \"__zm_type\" in f && f.__zm_type === \"Number\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Object\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Array\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return \"__zm_type\" in f && f.__zm_type === \"Boolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Enum\";\n },\n\n nativeEnumerable(f: ZodType<any>): f is ZodNativeEnum<any> {\n return \"__zm_type\" in f && f.__zm_type === \"NativeEnum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return \"__zm_type\" in f && f.__zm_type === \"Date\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Default\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Optional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Nullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Union\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return \"__zm_type\" in f && f.__zm_type === \"Any\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return \"__zm_type\" in f && (f.__zm_type === \"Map\" || f.__zm_type === \"Record\");\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Effects\";\n },\n};\n","import type { ZodType } from \"zod\";\nimport { zmAssert as aConstructor } from \"./constructor\";\nimport { zmAssertIds } from \"./custom\";\nimport { zmAssert as aInstance } from \"./instanceOf\";\nimport { zmAssert as aStaticName } from \"./staticNames\";\nimport type { IAsserts } from \"./types\";\n\nconst assertions = [aConstructor, aInstance, aStaticName];\nconst zmAssert = Object.keys(aConstructor)\n .map((key) => key as keyof IAsserts)\n .reduce((acc, key) => {\n (<any>acc[key]) = (f: ZodType<any>) => {\n return assertions.some((assertion) => assertion[key](f));\n };\n\n return acc;\n }, {} as IAsserts);\n\nexport default {\n ...zmAssert,\n ...zmAssertIds,\n};\n","import { isValidObjectId, Types } from \"mongoose\";\nimport { type CustomErrorParams, z } from \"zod\";\n\ndeclare module \"zod\" {\n interface ZodString {\n unique: (arg?: boolean) => ZodString;\n sparse: (arg?: boolean) => ZodString;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodNumber {\n unique: (arg?: boolean) => ZodNumber;\n sparse: (arg?: boolean) => ZodNumber;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodDate {\n unique: (arg?: boolean) => ZodDate;\n sparse: (arg?: boolean) => ZodDate;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodType<\n Output = any,\n // biome-ignore lint/correctness/noUnusedVariables: For future use\n Def extends z.ZodTypeDef = z.ZodTypeDef,\n // biome-ignore lint/correctness/noUnusedVariables: For future use\n Input = Output,\n > {}\n}\n\nlet zod_extended = false;\n/**\n * Extends the Zod library with additional functionality.\n *\n * This function modifies the Zod library to add custom validation and uniqueness checks.\n * It ensures that the extension is only applied once.\n *\n * @param z_0 - The Zod library to extend.\n *\n * @remarks\n * - Overrides `refine` method to `ZodType` that includes additional metadata for validation.\n * - Overrides `unique` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as unique.\n * - Overrides `sparse` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as sparse.\n *\n * @example\n * ```typescript\n * import { z } from \"zod\";\n * import { extendZod } from \"./extension\";\n *\n * extendZod(z);\n *\n * const schema = z.object({\n * name: z.string().unique();\n * });\n * ```\n */\nexport function extendZod(z_0: typeof z) {\n // Prevent zod from being extended multiple times\n if (zod_extended) return;\n zod_extended = true;\n\n // Refine support\n const _refine = z_0.ZodType.prototype.refine;\n z_0.ZodType.prototype.refine = function <T>(\n check: (arg0: T) => boolean,\n opts?: string | CustomErrorParams | ((arg: T) => CustomErrorParams),\n ) {\n const zEffect = _refine.bind(this)(check, opts);\n\n let message: string | undefined | ((v: T) => string | undefined);\n if (opts) {\n if (typeof opts === \"string\") message = opts;\n else if (\"message\" in opts) message = opts.message;\n }\n\n (<any>zEffect._def.effect).__zm_validation = {\n validator: check,\n message: message,\n };\n\n return zEffect;\n };\n\n // Unique support\n const UNIQUE_SUPPORT_LIST = [z_0.ZodString, z_0.ZodNumber, z_0.ZodDate] as const;\n\n for (const type of UNIQUE_SUPPORT_LIST) {\n (<any>type.prototype).unique = function (arg = true) {\n (<any>this).__zm_unique = arg;\n return this;\n };\n\n (<any>type.prototype).sparse = function (arg = true) {\n (<any>this).__zm_sparse = arg;\n return this;\n };\n }\n\n // Assign static names to Zod types\n const TypesMap = {\n String: z_0.ZodString,\n Number: z_0.ZodNumber,\n Object: z_0.ZodObject,\n Array: z_0.ZodArray,\n Boolean: z_0.ZodBoolean,\n Enum: z_0.ZodEnum,\n Date: z_0.ZodDate,\n Default: z_0.ZodDefault,\n Optional: z_0.ZodOptional,\n Nullable: z_0.ZodNullable,\n Union: z_0.ZodUnion,\n Any: z_0.ZodAny,\n Map: z_0.ZodMap,\n Record: z_0.ZodRecord,\n Effects: z_0.ZodEffects,\n };\n\n for (const [key, value] of Object.entries(TypesMap)) {\n (<any>value.prototype).__zm_type = key;\n }\n}\n\nexport type TzmId = ReturnType<typeof createId> & {\n unique: (arg?: boolean) => TzmId;\n sparse: (arg?: boolean) => TzmId;\n ref: (arg: string) => TzmId;\n refPath: (arg: string) => TzmId;\n};\n\nconst createId = () => {\n return z\n .string()\n .refine((v) => isValidObjectId(v), { message: \"Invalid ObjectId\" })\n .or(z.instanceof(Types.ObjectId));\n};\n\nexport const zId = (ref?: string): TzmId => {\n const output = createId();\n\n (<any>output).__zm_type = \"ObjectId\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmId;\n};\n\nexport type TzmUUID = ReturnType<typeof createUUID> & {\n unique: (arg?: boolean) => TzmUUID;\n sparse: (arg?: boolean) => TzmUUID;\n ref: (arg: string) => TzmUUID;\n refPath: (arg: string) => TzmUUID;\n};\n\nconst createUUID = () => {\n return z.string().uuid({ message: \"Invalid UUID\" }).or(z.instanceof(Types.UUID));\n};\n\nexport const zUUID = (ref?: string): TzmUUID => {\n const output = createUUID();\n\n (<any>output).__zm_type = \"UUID\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmUUID;\n};\n"],"mappings":"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","names":["import_mongoose","zmAssert","string","f","name","number","object","array","boolean","enumerable","nativeEnumerable","date","def","optional","nullable","union","any","mapOrRecord","effect","zmAssertIds","objectId","f","__zm_type","uuid","zmAssert","string","f","ZodString","number","ZodNumber","object","ZodObject","array","ZodArray","boolean","ZodBoolean","enumerable","ZodEnum","nativeEnumerable","ZodNativeEnum","date","ZodDate","def","ZodDefault","optional","ZodOptional","nullable","ZodNullable","union","ZodUnion","any","ZodAny","mapOrRecord","ZodMap","ZodRecord","effect","ZodEffects","zmAssert","string","f","__zm_type","number","object","array","boolean","enumerable","nativeEnumerable","date","def","optional","nullable","union","any","mapOrRecord","effect","assertions","aConstructor","aInstance","aStaticName","zmAssert","Object","keys","map","key","reduce","acc","f","some","assertion","zmAssertIds","import_zod","zod_extended","extendZod","z_0","_refine","ZodType","prototype","refine","check","opts","zEffect","bind","message","_def","effect","__zm_validation","validator","UNIQUE_SUPPORT_LIST","ZodString","ZodNumber","ZodDate","type","unique","arg","__zm_unique","sparse","__zm_sparse","TypesMap","String","Number","Object","ZodObject","Array","ZodArray","Boolean","ZodBoolean","Enum","ZodEnum","Date","Default","ZodDefault","Optional","ZodOptional","Nullable","ZodNullable","Union","ZodUnion","Any","ZodAny","Map","ZodMap","Record","ZodRecord","Effects","ZodEffects","key","value","entries","__zm_type","createId","z","string","v","isValidObjectId","or","instanceof","Types","ObjectId","zId","ref","output","__zm_ref","refPath","__zm_refPath","val","createUUID","uuid","UUID","zUUID","zodSchema","schema","options","definition","parseObject","Schema","zodSchemaRaw","obj","object","key","field","Object","entries","shape","zmAssert","f","parseField","Error","required","def","refinement","objectId","ref","__zm_ref","refPath","__zm_refPath","unique","__zm_unique","sparse","__zm_sparse","parseObjectId","uuid","parseUUID","number","isUnique","isSparse","parseNumber","string","parseString","enumerable","parseEnum","keys","Values","nativeEnumerable","values","_def","boolean","parseBoolean","date","parseDate","array","parseArray","element","innerType","defaultValue","optional","undefined","nullable","union","any","parseMixed","mapOrRecord","parseMap","valueSchema","effect","type","validation","__zm_validation","validate","output","Number","default","min","minValue","max","maxValue","String","minLength","maxLength","enum","Boolean","Date","SchemaTypes","ObjectId","valueType","pointer","Map","of","UUID","Mixed"]}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
1
4
|
// src/index.ts
|
|
2
5
|
import { Schema, SchemaTypes } from "mongoose";
|
|
3
6
|
|
|
@@ -21,6 +24,9 @@ var zmAssert = {
|
|
|
21
24
|
enumerable(f) {
|
|
22
25
|
return f.constructor.name === "ZodEnum";
|
|
23
26
|
},
|
|
27
|
+
nativeEnumerable(f) {
|
|
28
|
+
return f.constructor.name === "ZodNativeEnum";
|
|
29
|
+
},
|
|
24
30
|
date(f) {
|
|
25
31
|
return f.constructor.name === "ZodDate";
|
|
26
32
|
},
|
|
@@ -48,36 +54,22 @@ var zmAssert = {
|
|
|
48
54
|
};
|
|
49
55
|
|
|
50
56
|
// src/assertions/custom.ts
|
|
51
|
-
|
|
52
|
-
((zmAssertIds2) => {
|
|
57
|
+
(function(zmAssertIds2) {
|
|
53
58
|
function objectId(f) {
|
|
54
59
|
return "__zm_type" in f && f.__zm_type === "ObjectId";
|
|
55
60
|
}
|
|
61
|
+
__name(objectId, "objectId");
|
|
56
62
|
zmAssertIds2.objectId = objectId;
|
|
57
63
|
function uuid(f) {
|
|
58
64
|
return "__zm_type" in f && f.__zm_type === "UUID";
|
|
59
65
|
}
|
|
66
|
+
__name(uuid, "uuid");
|
|
60
67
|
zmAssertIds2.uuid = uuid;
|
|
61
68
|
})(zmAssertIds || (zmAssertIds = {}));
|
|
69
|
+
var zmAssertIds;
|
|
62
70
|
|
|
63
71
|
// src/assertions/instanceOf.ts
|
|
64
|
-
import {
|
|
65
|
-
ZodAny,
|
|
66
|
-
ZodArray,
|
|
67
|
-
ZodBoolean,
|
|
68
|
-
ZodDate,
|
|
69
|
-
ZodDefault,
|
|
70
|
-
ZodEffects,
|
|
71
|
-
ZodEnum,
|
|
72
|
-
ZodMap,
|
|
73
|
-
ZodNullable,
|
|
74
|
-
ZodNumber,
|
|
75
|
-
ZodObject,
|
|
76
|
-
ZodOptional,
|
|
77
|
-
ZodRecord,
|
|
78
|
-
ZodString,
|
|
79
|
-
ZodUnion
|
|
80
|
-
} from "zod";
|
|
72
|
+
import { ZodAny, ZodArray, ZodBoolean, ZodDate, ZodDefault, ZodEffects, ZodEnum, ZodMap, ZodNativeEnum, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodRecord, ZodString, ZodUnion } from "zod";
|
|
81
73
|
var zmAssert2 = {
|
|
82
74
|
string(f) {
|
|
83
75
|
return f instanceof ZodString;
|
|
@@ -97,6 +89,9 @@ var zmAssert2 = {
|
|
|
97
89
|
enumerable(f) {
|
|
98
90
|
return f instanceof ZodEnum;
|
|
99
91
|
},
|
|
92
|
+
nativeEnumerable(f) {
|
|
93
|
+
return f instanceof ZodNativeEnum;
|
|
94
|
+
},
|
|
100
95
|
date(f) {
|
|
101
96
|
return f instanceof ZodDate;
|
|
102
97
|
},
|
|
@@ -143,6 +138,9 @@ var zmAssert3 = {
|
|
|
143
138
|
enumerable(f) {
|
|
144
139
|
return "__zm_type" in f && f.__zm_type === "Enum";
|
|
145
140
|
},
|
|
141
|
+
nativeEnumerable(f) {
|
|
142
|
+
return "__zm_type" in f && f.__zm_type === "NativeEnum";
|
|
143
|
+
},
|
|
146
144
|
date(f) {
|
|
147
145
|
return "__zm_type" in f && f.__zm_type === "Date";
|
|
148
146
|
},
|
|
@@ -170,7 +168,11 @@ var zmAssert3 = {
|
|
|
170
168
|
};
|
|
171
169
|
|
|
172
170
|
// src/assertions/assertions.ts
|
|
173
|
-
var assertions = [
|
|
171
|
+
var assertions = [
|
|
172
|
+
zmAssert,
|
|
173
|
+
zmAssert2,
|
|
174
|
+
zmAssert3
|
|
175
|
+
];
|
|
174
176
|
var zmAssert4 = Object.keys(zmAssert).map((key) => key).reduce((acc, key) => {
|
|
175
177
|
acc[key] = (f) => {
|
|
176
178
|
return assertions.some((assertion) => assertion[key](f));
|
|
@@ -183,22 +185,19 @@ var assertions_default = {
|
|
|
183
185
|
};
|
|
184
186
|
|
|
185
187
|
// src/extension.ts
|
|
186
|
-
import {
|
|
188
|
+
import { isValidObjectId, Types } from "mongoose";
|
|
187
189
|
import { z } from "zod";
|
|
188
190
|
var zod_extended = false;
|
|
189
191
|
function extendZod(z_0) {
|
|
190
|
-
if (zod_extended)
|
|
191
|
-
return;
|
|
192
|
+
if (zod_extended) return;
|
|
192
193
|
zod_extended = true;
|
|
193
194
|
const _refine = z_0.ZodType.prototype.refine;
|
|
194
195
|
z_0.ZodType.prototype.refine = function(check, opts) {
|
|
195
196
|
const zEffect = _refine.bind(this)(check, opts);
|
|
196
|
-
let message
|
|
197
|
+
let message;
|
|
197
198
|
if (opts) {
|
|
198
|
-
if (typeof opts === "string")
|
|
199
|
-
|
|
200
|
-
else if ("message" in opts)
|
|
201
|
-
message = opts.message;
|
|
199
|
+
if (typeof opts === "string") message = opts;
|
|
200
|
+
else if ("message" in opts) message = opts.message;
|
|
202
201
|
}
|
|
203
202
|
zEffect._def.effect.__zm_validation = {
|
|
204
203
|
validator: check,
|
|
@@ -206,7 +205,11 @@ function extendZod(z_0) {
|
|
|
206
205
|
};
|
|
207
206
|
return zEffect;
|
|
208
207
|
};
|
|
209
|
-
const UNIQUE_SUPPORT_LIST = [
|
|
208
|
+
const UNIQUE_SUPPORT_LIST = [
|
|
209
|
+
z_0.ZodString,
|
|
210
|
+
z_0.ZodNumber,
|
|
211
|
+
z_0.ZodDate
|
|
212
|
+
];
|
|
210
213
|
for (const type of UNIQUE_SUPPORT_LIST) {
|
|
211
214
|
type.prototype.unique = function(arg = true) {
|
|
212
215
|
this.__zm_unique = arg;
|
|
@@ -238,10 +241,13 @@ function extendZod(z_0) {
|
|
|
238
241
|
value.prototype.__zm_type = key;
|
|
239
242
|
}
|
|
240
243
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
244
|
+
__name(extendZod, "extendZod");
|
|
245
|
+
var createId = /* @__PURE__ */ __name(() => {
|
|
246
|
+
return z.string().refine((v) => isValidObjectId(v), {
|
|
247
|
+
message: "Invalid ObjectId"
|
|
248
|
+
}).or(z.instanceof(Types.ObjectId));
|
|
249
|
+
}, "createId");
|
|
250
|
+
var zId = /* @__PURE__ */ __name((ref) => {
|
|
245
251
|
const output = createId();
|
|
246
252
|
output.__zm_type = "ObjectId";
|
|
247
253
|
output.__zm_ref = ref;
|
|
@@ -262,11 +268,13 @@ var zId = (ref) => {
|
|
|
262
268
|
return this;
|
|
263
269
|
};
|
|
264
270
|
return output;
|
|
265
|
-
};
|
|
266
|
-
var createUUID = () => {
|
|
267
|
-
return z.string().uuid({
|
|
268
|
-
|
|
269
|
-
|
|
271
|
+
}, "zId");
|
|
272
|
+
var createUUID = /* @__PURE__ */ __name(() => {
|
|
273
|
+
return z.string().uuid({
|
|
274
|
+
message: "Invalid UUID"
|
|
275
|
+
}).or(z.instanceof(Types.UUID));
|
|
276
|
+
}, "createUUID");
|
|
277
|
+
var zUUID = /* @__PURE__ */ __name((ref) => {
|
|
270
278
|
const output = createUUID();
|
|
271
279
|
output.__zm_type = "UUID";
|
|
272
280
|
output.__zm_ref = ref;
|
|
@@ -287,16 +295,18 @@ var zUUID = (ref) => {
|
|
|
287
295
|
return this;
|
|
288
296
|
};
|
|
289
297
|
return output;
|
|
290
|
-
};
|
|
298
|
+
}, "zUUID");
|
|
291
299
|
|
|
292
300
|
// src/index.ts
|
|
293
301
|
function zodSchema(schema, options) {
|
|
294
302
|
const definition = parseObject(schema);
|
|
295
303
|
return new Schema(definition, options);
|
|
296
304
|
}
|
|
305
|
+
__name(zodSchema, "zodSchema");
|
|
297
306
|
function zodSchemaRaw(schema) {
|
|
298
307
|
return parseObject(schema);
|
|
299
308
|
}
|
|
309
|
+
__name(zodSchemaRaw, "zodSchemaRaw");
|
|
300
310
|
function parseObject(obj) {
|
|
301
311
|
const object = {};
|
|
302
312
|
for (const [key, field] of Object.entries(obj.shape)) {
|
|
@@ -304,13 +314,13 @@ function parseObject(obj) {
|
|
|
304
314
|
object[key] = parseObject(field);
|
|
305
315
|
} else {
|
|
306
316
|
const f = parseField(field);
|
|
307
|
-
if (!f)
|
|
308
|
-
throw new Error(`Unsupported field type: ${field.constructor}`);
|
|
317
|
+
if (!f) throw new Error(`Unsupported field type: ${field.constructor}`);
|
|
309
318
|
object[key] = f;
|
|
310
319
|
}
|
|
311
320
|
}
|
|
312
321
|
return object;
|
|
313
322
|
}
|
|
323
|
+
__name(parseObject, "parseObject");
|
|
314
324
|
function parseField(field, required = true, def, refinement) {
|
|
315
325
|
if (assertions_default.objectId(field)) {
|
|
316
326
|
const ref = field.__zm_ref;
|
|
@@ -332,50 +342,29 @@ function parseField(field, required = true, def, refinement) {
|
|
|
332
342
|
if (assertions_default.number(field)) {
|
|
333
343
|
const isUnique = field.__zm_unique ?? false;
|
|
334
344
|
const isSparse = field.__zm_sparse ?? false;
|
|
335
|
-
return parseNumber(
|
|
336
|
-
field,
|
|
337
|
-
required,
|
|
338
|
-
def,
|
|
339
|
-
isUnique,
|
|
340
|
-
refinement,
|
|
341
|
-
isSparse
|
|
342
|
-
);
|
|
345
|
+
return parseNumber(field, required, def, isUnique, refinement, isSparse);
|
|
343
346
|
}
|
|
344
347
|
if (assertions_default.string(field)) {
|
|
345
348
|
const isUnique = field.__zm_unique ?? false;
|
|
346
349
|
const isSparse = field.__zm_sparse ?? false;
|
|
347
|
-
return parseString(
|
|
348
|
-
field,
|
|
349
|
-
required,
|
|
350
|
-
def,
|
|
351
|
-
isUnique,
|
|
352
|
-
refinement,
|
|
353
|
-
isSparse
|
|
354
|
-
);
|
|
350
|
+
return parseString(field, required, def, isUnique, refinement, isSparse);
|
|
355
351
|
}
|
|
356
352
|
if (assertions_default.enumerable(field)) {
|
|
357
353
|
return parseEnum(Object.keys(field.Values), required, def);
|
|
358
354
|
}
|
|
355
|
+
if (assertions_default.nativeEnumerable(field)) {
|
|
356
|
+
return parseEnum(Object.values(field._def.values), required, def);
|
|
357
|
+
}
|
|
359
358
|
if (assertions_default.boolean(field)) {
|
|
360
359
|
return parseBoolean(required, def);
|
|
361
360
|
}
|
|
362
361
|
if (assertions_default.date(field)) {
|
|
363
362
|
const isUnique = field.__zm_unique ?? false;
|
|
364
363
|
const isSparse = field.__zm_sparse ?? false;
|
|
365
|
-
return parseDate(
|
|
366
|
-
required,
|
|
367
|
-
def,
|
|
368
|
-
refinement,
|
|
369
|
-
isUnique,
|
|
370
|
-
isSparse
|
|
371
|
-
);
|
|
364
|
+
return parseDate(required, def, refinement, isUnique, isSparse);
|
|
372
365
|
}
|
|
373
366
|
if (assertions_default.array(field)) {
|
|
374
|
-
return parseArray(
|
|
375
|
-
required,
|
|
376
|
-
field.element,
|
|
377
|
-
def
|
|
378
|
-
);
|
|
367
|
+
return parseArray(required, field.element, def);
|
|
379
368
|
}
|
|
380
369
|
if (assertions_default.def(field)) {
|
|
381
370
|
return parseField(field._def.innerType, required, field._def.defaultValue);
|
|
@@ -384,11 +373,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
384
373
|
return parseField(field._def.innerType, false, void 0);
|
|
385
374
|
}
|
|
386
375
|
if (assertions_default.nullable(field)) {
|
|
387
|
-
return parseField(
|
|
388
|
-
field._def.innerType,
|
|
389
|
-
false,
|
|
390
|
-
typeof def !== "undefined" ? def : () => null
|
|
391
|
-
);
|
|
376
|
+
return parseField(field._def.innerType, false, typeof def !== "undefined" ? def : () => null);
|
|
392
377
|
}
|
|
393
378
|
if (assertions_default.union(field)) {
|
|
394
379
|
return parseField(field._def.options[0]);
|
|
@@ -397,11 +382,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
397
382
|
return parseMixed(required, def);
|
|
398
383
|
}
|
|
399
384
|
if (assertions_default.mapOrRecord(field)) {
|
|
400
|
-
return parseMap(
|
|
401
|
-
required,
|
|
402
|
-
field.valueSchema,
|
|
403
|
-
def
|
|
404
|
-
);
|
|
385
|
+
return parseMap(required, field.valueSchema, def);
|
|
405
386
|
}
|
|
406
387
|
if (assertions_default.effect(field)) {
|
|
407
388
|
const effect = field._def.effect;
|
|
@@ -415,6 +396,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
415
396
|
}
|
|
416
397
|
return null;
|
|
417
398
|
}
|
|
399
|
+
__name(parseField, "parseField");
|
|
418
400
|
function parseNumber(field, required = true, def, unique = false, validate, sparse = false) {
|
|
419
401
|
const output = {
|
|
420
402
|
type: Number,
|
|
@@ -425,10 +407,10 @@ function parseNumber(field, required = true, def, unique = false, validate, spar
|
|
|
425
407
|
unique,
|
|
426
408
|
sparse
|
|
427
409
|
};
|
|
428
|
-
if (validate)
|
|
429
|
-
output.validate = validate;
|
|
410
|
+
if (validate) output.validate = validate;
|
|
430
411
|
return output;
|
|
431
412
|
}
|
|
413
|
+
__name(parseNumber, "parseNumber");
|
|
432
414
|
function parseString(field, required = true, def, unique = false, validate, sparse = false) {
|
|
433
415
|
const output = {
|
|
434
416
|
type: String,
|
|
@@ -439,10 +421,10 @@ function parseString(field, required = true, def, unique = false, validate, spar
|
|
|
439
421
|
unique,
|
|
440
422
|
sparse
|
|
441
423
|
};
|
|
442
|
-
if (validate)
|
|
443
|
-
output.validate = validate;
|
|
424
|
+
if (validate) output.validate = validate;
|
|
444
425
|
return output;
|
|
445
426
|
}
|
|
427
|
+
__name(parseString, "parseString");
|
|
446
428
|
function parseEnum(values, required = true, def) {
|
|
447
429
|
return {
|
|
448
430
|
type: String,
|
|
@@ -453,6 +435,7 @@ function parseEnum(values, required = true, def) {
|
|
|
453
435
|
required
|
|
454
436
|
};
|
|
455
437
|
}
|
|
438
|
+
__name(parseEnum, "parseEnum");
|
|
456
439
|
function parseBoolean(required = true, def) {
|
|
457
440
|
return {
|
|
458
441
|
type: Boolean,
|
|
@@ -460,6 +443,7 @@ function parseBoolean(required = true, def) {
|
|
|
460
443
|
required
|
|
461
444
|
};
|
|
462
445
|
}
|
|
446
|
+
__name(parseBoolean, "parseBoolean");
|
|
463
447
|
function parseDate(required = true, def, validate, unique = false, sparse = false) {
|
|
464
448
|
const output = {
|
|
465
449
|
type: Date,
|
|
@@ -468,10 +452,10 @@ function parseDate(required = true, def, validate, unique = false, sparse = fals
|
|
|
468
452
|
unique,
|
|
469
453
|
sparse
|
|
470
454
|
};
|
|
471
|
-
if (validate)
|
|
472
|
-
output.validate = validate;
|
|
455
|
+
if (validate) output.validate = validate;
|
|
473
456
|
return output;
|
|
474
457
|
}
|
|
458
|
+
__name(parseDate, "parseDate");
|
|
475
459
|
function parseObjectId(required = true, ref, unique = false, refPath, sparse = false) {
|
|
476
460
|
const output = {
|
|
477
461
|
type: SchemaTypes.ObjectId,
|
|
@@ -479,26 +463,26 @@ function parseObjectId(required = true, ref, unique = false, refPath, sparse = f
|
|
|
479
463
|
unique,
|
|
480
464
|
sparse
|
|
481
465
|
};
|
|
482
|
-
if (ref)
|
|
483
|
-
|
|
484
|
-
if (refPath)
|
|
485
|
-
output.refPath = refPath;
|
|
466
|
+
if (ref) output.ref = ref;
|
|
467
|
+
if (refPath) output.refPath = refPath;
|
|
486
468
|
return output;
|
|
487
469
|
}
|
|
470
|
+
__name(parseObjectId, "parseObjectId");
|
|
488
471
|
function parseArray(required = true, element, def) {
|
|
489
472
|
const innerType = parseField(element);
|
|
490
|
-
if (!innerType)
|
|
491
|
-
throw new Error("Unsupported array type");
|
|
473
|
+
if (!innerType) throw new Error("Unsupported array type");
|
|
492
474
|
return {
|
|
493
|
-
type: [
|
|
475
|
+
type: [
|
|
476
|
+
innerType
|
|
477
|
+
],
|
|
494
478
|
default: def,
|
|
495
479
|
required
|
|
496
480
|
};
|
|
497
481
|
}
|
|
482
|
+
__name(parseArray, "parseArray");
|
|
498
483
|
function parseMap(required = true, valueType, def) {
|
|
499
484
|
const pointer = parseField(valueType);
|
|
500
|
-
if (!pointer)
|
|
501
|
-
throw new Error("Unsupported map value type");
|
|
485
|
+
if (!pointer) throw new Error("Unsupported map value type");
|
|
502
486
|
return {
|
|
503
487
|
type: Map,
|
|
504
488
|
of: pointer,
|
|
@@ -506,6 +490,7 @@ function parseMap(required = true, valueType, def) {
|
|
|
506
490
|
required
|
|
507
491
|
};
|
|
508
492
|
}
|
|
493
|
+
__name(parseMap, "parseMap");
|
|
509
494
|
function parseUUID(required = true, ref, unique = false, refPath, sparse = false) {
|
|
510
495
|
const output = {
|
|
511
496
|
type: SchemaTypes.UUID,
|
|
@@ -513,12 +498,11 @@ function parseUUID(required = true, ref, unique = false, refPath, sparse = false
|
|
|
513
498
|
unique,
|
|
514
499
|
sparse
|
|
515
500
|
};
|
|
516
|
-
if (ref)
|
|
517
|
-
|
|
518
|
-
if (refPath)
|
|
519
|
-
output.refPath = refPath;
|
|
501
|
+
if (ref) output.ref = ref;
|
|
502
|
+
if (refPath) output.refPath = refPath;
|
|
520
503
|
return output;
|
|
521
504
|
}
|
|
505
|
+
__name(parseUUID, "parseUUID");
|
|
522
506
|
function parseMixed(required = true, def) {
|
|
523
507
|
return {
|
|
524
508
|
type: SchemaTypes.Mixed,
|
|
@@ -526,9 +510,10 @@ function parseMixed(required = true, def) {
|
|
|
526
510
|
required
|
|
527
511
|
};
|
|
528
512
|
}
|
|
529
|
-
|
|
513
|
+
__name(parseMixed, "parseMixed");
|
|
514
|
+
var index_default = zodSchema;
|
|
530
515
|
export {
|
|
531
|
-
|
|
516
|
+
index_default as default,
|
|
532
517
|
extendZod,
|
|
533
518
|
zId,
|
|
534
519
|
zUUID,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/assertions/constructor.ts","../src/assertions/custom.ts","../src/assertions/instanceOf.ts","../src/assertions/staticNames.ts","../src/assertions/assertions.ts","../src/extension.ts"],"sourcesContent":["import { Schema, type SchemaOptions, SchemaTypes } from \"mongoose\";\nimport type { ZodNumber, ZodObject, ZodRawShape, ZodString, ZodType, z } from \"zod\";\n\nimport zmAssert from \"./assertions/assertions.js\";\nimport type { zm } from \"./mongoose.types.js\";\nexport * from \"./extension.js\";\n\n/**\n * Converts a Zod schema to a Mongoose schema\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchema } from '@zodyac/zod-mongoose';\n * import { model } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const schema = zodSchema(zDoc);\n * const userModel = model('User', schema);\n */\nexport function zodSchema<T extends ZodRawShape>(\n schema: ZodObject<T>,\n options?: SchemaOptions<any>, // TODO: Fix any\n): Schema<z.infer<typeof schema>> {\n const definition = parseObject(schema);\n return new Schema<z.infer<typeof schema>>(definition, options);\n}\n\n/**\n * Converts a Zod schema to a raw Mongoose schema object\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchemaRaw } from '@zodyac/zod-mongoose';\n * import { model, Schema } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const rawSchema = zodSchemaRaw(zDoc);\n * const schema = new Schema(rawSchema);\n * const userModel = model('User', schema);\n */\nexport function zodSchemaRaw<T extends ZodRawShape>(schema: ZodObject<T>): zm._Schema<T> {\n return parseObject(schema);\n}\n\n// Helpers\nfunction parseObject<T extends ZodRawShape>(obj: ZodObject<T>): zm._Schema<T> {\n const object: any = {};\n for (const [key, field] of Object.entries(obj.shape)) {\n if (zmAssert.object(field)) {\n object[key] = parseObject(field);\n } else {\n const f = parseField(field);\n if (!f) throw new Error(`Unsupported field type: ${field.constructor}`);\n\n object[key] = f;\n }\n }\n\n return object;\n}\n\nfunction parseField<T>(\n field: ZodType<T>,\n required = true,\n def?: zm.mDefault<T>,\n refinement?: zm.EffectValidator<T>,\n): zm.mField | null {\n if (zmAssert.objectId(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_sparse;\n return parseObjectId(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.uuid(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_unique;\n return parseUUID(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.object(field)) {\n return parseObject(field);\n }\n\n if (zmAssert.number(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseNumber(\n field,\n required,\n def as zm.mDefault<number>,\n isUnique,\n refinement as zm.EffectValidator<number>,\n isSparse,\n );\n }\n\n if (zmAssert.string(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseString(\n field,\n required,\n def as zm.mDefault<string>,\n isUnique,\n refinement as zm.EffectValidator<string>,\n isSparse,\n );\n }\n\n if (zmAssert.enumerable(field)) {\n return parseEnum(Object.keys(field.Values), required, def as zm.mDefault<string>);\n }\n\n if (zmAssert.boolean(field)) {\n return parseBoolean(required, def as zm.mDefault<boolean>);\n }\n\n if (zmAssert.date(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseDate(\n required,\n def as zm.mDefault<Date>,\n refinement as zm.EffectValidator<Date>,\n isUnique,\n isSparse,\n );\n }\n\n if (zmAssert.array(field)) {\n return parseArray(\n required,\n field.element,\n def as zm.mDefault<T extends Array<infer K> ? K[] : never>,\n );\n }\n\n if (zmAssert.def(field)) {\n return parseField(field._def.innerType, required, field._def.defaultValue);\n }\n\n if (zmAssert.optional(field)) {\n return parseField(field._def.innerType, false, undefined);\n }\n\n if (zmAssert.nullable(field)) {\n return parseField(\n field._def.innerType,\n false,\n (typeof def !== \"undefined\" ? def : () => null) as zm.mDefault<null>,\n );\n }\n\n if (zmAssert.union(field)) {\n return parseField(field._def.options[0]);\n }\n\n if (zmAssert.any(field)) {\n return parseMixed(required, def);\n }\n\n if (zmAssert.mapOrRecord(field)) {\n return parseMap(\n required,\n field.valueSchema,\n def as zm.mDefault<\n Map<\n zm.UnwrapZodType<typeof field.keySchema>,\n zm.UnwrapZodType<typeof field.valueSchema>\n >\n >,\n );\n }\n\n if (zmAssert.effect(field)) {\n const effect = field._def.effect;\n\n if (effect.type === \"refinement\") {\n const validation = (<any>effect).__zm_validation as zm.EffectValidator<T>;\n return parseField(field._def.schema, required, def, validation);\n }\n\n if (effect.type === \"preprocess\" || effect.type === \"transform\") {\n return parseField(field._def.schema, required, def, refinement);\n }\n }\n\n return null;\n}\n\nfunction parseNumber(\n field: ZodNumber,\n required = true,\n def?: zm.mDefault<number>,\n unique = false,\n validate?: zm.EffectValidator<number>,\n sparse = false,\n): zm.mNumber {\n const output: zm.mNumber = {\n type: Number,\n default: def,\n min: field.minValue ?? undefined,\n max: field.maxValue ?? undefined,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseString(\n field: ZodString,\n required = true,\n def?: zm.mDefault<string>,\n unique = false,\n validate?: zm.EffectValidator<string>,\n sparse = false,\n): zm.mString {\n const output: zm.mString = {\n type: String,\n default: def,\n required,\n minLength: field.minLength ?? undefined,\n maxLength: field.maxLength ?? undefined,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseEnum(\n values: string[],\n required = true,\n def?: zm.mDefault<string>,\n): zm.mString {\n return {\n type: String,\n unique: false,\n sparse: false,\n default: def,\n enum: values,\n required,\n };\n}\n\nfunction parseBoolean(required = true, def?: zm.mDefault<boolean>): zm.mBoolean {\n return {\n type: Boolean,\n default: def,\n required,\n };\n}\n\nfunction parseDate(\n required = true,\n def?: zm.mDefault<Date>,\n validate?: zm.EffectValidator<Date>,\n unique = false,\n sparse = false,\n): zm.mDate {\n const output: zm.mDate = {\n type: Date,\n default: def,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseObjectId(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mObjectId {\n const output: zm.mObjectId = {\n type: SchemaTypes.ObjectId,\n required,\n unique,\n sparse,\n };\n\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseArray<T>(\n // biome-ignore lint/style/useDefaultParameterLast: Should be consistent with other functions\n required = true,\n element: ZodType<T>,\n def?: zm.mDefault<T[]>,\n): zm.mArray<T> {\n const innerType = parseField(element);\n if (!innerType) throw new Error(\"Unsupported array type\");\n return {\n type: [innerType as zm._Field<T>],\n default: def,\n required,\n };\n}\n\nfunction parseMap<T, K>(\n // biome-ignore lint/style/useDefaultParameterLast: Consistency with other functions\n required = true,\n valueType: ZodType<K>,\n def?: zm.mDefault<Map<NoInfer<T>, K>>,\n): zm.mMap<T, K> {\n const pointer = parseField(valueType);\n if (!pointer) throw new Error(\"Unsupported map value type\");\n\n return {\n type: Map,\n of: pointer as zm._Field<K>,\n default: def,\n required,\n };\n}\n\nfunction parseUUID(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mUUID {\n const output: zm.mUUID = {\n type: SchemaTypes.UUID,\n required,\n unique,\n sparse,\n };\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseMixed(required = true, def?: unknown): zm.mMixed<unknown> {\n return {\n type: SchemaTypes.Mixed,\n default: def as unknown as any,\n required,\n };\n}\n\nexport default zodSchema;\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Constructor assertions (CommonJS)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the constructor name of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f.constructor.name === \"ZodString\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f.constructor.name === \"ZodNumber\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f.constructor.name === \"ZodObject\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f.constructor.name === \"ZodArray\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f.constructor.name === \"ZodBoolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f.constructor.name === \"ZodEnum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f.constructor.name === \"ZodDate\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f.constructor.name === \"ZodDefault\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f.constructor.name === \"ZodOptional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f.constructor.name === \"ZodNullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f.constructor.name === \"ZodUnion\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f.constructor.name === \"ZodAny\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f.constructor.name === \"ZodMap\" || f.constructor.name === \"ZodRecord\";\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f.constructor.name === \"ZodEffects\";\n },\n};\n","import type { ZodType } from \"zod\";\n\nexport namespace zmAssertIds {\n export function objectId(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"ObjectId\";\n }\n\n export function uuid(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"UUID\";\n }\n}\n","import {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n type ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Instance assertions (ESM)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the instance of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f instanceof ZodString;\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f instanceof ZodNumber;\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f instanceof ZodObject;\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f instanceof ZodArray;\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f instanceof ZodBoolean;\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f instanceof ZodEnum;\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f instanceof ZodDate;\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f instanceof ZodDefault;\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f instanceof ZodOptional;\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f instanceof ZodNullable;\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f instanceof ZodUnion;\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f instanceof ZodAny;\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f instanceof ZodMap || f instanceof ZodRecord;\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f instanceof ZodEffects;\n },\n};\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Static names assertions (Bundlers)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the `__zm_type` property of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return \"__zm_type\" in f && f.__zm_type === \"String\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return \"__zm_type\" in f && f.__zm_type === \"Number\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Object\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Array\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return \"__zm_type\" in f && f.__zm_type === \"Boolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Enum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return \"__zm_type\" in f && f.__zm_type === \"Date\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Default\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Optional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Nullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Union\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return \"__zm_type\" in f && f.__zm_type === \"Any\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return \"__zm_type\" in f && (f.__zm_type === \"Map\" || f.__zm_type === \"Record\");\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Effects\";\n },\n};\n","import type { ZodType } from \"zod\";\nimport { zmAssert as aConstructor } from \"./constructor\";\nimport { zmAssertIds } from \"./custom\";\nimport { zmAssert as aInstance } from \"./instanceOf\";\nimport { zmAssert as aStaticName } from \"./staticNames\";\nimport type { IAsserts } from \"./types\";\n\nconst assertions = [aConstructor, aInstance, aStaticName];\nconst zmAssert = Object.keys(aConstructor)\n .map((key) => key as keyof IAsserts)\n .reduce((acc, key) => {\n (<any>acc[key]) = (f: ZodType<any>) => {\n return assertions.some((assertion) => assertion[key](f));\n };\n\n return acc;\n }, {} as IAsserts);\n\nexport default {\n ...zmAssert,\n ...zmAssertIds,\n};\n","import { Types, isValidObjectId } from \"mongoose\";\nimport { type CustomErrorParams, z } from \"zod\";\n\ndeclare module \"zod\" {\n interface ZodString {\n unique: (arg?: boolean) => ZodString;\n sparse: (arg?: boolean) => ZodString;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodNumber {\n unique: (arg?: boolean) => ZodNumber;\n sparse: (arg?: boolean) => ZodNumber;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodDate {\n unique: (arg?: boolean) => ZodDate;\n sparse: (arg?: boolean) => ZodDate;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodType<\n Output = any,\n Def extends z.ZodTypeDef = z.ZodTypeDef,\n Input = Output,\n > {\n // For future use\n }\n}\n\nlet zod_extended = false;\n/**\n * Extends the Zod library with additional functionality.\n *\n * This function modifies the Zod library to add custom validation and uniqueness checks.\n * It ensures that the extension is only applied once.\n *\n * @param z_0 - The Zod library to extend.\n *\n * @remarks\n * - Overrides `refine` method to `ZodType` that includes additional metadata for validation.\n * - Overrides `unique` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as unique.\n * - Overrides `sparse` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as sparse.\n *\n * @example\n * ```typescript\n * import { z } from \"zod\";\n * import { extendZod } from \"./extension\";\n *\n * extendZod(z);\n *\n * const schema = z.object({\n * name: z.string().unique();\n * });\n * ```\n */\nexport function extendZod(z_0: typeof z) {\n // Prevent zod from being extended multiple times\n if (zod_extended) return;\n zod_extended = true;\n\n // Refine support\n const _refine = z_0.ZodType.prototype.refine;\n z_0.ZodType.prototype.refine = function <T>(\n check: (arg0: T) => boolean,\n opts?: string | CustomErrorParams | ((arg: T) => CustomErrorParams),\n ) {\n const zEffect = _refine.bind(this)(check, opts);\n\n let message: string | undefined | ((v: T) => string | undefined) = undefined;\n if (opts) {\n if (typeof opts === \"string\") message = opts;\n else if (\"message\" in opts) message = opts.message;\n }\n\n (<any>zEffect._def.effect).__zm_validation = {\n validator: check,\n message: message,\n };\n\n return zEffect;\n };\n\n // Unique support\n const UNIQUE_SUPPORT_LIST = [z_0.ZodString, z_0.ZodNumber, z_0.ZodDate] as const;\n\n for (const type of UNIQUE_SUPPORT_LIST) {\n (<any>type.prototype).unique = function (arg = true) {\n (<any>this).__zm_unique = arg;\n return this;\n };\n\n (<any>type.prototype).sparse = function (arg = true) {\n (<any>this).__zm_sparse = arg;\n return this;\n };\n }\n\n // Assign static names to Zod types\n const TypesMap = {\n String: z_0.ZodString,\n Number: z_0.ZodNumber,\n Object: z_0.ZodObject,\n Array: z_0.ZodArray,\n Boolean: z_0.ZodBoolean,\n Enum: z_0.ZodEnum,\n Date: z_0.ZodDate,\n Default: z_0.ZodDefault,\n Optional: z_0.ZodOptional,\n Nullable: z_0.ZodNullable,\n Union: z_0.ZodUnion,\n Any: z_0.ZodAny,\n Map: z_0.ZodMap,\n Record: z_0.ZodRecord,\n Effects: z_0.ZodEffects,\n };\n\n for (const [key, value] of Object.entries(TypesMap)) {\n (<any>value.prototype).__zm_type = key;\n }\n}\n\nexport type TzmId = ReturnType<typeof createId> & {\n unique: (arg?: boolean) => TzmId;\n sparse: (arg?: boolean) => TzmId;\n ref: (arg: string) => TzmId;\n refPath: (arg: string) => TzmId;\n};\n\nconst createId = () => {\n return z\n .string()\n .refine((v) => isValidObjectId(v), { message: \"Invalid ObjectId\" })\n .or(z.instanceof(Types.ObjectId));\n};\n\nexport const zId = (ref?: string): TzmId => {\n const output = createId();\n\n (<any>output).__zm_type = \"ObjectId\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmId;\n};\n\nexport type TzmUUID = ReturnType<typeof createUUID> & {\n unique: (arg?: boolean) => TzmUUID;\n sparse: (arg?: boolean) => TzmUUID;\n ref: (arg: string) => TzmUUID;\n refPath: (arg: string) => TzmUUID;\n};\n\nconst createUUID = () => {\n return z.string().uuid({ message: \"Invalid UUID\" }).or(z.instanceof(Types.UUID));\n};\n\nexport const zUUID = (ref?: string): TzmUUID => {\n const output = createUUID();\n\n (<any>output).__zm_type = \"UUID\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmUUID;\n};\n"],"mappings":"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","names":["zmAssertIds","zmAssert","zmAssert","zmAssert","ref"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/assertions/constructor.ts","../src/assertions/custom.ts","../src/assertions/instanceOf.ts","../src/assertions/staticNames.ts","../src/assertions/assertions.ts","../src/extension.ts"],"sourcesContent":["import { Schema, type SchemaOptions, SchemaTypes } from \"mongoose\";\nimport type { ZodNumber, ZodObject, ZodRawShape, ZodString, ZodType, z } from \"zod\";\n\nimport zmAssert from \"./assertions/assertions.js\";\nimport type { zm } from \"./mongoose.types.js\";\n\nexport * from \"./extension.js\";\n\n/**\n * Converts a Zod schema to a Mongoose schema\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchema } from '@zodyac/zod-mongoose';\n * import { model } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const schema = zodSchema(zDoc);\n * const userModel = model('User', schema);\n */\nexport function zodSchema<T extends ZodRawShape>(\n schema: ZodObject<T>,\n options?: SchemaOptions<any>, // TODO: Fix any\n): Schema<z.infer<typeof schema>> {\n const definition = parseObject(schema);\n return new Schema<z.infer<typeof schema>>(definition, options);\n}\n\n/**\n * Converts a Zod schema to a raw Mongoose schema object\n * @param schema zod schema to parse\n * @returns mongoose schema\n *\n * @example\n * import { extendZod, zodSchemaRaw } from '@zodyac/zod-mongoose';\n * import { model, Schema } from 'mongoose';\n * import { z } from 'zod';\n *\n * extendZod(z);\n *\n * const zUser = z.object({\n * name: z.string().min(3).max(255),\n * age: z.number().min(18).max(100),\n * active: z.boolean().default(false),\n * access: z.enum(['admin', 'user']).default('user'),\n * companyId: zId('Company'),\n * address: z.object({\n * street: z.string(),\n * city: z.string(),\n * state: z.enum(['CA', 'NY', 'TX']),\n * }),\n * tags: z.array(z.string()),\n * createdAt: z.date(),\n * updatedAt: z.date(),\n * });\n *\n * const rawSchema = zodSchemaRaw(zDoc);\n * const schema = new Schema(rawSchema);\n * const userModel = model('User', schema);\n */\nexport function zodSchemaRaw<T extends ZodRawShape>(schema: ZodObject<T>): zm._Schema<T> {\n return parseObject(schema);\n}\n\n// Helpers\nfunction parseObject<T extends ZodRawShape>(obj: ZodObject<T>): zm._Schema<T> {\n const object: any = {};\n for (const [key, field] of Object.entries(obj.shape)) {\n if (zmAssert.object(field)) {\n object[key] = parseObject(field);\n } else {\n const f = parseField(field);\n if (!f) throw new Error(`Unsupported field type: ${field.constructor}`);\n\n object[key] = f;\n }\n }\n\n return object;\n}\n\nfunction parseField<T>(\n field: ZodType<T>,\n required = true,\n def?: zm.mDefault<T>,\n refinement?: zm.EffectValidator<T>,\n): zm.mField | null {\n if (zmAssert.objectId(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_sparse;\n return parseObjectId(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.uuid(field)) {\n const ref = (<any>field).__zm_ref;\n const refPath = (<any>field).__zm_refPath;\n const unique = (<any>field).__zm_unique;\n const sparse = (<any>field).__zm_unique;\n return parseUUID(required, ref, unique, refPath, sparse);\n }\n\n if (zmAssert.object(field)) {\n return parseObject(field);\n }\n\n if (zmAssert.number(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseNumber(\n field,\n required,\n def as zm.mDefault<number>,\n isUnique,\n refinement as zm.EffectValidator<number>,\n isSparse,\n );\n }\n\n if (zmAssert.string(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseString(\n field,\n required,\n def as zm.mDefault<string>,\n isUnique,\n refinement as zm.EffectValidator<string>,\n isSparse,\n );\n }\n\n if (zmAssert.enumerable(field)) {\n return parseEnum(Object.keys(field.Values), required, def as zm.mDefault<string>);\n }\n\n if (zmAssert.nativeEnumerable(field)) {\n return parseEnum(\n Object.values(field._def.values),\n required,\n def as zm.mDefault<string>,\n );\n }\n\n if (zmAssert.boolean(field)) {\n return parseBoolean(required, def as zm.mDefault<boolean>);\n }\n\n if (zmAssert.date(field)) {\n const isUnique = field.__zm_unique ?? false;\n const isSparse = field.__zm_sparse ?? false;\n return parseDate(\n required,\n def as zm.mDefault<Date>,\n refinement as zm.EffectValidator<Date>,\n isUnique,\n isSparse,\n );\n }\n\n if (zmAssert.array(field)) {\n return parseArray(\n required,\n field.element,\n def as zm.mDefault<T extends Array<infer K> ? K[] : never>,\n );\n }\n\n if (zmAssert.def(field)) {\n return parseField(field._def.innerType, required, field._def.defaultValue);\n }\n\n if (zmAssert.optional(field)) {\n return parseField(field._def.innerType, false, undefined);\n }\n\n if (zmAssert.nullable(field)) {\n return parseField(\n field._def.innerType,\n false,\n (typeof def !== \"undefined\" ? def : () => null) as zm.mDefault<null>,\n );\n }\n\n if (zmAssert.union(field)) {\n return parseField(field._def.options[0]);\n }\n\n if (zmAssert.any(field)) {\n return parseMixed(required, def);\n }\n\n if (zmAssert.mapOrRecord(field)) {\n return parseMap(\n required,\n field.valueSchema,\n def as zm.mDefault<\n Map<\n zm.UnwrapZodType<typeof field.keySchema>,\n zm.UnwrapZodType<typeof field.valueSchema>\n >\n >,\n );\n }\n\n if (zmAssert.effect(field)) {\n const effect = field._def.effect;\n\n if (effect.type === \"refinement\") {\n const validation = (<any>effect).__zm_validation as zm.EffectValidator<T>;\n return parseField(field._def.schema, required, def, validation);\n }\n\n if (effect.type === \"preprocess\" || effect.type === \"transform\") {\n return parseField(field._def.schema, required, def, refinement);\n }\n }\n\n return null;\n}\n\nfunction parseNumber(\n field: ZodNumber,\n required = true,\n def?: zm.mDefault<number>,\n unique = false,\n validate?: zm.EffectValidator<number>,\n sparse = false,\n): zm.mNumber {\n const output: zm.mNumber = {\n type: Number,\n default: def,\n min: field.minValue ?? undefined,\n max: field.maxValue ?? undefined,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseString(\n field: ZodString,\n required = true,\n def?: zm.mDefault<string>,\n unique = false,\n validate?: zm.EffectValidator<string>,\n sparse = false,\n): zm.mString {\n const output: zm.mString = {\n type: String,\n default: def,\n required,\n minLength: field.minLength ?? undefined,\n maxLength: field.maxLength ?? undefined,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseEnum(\n values: string[],\n required = true,\n def?: zm.mDefault<string>,\n): zm.mString {\n return {\n type: String,\n unique: false,\n sparse: false,\n default: def,\n enum: values,\n required,\n };\n}\n\nfunction parseBoolean(required = true, def?: zm.mDefault<boolean>): zm.mBoolean {\n return {\n type: Boolean,\n default: def,\n required,\n };\n}\n\nfunction parseDate(\n required = true,\n def?: zm.mDefault<Date>,\n validate?: zm.EffectValidator<Date>,\n unique = false,\n sparse = false,\n): zm.mDate {\n const output: zm.mDate = {\n type: Date,\n default: def,\n required,\n unique,\n sparse,\n };\n\n if (validate) output.validate = validate;\n return output;\n}\n\nfunction parseObjectId(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mObjectId {\n const output: zm.mObjectId = {\n type: SchemaTypes.ObjectId,\n required,\n unique,\n sparse,\n };\n\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseArray<T>(\n required = true,\n element: ZodType<T>,\n def?: zm.mDefault<T[]>,\n): zm.mArray<T> {\n const innerType = parseField(element);\n if (!innerType) throw new Error(\"Unsupported array type\");\n return {\n type: [innerType as zm._Field<T>],\n default: def,\n required,\n };\n}\n\nfunction parseMap<T, K>(\n required = true,\n valueType: ZodType<K>,\n def?: zm.mDefault<Map<NoInfer<T>, K>>,\n): zm.mMap<T, K> {\n const pointer = parseField(valueType);\n if (!pointer) throw new Error(\"Unsupported map value type\");\n\n return {\n type: Map,\n of: pointer as zm._Field<K>,\n default: def,\n required,\n };\n}\n\nfunction parseUUID(\n required = true,\n ref?: string,\n unique = false,\n refPath?: string,\n sparse = false,\n): zm.mUUID {\n const output: zm.mUUID = {\n type: SchemaTypes.UUID,\n required,\n unique,\n sparse,\n };\n if (ref) output.ref = ref;\n if (refPath) output.refPath = refPath;\n return output;\n}\n\nfunction parseMixed(required = true, def?: unknown): zm.mMixed<unknown> {\n return {\n type: SchemaTypes.Mixed,\n default: def as unknown as any,\n required,\n };\n}\n\nexport default zodSchema;\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNativeEnum,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Constructor assertions (CommonJS)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the constructor name of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f.constructor.name === \"ZodString\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f.constructor.name === \"ZodNumber\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f.constructor.name === \"ZodObject\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f.constructor.name === \"ZodArray\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f.constructor.name === \"ZodBoolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f.constructor.name === \"ZodEnum\";\n },\n\n nativeEnumerable(f: ZodType<any>): f is ZodNativeEnum<any> {\n return f.constructor.name === \"ZodNativeEnum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f.constructor.name === \"ZodDate\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f.constructor.name === \"ZodDefault\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f.constructor.name === \"ZodOptional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f.constructor.name === \"ZodNullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f.constructor.name === \"ZodUnion\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f.constructor.name === \"ZodAny\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f.constructor.name === \"ZodMap\" || f.constructor.name === \"ZodRecord\";\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f.constructor.name === \"ZodEffects\";\n },\n};\n","import type { ZodType } from \"zod\";\n\nexport namespace zmAssertIds {\n export function objectId(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"ObjectId\";\n }\n\n export function uuid(f: ZodType<any>): f is ZodType<string> {\n return \"__zm_type\" in f && f.__zm_type === \"UUID\";\n }\n}\n","import {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNativeEnum,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n type ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Instance assertions (ESM)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the instance of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return f instanceof ZodString;\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return f instanceof ZodNumber;\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return f instanceof ZodObject;\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return f instanceof ZodArray;\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return f instanceof ZodBoolean;\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return f instanceof ZodEnum;\n },\n\n nativeEnumerable(f: ZodType<any>): f is ZodNativeEnum<any> {\n return f instanceof ZodNativeEnum;\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return f instanceof ZodDate;\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return f instanceof ZodDefault;\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return f instanceof ZodOptional;\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return f instanceof ZodNullable;\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return f instanceof ZodUnion;\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return f instanceof ZodAny;\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return f instanceof ZodMap || f instanceof ZodRecord;\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return f instanceof ZodEffects;\n },\n};\n","import type {\n ZodAny,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodDefault,\n ZodEffects,\n ZodEnum,\n ZodMap,\n ZodNativeEnum,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRecord,\n ZodString,\n ZodType,\n ZodUnion,\n} from \"zod\";\nimport type { IAsserts } from \"./types\";\n\n/**\n * Static names assertions (Bundlers)\n * @internal\n *\n * Asserts if a Zod type is a specific type\n * by checking the `__zm_type` property of it's prototype.\n */\nexport const zmAssert: IAsserts = {\n string(f: ZodType<any>): f is ZodString {\n return \"__zm_type\" in f && f.__zm_type === \"String\";\n },\n\n number(f: ZodType<any>): f is ZodNumber {\n return \"__zm_type\" in f && f.__zm_type === \"Number\";\n },\n\n object(f: ZodType<any>): f is ZodObject<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Object\";\n },\n\n array(f: ZodType<any>): f is ZodArray<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Array\";\n },\n\n boolean(f: ZodType<any>): f is ZodBoolean {\n return \"__zm_type\" in f && f.__zm_type === \"Boolean\";\n },\n\n enumerable(f: ZodType<any>): f is ZodEnum<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Enum\";\n },\n\n nativeEnumerable(f: ZodType<any>): f is ZodNativeEnum<any> {\n return \"__zm_type\" in f && f.__zm_type === \"NativeEnum\";\n },\n\n date(f: ZodType<any>): f is ZodDate {\n return \"__zm_type\" in f && f.__zm_type === \"Date\";\n },\n\n def(f: ZodType<any>): f is ZodDefault<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Default\";\n },\n\n optional(f: ZodType<any>): f is ZodOptional<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Optional\";\n },\n\n nullable(f: ZodType<any>): f is ZodNullable<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Nullable\";\n },\n\n union(f: ZodType<any>): f is ZodUnion<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Union\";\n },\n\n any(f: ZodType<any>): f is ZodAny {\n return \"__zm_type\" in f && f.__zm_type === \"Any\";\n },\n\n mapOrRecord(f: ZodType<any>): f is ZodMap<any> | ZodRecord<any> {\n return \"__zm_type\" in f && (f.__zm_type === \"Map\" || f.__zm_type === \"Record\");\n },\n\n effect(f: ZodType<any>): f is ZodEffects<any> {\n return \"__zm_type\" in f && f.__zm_type === \"Effects\";\n },\n};\n","import type { ZodType } from \"zod\";\nimport { zmAssert as aConstructor } from \"./constructor\";\nimport { zmAssertIds } from \"./custom\";\nimport { zmAssert as aInstance } from \"./instanceOf\";\nimport { zmAssert as aStaticName } from \"./staticNames\";\nimport type { IAsserts } from \"./types\";\n\nconst assertions = [aConstructor, aInstance, aStaticName];\nconst zmAssert = Object.keys(aConstructor)\n .map((key) => key as keyof IAsserts)\n .reduce((acc, key) => {\n (<any>acc[key]) = (f: ZodType<any>) => {\n return assertions.some((assertion) => assertion[key](f));\n };\n\n return acc;\n }, {} as IAsserts);\n\nexport default {\n ...zmAssert,\n ...zmAssertIds,\n};\n","import { isValidObjectId, Types } from \"mongoose\";\nimport { type CustomErrorParams, z } from \"zod\";\n\ndeclare module \"zod\" {\n interface ZodString {\n unique: (arg?: boolean) => ZodString;\n sparse: (arg?: boolean) => ZodString;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodNumber {\n unique: (arg?: boolean) => ZodNumber;\n sparse: (arg?: boolean) => ZodNumber;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodDate {\n unique: (arg?: boolean) => ZodDate;\n sparse: (arg?: boolean) => ZodDate;\n __zm_unique: boolean;\n __zm_sparse: boolean;\n }\n\n interface ZodType<\n Output = any,\n // biome-ignore lint/correctness/noUnusedVariables: For future use\n Def extends z.ZodTypeDef = z.ZodTypeDef,\n // biome-ignore lint/correctness/noUnusedVariables: For future use\n Input = Output,\n > {}\n}\n\nlet zod_extended = false;\n/**\n * Extends the Zod library with additional functionality.\n *\n * This function modifies the Zod library to add custom validation and uniqueness checks.\n * It ensures that the extension is only applied once.\n *\n * @param z_0 - The Zod library to extend.\n *\n * @remarks\n * - Overrides `refine` method to `ZodType` that includes additional metadata for validation.\n * - Overrides `unique` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as unique.\n * - Overrides `sparse` method to `ZodString`, `ZodNumber`, and `ZodDate` to mark them as sparse.\n *\n * @example\n * ```typescript\n * import { z } from \"zod\";\n * import { extendZod } from \"./extension\";\n *\n * extendZod(z);\n *\n * const schema = z.object({\n * name: z.string().unique();\n * });\n * ```\n */\nexport function extendZod(z_0: typeof z) {\n // Prevent zod from being extended multiple times\n if (zod_extended) return;\n zod_extended = true;\n\n // Refine support\n const _refine = z_0.ZodType.prototype.refine;\n z_0.ZodType.prototype.refine = function <T>(\n check: (arg0: T) => boolean,\n opts?: string | CustomErrorParams | ((arg: T) => CustomErrorParams),\n ) {\n const zEffect = _refine.bind(this)(check, opts);\n\n let message: string | undefined | ((v: T) => string | undefined);\n if (opts) {\n if (typeof opts === \"string\") message = opts;\n else if (\"message\" in opts) message = opts.message;\n }\n\n (<any>zEffect._def.effect).__zm_validation = {\n validator: check,\n message: message,\n };\n\n return zEffect;\n };\n\n // Unique support\n const UNIQUE_SUPPORT_LIST = [z_0.ZodString, z_0.ZodNumber, z_0.ZodDate] as const;\n\n for (const type of UNIQUE_SUPPORT_LIST) {\n (<any>type.prototype).unique = function (arg = true) {\n (<any>this).__zm_unique = arg;\n return this;\n };\n\n (<any>type.prototype).sparse = function (arg = true) {\n (<any>this).__zm_sparse = arg;\n return this;\n };\n }\n\n // Assign static names to Zod types\n const TypesMap = {\n String: z_0.ZodString,\n Number: z_0.ZodNumber,\n Object: z_0.ZodObject,\n Array: z_0.ZodArray,\n Boolean: z_0.ZodBoolean,\n Enum: z_0.ZodEnum,\n Date: z_0.ZodDate,\n Default: z_0.ZodDefault,\n Optional: z_0.ZodOptional,\n Nullable: z_0.ZodNullable,\n Union: z_0.ZodUnion,\n Any: z_0.ZodAny,\n Map: z_0.ZodMap,\n Record: z_0.ZodRecord,\n Effects: z_0.ZodEffects,\n };\n\n for (const [key, value] of Object.entries(TypesMap)) {\n (<any>value.prototype).__zm_type = key;\n }\n}\n\nexport type TzmId = ReturnType<typeof createId> & {\n unique: (arg?: boolean) => TzmId;\n sparse: (arg?: boolean) => TzmId;\n ref: (arg: string) => TzmId;\n refPath: (arg: string) => TzmId;\n};\n\nconst createId = () => {\n return z\n .string()\n .refine((v) => isValidObjectId(v), { message: \"Invalid ObjectId\" })\n .or(z.instanceof(Types.ObjectId));\n};\n\nexport const zId = (ref?: string): TzmId => {\n const output = createId();\n\n (<any>output).__zm_type = \"ObjectId\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmId;\n};\n\nexport type TzmUUID = ReturnType<typeof createUUID> & {\n unique: (arg?: boolean) => TzmUUID;\n sparse: (arg?: boolean) => TzmUUID;\n ref: (arg: string) => TzmUUID;\n refPath: (arg: string) => TzmUUID;\n};\n\nconst createUUID = () => {\n return z.string().uuid({ message: \"Invalid UUID\" }).or(z.instanceof(Types.UUID));\n};\n\nexport const zUUID = (ref?: string): TzmUUID => {\n const output = createUUID();\n\n (<any>output).__zm_type = \"UUID\";\n (<any>output).__zm_ref = ref;\n\n (<any>output).ref = function (ref: string) {\n (<any>this).__zm_ref = ref;\n return this;\n };\n\n (<any>output).refPath = function (ref: string) {\n (<any>this).__zm_refPath = ref;\n return this;\n };\n\n (<any>output).unique = function (val = true) {\n (<any>this).__zm_unique = val;\n return this;\n };\n\n (<any>output).sparse = function (val = true) {\n (<any>this).__zm_sparse = val;\n return this;\n };\n\n return output as TzmUUID;\n};\n"],"mappings":"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","names":["Schema","SchemaTypes","zmAssert","string","f","name","number","object","array","boolean","enumerable","nativeEnumerable","date","def","optional","nullable","union","any","mapOrRecord","effect","zmAssertIds","objectId","f","__zm_type","uuid","ZodAny","ZodArray","ZodBoolean","ZodDate","ZodDefault","ZodEffects","ZodEnum","ZodMap","ZodNativeEnum","ZodNullable","ZodNumber","ZodObject","ZodOptional","ZodRecord","ZodString","ZodUnion","zmAssert","string","f","number","object","array","boolean","enumerable","nativeEnumerable","date","def","optional","nullable","union","any","mapOrRecord","effect","zmAssert","string","f","__zm_type","number","object","array","boolean","enumerable","nativeEnumerable","date","def","optional","nullable","union","any","mapOrRecord","effect","assertions","aConstructor","aInstance","aStaticName","zmAssert","Object","keys","map","key","reduce","acc","f","some","assertion","zmAssertIds","isValidObjectId","Types","z","zod_extended","extendZod","z_0","_refine","ZodType","prototype","refine","check","opts","zEffect","bind","message","_def","effect","__zm_validation","validator","UNIQUE_SUPPORT_LIST","ZodString","ZodNumber","ZodDate","type","unique","arg","__zm_unique","sparse","__zm_sparse","TypesMap","String","Number","Object","ZodObject","Array","ZodArray","Boolean","ZodBoolean","Enum","ZodEnum","Date","Default","ZodDefault","Optional","ZodOptional","Nullable","ZodNullable","Union","ZodUnion","Any","ZodAny","Map","ZodMap","Record","ZodRecord","Effects","ZodEffects","key","value","entries","__zm_type","createId","z","string","v","isValidObjectId","or","instanceof","Types","ObjectId","zId","ref","output","__zm_ref","refPath","__zm_refPath","val","createUUID","uuid","UUID","zUUID","zodSchema","schema","options","definition","parseObject","Schema","zodSchemaRaw","obj","object","key","field","Object","entries","shape","zmAssert","f","parseField","Error","required","def","refinement","objectId","ref","__zm_ref","refPath","__zm_refPath","unique","__zm_unique","sparse","__zm_sparse","parseObjectId","uuid","parseUUID","number","isUnique","isSparse","parseNumber","string","parseString","enumerable","parseEnum","keys","Values","nativeEnumerable","values","_def","boolean","parseBoolean","date","parseDate","array","parseArray","element","innerType","defaultValue","optional","undefined","nullable","union","any","parseMixed","mapOrRecord","parseMap","valueSchema","effect","type","validation","__zm_validation","validate","output","Number","default","min","minValue","max","maxValue","String","minLength","maxLength","enum","Boolean","Date","SchemaTypes","ObjectId","valueType","pointer","Map","of","UUID","Mixed"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zodyac/zod-mongoose",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"description": "A library that allows you to generate mongoose schemas from zod objects.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -46,20 +46,21 @@
|
|
|
46
46
|
"document"
|
|
47
47
|
],
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@biomejs/biome": "
|
|
50
|
-
"@swc/core": "
|
|
51
|
-
"@swc/jest": "
|
|
52
|
-
"@types/jest": "
|
|
53
|
-
"@types/node": "
|
|
54
|
-
"jest": "
|
|
55
|
-
"make-coverage-badge": "
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
49
|
+
"@biomejs/biome": "2.3.8",
|
|
50
|
+
"@swc/core": "1.15.3",
|
|
51
|
+
"@swc/jest": "0.2.39",
|
|
52
|
+
"@types/jest": "30.0.0",
|
|
53
|
+
"@types/node": "24.10.1",
|
|
54
|
+
"jest": "30.2.0",
|
|
55
|
+
"make-coverage-badge": "1.2.0",
|
|
56
|
+
"mongoose": "8.20.2",
|
|
57
|
+
"tsup": "8.5.1",
|
|
58
|
+
"typescript": "5.9.2",
|
|
59
59
|
"zod": "^3.22.4"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"mongoose": "^8.
|
|
62
|
+
"mongoose": "^8.20.2",
|
|
63
63
|
"zod": "^3.22.4"
|
|
64
|
-
}
|
|
64
|
+
},
|
|
65
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
65
66
|
}
|