z-schema 12.2.0 → 12.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/z-schema +1 -1
- package/cjs/{index.js → index.cjs} +838 -707
- package/cjs/{index.d.ts → index.d.cts} +47 -26
- package/dist/{errors.d.mts → errors.d.ts} +2 -2
- package/dist/{errors.mjs → errors.js} +1 -2
- package/dist/{format-validators.mjs → format-validators.js} +60 -43
- package/dist/{index.d.mts → index.d.ts} +9 -9
- package/dist/{index.mjs → index.js} +3 -3
- package/dist/{json-schema-versions.d.mts → json-schema-versions.d.ts} +34 -3
- package/dist/{json-schema.d.mts → json-schema.d.ts} +7 -7
- package/dist/{json-schema.mjs → json-schema.js} +6 -5
- package/dist/{json-validation.mjs → json-validation.js} +144 -127
- package/dist/{report.d.mts → report.d.ts} +8 -9
- package/dist/{report.mjs → report.js} +28 -31
- package/dist/{schema-cache.d.mts → schema-cache.d.ts} +5 -5
- package/dist/{schema-cache.mjs → schema-cache.js} +10 -11
- package/dist/{schema-compiler.d.mts → schema-compiler.d.ts} +4 -4
- package/dist/{schema-compiler.mjs → schema-compiler.js} +101 -79
- package/dist/{schema-validator.d.mts → schema-validator.d.ts} +5 -5
- package/dist/{schema-validator.mjs → schema-validator.js} +138 -166
- package/dist/utils/{array.mjs → array.js} +4 -3
- package/dist/utils/{base64.mjs → base64.js} +3 -2
- package/dist/utils/{clone.mjs → clone.js} +18 -20
- package/dist/utils/hostname.js +176 -0
- package/dist/utils/{json.mjs → json.js} +13 -8
- package/dist/utils/{schema-regex.mjs → schema-regex.js} +5 -5
- package/dist/utils/{time.mjs → time.js} +8 -8
- package/dist/utils/unicode.js +22 -0
- package/dist/utils/{what-is.mjs → what-is.js} +1 -2
- package/dist/validation/{array.mjs → array.js} +18 -20
- package/dist/validation/{combinators.mjs → combinators.js} +16 -16
- package/dist/validation/{numeric.mjs → numeric.js} +11 -11
- package/dist/validation/{object.mjs → object.js} +35 -34
- package/dist/validation/{ref.mjs → ref.js} +5 -5
- package/dist/validation/{shared.mjs → shared.js} +15 -12
- package/dist/validation/{string.mjs → string.js} +35 -35
- package/dist/validation/type.js +34 -0
- package/dist/{z-schema-base.d.mts → z-schema-base.d.ts} +11 -12
- package/dist/{z-schema-base.mjs → z-schema-base.js} +45 -40
- package/dist/{z-schema-options.d.mts → z-schema-options.d.ts} +3 -3
- package/dist/{z-schema-options.mjs → z-schema-options.js} +5 -5
- package/dist/{z-schema-reader.d.mts → z-schema-reader.d.ts} +1 -1
- package/dist/{z-schema-versions.mjs → z-schema-versions.js} +21 -21
- package/dist/{z-schema.d.mts → z-schema.d.ts} +5 -13
- package/dist/{z-schema.mjs → z-schema.js} +38 -48
- package/package.json +24 -25
- package/src/errors.ts +1 -2
- package/src/format-validators.ts +173 -67
- package/src/json-schema-versions.ts +56 -2
- package/src/json-schema.ts +10 -9
- package/src/json-validation.ts +189 -146
- package/src/report.ts +37 -49
- package/src/schema-cache.ts +13 -13
- package/src/schema-compiler.ts +170 -117
- package/src/schema-validator.ts +239 -238
- package/src/utils/array.ts +9 -6
- package/src/utils/base64.ts +13 -2
- package/src/utils/clone.ts +28 -30
- package/src/utils/date.ts +6 -3
- package/src/utils/hostname.ts +257 -31
- package/src/utils/json.ts +16 -9
- package/src/utils/properties.ts +2 -2
- package/src/utils/schema-regex.ts +4 -4
- package/src/utils/time.ts +8 -7
- package/src/utils/unicode.ts +12 -5
- package/src/utils/what-is.ts +1 -5
- package/src/validation/array.ts +24 -22
- package/src/validation/combinators.ts +14 -14
- package/src/validation/numeric.ts +14 -28
- package/src/validation/object.ts +32 -36
- package/src/validation/ref.ts +5 -6
- package/src/validation/shared.ts +22 -21
- package/src/validation/string.ts +36 -42
- package/src/validation/type.ts +17 -17
- package/src/z-schema-base.ts +49 -38
- package/src/z-schema-options.ts +4 -3
- package/src/z-schema.ts +35 -45
- package/umd/ZSchema.js +853 -715
- package/umd/ZSchema.min.js +2 -2
- package/umd/package.json +3 -0
- package/dist/utils/hostname.mjs +0 -75
- package/dist/utils/unicode.mjs +0 -12
- package/dist/validation/type.mjs +0 -32
- /package/dist/{format-validators.d.mts → format-validators.d.ts} +0 -0
- /package/dist/{json-schema-versions.mjs → json-schema-versions.js} +0 -0
- /package/dist/schemas/{draft-04-schema.mjs → draft-04-schema.js} +0 -0
- /package/dist/schemas/{draft-06-schema.mjs → draft-06-schema.js} +0 -0
- /package/dist/schemas/{draft-07-schema.mjs → draft-07-schema.js} +0 -0
- /package/dist/schemas/{draft-2019-09-meta-applicator.mjs → draft-2019-09-meta-applicator.js} +0 -0
- /package/dist/schemas/{draft-2019-09-meta-content.mjs → draft-2019-09-meta-content.js} +0 -0
- /package/dist/schemas/{draft-2019-09-meta-core.mjs → draft-2019-09-meta-core.js} +0 -0
- /package/dist/schemas/{draft-2019-09-meta-format.mjs → draft-2019-09-meta-format.js} +0 -0
- /package/dist/schemas/{draft-2019-09-meta-meta-data.mjs → draft-2019-09-meta-meta-data.js} +0 -0
- /package/dist/schemas/{draft-2019-09-meta-validation.mjs → draft-2019-09-meta-validation.js} +0 -0
- /package/dist/schemas/{draft-2019-09-schema.mjs → draft-2019-09-schema.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-applicator.mjs → draft-2020-12-meta-applicator.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-content.mjs → draft-2020-12-meta-content.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-core.mjs → draft-2020-12-meta-core.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-format-annotation.mjs → draft-2020-12-meta-format-annotation.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-format-assertion.mjs → draft-2020-12-meta-format-assertion.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-meta-data.mjs → draft-2020-12-meta-meta-data.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-unevaluated.mjs → draft-2020-12-meta-unevaluated.js} +0 -0
- /package/dist/schemas/{draft-2020-12-meta-validation.mjs → draft-2020-12-meta-validation.js} +0 -0
- /package/dist/schemas/{draft-2020-12-schema.mjs → draft-2020-12-schema.js} +0 -0
- /package/dist/utils/{constants.mjs → constants.js} +0 -0
- /package/dist/utils/{date.mjs → date.js} +0 -0
- /package/dist/utils/{properties.mjs → properties.js} +0 -0
- /package/dist/utils/{symbols.mjs → symbols.js} +0 -0
- /package/dist/utils/{uri.mjs → uri.js} +0 -0
- /package/dist/{z-schema-reader.mjs → z-schema-reader.js} +0 -0
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { normalizeOptions } from "./z-schema-options.
|
|
2
|
-
import { SchemaCache } from "./schema-cache.
|
|
3
|
-
import draft_04_schema_default from "./schemas/draft-04-schema.
|
|
4
|
-
import draft_06_schema_default from "./schemas/draft-06-schema.
|
|
5
|
-
import draft_07_schema_default from "./schemas/draft-07-schema.
|
|
6
|
-
import draft_2019_09_meta_applicator_default from "./schemas/draft-2019-09-meta-applicator.
|
|
7
|
-
import draft_2019_09_meta_content_default from "./schemas/draft-2019-09-meta-content.
|
|
8
|
-
import draft_2019_09_meta_core_default from "./schemas/draft-2019-09-meta-core.
|
|
9
|
-
import draft_2019_09_meta_format_default from "./schemas/draft-2019-09-meta-format.
|
|
10
|
-
import draft_2019_09_meta_meta_data_default from "./schemas/draft-2019-09-meta-meta-data.
|
|
11
|
-
import draft_2019_09_meta_validation_default from "./schemas/draft-2019-09-meta-validation.
|
|
12
|
-
import draft_2019_09_schema_default from "./schemas/draft-2019-09-schema.
|
|
13
|
-
import draft_2020_12_meta_applicator_default from "./schemas/draft-2020-12-meta-applicator.
|
|
14
|
-
import draft_2020_12_meta_content_default from "./schemas/draft-2020-12-meta-content.
|
|
15
|
-
import draft_2020_12_meta_core_default from "./schemas/draft-2020-12-meta-core.
|
|
16
|
-
import draft_2020_12_meta_format_annotation_default from "./schemas/draft-2020-12-meta-format-annotation.
|
|
17
|
-
import draft_2020_12_meta_format_assertion_default from "./schemas/draft-2020-12-meta-format-assertion.
|
|
18
|
-
import draft_2020_12_meta_meta_data_default from "./schemas/draft-2020-12-meta-meta-data.
|
|
19
|
-
import draft_2020_12_meta_unevaluated_default from "./schemas/draft-2020-12-meta-unevaluated.
|
|
20
|
-
import draft_2020_12_meta_validation_default from "./schemas/draft-2020-12-meta-validation.
|
|
21
|
-
import draft_2020_12_schema_default from "./schemas/draft-2020-12-schema.
|
|
1
|
+
import { normalizeOptions } from "./z-schema-options.js";
|
|
2
|
+
import { SchemaCache } from "./schema-cache.js";
|
|
3
|
+
import draft_04_schema_default from "./schemas/draft-04-schema.js";
|
|
4
|
+
import draft_06_schema_default from "./schemas/draft-06-schema.js";
|
|
5
|
+
import draft_07_schema_default from "./schemas/draft-07-schema.js";
|
|
6
|
+
import draft_2019_09_meta_applicator_default from "./schemas/draft-2019-09-meta-applicator.js";
|
|
7
|
+
import draft_2019_09_meta_content_default from "./schemas/draft-2019-09-meta-content.js";
|
|
8
|
+
import draft_2019_09_meta_core_default from "./schemas/draft-2019-09-meta-core.js";
|
|
9
|
+
import draft_2019_09_meta_format_default from "./schemas/draft-2019-09-meta-format.js";
|
|
10
|
+
import draft_2019_09_meta_meta_data_default from "./schemas/draft-2019-09-meta-meta-data.js";
|
|
11
|
+
import draft_2019_09_meta_validation_default from "./schemas/draft-2019-09-meta-validation.js";
|
|
12
|
+
import draft_2019_09_schema_default from "./schemas/draft-2019-09-schema.js";
|
|
13
|
+
import draft_2020_12_meta_applicator_default from "./schemas/draft-2020-12-meta-applicator.js";
|
|
14
|
+
import draft_2020_12_meta_content_default from "./schemas/draft-2020-12-meta-content.js";
|
|
15
|
+
import draft_2020_12_meta_core_default from "./schemas/draft-2020-12-meta-core.js";
|
|
16
|
+
import draft_2020_12_meta_format_annotation_default from "./schemas/draft-2020-12-meta-format-annotation.js";
|
|
17
|
+
import draft_2020_12_meta_format_assertion_default from "./schemas/draft-2020-12-meta-format-assertion.js";
|
|
18
|
+
import draft_2020_12_meta_meta_data_default from "./schemas/draft-2020-12-meta-meta-data.js";
|
|
19
|
+
import draft_2020_12_meta_unevaluated_default from "./schemas/draft-2020-12-meta-unevaluated.js";
|
|
20
|
+
import draft_2020_12_meta_validation_default from "./schemas/draft-2020-12-meta-validation.js";
|
|
21
|
+
import draft_2020_12_schema_default from "./schemas/draft-2020-12-schema.js";
|
|
22
22
|
//#region src/z-schema-versions.ts
|
|
23
23
|
const Draft4Schema = draft_04_schema_default;
|
|
24
24
|
const Draft6Schema = draft_06_schema_default;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { FormatValidatorFn } from "./format-validators.
|
|
2
|
-
import { ZSchemaOptions } from "./z-schema-options.
|
|
3
|
-
import { ValidateOptions, ValidateResponse, ZSchemaBase } from "./z-schema-base.
|
|
4
|
-
import { JsonSchema } from "./json-schema-versions.
|
|
5
|
-
import { SchemaReader } from "./z-schema-reader.
|
|
1
|
+
import { FormatValidatorFn } from "./format-validators.js";
|
|
2
|
+
import { ZSchemaOptions } from "./z-schema-options.js";
|
|
3
|
+
import { ValidateOptions, ValidateResponse, ZSchemaBase } from "./z-schema-base.js";
|
|
4
|
+
import { JsonSchema } from "./json-schema-versions.js";
|
|
5
|
+
import { SchemaReader } from "./z-schema-reader.js";
|
|
6
6
|
|
|
7
7
|
//#region src/z-schema.d.ts
|
|
8
8
|
declare class ZSchema extends ZSchemaBase {
|
|
9
|
-
/** @internal Use ZSchema.create() instead. */
|
|
10
|
-
constructor(options: ZSchemaOptions | undefined, token: symbol);
|
|
11
9
|
/**
|
|
12
10
|
* Register a global format validator available to all instances.
|
|
13
11
|
* @param name - The format name (e.g. `'email'`, `'date'`).
|
|
@@ -125,8 +123,6 @@ declare class ZSchema extends ZSchemaBase {
|
|
|
125
123
|
* Created via `ZSchema.create({ safe: true })`.
|
|
126
124
|
*/
|
|
127
125
|
declare class ZSchemaSafe extends ZSchemaBase {
|
|
128
|
-
/** @internal Use ZSchema.create() instead. */
|
|
129
|
-
constructor(options: ZSchemaOptions | undefined, token: symbol);
|
|
130
126
|
/**
|
|
131
127
|
* Validate JSON data against a schema.
|
|
132
128
|
* @param json - The data to validate.
|
|
@@ -147,8 +143,6 @@ declare class ZSchemaSafe extends ZSchemaBase {
|
|
|
147
143
|
* Created via `ZSchema.create({ async: true })`.
|
|
148
144
|
*/
|
|
149
145
|
declare class ZSchemaAsync extends ZSchemaBase {
|
|
150
|
-
/** @internal Use ZSchema.create() instead. */
|
|
151
|
-
constructor(options: ZSchemaOptions | undefined, token: symbol);
|
|
152
146
|
/**
|
|
153
147
|
* Validate JSON data against a schema asynchronously.
|
|
154
148
|
* @param json - The data to validate.
|
|
@@ -171,8 +165,6 @@ declare class ZSchemaAsync extends ZSchemaBase {
|
|
|
171
165
|
* Created via `ZSchema.create({ async: true, safe: true })`.
|
|
172
166
|
*/
|
|
173
167
|
declare class ZSchemaAsyncSafe extends ZSchemaBase {
|
|
174
|
-
/** @internal Use ZSchema.create() instead. */
|
|
175
|
-
constructor(options: ZSchemaOptions | undefined, token: symbol);
|
|
176
168
|
/**
|
|
177
169
|
* Validate JSON data against a schema asynchronously.
|
|
178
170
|
* The promise always resolves (never rejects).
|
|
@@ -1,31 +1,27 @@
|
|
|
1
|
-
import { deepClone } from "./utils/clone.
|
|
2
|
-
import { jsonSymbol, schemaSymbol } from "./utils/symbols.
|
|
3
|
-
import { defaultOptions } from "./z-schema-options.
|
|
4
|
-
import { SchemaCache, prepareRemoteSchema } from "./schema-cache.
|
|
5
|
-
import "./z-schema-versions.
|
|
6
|
-
import { getRegisteredFormats, registerFormat, unregisterFormat } from "./format-validators.
|
|
7
|
-
import { getSchemaReader, setSchemaReader } from "./z-schema-reader.
|
|
8
|
-
import { FACTORY_TOKEN, ZSchemaBase } from "./z-schema-base.
|
|
1
|
+
import { deepClone } from "./utils/clone.js";
|
|
2
|
+
import { jsonSymbol, schemaSymbol } from "./utils/symbols.js";
|
|
3
|
+
import { defaultOptions } from "./z-schema-options.js";
|
|
4
|
+
import { SchemaCache, prepareRemoteSchema } from "./schema-cache.js";
|
|
5
|
+
import "./z-schema-versions.js";
|
|
6
|
+
import { getRegisteredFormats, registerFormat, unregisterFormat } from "./format-validators.js";
|
|
7
|
+
import { getSchemaReader, setSchemaReader } from "./z-schema-reader.js";
|
|
8
|
+
import { FACTORY_TOKEN, ZSchemaBase } from "./z-schema-base.js";
|
|
9
9
|
//#region src/z-schema.ts
|
|
10
10
|
var ZSchema = class ZSchema extends ZSchemaBase {
|
|
11
|
-
/** @internal Use ZSchema.create() instead. */
|
|
12
|
-
constructor(options, token) {
|
|
13
|
-
super(options, token);
|
|
14
|
-
}
|
|
15
11
|
/**
|
|
16
12
|
* Register a global format validator available to all instances.
|
|
17
13
|
* @param name - The format name (e.g. `'email'`, `'date'`).
|
|
18
14
|
* @param validatorFunction - A sync or async function `(value: unknown) => boolean | Promise<boolean>`.
|
|
19
15
|
*/
|
|
20
16
|
static registerFormat(name, validatorFunction) {
|
|
21
|
-
|
|
17
|
+
registerFormat(name, validatorFunction);
|
|
22
18
|
}
|
|
23
19
|
/**
|
|
24
20
|
* Remove a globally registered format validator.
|
|
25
21
|
* @param name - The format name to unregister.
|
|
26
22
|
*/
|
|
27
23
|
static unregisterFormat(name) {
|
|
28
|
-
|
|
24
|
+
unregisterFormat(name);
|
|
29
25
|
}
|
|
30
26
|
/** Returns the names of all globally registered format validators. */
|
|
31
27
|
static getRegisteredFormats() {
|
|
@@ -54,7 +50,7 @@ var ZSchema = class ZSchema extends ZSchemaBase {
|
|
|
54
50
|
* @param schemaReader - A function `(uri: string) => JsonSchema | undefined`, or `undefined` to clear.
|
|
55
51
|
*/
|
|
56
52
|
static setSchemaReader(schemaReader) {
|
|
57
|
-
|
|
53
|
+
setSchemaReader(schemaReader);
|
|
58
54
|
}
|
|
59
55
|
static schemaSymbol = schemaSymbol;
|
|
60
56
|
static jsonSymbol = jsonSymbol;
|
|
@@ -90,10 +86,10 @@ var ZSchema = class ZSchema extends ZSchemaBase {
|
|
|
90
86
|
try {
|
|
91
87
|
this._validate(json, schema, options ?? {});
|
|
92
88
|
return { valid: true };
|
|
93
|
-
} catch (
|
|
89
|
+
} catch (error) {
|
|
94
90
|
return {
|
|
95
91
|
valid: false,
|
|
96
|
-
err
|
|
92
|
+
err: error
|
|
97
93
|
};
|
|
98
94
|
}
|
|
99
95
|
}
|
|
@@ -108,9 +104,12 @@ var ZSchema = class ZSchema extends ZSchemaBase {
|
|
|
108
104
|
validateAsync(json, schema, options) {
|
|
109
105
|
return new Promise((resolve, reject) => {
|
|
110
106
|
try {
|
|
111
|
-
this._validate(json, schema, options || {}, (err, valid) =>
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
this._validate(json, schema, options || {}, (err, valid) => {
|
|
108
|
+
if (err || !valid) reject(err ?? /* @__PURE__ */ new Error("Validation failed"));
|
|
109
|
+
else resolve(valid);
|
|
110
|
+
});
|
|
111
|
+
} catch (error) {
|
|
112
|
+
reject(error instanceof Error ? error : new Error(String(error), { cause: error }));
|
|
114
113
|
}
|
|
115
114
|
});
|
|
116
115
|
}
|
|
@@ -131,10 +130,10 @@ var ZSchema = class ZSchema extends ZSchemaBase {
|
|
|
131
130
|
err
|
|
132
131
|
});
|
|
133
132
|
});
|
|
134
|
-
} catch (
|
|
133
|
+
} catch (error) {
|
|
135
134
|
resolve({
|
|
136
135
|
valid: false,
|
|
137
|
-
err
|
|
136
|
+
err: error
|
|
138
137
|
});
|
|
139
138
|
}
|
|
140
139
|
});
|
|
@@ -157,10 +156,10 @@ var ZSchema = class ZSchema extends ZSchemaBase {
|
|
|
157
156
|
try {
|
|
158
157
|
this._validateSchema(schemaOrArr);
|
|
159
158
|
return { valid: true };
|
|
160
|
-
} catch (
|
|
159
|
+
} catch (error) {
|
|
161
160
|
return {
|
|
162
161
|
valid: false,
|
|
163
|
-
err
|
|
162
|
+
err: error
|
|
164
163
|
};
|
|
165
164
|
}
|
|
166
165
|
}
|
|
@@ -170,10 +169,6 @@ var ZSchema = class ZSchema extends ZSchemaBase {
|
|
|
170
169
|
* Created via `ZSchema.create({ safe: true })`.
|
|
171
170
|
*/
|
|
172
171
|
var ZSchemaSafe = class extends ZSchemaBase {
|
|
173
|
-
/** @internal Use ZSchema.create() instead. */
|
|
174
|
-
constructor(options, token) {
|
|
175
|
-
super(options, token);
|
|
176
|
-
}
|
|
177
172
|
/**
|
|
178
173
|
* Validate JSON data against a schema.
|
|
179
174
|
* @param json - The data to validate.
|
|
@@ -185,10 +180,10 @@ var ZSchemaSafe = class extends ZSchemaBase {
|
|
|
185
180
|
try {
|
|
186
181
|
this._validate(json, schema, options);
|
|
187
182
|
return { valid: true };
|
|
188
|
-
} catch (
|
|
183
|
+
} catch (error) {
|
|
189
184
|
return {
|
|
190
185
|
valid: false,
|
|
191
|
-
err
|
|
186
|
+
err: error
|
|
192
187
|
};
|
|
193
188
|
}
|
|
194
189
|
}
|
|
@@ -201,10 +196,10 @@ var ZSchemaSafe = class extends ZSchemaBase {
|
|
|
201
196
|
try {
|
|
202
197
|
this._validateSchema(schemaOrArr);
|
|
203
198
|
return { valid: true };
|
|
204
|
-
} catch (
|
|
199
|
+
} catch (error) {
|
|
205
200
|
return {
|
|
206
201
|
valid: false,
|
|
207
|
-
err
|
|
202
|
+
err: error
|
|
208
203
|
};
|
|
209
204
|
}
|
|
210
205
|
}
|
|
@@ -214,10 +209,6 @@ var ZSchemaSafe = class extends ZSchemaBase {
|
|
|
214
209
|
* Created via `ZSchema.create({ async: true })`.
|
|
215
210
|
*/
|
|
216
211
|
var ZSchemaAsync = class extends ZSchemaBase {
|
|
217
|
-
/** @internal Use ZSchema.create() instead. */
|
|
218
|
-
constructor(options, token) {
|
|
219
|
-
super(options, token);
|
|
220
|
-
}
|
|
221
212
|
/**
|
|
222
213
|
* Validate JSON data against a schema asynchronously.
|
|
223
214
|
* @param json - The data to validate.
|
|
@@ -229,9 +220,12 @@ var ZSchemaAsync = class extends ZSchemaBase {
|
|
|
229
220
|
validate(json, schema, options = {}) {
|
|
230
221
|
return new Promise((resolve, reject) => {
|
|
231
222
|
try {
|
|
232
|
-
this._validate(json, schema, options, (err, valid) =>
|
|
233
|
-
|
|
234
|
-
|
|
223
|
+
this._validate(json, schema, options, (err, valid) => {
|
|
224
|
+
if (err || !valid) reject(err ?? /* @__PURE__ */ new Error("Validation failed"));
|
|
225
|
+
else resolve(valid);
|
|
226
|
+
});
|
|
227
|
+
} catch (error) {
|
|
228
|
+
reject(error instanceof Error ? error : new Error(String(error), { cause: error }));
|
|
235
229
|
}
|
|
236
230
|
});
|
|
237
231
|
}
|
|
@@ -250,10 +244,6 @@ var ZSchemaAsync = class extends ZSchemaBase {
|
|
|
250
244
|
* Created via `ZSchema.create({ async: true, safe: true })`.
|
|
251
245
|
*/
|
|
252
246
|
var ZSchemaAsyncSafe = class extends ZSchemaBase {
|
|
253
|
-
/** @internal Use ZSchema.create() instead. */
|
|
254
|
-
constructor(options, token) {
|
|
255
|
-
super(options, token);
|
|
256
|
-
}
|
|
257
247
|
/**
|
|
258
248
|
* Validate JSON data against a schema asynchronously.
|
|
259
249
|
* The promise always resolves (never rejects).
|
|
@@ -271,10 +261,10 @@ var ZSchemaAsyncSafe = class extends ZSchemaBase {
|
|
|
271
261
|
err
|
|
272
262
|
});
|
|
273
263
|
});
|
|
274
|
-
} catch (
|
|
264
|
+
} catch (error) {
|
|
275
265
|
resolve({
|
|
276
266
|
valid: false,
|
|
277
|
-
err
|
|
267
|
+
err: error
|
|
278
268
|
});
|
|
279
269
|
}
|
|
280
270
|
});
|
|
@@ -288,13 +278,13 @@ var ZSchemaAsyncSafe = class extends ZSchemaBase {
|
|
|
288
278
|
try {
|
|
289
279
|
this._validateSchema(schemaOrArr);
|
|
290
280
|
return { valid: true };
|
|
291
|
-
} catch (
|
|
281
|
+
} catch (error) {
|
|
292
282
|
return {
|
|
293
283
|
valid: false,
|
|
294
|
-
err
|
|
284
|
+
err: error
|
|
295
285
|
};
|
|
296
286
|
}
|
|
297
287
|
}
|
|
298
288
|
};
|
|
299
289
|
//#endregion
|
|
300
|
-
export { ZSchema };
|
|
290
|
+
export { ZSchema, ZSchemaAsync, ZSchemaAsyncSafe, ZSchemaSafe };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "z-schema",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.4.0",
|
|
4
4
|
"description": "Fast, lightweight JSON Schema validator for Node.js and browsers — full support for draft-04, draft-06, draft-07, draft-2019-09, and draft-2020-12 (latest)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"draft-04",
|
|
@@ -39,32 +39,30 @@
|
|
|
39
39
|
"LICENSE",
|
|
40
40
|
"README.md"
|
|
41
41
|
],
|
|
42
|
+
"type": "module",
|
|
42
43
|
"sideEffects": [
|
|
43
|
-
"./dist/z-schema-versions.
|
|
44
|
+
"./dist/z-schema-versions.js"
|
|
44
45
|
],
|
|
45
46
|
"exports": {
|
|
46
47
|
".": {
|
|
47
48
|
"import": {
|
|
48
|
-
"types": "./dist/index.d.
|
|
49
|
-
"default": "./dist/index.
|
|
49
|
+
"types": "./dist/index.d.ts",
|
|
50
|
+
"default": "./dist/index.js"
|
|
50
51
|
},
|
|
51
52
|
"require": {
|
|
52
|
-
"types": "./cjs/index.d.
|
|
53
|
-
"default": "./cjs/index.
|
|
53
|
+
"types": "./cjs/index.d.cts",
|
|
54
|
+
"default": "./cjs/index.cjs"
|
|
54
55
|
},
|
|
55
|
-
"default": "./dist/index.
|
|
56
|
+
"default": "./dist/index.js"
|
|
56
57
|
}
|
|
57
58
|
},
|
|
58
59
|
"scripts": {
|
|
59
|
-
"prepare": "
|
|
60
|
-
"pre-commit": "npx lint-staged",
|
|
60
|
+
"prepare": "lefthook install",
|
|
61
61
|
"pre-push": "npm run build && npm run build:tests",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"lint": "oxlint --fix",
|
|
65
|
-
"lint:check": "oxlint",
|
|
62
|
+
"check": "ultracite check",
|
|
63
|
+
"fix": "ultracite fix",
|
|
66
64
|
"clean": "rimraf ./cjs && rimraf ./dist && rimraf ./umd && rimraf --glob \"./src/schemas/*.json\"",
|
|
67
|
-
"build": "npm run copy:schemas && tsdown",
|
|
65
|
+
"build": "npm run copy:schemas && tsdown && node ./scripts/write-build-markers.mjs",
|
|
68
66
|
"build:watch": "npm run copy:schemas && tsdown --watch",
|
|
69
67
|
"build:tests": "tsc --noEmit --project test/tsconfig.json",
|
|
70
68
|
"copy:schemas": "node ./scripts/copy-schemas.mts",
|
|
@@ -84,24 +82,25 @@
|
|
|
84
82
|
},
|
|
85
83
|
"devDependencies": {
|
|
86
84
|
"@types/lodash.isequal": "^4.5.8",
|
|
87
|
-
"@types/node": "^
|
|
85
|
+
"@types/node": "^26.0.1",
|
|
88
86
|
"@types/punycode": "^2.1.4",
|
|
89
87
|
"@types/validator": "^13.15.10",
|
|
90
|
-
"@vitest/browser-playwright": "^4.0
|
|
91
|
-
"@vitest/coverage-istanbul": "^4.0
|
|
92
|
-
"@vitest/coverage-v8": "^4.0
|
|
93
|
-
"
|
|
94
|
-
"lint-staged": "^16.2.7",
|
|
88
|
+
"@vitest/browser-playwright": "^4.1.0",
|
|
89
|
+
"@vitest/coverage-istanbul": "^4.1.0",
|
|
90
|
+
"@vitest/coverage-v8": "^4.1.0",
|
|
91
|
+
"lefthook": "^2.1.9",
|
|
95
92
|
"lodash.isequal": "^4.5.0",
|
|
96
|
-
"oxfmt": "^0.
|
|
93
|
+
"oxfmt": "^0.57.0",
|
|
97
94
|
"oxlint": "^1.56.0",
|
|
95
|
+
"oxlint-tsgolint": "^0.24.0",
|
|
98
96
|
"rimraf": "^6.1.2",
|
|
99
|
-
"tsdown": "^0.
|
|
100
|
-
"typescript": "^
|
|
101
|
-
"
|
|
97
|
+
"tsdown": "^0.22.0",
|
|
98
|
+
"typescript": "^6.0.3",
|
|
99
|
+
"ultracite": "^7.8.1",
|
|
100
|
+
"vitest": "^4.1.0"
|
|
102
101
|
},
|
|
103
102
|
"optionalDependencies": {
|
|
104
|
-
"commander": "^
|
|
103
|
+
"commander": "^15.0.0"
|
|
105
104
|
},
|
|
106
105
|
"overrides": {
|
|
107
106
|
"vite": ">=7.3.2"
|
package/src/errors.ts
CHANGED
|
@@ -76,12 +76,11 @@ export const Errors = {
|
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
export class ValidateError extends Error {
|
|
79
|
-
name: string;
|
|
79
|
+
override readonly name: string = 'ValidateError';
|
|
80
80
|
details?: SchemaErrorDetail[];
|
|
81
81
|
|
|
82
82
|
constructor(message: string, details?: SchemaErrorDetail[]) {
|
|
83
83
|
super(message);
|
|
84
|
-
this.name = 'z-schema validation error';
|
|
85
84
|
this.details = details;
|
|
86
85
|
}
|
|
87
86
|
}
|