@hy_ong/zod-kit 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-MCDESS3T.js → chunk-2JGRV3JO.js} +1 -1
- package/dist/{chunk-4LYZAO3P.js → chunk-3QLUXIY2.js} +1 -1
- package/dist/chunk-3ZF5JO3F.js +61 -0
- package/dist/{chunk-OP4KV3BY.cjs → chunk-4AQB4RSU.cjs} +3 -3
- package/dist/{chunk-UFNVCUPQ.cjs → chunk-53EEWALQ.cjs} +3 -3
- package/dist/{chunk-R5G4V7C6.cjs → chunk-5ZMTAI4G.cjs} +3 -3
- package/dist/{chunk-RKHX3DGH.js → chunk-6DFP7XY2.js} +1 -1
- package/dist/{chunk-P2NONIMS.js → chunk-6IAPM7BP.js} +1 -1
- package/dist/{chunk-AWV2IT66.js → chunk-7SKH66CM.js} +1 -1
- package/dist/chunk-7X3XPK6A.js +92 -0
- package/dist/{chunk-FVO4743A.cjs → chunk-A2GAEU4O.cjs} +3 -3
- package/dist/{chunk-P364KRO5.js → chunk-AI4U42JV.js} +1 -1
- package/dist/{chunk-5ZEKWPSE.cjs → chunk-AYCXAJRA.cjs} +3 -3
- package/dist/{chunk-5LS4DSRQ.cjs → chunk-BZSPJJYT.cjs} +3 -3
- package/dist/chunk-BZWQPSHO.cjs +92 -0
- package/dist/{chunk-KARFFIMP.js → chunk-D55YFP5R.js} +1 -1
- package/dist/{chunk-I2RJMDXN.js → chunk-E52GRXYY.js} +1 -1
- package/dist/{chunk-VDOAPLA6.cjs → chunk-EDTNS2XL.cjs} +3 -3
- package/dist/{chunk-YALLOVNO.cjs → chunk-FEL432I2.cjs} +3 -3
- package/dist/chunk-FMPHW7ID.cjs +61 -0
- package/dist/{chunk-OMFQ7Z63.cjs → chunk-FP4O2ICM.cjs} +3 -3
- package/dist/{chunk-AANSHH2O.cjs → chunk-G747FHUZ.cjs} +3 -3
- package/dist/{chunk-JZ2SHRGZ.js → chunk-G7FLGJYD.js} +1 -1
- package/dist/{chunk-LKPXHW5N.cjs → chunk-H25N5GP6.cjs} +3 -3
- package/dist/{chunk-FC6VDOC7.js → chunk-H6STFX4I.js} +11 -2
- package/dist/{chunk-MAQRXYE6.js → chunk-HQ4RAMSD.js} +1 -1
- package/dist/{chunk-6X22I6NQ.cjs → chunk-HZ2WESSL.cjs} +3 -3
- package/dist/{chunk-W2EWMV3A.cjs → chunk-IWR3H7IH.cjs} +3 -3
- package/dist/{chunk-5GAZQDVS.cjs → chunk-JZEF5Q3W.cjs} +13 -4
- package/dist/{chunk-77KZUPPN.cjs → chunk-KIUO2HIR.cjs} +3 -3
- package/dist/{chunk-OEK7QSQP.js → chunk-LBH5U2DZ.js} +1 -1
- package/dist/{chunk-PGSDXR2I.js → chunk-LC4RNKBM.js} +1 -1
- package/dist/{chunk-YAU6JCYL.cjs → chunk-LNWEJED7.cjs} +3 -3
- package/dist/{chunk-WWRFBLCR.cjs → chunk-LXFRQLH4.cjs} +3 -3
- package/dist/{chunk-B3U5G3AA.js → chunk-NWQSOSNF.js} +1 -1
- package/dist/{chunk-LIQSVJLS.js → chunk-OGU7AIZF.js} +1 -1
- package/dist/{chunk-NKCYXBGX.js → chunk-OKO6WO6M.js} +1 -1
- package/dist/{chunk-6OGDPSWT.js → chunk-OSUPJCBA.js} +1 -1
- package/dist/{chunk-ZBOQCXD4.js → chunk-POIDES2L.js} +190 -0
- package/dist/{chunk-MG25BEV4.cjs → chunk-Q24GYUTO.cjs} +3 -3
- package/dist/{chunk-YWV2BBXN.cjs → chunk-Q7TUNJD4.cjs} +190 -0
- package/dist/{chunk-DRXPGQM6.cjs → chunk-QQWX3ICK.cjs} +3 -3
- package/dist/{chunk-EAU42EVH.js → chunk-RFWCYULE.js} +1 -1
- package/dist/{chunk-VCRKYMJM.js → chunk-RHKBT3M2.js} +1 -1
- package/dist/{chunk-36NWHESN.js → chunk-RVGCMQ4J.js} +1 -1
- package/dist/{chunk-IJEEM3DI.js → chunk-T7PG4JDW.js} +1 -1
- package/dist/{chunk-JBNCMS42.cjs → chunk-TDEXEIHH.cjs} +3 -3
- package/dist/{chunk-VP5CCP5F.cjs → chunk-TPXRQT2H.cjs} +3 -3
- package/dist/{chunk-DPXRMSB2.js → chunk-TRQMRHFM.js} +1 -1
- package/dist/{chunk-ZFQQXWNB.js → chunk-U2PB6XEO.js} +1 -1
- package/dist/{chunk-G6DV7LX7.cjs → chunk-UCPKW43K.cjs} +3 -3
- package/dist/{chunk-PL2GERLG.cjs → chunk-V2KKGSKQ.cjs} +3 -3
- package/dist/{chunk-AI72FMOF.cjs → chunk-VKBNKPFO.cjs} +3 -3
- package/dist/{chunk-5OGW2ERW.js → chunk-XAN4CAVH.js} +1 -1
- package/dist/{chunk-CFFCBWYL.cjs → chunk-ZCX22PY4.cjs} +3 -3
- package/dist/{chunk-TSHL7ZO2.js → chunk-ZXPRRNZR.js} +1 -1
- package/dist/common/boolean.cjs +3 -3
- package/dist/common/boolean.js +2 -2
- package/dist/common/color.cjs +3 -3
- package/dist/common/color.js +2 -2
- package/dist/common/coordinate.cjs +3 -3
- package/dist/common/coordinate.js +2 -2
- package/dist/common/credit-card.cjs +3 -3
- package/dist/common/credit-card.js +2 -2
- package/dist/common/date.cjs +3 -3
- package/dist/common/date.js +2 -2
- package/dist/common/datetime.cjs +3 -3
- package/dist/common/datetime.js +2 -2
- package/dist/common/email.cjs +3 -3
- package/dist/common/email.js +2 -2
- package/dist/common/file.cjs +3 -3
- package/dist/common/file.js +2 -2
- package/dist/common/id.cjs +3 -3
- package/dist/common/id.d.cts +34 -8
- package/dist/common/id.d.ts +34 -8
- package/dist/common/id.js +2 -2
- package/dist/common/ip.cjs +3 -3
- package/dist/common/ip.js +2 -2
- package/dist/common/many-of.cjs +7 -0
- package/dist/common/many-of.d.cts +111 -0
- package/dist/common/many-of.d.ts +111 -0
- package/dist/common/many-of.js +7 -0
- package/dist/common/number.cjs +3 -3
- package/dist/common/number.js +2 -2
- package/dist/common/one-of.cjs +7 -0
- package/dist/common/one-of.d.cts +104 -0
- package/dist/common/one-of.d.ts +104 -0
- package/dist/common/one-of.js +7 -0
- package/dist/common/password.cjs +3 -3
- package/dist/common/password.js +2 -2
- package/dist/common/text.cjs +3 -3
- package/dist/common/text.js +2 -2
- package/dist/common/time.cjs +3 -3
- package/dist/common/time.js +2 -2
- package/dist/common/url.cjs +3 -3
- package/dist/common/url.js +2 -2
- package/dist/index.cjs +35 -27
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +46 -38
- package/dist/taiwan/bank-account.cjs +3 -3
- package/dist/taiwan/bank-account.js +2 -2
- package/dist/taiwan/business-id.cjs +3 -3
- package/dist/taiwan/business-id.js +2 -2
- package/dist/taiwan/fax.cjs +3 -3
- package/dist/taiwan/fax.js +2 -2
- package/dist/taiwan/invoice.cjs +3 -3
- package/dist/taiwan/invoice.js +2 -2
- package/dist/taiwan/license-plate.cjs +3 -3
- package/dist/taiwan/license-plate.js +2 -2
- package/dist/taiwan/mobile.cjs +3 -3
- package/dist/taiwan/mobile.js +2 -2
- package/dist/taiwan/national-id.cjs +3 -3
- package/dist/taiwan/national-id.js +2 -2
- package/dist/taiwan/passport.cjs +3 -3
- package/dist/taiwan/passport.js +2 -2
- package/dist/taiwan/postal-code.cjs +3 -3
- package/dist/taiwan/postal-code.js +2 -2
- package/dist/taiwan/tel.cjs +3 -3
- package/dist/taiwan/tel.js +2 -2
- package/package.json +15 -5
- package/src/i18n/locales/en-GB.json +19 -0
- package/src/i18n/locales/en-US.json +20 -1
- package/src/i18n/locales/id-ID.json +19 -0
- package/src/i18n/locales/ja-JP.json +19 -0
- package/src/i18n/locales/ko-KR.json +19 -0
- package/src/i18n/locales/ms-MY.json +19 -0
- package/src/i18n/locales/th-TH.json +19 -0
- package/src/i18n/locales/vi-VN.json +19 -0
- package/src/i18n/locales/zh-CN.json +19 -0
- package/src/i18n/locales/zh-TW.json +19 -0
- package/src/index.ts +2 -0
- package/src/validators/common/id.ts +45 -3
- package/src/validators/common/many-of.ts +219 -0
- package/src/validators/common/one-of.ts +172 -0
- package/tests/common/id.test.ts +68 -3
- package/tests/common/many-of.test.ts +198 -0
- package/tests/common/one-of.test.ts +136 -0
- package/tsup.config.ts +2 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ZodType } from 'zod';
|
|
2
|
+
import { L as Locale } from '../config-CABSSvAp.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @fileoverview ManyOf validator for Zod Kit
|
|
6
|
+
*
|
|
7
|
+
* Provides multi-select validation that restricts input to an array of values
|
|
8
|
+
* from a predefined set, with min/max selection, duplicate control, and transformation.
|
|
9
|
+
*
|
|
10
|
+
* @author Ong Hoe Yuan
|
|
11
|
+
* @version 0.2.2
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Type definition for manyOf validation error messages
|
|
16
|
+
*
|
|
17
|
+
* @interface ManyOfMessages
|
|
18
|
+
* @property {string} [required] - Message when field is required but empty
|
|
19
|
+
* @property {string} [invalid] - Message when a value is not in the allowed list
|
|
20
|
+
* @property {string} [minSelect] - Message when fewer than minimum items are selected
|
|
21
|
+
* @property {string} [maxSelect] - Message when more than maximum items are selected
|
|
22
|
+
* @property {string} [duplicate] - Message when duplicate values are found
|
|
23
|
+
*/
|
|
24
|
+
type ManyOfMessages = {
|
|
25
|
+
required?: string;
|
|
26
|
+
invalid?: string;
|
|
27
|
+
minSelect?: string;
|
|
28
|
+
maxSelect?: string;
|
|
29
|
+
duplicate?: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Configuration options for manyOf validation
|
|
33
|
+
*
|
|
34
|
+
* @template IsRequired - Whether the field is required (affects return type)
|
|
35
|
+
* @template T - The type of allowed values
|
|
36
|
+
*
|
|
37
|
+
* @interface ManyOfOptions
|
|
38
|
+
* @property {T[]} values - Array of allowed values
|
|
39
|
+
* @property {T[] | null} [defaultValue] - Default value when input is empty
|
|
40
|
+
* @property {number} [min] - Minimum number of selections
|
|
41
|
+
* @property {number} [max] - Maximum number of selections
|
|
42
|
+
* @property {boolean} [allowDuplicates=false] - Whether to allow duplicate selections
|
|
43
|
+
* @property {boolean} [caseSensitive=true] - Whether string matching is case-sensitive
|
|
44
|
+
* @property {Function} [transform] - Custom transformation function applied to each value
|
|
45
|
+
* @property {Record<Locale, ManyOfMessages>} [i18n] - Custom error messages for different locales
|
|
46
|
+
*/
|
|
47
|
+
type ManyOfOptions<IsRequired extends boolean = true, T extends string | number = string | number> = {
|
|
48
|
+
values: T[];
|
|
49
|
+
defaultValue?: IsRequired extends true ? T[] : T[] | null;
|
|
50
|
+
min?: number;
|
|
51
|
+
max?: number;
|
|
52
|
+
allowDuplicates?: boolean;
|
|
53
|
+
caseSensitive?: boolean;
|
|
54
|
+
transform?: (value: T[]) => T[];
|
|
55
|
+
i18n?: Partial<Record<Locale, Partial<ManyOfMessages>>>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Type alias for manyOf validation schema based on required flag
|
|
59
|
+
*
|
|
60
|
+
* @template IsRequired - Whether the field is required
|
|
61
|
+
* @template T - The type of allowed values
|
|
62
|
+
*/
|
|
63
|
+
type ManyOfSchema<IsRequired extends boolean, T> = IsRequired extends true ? ZodType<T[]> : ZodType<T[] | null>;
|
|
64
|
+
/**
|
|
65
|
+
* Creates a Zod schema for multi-select validation that restricts values to a predefined set
|
|
66
|
+
*
|
|
67
|
+
* @template IsRequired - Whether the field is required (affects return type)
|
|
68
|
+
* @template T - The type of allowed values (string | number)
|
|
69
|
+
* @param {IsRequired} [required=false] - Whether the field is required
|
|
70
|
+
* @param {ManyOfOptions<IsRequired, T>} options - Configuration options (values is required)
|
|
71
|
+
* @returns {ManyOfSchema<IsRequired, T>} Zod schema for manyOf validation
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* // Basic multi-select (optional by default)
|
|
76
|
+
* const tagsSchema = manyOf(false, { values: ["js", "ts", "rust", "go"] })
|
|
77
|
+
* tagsSchema.parse(["js", "ts"]) // ✓ ["js", "ts"]
|
|
78
|
+
* tagsSchema.parse(null) // ✓ null
|
|
79
|
+
*
|
|
80
|
+
* // Required with min/max
|
|
81
|
+
* const skillsSchema = manyOf(true, {
|
|
82
|
+
* values: ["react", "vue", "angular", "svelte"],
|
|
83
|
+
* min: 1,
|
|
84
|
+
* max: 3,
|
|
85
|
+
* })
|
|
86
|
+
* skillsSchema.parse(["react"]) // ✓
|
|
87
|
+
* skillsSchema.parse([]) // ✗ minSelect
|
|
88
|
+
* skillsSchema.parse(["react", "vue", "angular", "svelte"]) // ✗ maxSelect
|
|
89
|
+
*
|
|
90
|
+
* // Case-insensitive matching
|
|
91
|
+
* const colorsSchema = manyOf(true, {
|
|
92
|
+
* values: ["red", "green", "blue"],
|
|
93
|
+
* caseSensitive: false,
|
|
94
|
+
* })
|
|
95
|
+
* colorsSchema.parse(["RED", "Green"]) // ✓ ["red", "green"]
|
|
96
|
+
*
|
|
97
|
+
* // No duplicates (default)
|
|
98
|
+
* const rolesSchema = manyOf(true, { values: ["admin", "editor", "viewer"] })
|
|
99
|
+
* rolesSchema.parse(["admin", "admin"]) // ✗ duplicate
|
|
100
|
+
*
|
|
101
|
+
* // Allow duplicates
|
|
102
|
+
* const itemsSchema = manyOf(true, {
|
|
103
|
+
* values: [1, 2, 3],
|
|
104
|
+
* allowDuplicates: true,
|
|
105
|
+
* })
|
|
106
|
+
* itemsSchema.parse([1, 1, 2]) // ✓ [1, 1, 2]
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
declare function manyOf<IsRequired extends boolean = false, T extends string | number = string | number>(required?: IsRequired, options?: Omit<ManyOfOptions<IsRequired, T>, "required">): ManyOfSchema<IsRequired, T>;
|
|
110
|
+
|
|
111
|
+
export { type ManyOfMessages, type ManyOfOptions, type ManyOfSchema, manyOf };
|
package/dist/common/number.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunkG747FHUZcjs = require('../chunk-G747FHUZ.cjs');
|
|
4
|
+
require('../chunk-Q7TUNJD4.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
exports.number =
|
|
7
|
+
exports.number = _chunkG747FHUZcjs.number;
|
package/dist/common/number.js
CHANGED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ZodType } from 'zod';
|
|
2
|
+
import { L as Locale } from '../config-CABSSvAp.cjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @fileoverview OneOf validator for Zod Kit
|
|
6
|
+
*
|
|
7
|
+
* Provides single-select validation that restricts input to a predefined set of allowed values,
|
|
8
|
+
* with support for case-insensitive matching, default values, and transformation.
|
|
9
|
+
*
|
|
10
|
+
* @author Ong Hoe Yuan
|
|
11
|
+
* @version 0.2.2
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Type definition for oneOf validation error messages
|
|
16
|
+
*
|
|
17
|
+
* @interface OneOfMessages
|
|
18
|
+
* @property {string} [required] - Message when field is required but empty
|
|
19
|
+
* @property {string} [invalid] - Message when value is not in the allowed list
|
|
20
|
+
*/
|
|
21
|
+
type OneOfMessages = {
|
|
22
|
+
required?: string;
|
|
23
|
+
invalid?: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Configuration options for oneOf validation
|
|
27
|
+
*
|
|
28
|
+
* @template IsRequired - Whether the field is required (affects return type)
|
|
29
|
+
* @template T - The type of allowed values
|
|
30
|
+
*
|
|
31
|
+
* @interface OneOfOptions
|
|
32
|
+
* @property {T[]} values - Array of allowed values
|
|
33
|
+
* @property {T | null} [defaultValue] - Default value when input is empty
|
|
34
|
+
* @property {boolean} [caseSensitive=true] - Whether string matching is case-sensitive
|
|
35
|
+
* @property {Function} [transform] - Custom transformation function applied after validation
|
|
36
|
+
* @property {Record<Locale, OneOfMessages>} [i18n] - Custom error messages for different locales
|
|
37
|
+
*/
|
|
38
|
+
type OneOfOptions<IsRequired extends boolean = true, T extends string | number = string | number> = {
|
|
39
|
+
values: T[];
|
|
40
|
+
defaultValue?: IsRequired extends true ? T : T | null;
|
|
41
|
+
caseSensitive?: boolean;
|
|
42
|
+
transform?: (value: T) => T;
|
|
43
|
+
i18n?: Partial<Record<Locale, Partial<OneOfMessages>>>;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Type alias for oneOf validation schema based on required flag
|
|
47
|
+
*
|
|
48
|
+
* @template IsRequired - Whether the field is required
|
|
49
|
+
* @template T - The type of allowed values
|
|
50
|
+
*/
|
|
51
|
+
type OneOfSchema<IsRequired extends boolean, T> = IsRequired extends true ? ZodType<T> : ZodType<T | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a Zod schema for single-select validation that restricts values to a predefined set
|
|
54
|
+
*
|
|
55
|
+
* @template IsRequired - Whether the field is required (affects return type)
|
|
56
|
+
* @template T - The type of allowed values (string | number)
|
|
57
|
+
* @param {IsRequired} [required=false] - Whether the field is required
|
|
58
|
+
* @param {OneOfOptions<IsRequired, T>} options - Configuration options (values is required)
|
|
59
|
+
* @returns {OneOfSchema<IsRequired, T>} Zod schema for oneOf validation
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // Basic single-select validation (optional by default)
|
|
64
|
+
* const roleSchema = oneOf(false, { values: ["admin", "editor", "viewer"] })
|
|
65
|
+
* roleSchema.parse("admin") // ✓ "admin"
|
|
66
|
+
* roleSchema.parse(null) // ✓ null
|
|
67
|
+
*
|
|
68
|
+
* // Required
|
|
69
|
+
* const statusSchema = oneOf(true, { values: ["active", "inactive", "pending"] })
|
|
70
|
+
* statusSchema.parse("active") // ✓ "active"
|
|
71
|
+
* statusSchema.parse(null) // ✗ Required
|
|
72
|
+
* statusSchema.parse("banned") // ✗ Invalid
|
|
73
|
+
*
|
|
74
|
+
* // Numeric values
|
|
75
|
+
* const prioritySchema = oneOf(true, { values: [1, 2, 3, 4, 5] })
|
|
76
|
+
* prioritySchema.parse(3) // ✓ 3
|
|
77
|
+
* prioritySchema.parse(10) // ✗ Invalid
|
|
78
|
+
*
|
|
79
|
+
* // Case-insensitive matching
|
|
80
|
+
* const colorSchema = oneOf(true, {
|
|
81
|
+
* values: ["red", "green", "blue"],
|
|
82
|
+
* caseSensitive: false
|
|
83
|
+
* })
|
|
84
|
+
* colorSchema.parse("RED") // ✓ "red" (normalized to match original)
|
|
85
|
+
* colorSchema.parse("Green") // ✓ "green"
|
|
86
|
+
*
|
|
87
|
+
* // With default value
|
|
88
|
+
* const tierSchema = oneOf(false, {
|
|
89
|
+
* values: ["free", "pro", "enterprise"],
|
|
90
|
+
* defaultValue: "free"
|
|
91
|
+
* })
|
|
92
|
+
* tierSchema.parse(null) // ✓ "free"
|
|
93
|
+
*
|
|
94
|
+
* // With transform
|
|
95
|
+
* const sizeSchema = oneOf(true, {
|
|
96
|
+
* values: ["s", "m", "l", "xl"],
|
|
97
|
+
* transform: (val) => val.toUpperCase() as any
|
|
98
|
+
* })
|
|
99
|
+
* sizeSchema.parse("m") // ✓ "M"
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
declare function oneOf<IsRequired extends boolean = false, T extends string | number = string | number>(required?: IsRequired, options?: Omit<OneOfOptions<IsRequired, T>, "required">): OneOfSchema<IsRequired, T>;
|
|
103
|
+
|
|
104
|
+
export { type OneOfMessages, type OneOfOptions, type OneOfSchema, oneOf };
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ZodType } from 'zod';
|
|
2
|
+
import { L as Locale } from '../config-CABSSvAp.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @fileoverview OneOf validator for Zod Kit
|
|
6
|
+
*
|
|
7
|
+
* Provides single-select validation that restricts input to a predefined set of allowed values,
|
|
8
|
+
* with support for case-insensitive matching, default values, and transformation.
|
|
9
|
+
*
|
|
10
|
+
* @author Ong Hoe Yuan
|
|
11
|
+
* @version 0.2.2
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Type definition for oneOf validation error messages
|
|
16
|
+
*
|
|
17
|
+
* @interface OneOfMessages
|
|
18
|
+
* @property {string} [required] - Message when field is required but empty
|
|
19
|
+
* @property {string} [invalid] - Message when value is not in the allowed list
|
|
20
|
+
*/
|
|
21
|
+
type OneOfMessages = {
|
|
22
|
+
required?: string;
|
|
23
|
+
invalid?: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Configuration options for oneOf validation
|
|
27
|
+
*
|
|
28
|
+
* @template IsRequired - Whether the field is required (affects return type)
|
|
29
|
+
* @template T - The type of allowed values
|
|
30
|
+
*
|
|
31
|
+
* @interface OneOfOptions
|
|
32
|
+
* @property {T[]} values - Array of allowed values
|
|
33
|
+
* @property {T | null} [defaultValue] - Default value when input is empty
|
|
34
|
+
* @property {boolean} [caseSensitive=true] - Whether string matching is case-sensitive
|
|
35
|
+
* @property {Function} [transform] - Custom transformation function applied after validation
|
|
36
|
+
* @property {Record<Locale, OneOfMessages>} [i18n] - Custom error messages for different locales
|
|
37
|
+
*/
|
|
38
|
+
type OneOfOptions<IsRequired extends boolean = true, T extends string | number = string | number> = {
|
|
39
|
+
values: T[];
|
|
40
|
+
defaultValue?: IsRequired extends true ? T : T | null;
|
|
41
|
+
caseSensitive?: boolean;
|
|
42
|
+
transform?: (value: T) => T;
|
|
43
|
+
i18n?: Partial<Record<Locale, Partial<OneOfMessages>>>;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Type alias for oneOf validation schema based on required flag
|
|
47
|
+
*
|
|
48
|
+
* @template IsRequired - Whether the field is required
|
|
49
|
+
* @template T - The type of allowed values
|
|
50
|
+
*/
|
|
51
|
+
type OneOfSchema<IsRequired extends boolean, T> = IsRequired extends true ? ZodType<T> : ZodType<T | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a Zod schema for single-select validation that restricts values to a predefined set
|
|
54
|
+
*
|
|
55
|
+
* @template IsRequired - Whether the field is required (affects return type)
|
|
56
|
+
* @template T - The type of allowed values (string | number)
|
|
57
|
+
* @param {IsRequired} [required=false] - Whether the field is required
|
|
58
|
+
* @param {OneOfOptions<IsRequired, T>} options - Configuration options (values is required)
|
|
59
|
+
* @returns {OneOfSchema<IsRequired, T>} Zod schema for oneOf validation
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // Basic single-select validation (optional by default)
|
|
64
|
+
* const roleSchema = oneOf(false, { values: ["admin", "editor", "viewer"] })
|
|
65
|
+
* roleSchema.parse("admin") // ✓ "admin"
|
|
66
|
+
* roleSchema.parse(null) // ✓ null
|
|
67
|
+
*
|
|
68
|
+
* // Required
|
|
69
|
+
* const statusSchema = oneOf(true, { values: ["active", "inactive", "pending"] })
|
|
70
|
+
* statusSchema.parse("active") // ✓ "active"
|
|
71
|
+
* statusSchema.parse(null) // ✗ Required
|
|
72
|
+
* statusSchema.parse("banned") // ✗ Invalid
|
|
73
|
+
*
|
|
74
|
+
* // Numeric values
|
|
75
|
+
* const prioritySchema = oneOf(true, { values: [1, 2, 3, 4, 5] })
|
|
76
|
+
* prioritySchema.parse(3) // ✓ 3
|
|
77
|
+
* prioritySchema.parse(10) // ✗ Invalid
|
|
78
|
+
*
|
|
79
|
+
* // Case-insensitive matching
|
|
80
|
+
* const colorSchema = oneOf(true, {
|
|
81
|
+
* values: ["red", "green", "blue"],
|
|
82
|
+
* caseSensitive: false
|
|
83
|
+
* })
|
|
84
|
+
* colorSchema.parse("RED") // ✓ "red" (normalized to match original)
|
|
85
|
+
* colorSchema.parse("Green") // ✓ "green"
|
|
86
|
+
*
|
|
87
|
+
* // With default value
|
|
88
|
+
* const tierSchema = oneOf(false, {
|
|
89
|
+
* values: ["free", "pro", "enterprise"],
|
|
90
|
+
* defaultValue: "free"
|
|
91
|
+
* })
|
|
92
|
+
* tierSchema.parse(null) // ✓ "free"
|
|
93
|
+
*
|
|
94
|
+
* // With transform
|
|
95
|
+
* const sizeSchema = oneOf(true, {
|
|
96
|
+
* values: ["s", "m", "l", "xl"],
|
|
97
|
+
* transform: (val) => val.toUpperCase() as any
|
|
98
|
+
* })
|
|
99
|
+
* sizeSchema.parse("m") // ✓ "M"
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
declare function oneOf<IsRequired extends boolean = false, T extends string | number = string | number>(required?: IsRequired, options?: Omit<OneOfOptions<IsRequired, T>, "required">): OneOfSchema<IsRequired, T>;
|
|
103
|
+
|
|
104
|
+
export { type OneOfMessages, type OneOfOptions, type OneOfSchema, oneOf };
|
package/dist/common/password.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunkQ24GYUTOcjs = require('../chunk-Q24GYUTO.cjs');
|
|
4
|
+
require('../chunk-Q7TUNJD4.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
exports.password =
|
|
7
|
+
exports.password = _chunkQ24GYUTOcjs.password;
|
package/dist/common/password.js
CHANGED
package/dist/common/text.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunkHZ2WESSLcjs = require('../chunk-HZ2WESSL.cjs');
|
|
4
|
+
require('../chunk-Q7TUNJD4.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
exports.text =
|
|
7
|
+
exports.text = _chunkHZ2WESSLcjs.text;
|
package/dist/common/text.js
CHANGED
package/dist/common/time.cjs
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
require('../chunk-
|
|
7
|
+
var _chunkEDTNS2XLcjs = require('../chunk-EDTNS2XL.cjs');
|
|
8
|
+
require('../chunk-Q7TUNJD4.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
exports.TIME_PATTERNS =
|
|
15
|
+
exports.TIME_PATTERNS = _chunkEDTNS2XLcjs.TIME_PATTERNS; exports.normalizeTime = _chunkEDTNS2XLcjs.normalizeTime; exports.parseTimeToMinutes = _chunkEDTNS2XLcjs.parseTimeToMinutes; exports.time = _chunkEDTNS2XLcjs.time; exports.validateTimeFormat = _chunkEDTNS2XLcjs.validateTimeFormat;
|
package/dist/common/time.js
CHANGED
package/dist/common/url.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunkTDEXEIHHcjs = require('../chunk-TDEXEIHH.cjs');
|
|
4
|
+
require('../chunk-Q7TUNJD4.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
exports.url =
|
|
7
|
+
exports.url = _chunkTDEXEIHHcjs.url;
|
package/dist/common/url.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,122 +1,124 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
var _chunkV2KKGSKQcjs = require('./chunk-V2KKGSKQ.cjs');
|
|
4
5
|
|
|
5
|
-
var _chunkDRXPGQM6cjs = require('./chunk-DRXPGQM6.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
var _chunkTPXRQT2Hcjs = require('./chunk-TPXRQT2H.cjs');
|
|
8
9
|
|
|
9
|
-
var _chunkR5G4V7C6cjs = require('./chunk-R5G4V7C6.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkQQWX3ICKcjs = require('./chunk-QQWX3ICK.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
var _chunk5ZMTAI4Gcjs = require('./chunk-5ZMTAI4G.cjs');
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
var
|
|
21
|
+
var _chunkA2GAEU4Ocjs = require('./chunk-A2GAEU4O.cjs');
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
|
|
24
|
-
var _chunk5ZEKWPSEcjs = require('./chunk-5ZEKWPSE.cjs');
|
|
25
25
|
|
|
26
|
+
var _chunkFEL432I2cjs = require('./chunk-FEL432I2.cjs');
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
|
|
30
|
+
var _chunkIWR3H7IHcjs = require('./chunk-IWR3H7IH.cjs');
|
|
29
31
|
|
|
30
32
|
|
|
31
33
|
|
|
32
|
-
var _chunkOMFQ7Z63cjs = require('./chunk-OMFQ7Z63.cjs');
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
|
|
36
|
-
var
|
|
37
|
+
var _chunkUCPKW43Kcjs = require('./chunk-UCPKW43K.cjs');
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
|
|
40
|
-
var
|
|
41
|
+
var _chunkAYCXAJRAcjs = require('./chunk-AYCXAJRA.cjs');
|
|
41
42
|
|
|
42
43
|
|
|
43
44
|
|
|
44
|
-
var _chunkPL2GERLGcjs = require('./chunk-PL2GERLG.cjs');
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
var _chunkVP5CCP5Fcjs = require('./chunk-VP5CCP5F.cjs');
|
|
49
48
|
|
|
49
|
+
var _chunkFP4O2ICMcjs = require('./chunk-FP4O2ICM.cjs');
|
|
50
50
|
|
|
51
|
-
var _chunkMG25BEV4cjs = require('./chunk-MG25BEV4.cjs');
|
|
52
51
|
|
|
53
52
|
|
|
54
|
-
var
|
|
53
|
+
var _chunkVKBNKPFOcjs = require('./chunk-VKBNKPFO.cjs');
|
|
55
54
|
|
|
56
55
|
|
|
57
56
|
|
|
57
|
+
var _chunkBZSPJJYTcjs = require('./chunk-BZSPJJYT.cjs');
|
|
58
58
|
|
|
59
59
|
|
|
60
|
+
var _chunkG747FHUZcjs = require('./chunk-G747FHUZ.cjs');
|
|
60
61
|
|
|
61
|
-
var _chunkVDOAPLA6cjs = require('./chunk-VDOAPLA6.cjs');
|
|
62
62
|
|
|
63
|
+
var _chunkFMPHW7IDcjs = require('./chunk-FMPHW7ID.cjs');
|
|
63
64
|
|
|
64
|
-
var _chunkJBNCMS42cjs = require('./chunk-JBNCMS42.cjs');
|
|
65
65
|
|
|
66
|
+
var _chunkQ24GYUTOcjs = require('./chunk-Q24GYUTO.cjs');
|
|
66
67
|
|
|
67
68
|
|
|
69
|
+
var _chunkHZ2WESSLcjs = require('./chunk-HZ2WESSL.cjs');
|
|
68
70
|
|
|
69
|
-
var _chunkCFFCBWYLcjs = require('./chunk-CFFCBWYL.cjs');
|
|
70
71
|
|
|
71
72
|
|
|
72
73
|
|
|
73
74
|
|
|
74
|
-
var _chunkWWRFBLCRcjs = require('./chunk-WWRFBLCR.cjs');
|
|
75
75
|
|
|
76
|
+
var _chunkEDTNS2XLcjs = require('./chunk-EDTNS2XL.cjs');
|
|
76
77
|
|
|
77
78
|
|
|
78
|
-
var
|
|
79
|
+
var _chunkTDEXEIHHcjs = require('./chunk-TDEXEIHH.cjs');
|
|
79
80
|
|
|
80
81
|
|
|
81
82
|
|
|
82
83
|
|
|
83
|
-
var
|
|
84
|
+
var _chunkZCX22PY4cjs = require('./chunk-ZCX22PY4.cjs');
|
|
84
85
|
|
|
85
86
|
|
|
86
|
-
var _chunkYAU6JCYLcjs = require('./chunk-YAU6JCYL.cjs');
|
|
87
87
|
|
|
88
88
|
|
|
89
|
-
var
|
|
89
|
+
var _chunkLXFRQLH4cjs = require('./chunk-LXFRQLH4.cjs');
|
|
90
90
|
|
|
91
91
|
|
|
92
|
+
var _chunkLNWEJED7cjs = require('./chunk-LNWEJED7.cjs');
|
|
92
93
|
|
|
93
94
|
|
|
95
|
+
var _chunk4AQB4RSUcjs = require('./chunk-4AQB4RSU.cjs');
|
|
94
96
|
|
|
95
97
|
|
|
96
|
-
var _chunkUFNVCUPQcjs = require('./chunk-UFNVCUPQ.cjs');
|
|
97
98
|
|
|
98
99
|
|
|
99
|
-
var _chunkLKPXHW5Ncjs = require('./chunk-LKPXHW5N.cjs');
|
|
100
100
|
|
|
101
101
|
|
|
102
|
-
var
|
|
102
|
+
var _chunk53EEWALQcjs = require('./chunk-53EEWALQ.cjs');
|
|
103
103
|
|
|
104
104
|
|
|
105
|
+
var _chunkH25N5GP6cjs = require('./chunk-H25N5GP6.cjs');
|
|
105
106
|
|
|
106
107
|
|
|
108
|
+
var _chunkKIUO2HIRcjs = require('./chunk-KIUO2HIR.cjs');
|
|
107
109
|
|
|
108
|
-
var _chunk5GAZQDVScjs = require('./chunk-5GAZQDVS.cjs');
|
|
109
110
|
|
|
110
111
|
|
|
111
|
-
var _chunkAANSHH2Ocjs = require('./chunk-AANSHH2O.cjs');
|
|
112
112
|
|
|
113
113
|
|
|
114
|
+
var _chunkJZEF5Q3Wcjs = require('./chunk-JZEF5Q3W.cjs');
|
|
114
115
|
|
|
115
|
-
var _chunkYWV2BBXNcjs = require('./chunk-YWV2BBXN.cjs');
|
|
116
116
|
|
|
117
|
+
var _chunkBZWQPSHOcjs = require('./chunk-BZWQPSHO.cjs');
|
|
117
118
|
|
|
118
119
|
|
|
119
120
|
|
|
121
|
+
var _chunkQ7TUNJD4cjs = require('./chunk-Q7TUNJD4.cjs');
|
|
120
122
|
|
|
121
123
|
|
|
122
124
|
|
|
@@ -177,4 +179,10 @@ var _chunkYWV2BBXNcjs = require('./chunk-YWV2BBXN.cjs');
|
|
|
177
179
|
|
|
178
180
|
|
|
179
181
|
|
|
180
|
-
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
exports.DATETIME_PATTERNS = _chunk53EEWALQcjs.DATETIME_PATTERNS; exports.ID_PATTERNS = _chunkJZEF5Q3Wcjs.ID_PATTERNS; exports.TAIWAN_BANK_CODES = _chunkQQWX3ICKcjs.TAIWAN_BANK_CODES; exports.TIME_PATTERNS = _chunkEDTNS2XLcjs.TIME_PATTERNS; exports.VALID_3_DIGIT_PREFIXES = _chunkFP4O2ICMcjs.VALID_3_DIGIT_PREFIXES; exports.boolean = _chunkLNWEJED7cjs.boolean; exports.color = _chunkA2GAEU4Ocjs.color; exports.coordinate = _chunkFEL432I2cjs.coordinate; exports.creditCard = _chunkZCX22PY4cjs.creditCard; exports.date = _chunk4AQB4RSUcjs.date; exports.datetime = _chunk53EEWALQcjs.datetime; exports.detectCardType = _chunkZCX22PY4cjs.detectCardType; exports.detectIdType = _chunkJZEF5Q3Wcjs.detectIdType; exports.email = _chunkH25N5GP6cjs.email; exports.file = _chunkKIUO2HIRcjs.file; exports.getLocale = _chunkQ7TUNJD4cjs.getLocale; exports.id = _chunkJZEF5Q3Wcjs.id; exports.ip = _chunkLXFRQLH4cjs.ip; exports.manyOf = _chunkBZWQPSHOcjs.manyOf; exports.normalizeDateTimeValue = _chunk53EEWALQcjs.normalizeDateTimeValue; exports.normalizeTime = _chunkEDTNS2XLcjs.normalizeTime; exports.number = _chunkG747FHUZcjs.number; exports.oneOf = _chunkFMPHW7IDcjs.oneOf; exports.parseDateTimeValue = _chunk53EEWALQcjs.parseDateTimeValue; exports.parseTimeToMinutes = _chunkEDTNS2XLcjs.parseTimeToMinutes; exports.password = _chunkQ24GYUTOcjs.password; exports.setLocale = _chunkQ7TUNJD4cjs.setLocale; exports.text = _chunkHZ2WESSLcjs.text; exports.time = _chunkEDTNS2XLcjs.time; exports.twBankAccount = _chunkQQWX3ICKcjs.twBankAccount; exports.twBusinessId = _chunkIWR3H7IHcjs.twBusinessId; exports.twFax = _chunkBZSPJJYTcjs.twFax; exports.twInvoice = _chunkV2KKGSKQcjs.twInvoice; exports.twLicensePlate = _chunkTPXRQT2Hcjs.twLicensePlate; exports.twMobile = _chunkAYCXAJRAcjs.twMobile; exports.twNationalId = _chunkUCPKW43Kcjs.twNationalId; exports.twPassport = _chunk5ZMTAI4Gcjs.twPassport; exports.twPostalCode = _chunkFP4O2ICMcjs.twPostalCode; exports.twTel = _chunkVKBNKPFOcjs.twTel; exports.url = _chunkTDEXEIHHcjs.url; exports.validate3DigitPostalCode = _chunkFP4O2ICMcjs.validate3DigitPostalCode; exports.validate5DigitPostalCode = _chunkFP4O2ICMcjs.validate5DigitPostalCode; exports.validate6DigitPostalCode = _chunkFP4O2ICMcjs.validate6DigitPostalCode; exports.validateCitizenId = _chunkUCPKW43Kcjs.validateCitizenId; exports.validateColor = _chunkA2GAEU4Ocjs.validateColor; exports.validateCreditCard = _chunkZCX22PY4cjs.validateCreditCard; exports.validateDateTimeFormat = _chunk53EEWALQcjs.validateDateTimeFormat; exports.validateIPv4 = _chunkLXFRQLH4cjs.validateIPv4; exports.validateIPv6 = _chunkLXFRQLH4cjs.validateIPv6; exports.validateIdType = _chunkJZEF5Q3Wcjs.validateIdType; exports.validateLatitude = _chunkFEL432I2cjs.validateLatitude; exports.validateLongitude = _chunkFEL432I2cjs.validateLongitude; exports.validateNewResidentId = _chunkUCPKW43Kcjs.validateNewResidentId; exports.validateOldResidentId = _chunkUCPKW43Kcjs.validateOldResidentId; exports.validateTaiwanBankAccount = _chunkQQWX3ICKcjs.validateTaiwanBankAccount; exports.validateTaiwanBusinessId = _chunkIWR3H7IHcjs.validateTaiwanBusinessId; exports.validateTaiwanFax = _chunkBZSPJJYTcjs.validateTaiwanFax; exports.validateTaiwanInvoice = _chunkV2KKGSKQcjs.validateTaiwanInvoice; exports.validateTaiwanLicensePlate = _chunkTPXRQT2Hcjs.validateTaiwanLicensePlate; exports.validateTaiwanMobile = _chunkAYCXAJRAcjs.validateTaiwanMobile; exports.validateTaiwanNationalId = _chunkUCPKW43Kcjs.validateTaiwanNationalId; exports.validateTaiwanPassport = _chunk5ZMTAI4Gcjs.validateTaiwanPassport; exports.validateTaiwanPostalCode = _chunkFP4O2ICMcjs.validateTaiwanPostalCode; exports.validateTaiwanTel = _chunkVKBNKPFOcjs.validateTaiwanTel; exports.validateTimeFormat = _chunkEDTNS2XLcjs.validateTimeFormat;
|
package/dist/index.d.cts
CHANGED
|
@@ -7,8 +7,10 @@ export { DATETIME_PATTERNS, DateTimeFormat, DateTimeMessages, DateTimeOptions, D
|
|
|
7
7
|
export { EmailMessages, EmailOptions, EmailSchema, email } from './common/email.cjs';
|
|
8
8
|
export { FileMessages, FileOptions, FileSchema, file } from './common/file.cjs';
|
|
9
9
|
export { ID_PATTERNS, IdMessages, IdOptions, IdSchema, IdType, detectIdType, id, validateIdType } from './common/id.cjs';
|
|
10
|
+
export { ManyOfMessages, ManyOfOptions, ManyOfSchema, manyOf } from './common/many-of.cjs';
|
|
10
11
|
export { IpMessages, IpOptions, IpSchema, IpVersion, ip, validateIPv4, validateIPv6 } from './common/ip.cjs';
|
|
11
12
|
export { NumberMessages, NumberOptions, NumberSchema, number } from './common/number.cjs';
|
|
13
|
+
export { OneOfMessages, OneOfOptions, OneOfSchema, oneOf } from './common/one-of.cjs';
|
|
12
14
|
export { PasswordMessages, PasswordOptions, PasswordSchema, PasswordStrength, password } from './common/password.cjs';
|
|
13
15
|
export { TextMessages, TextOptions, TextSchema, text } from './common/text.cjs';
|
|
14
16
|
export { TIME_PATTERNS, TimeFormat, TimeMessages, TimeOptions, TimeSchema, normalizeTime, parseTimeToMinutes, time, validateTimeFormat } from './common/time.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,10 @@ export { DATETIME_PATTERNS, DateTimeFormat, DateTimeMessages, DateTimeOptions, D
|
|
|
7
7
|
export { EmailMessages, EmailOptions, EmailSchema, email } from './common/email.js';
|
|
8
8
|
export { FileMessages, FileOptions, FileSchema, file } from './common/file.js';
|
|
9
9
|
export { ID_PATTERNS, IdMessages, IdOptions, IdSchema, IdType, detectIdType, id, validateIdType } from './common/id.js';
|
|
10
|
+
export { ManyOfMessages, ManyOfOptions, ManyOfSchema, manyOf } from './common/many-of.js';
|
|
10
11
|
export { IpMessages, IpOptions, IpSchema, IpVersion, ip, validateIPv4, validateIPv6 } from './common/ip.js';
|
|
11
12
|
export { NumberMessages, NumberOptions, NumberSchema, number } from './common/number.js';
|
|
13
|
+
export { OneOfMessages, OneOfOptions, OneOfSchema, oneOf } from './common/one-of.js';
|
|
12
14
|
export { PasswordMessages, PasswordOptions, PasswordSchema, PasswordStrength, password } from './common/password.js';
|
|
13
15
|
export { TextMessages, TextOptions, TextSchema, text } from './common/text.js';
|
|
14
16
|
export { TIME_PATTERNS, TimeFormat, TimeMessages, TimeOptions, TimeSchema, normalizeTime, parseTimeToMinutes, time, validateTimeFormat } from './common/time.js';
|