@zodyac/zod-mongoose 4.2.0 → 4.2.2
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 +4 -0
- package/dist/index.cjs +97 -92
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +98 -107
- package/dist/index.js.map +1 -1
- package/package.json +16 -14
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,30 +322,38 @@ 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
|
-
const definition = parseObject(schema);
|
|
329
|
+
const definition = parseObject(schema, true);
|
|
308
330
|
return new import_mongoose2.Schema(definition, options);
|
|
309
331
|
}
|
|
332
|
+
__name(zodSchema, "zodSchema");
|
|
310
333
|
function zodSchemaRaw(schema) {
|
|
311
|
-
return parseObject(schema);
|
|
334
|
+
return parseObject(schema, true);
|
|
312
335
|
}
|
|
313
|
-
|
|
336
|
+
__name(zodSchemaRaw, "zodSchemaRaw");
|
|
337
|
+
function parseObject(obj, required = true) {
|
|
314
338
|
const object = {};
|
|
315
339
|
for (const [key, field] of Object.entries(obj.shape)) {
|
|
316
340
|
if (assertions_default.object(field)) {
|
|
317
|
-
object[key] = parseObject(field);
|
|
341
|
+
object[key] = parseObject(field, true);
|
|
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
|
}
|
|
348
|
+
if (!required) {
|
|
349
|
+
return {
|
|
350
|
+
type: object,
|
|
351
|
+
required: false
|
|
352
|
+
};
|
|
353
|
+
}
|
|
325
354
|
return object;
|
|
326
355
|
}
|
|
356
|
+
__name(parseObject, "parseObject");
|
|
327
357
|
function parseField(field, required = true, def, refinement) {
|
|
328
358
|
if (assertions_default.objectId(field)) {
|
|
329
359
|
const ref = field.__zm_ref;
|
|
@@ -340,55 +370,34 @@ function parseField(field, required = true, def, refinement) {
|
|
|
340
370
|
return parseUUID(required, ref, unique, refPath, sparse);
|
|
341
371
|
}
|
|
342
372
|
if (assertions_default.object(field)) {
|
|
343
|
-
return parseObject(field);
|
|
373
|
+
return parseObject(field, required);
|
|
344
374
|
}
|
|
345
375
|
if (assertions_default.number(field)) {
|
|
346
376
|
const isUnique = field.__zm_unique ?? false;
|
|
347
377
|
const isSparse = field.__zm_sparse ?? false;
|
|
348
|
-
return parseNumber(
|
|
349
|
-
field,
|
|
350
|
-
required,
|
|
351
|
-
def,
|
|
352
|
-
isUnique,
|
|
353
|
-
refinement,
|
|
354
|
-
isSparse
|
|
355
|
-
);
|
|
378
|
+
return parseNumber(field, required, def, isUnique, refinement, isSparse);
|
|
356
379
|
}
|
|
357
380
|
if (assertions_default.string(field)) {
|
|
358
381
|
const isUnique = field.__zm_unique ?? false;
|
|
359
382
|
const isSparse = field.__zm_sparse ?? false;
|
|
360
|
-
return parseString(
|
|
361
|
-
field,
|
|
362
|
-
required,
|
|
363
|
-
def,
|
|
364
|
-
isUnique,
|
|
365
|
-
refinement,
|
|
366
|
-
isSparse
|
|
367
|
-
);
|
|
383
|
+
return parseString(field, required, def, isUnique, refinement, isSparse);
|
|
368
384
|
}
|
|
369
385
|
if (assertions_default.enumerable(field)) {
|
|
370
386
|
return parseEnum(Object.keys(field.Values), required, def);
|
|
371
387
|
}
|
|
388
|
+
if (assertions_default.nativeEnumerable(field)) {
|
|
389
|
+
return parseEnum(Object.values(field._def.values), required, def);
|
|
390
|
+
}
|
|
372
391
|
if (assertions_default.boolean(field)) {
|
|
373
392
|
return parseBoolean(required, def);
|
|
374
393
|
}
|
|
375
394
|
if (assertions_default.date(field)) {
|
|
376
395
|
const isUnique = field.__zm_unique ?? false;
|
|
377
396
|
const isSparse = field.__zm_sparse ?? false;
|
|
378
|
-
return parseDate(
|
|
379
|
-
required,
|
|
380
|
-
def,
|
|
381
|
-
refinement,
|
|
382
|
-
isUnique,
|
|
383
|
-
isSparse
|
|
384
|
-
);
|
|
397
|
+
return parseDate(required, def, refinement, isUnique, isSparse);
|
|
385
398
|
}
|
|
386
399
|
if (assertions_default.array(field)) {
|
|
387
|
-
return parseArray(
|
|
388
|
-
required,
|
|
389
|
-
field.element,
|
|
390
|
-
def
|
|
391
|
-
);
|
|
400
|
+
return parseArray(field.element, required, def);
|
|
392
401
|
}
|
|
393
402
|
if (assertions_default.def(field)) {
|
|
394
403
|
return parseField(field._def.innerType, required, field._def.defaultValue);
|
|
@@ -397,11 +406,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
397
406
|
return parseField(field._def.innerType, false, void 0);
|
|
398
407
|
}
|
|
399
408
|
if (assertions_default.nullable(field)) {
|
|
400
|
-
return parseField(
|
|
401
|
-
field._def.innerType,
|
|
402
|
-
false,
|
|
403
|
-
typeof def !== "undefined" ? def : () => null
|
|
404
|
-
);
|
|
409
|
+
return parseField(field._def.innerType, false, typeof def !== "undefined" ? def : () => null);
|
|
405
410
|
}
|
|
406
411
|
if (assertions_default.union(field)) {
|
|
407
412
|
return parseField(field._def.options[0]);
|
|
@@ -410,11 +415,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
410
415
|
return parseMixed(required, def);
|
|
411
416
|
}
|
|
412
417
|
if (assertions_default.mapOrRecord(field)) {
|
|
413
|
-
return parseMap(
|
|
414
|
-
required,
|
|
415
|
-
field.valueSchema,
|
|
416
|
-
def
|
|
417
|
-
);
|
|
418
|
+
return parseMap(field.valueSchema, required, def);
|
|
418
419
|
}
|
|
419
420
|
if (assertions_default.effect(field)) {
|
|
420
421
|
const effect = field._def.effect;
|
|
@@ -428,6 +429,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
428
429
|
}
|
|
429
430
|
return null;
|
|
430
431
|
}
|
|
432
|
+
__name(parseField, "parseField");
|
|
431
433
|
function parseNumber(field, required = true, def, unique = false, validate, sparse = false) {
|
|
432
434
|
const output = {
|
|
433
435
|
type: Number,
|
|
@@ -438,10 +440,10 @@ function parseNumber(field, required = true, def, unique = false, validate, spar
|
|
|
438
440
|
unique,
|
|
439
441
|
sparse
|
|
440
442
|
};
|
|
441
|
-
if (validate)
|
|
442
|
-
output.validate = validate;
|
|
443
|
+
if (validate) output.validate = validate;
|
|
443
444
|
return output;
|
|
444
445
|
}
|
|
446
|
+
__name(parseNumber, "parseNumber");
|
|
445
447
|
function parseString(field, required = true, def, unique = false, validate, sparse = false) {
|
|
446
448
|
const output = {
|
|
447
449
|
type: String,
|
|
@@ -452,10 +454,10 @@ function parseString(field, required = true, def, unique = false, validate, spar
|
|
|
452
454
|
unique,
|
|
453
455
|
sparse
|
|
454
456
|
};
|
|
455
|
-
if (validate)
|
|
456
|
-
output.validate = validate;
|
|
457
|
+
if (validate) output.validate = validate;
|
|
457
458
|
return output;
|
|
458
459
|
}
|
|
460
|
+
__name(parseString, "parseString");
|
|
459
461
|
function parseEnum(values, required = true, def) {
|
|
460
462
|
return {
|
|
461
463
|
type: String,
|
|
@@ -466,6 +468,7 @@ function parseEnum(values, required = true, def) {
|
|
|
466
468
|
required
|
|
467
469
|
};
|
|
468
470
|
}
|
|
471
|
+
__name(parseEnum, "parseEnum");
|
|
469
472
|
function parseBoolean(required = true, def) {
|
|
470
473
|
return {
|
|
471
474
|
type: Boolean,
|
|
@@ -473,6 +476,7 @@ function parseBoolean(required = true, def) {
|
|
|
473
476
|
required
|
|
474
477
|
};
|
|
475
478
|
}
|
|
479
|
+
__name(parseBoolean, "parseBoolean");
|
|
476
480
|
function parseDate(required = true, def, validate, unique = false, sparse = false) {
|
|
477
481
|
const output = {
|
|
478
482
|
type: Date,
|
|
@@ -481,10 +485,10 @@ function parseDate(required = true, def, validate, unique = false, sparse = fals
|
|
|
481
485
|
unique,
|
|
482
486
|
sparse
|
|
483
487
|
};
|
|
484
|
-
if (validate)
|
|
485
|
-
output.validate = validate;
|
|
488
|
+
if (validate) output.validate = validate;
|
|
486
489
|
return output;
|
|
487
490
|
}
|
|
491
|
+
__name(parseDate, "parseDate");
|
|
488
492
|
function parseObjectId(required = true, ref, unique = false, refPath, sparse = false) {
|
|
489
493
|
const output = {
|
|
490
494
|
type: import_mongoose2.SchemaTypes.ObjectId,
|
|
@@ -492,26 +496,26 @@ function parseObjectId(required = true, ref, unique = false, refPath, sparse = f
|
|
|
492
496
|
unique,
|
|
493
497
|
sparse
|
|
494
498
|
};
|
|
495
|
-
if (ref)
|
|
496
|
-
|
|
497
|
-
if (refPath)
|
|
498
|
-
output.refPath = refPath;
|
|
499
|
+
if (ref) output.ref = ref;
|
|
500
|
+
if (refPath) output.refPath = refPath;
|
|
499
501
|
return output;
|
|
500
502
|
}
|
|
501
|
-
|
|
503
|
+
__name(parseObjectId, "parseObjectId");
|
|
504
|
+
function parseArray(element, required = true, def) {
|
|
502
505
|
const innerType = parseField(element);
|
|
503
|
-
if (!innerType)
|
|
504
|
-
throw new Error("Unsupported array type");
|
|
506
|
+
if (!innerType) throw new Error("Unsupported array type");
|
|
505
507
|
return {
|
|
506
|
-
type: [
|
|
508
|
+
type: [
|
|
509
|
+
innerType
|
|
510
|
+
],
|
|
507
511
|
default: def,
|
|
508
512
|
required
|
|
509
513
|
};
|
|
510
514
|
}
|
|
511
|
-
|
|
515
|
+
__name(parseArray, "parseArray");
|
|
516
|
+
function parseMap(valueType, required = true, def) {
|
|
512
517
|
const pointer = parseField(valueType);
|
|
513
|
-
if (!pointer)
|
|
514
|
-
throw new Error("Unsupported map value type");
|
|
518
|
+
if (!pointer) throw new Error("Unsupported map value type");
|
|
515
519
|
return {
|
|
516
520
|
type: Map,
|
|
517
521
|
of: pointer,
|
|
@@ -519,6 +523,7 @@ function parseMap(required = true, valueType, def) {
|
|
|
519
523
|
required
|
|
520
524
|
};
|
|
521
525
|
}
|
|
526
|
+
__name(parseMap, "parseMap");
|
|
522
527
|
function parseUUID(required = true, ref, unique = false, refPath, sparse = false) {
|
|
523
528
|
const output = {
|
|
524
529
|
type: import_mongoose2.SchemaTypes.UUID,
|
|
@@ -526,12 +531,11 @@ function parseUUID(required = true, ref, unique = false, refPath, sparse = false
|
|
|
526
531
|
unique,
|
|
527
532
|
sparse
|
|
528
533
|
};
|
|
529
|
-
if (ref)
|
|
530
|
-
|
|
531
|
-
if (refPath)
|
|
532
|
-
output.refPath = refPath;
|
|
534
|
+
if (ref) output.ref = ref;
|
|
535
|
+
if (refPath) output.refPath = refPath;
|
|
533
536
|
return output;
|
|
534
537
|
}
|
|
538
|
+
__name(parseUUID, "parseUUID");
|
|
535
539
|
function parseMixed(required = true, def) {
|
|
536
540
|
return {
|
|
537
541
|
type: import_mongoose2.SchemaTypes.Mixed,
|
|
@@ -539,7 +543,8 @@ function parseMixed(required = true, def) {
|
|
|
539
543
|
required
|
|
540
544
|
};
|
|
541
545
|
}
|
|
542
|
-
|
|
546
|
+
__name(parseMixed, "parseMixed");
|
|
547
|
+
var index_default = zodSchema;
|
|
543
548
|
// Annotate the CommonJS export names for ESM import in node:
|
|
544
549
|
0 && (module.exports = {
|
|
545
550
|
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, true);\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, true) as zm._Schema<T>;\n}\n\n// Helpers\nfunction parseObject<T extends ZodRawShape>(obj: ZodObject<T>): zm._Schema<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required: true,\n): zm._Schema<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required: false,\n): zm.mSubdocument<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required: boolean,\n): zm._Schema<T> | zm.mSubdocument<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required = true,\n): zm._Schema<T> | zm.mSubdocument<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, true);\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 if (!required) {\n return {\n type: object,\n required: false,\n } as zm.mSubdocument<T>;\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, required);\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 field.element,\n required,\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 field.valueSchema,\n required,\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 element: ZodType<T>,\n required = true,\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 valueType: ZodType<K>,\n required = true,\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","required","object","key","field","Object","entries","shape","zmAssert","f","parseField","Error","type","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","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.d.cts
CHANGED
|
@@ -81,7 +81,10 @@ declare namespace zm {
|
|
|
81
81
|
type: typeof Map;
|
|
82
82
|
of?: zm._Field<K>;
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
interface mSubdocument<T> extends _Field<T> {
|
|
85
|
+
type: _Schema<T>;
|
|
86
|
+
}
|
|
87
|
+
type mField = mString | mNumber | mBoolean | mDate | mObjectId | mUUID | mMixed<unknown> | mArray<unknown> | _Schema<unknown> | mMap<unknown, unknown> | mSubdocument<unknown>;
|
|
85
88
|
type _Schema<T> = SchemaDefinition & {
|
|
86
89
|
[K in keyof T]: (_Field<T[K]> & SchemaTypeOptions<T[K]>) | _Schema<T[K]>;
|
|
87
90
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -81,7 +81,10 @@ declare namespace zm {
|
|
|
81
81
|
type: typeof Map;
|
|
82
82
|
of?: zm._Field<K>;
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
interface mSubdocument<T> extends _Field<T> {
|
|
85
|
+
type: _Schema<T>;
|
|
86
|
+
}
|
|
87
|
+
type mField = mString | mNumber | mBoolean | mDate | mObjectId | mUUID | mMixed<unknown> | mArray<unknown> | _Schema<unknown> | mMap<unknown, unknown> | mSubdocument<unknown>;
|
|
85
88
|
type _Schema<T> = SchemaDefinition & {
|
|
86
89
|
[K in keyof T]: (_Field<T[K]> & SchemaTypeOptions<T[K]>) | _Schema<T[K]>;
|
|
87
90
|
};
|
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,30 +295,38 @@ 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
|
-
const definition = parseObject(schema);
|
|
302
|
+
const definition = parseObject(schema, true);
|
|
295
303
|
return new Schema(definition, options);
|
|
296
304
|
}
|
|
305
|
+
__name(zodSchema, "zodSchema");
|
|
297
306
|
function zodSchemaRaw(schema) {
|
|
298
|
-
return parseObject(schema);
|
|
307
|
+
return parseObject(schema, true);
|
|
299
308
|
}
|
|
300
|
-
|
|
309
|
+
__name(zodSchemaRaw, "zodSchemaRaw");
|
|
310
|
+
function parseObject(obj, required = true) {
|
|
301
311
|
const object = {};
|
|
302
312
|
for (const [key, field] of Object.entries(obj.shape)) {
|
|
303
313
|
if (assertions_default.object(field)) {
|
|
304
|
-
object[key] = parseObject(field);
|
|
314
|
+
object[key] = parseObject(field, true);
|
|
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
|
}
|
|
321
|
+
if (!required) {
|
|
322
|
+
return {
|
|
323
|
+
type: object,
|
|
324
|
+
required: false
|
|
325
|
+
};
|
|
326
|
+
}
|
|
312
327
|
return object;
|
|
313
328
|
}
|
|
329
|
+
__name(parseObject, "parseObject");
|
|
314
330
|
function parseField(field, required = true, def, refinement) {
|
|
315
331
|
if (assertions_default.objectId(field)) {
|
|
316
332
|
const ref = field.__zm_ref;
|
|
@@ -327,55 +343,34 @@ function parseField(field, required = true, def, refinement) {
|
|
|
327
343
|
return parseUUID(required, ref, unique, refPath, sparse);
|
|
328
344
|
}
|
|
329
345
|
if (assertions_default.object(field)) {
|
|
330
|
-
return parseObject(field);
|
|
346
|
+
return parseObject(field, required);
|
|
331
347
|
}
|
|
332
348
|
if (assertions_default.number(field)) {
|
|
333
349
|
const isUnique = field.__zm_unique ?? false;
|
|
334
350
|
const isSparse = field.__zm_sparse ?? false;
|
|
335
|
-
return parseNumber(
|
|
336
|
-
field,
|
|
337
|
-
required,
|
|
338
|
-
def,
|
|
339
|
-
isUnique,
|
|
340
|
-
refinement,
|
|
341
|
-
isSparse
|
|
342
|
-
);
|
|
351
|
+
return parseNumber(field, required, def, isUnique, refinement, isSparse);
|
|
343
352
|
}
|
|
344
353
|
if (assertions_default.string(field)) {
|
|
345
354
|
const isUnique = field.__zm_unique ?? false;
|
|
346
355
|
const isSparse = field.__zm_sparse ?? false;
|
|
347
|
-
return parseString(
|
|
348
|
-
field,
|
|
349
|
-
required,
|
|
350
|
-
def,
|
|
351
|
-
isUnique,
|
|
352
|
-
refinement,
|
|
353
|
-
isSparse
|
|
354
|
-
);
|
|
356
|
+
return parseString(field, required, def, isUnique, refinement, isSparse);
|
|
355
357
|
}
|
|
356
358
|
if (assertions_default.enumerable(field)) {
|
|
357
359
|
return parseEnum(Object.keys(field.Values), required, def);
|
|
358
360
|
}
|
|
361
|
+
if (assertions_default.nativeEnumerable(field)) {
|
|
362
|
+
return parseEnum(Object.values(field._def.values), required, def);
|
|
363
|
+
}
|
|
359
364
|
if (assertions_default.boolean(field)) {
|
|
360
365
|
return parseBoolean(required, def);
|
|
361
366
|
}
|
|
362
367
|
if (assertions_default.date(field)) {
|
|
363
368
|
const isUnique = field.__zm_unique ?? false;
|
|
364
369
|
const isSparse = field.__zm_sparse ?? false;
|
|
365
|
-
return parseDate(
|
|
366
|
-
required,
|
|
367
|
-
def,
|
|
368
|
-
refinement,
|
|
369
|
-
isUnique,
|
|
370
|
-
isSparse
|
|
371
|
-
);
|
|
370
|
+
return parseDate(required, def, refinement, isUnique, isSparse);
|
|
372
371
|
}
|
|
373
372
|
if (assertions_default.array(field)) {
|
|
374
|
-
return parseArray(
|
|
375
|
-
required,
|
|
376
|
-
field.element,
|
|
377
|
-
def
|
|
378
|
-
);
|
|
373
|
+
return parseArray(field.element, required, def);
|
|
379
374
|
}
|
|
380
375
|
if (assertions_default.def(field)) {
|
|
381
376
|
return parseField(field._def.innerType, required, field._def.defaultValue);
|
|
@@ -384,11 +379,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
384
379
|
return parseField(field._def.innerType, false, void 0);
|
|
385
380
|
}
|
|
386
381
|
if (assertions_default.nullable(field)) {
|
|
387
|
-
return parseField(
|
|
388
|
-
field._def.innerType,
|
|
389
|
-
false,
|
|
390
|
-
typeof def !== "undefined" ? def : () => null
|
|
391
|
-
);
|
|
382
|
+
return parseField(field._def.innerType, false, typeof def !== "undefined" ? def : () => null);
|
|
392
383
|
}
|
|
393
384
|
if (assertions_default.union(field)) {
|
|
394
385
|
return parseField(field._def.options[0]);
|
|
@@ -397,11 +388,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
397
388
|
return parseMixed(required, def);
|
|
398
389
|
}
|
|
399
390
|
if (assertions_default.mapOrRecord(field)) {
|
|
400
|
-
return parseMap(
|
|
401
|
-
required,
|
|
402
|
-
field.valueSchema,
|
|
403
|
-
def
|
|
404
|
-
);
|
|
391
|
+
return parseMap(field.valueSchema, required, def);
|
|
405
392
|
}
|
|
406
393
|
if (assertions_default.effect(field)) {
|
|
407
394
|
const effect = field._def.effect;
|
|
@@ -415,6 +402,7 @@ function parseField(field, required = true, def, refinement) {
|
|
|
415
402
|
}
|
|
416
403
|
return null;
|
|
417
404
|
}
|
|
405
|
+
__name(parseField, "parseField");
|
|
418
406
|
function parseNumber(field, required = true, def, unique = false, validate, sparse = false) {
|
|
419
407
|
const output = {
|
|
420
408
|
type: Number,
|
|
@@ -425,10 +413,10 @@ function parseNumber(field, required = true, def, unique = false, validate, spar
|
|
|
425
413
|
unique,
|
|
426
414
|
sparse
|
|
427
415
|
};
|
|
428
|
-
if (validate)
|
|
429
|
-
output.validate = validate;
|
|
416
|
+
if (validate) output.validate = validate;
|
|
430
417
|
return output;
|
|
431
418
|
}
|
|
419
|
+
__name(parseNumber, "parseNumber");
|
|
432
420
|
function parseString(field, required = true, def, unique = false, validate, sparse = false) {
|
|
433
421
|
const output = {
|
|
434
422
|
type: String,
|
|
@@ -439,10 +427,10 @@ function parseString(field, required = true, def, unique = false, validate, spar
|
|
|
439
427
|
unique,
|
|
440
428
|
sparse
|
|
441
429
|
};
|
|
442
|
-
if (validate)
|
|
443
|
-
output.validate = validate;
|
|
430
|
+
if (validate) output.validate = validate;
|
|
444
431
|
return output;
|
|
445
432
|
}
|
|
433
|
+
__name(parseString, "parseString");
|
|
446
434
|
function parseEnum(values, required = true, def) {
|
|
447
435
|
return {
|
|
448
436
|
type: String,
|
|
@@ -453,6 +441,7 @@ function parseEnum(values, required = true, def) {
|
|
|
453
441
|
required
|
|
454
442
|
};
|
|
455
443
|
}
|
|
444
|
+
__name(parseEnum, "parseEnum");
|
|
456
445
|
function parseBoolean(required = true, def) {
|
|
457
446
|
return {
|
|
458
447
|
type: Boolean,
|
|
@@ -460,6 +449,7 @@ function parseBoolean(required = true, def) {
|
|
|
460
449
|
required
|
|
461
450
|
};
|
|
462
451
|
}
|
|
452
|
+
__name(parseBoolean, "parseBoolean");
|
|
463
453
|
function parseDate(required = true, def, validate, unique = false, sparse = false) {
|
|
464
454
|
const output = {
|
|
465
455
|
type: Date,
|
|
@@ -468,10 +458,10 @@ function parseDate(required = true, def, validate, unique = false, sparse = fals
|
|
|
468
458
|
unique,
|
|
469
459
|
sparse
|
|
470
460
|
};
|
|
471
|
-
if (validate)
|
|
472
|
-
output.validate = validate;
|
|
461
|
+
if (validate) output.validate = validate;
|
|
473
462
|
return output;
|
|
474
463
|
}
|
|
464
|
+
__name(parseDate, "parseDate");
|
|
475
465
|
function parseObjectId(required = true, ref, unique = false, refPath, sparse = false) {
|
|
476
466
|
const output = {
|
|
477
467
|
type: SchemaTypes.ObjectId,
|
|
@@ -479,26 +469,26 @@ function parseObjectId(required = true, ref, unique = false, refPath, sparse = f
|
|
|
479
469
|
unique,
|
|
480
470
|
sparse
|
|
481
471
|
};
|
|
482
|
-
if (ref)
|
|
483
|
-
|
|
484
|
-
if (refPath)
|
|
485
|
-
output.refPath = refPath;
|
|
472
|
+
if (ref) output.ref = ref;
|
|
473
|
+
if (refPath) output.refPath = refPath;
|
|
486
474
|
return output;
|
|
487
475
|
}
|
|
488
|
-
|
|
476
|
+
__name(parseObjectId, "parseObjectId");
|
|
477
|
+
function parseArray(element, required = true, def) {
|
|
489
478
|
const innerType = parseField(element);
|
|
490
|
-
if (!innerType)
|
|
491
|
-
throw new Error("Unsupported array type");
|
|
479
|
+
if (!innerType) throw new Error("Unsupported array type");
|
|
492
480
|
return {
|
|
493
|
-
type: [
|
|
481
|
+
type: [
|
|
482
|
+
innerType
|
|
483
|
+
],
|
|
494
484
|
default: def,
|
|
495
485
|
required
|
|
496
486
|
};
|
|
497
487
|
}
|
|
498
|
-
|
|
488
|
+
__name(parseArray, "parseArray");
|
|
489
|
+
function parseMap(valueType, required = true, def) {
|
|
499
490
|
const pointer = parseField(valueType);
|
|
500
|
-
if (!pointer)
|
|
501
|
-
throw new Error("Unsupported map value type");
|
|
491
|
+
if (!pointer) throw new Error("Unsupported map value type");
|
|
502
492
|
return {
|
|
503
493
|
type: Map,
|
|
504
494
|
of: pointer,
|
|
@@ -506,6 +496,7 @@ function parseMap(required = true, valueType, def) {
|
|
|
506
496
|
required
|
|
507
497
|
};
|
|
508
498
|
}
|
|
499
|
+
__name(parseMap, "parseMap");
|
|
509
500
|
function parseUUID(required = true, ref, unique = false, refPath, sparse = false) {
|
|
510
501
|
const output = {
|
|
511
502
|
type: SchemaTypes.UUID,
|
|
@@ -513,12 +504,11 @@ function parseUUID(required = true, ref, unique = false, refPath, sparse = false
|
|
|
513
504
|
unique,
|
|
514
505
|
sparse
|
|
515
506
|
};
|
|
516
|
-
if (ref)
|
|
517
|
-
|
|
518
|
-
if (refPath)
|
|
519
|
-
output.refPath = refPath;
|
|
507
|
+
if (ref) output.ref = ref;
|
|
508
|
+
if (refPath) output.refPath = refPath;
|
|
520
509
|
return output;
|
|
521
510
|
}
|
|
511
|
+
__name(parseUUID, "parseUUID");
|
|
522
512
|
function parseMixed(required = true, def) {
|
|
523
513
|
return {
|
|
524
514
|
type: SchemaTypes.Mixed,
|
|
@@ -526,9 +516,10 @@ function parseMixed(required = true, def) {
|
|
|
526
516
|
required
|
|
527
517
|
};
|
|
528
518
|
}
|
|
529
|
-
|
|
519
|
+
__name(parseMixed, "parseMixed");
|
|
520
|
+
var index_default = zodSchema;
|
|
530
521
|
export {
|
|
531
|
-
|
|
522
|
+
index_default as default,
|
|
532
523
|
extendZod,
|
|
533
524
|
zId,
|
|
534
525
|
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, true);\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, true) as zm._Schema<T>;\n}\n\n// Helpers\nfunction parseObject<T extends ZodRawShape>(obj: ZodObject<T>): zm._Schema<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required: true,\n): zm._Schema<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required: false,\n): zm.mSubdocument<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required: boolean,\n): zm._Schema<T> | zm.mSubdocument<T>;\nfunction parseObject<T extends ZodRawShape>(\n obj: ZodObject<T>,\n required = true,\n): zm._Schema<T> | zm.mSubdocument<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, true);\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 if (!required) {\n return {\n type: object,\n required: false,\n } as zm.mSubdocument<T>;\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, required);\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 field.element,\n required,\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 field.valueSchema,\n required,\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 element: ZodType<T>,\n required = true,\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 valueType: ZodType<K>,\n required = true,\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","required","object","key","field","Object","entries","shape","zmAssert","f","parseField","Error","type","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","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.2",
|
|
4
4
|
"description": "A library that allows you to generate mongoose schemas from zod objects.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"test:badges": "jest --coverage && make-coverage-badge --report-path ./artifacts/coverage/coverage-summary.json --output-path ./badges/coverage.svg",
|
|
9
9
|
"build": "tsup",
|
|
10
10
|
"lint": "biome check",
|
|
11
|
-
"lint:fix": "biome check --write ."
|
|
11
|
+
"lint:fix": "biome check --write .",
|
|
12
|
+
"typecheck": "tsc --noEmit"
|
|
12
13
|
},
|
|
13
14
|
"type": "module",
|
|
14
15
|
"main": "./dist/index.cjs",
|
|
@@ -46,20 +47,21 @@
|
|
|
46
47
|
"document"
|
|
47
48
|
],
|
|
48
49
|
"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
|
-
"
|
|
50
|
+
"@biomejs/biome": "2.3.8",
|
|
51
|
+
"@swc/core": "1.15.3",
|
|
52
|
+
"@swc/jest": "0.2.39",
|
|
53
|
+
"@types/jest": "30.0.0",
|
|
54
|
+
"@types/node": "24.10.1",
|
|
55
|
+
"jest": "30.2.0",
|
|
56
|
+
"make-coverage-badge": "1.2.0",
|
|
57
|
+
"mongoose": "8.20.2",
|
|
58
|
+
"tsup": "8.5.1",
|
|
59
|
+
"typescript": "5.9.2",
|
|
59
60
|
"zod": "^3.22.4"
|
|
60
61
|
},
|
|
61
62
|
"peerDependencies": {
|
|
62
|
-
"mongoose": "^8.
|
|
63
|
+
"mongoose": "^8.20.2",
|
|
63
64
|
"zod": "^3.22.4"
|
|
64
|
-
}
|
|
65
|
+
},
|
|
66
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
65
67
|
}
|