@warlock.js/seal 4.0.139 → 4.0.140
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/cjs/factory/validate.d.ts +2 -2
- package/cjs/factory/validate.d.ts.map +1 -1
- package/cjs/factory/validators.js +1 -1
- package/cjs/factory/validators.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/standard-schema/index.d.ts +4 -0
- package/cjs/standard-schema/index.d.ts.map +1 -0
- package/cjs/standard-schema/json-schema.d.ts +61 -0
- package/cjs/standard-schema/json-schema.d.ts.map +1 -0
- package/cjs/standard-schema/json-schema.js +85 -0
- package/cjs/standard-schema/json-schema.js.map +1 -0
- package/cjs/standard-schema/map-result.d.ts +18 -0
- package/cjs/standard-schema/map-result.d.ts.map +1 -0
- package/cjs/standard-schema/map-result.js +27 -0
- package/cjs/standard-schema/map-result.js.map +1 -0
- package/cjs/standard-schema/types.d.ts +93 -0
- package/cjs/standard-schema/types.d.ts.map +1 -0
- package/cjs/validators/any-validator.d.ts +14 -0
- package/cjs/validators/any-validator.d.ts.map +1 -1
- package/cjs/validators/any-validator.js +19 -1
- package/cjs/validators/any-validator.js.map +1 -1
- package/cjs/validators/array-validator.d.ts +13 -0
- package/cjs/validators/array-validator.d.ts.map +1 -1
- package/cjs/validators/array-validator.js +39 -1
- package/cjs/validators/array-validator.js.map +1 -1
- package/cjs/validators/base-validator.d.ts +74 -1
- package/cjs/validators/base-validator.d.ts.map +1 -1
- package/cjs/validators/base-validator.js +88 -1
- package/cjs/validators/base-validator.js.map +1 -1
- package/cjs/validators/boolean-validator.d.ts +17 -0
- package/cjs/validators/boolean-validator.d.ts.map +1 -1
- package/cjs/validators/boolean-validator.js +22 -1
- package/cjs/validators/boolean-validator.js.map +1 -1
- package/cjs/validators/computed-validator.d.ts +11 -0
- package/cjs/validators/computed-validator.d.ts.map +1 -1
- package/cjs/validators/computed-validator.js +15 -0
- package/cjs/validators/computed-validator.js.map +1 -1
- package/cjs/validators/date-validator.d.ts +18 -0
- package/cjs/validators/date-validator.d.ts.map +1 -1
- package/cjs/validators/date-validator.js +40 -1
- package/cjs/validators/date-validator.js.map +1 -1
- package/cjs/validators/int-validator.d.ts +11 -0
- package/cjs/validators/int-validator.d.ts.map +1 -1
- package/cjs/validators/int-validator.js +12 -0
- package/cjs/validators/int-validator.js.map +1 -1
- package/cjs/validators/number-validator.d.ts +23 -0
- package/cjs/validators/number-validator.d.ts.map +1 -1
- package/cjs/validators/number-validator.js +80 -1
- package/cjs/validators/number-validator.js.map +1 -1
- package/cjs/validators/object-validator.d.ts +37 -0
- package/cjs/validators/object-validator.d.ts.map +1 -1
- package/cjs/validators/object-validator.js +70 -1
- package/cjs/validators/object-validator.js.map +1 -1
- package/cjs/validators/record-validator.d.ts +17 -0
- package/cjs/validators/record-validator.d.ts.map +1 -1
- package/cjs/validators/record-validator.js +25 -1
- package/cjs/validators/record-validator.js.map +1 -1
- package/cjs/validators/scalar-validator.d.ts +17 -0
- package/cjs/validators/scalar-validator.d.ts.map +1 -1
- package/cjs/validators/scalar-validator.js +34 -1
- package/cjs/validators/scalar-validator.js.map +1 -1
- package/cjs/validators/string-validator.d.ts +14 -0
- package/cjs/validators/string-validator.d.ts.map +1 -1
- package/cjs/validators/string-validator.js +71 -1
- package/cjs/validators/string-validator.js.map +1 -1
- package/cjs/validators/tuple-validator.d.ts +22 -0
- package/cjs/validators/tuple-validator.d.ts.map +1 -1
- package/cjs/validators/tuple-validator.js +43 -1
- package/cjs/validators/tuple-validator.js.map +1 -1
- package/cjs/validators/union-validator.d.ts +13 -0
- package/cjs/validators/union-validator.d.ts.map +1 -1
- package/cjs/validators/union-validator.js +19 -1
- package/cjs/validators/union-validator.js.map +1 -1
- package/esm/factory/validate.d.ts +2 -2
- package/esm/factory/validate.d.ts.map +1 -1
- package/esm/factory/validators.js +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/standard-schema/index.d.ts +4 -0
- package/esm/standard-schema/index.d.ts.map +1 -0
- package/esm/standard-schema/json-schema.d.ts +61 -0
- package/esm/standard-schema/json-schema.d.ts.map +1 -0
- package/esm/standard-schema/json-schema.js +85 -0
- package/esm/standard-schema/json-schema.js.map +1 -0
- package/esm/standard-schema/map-result.d.ts +18 -0
- package/esm/standard-schema/map-result.d.ts.map +1 -0
- package/esm/standard-schema/map-result.js +27 -0
- package/esm/standard-schema/map-result.js.map +1 -0
- package/esm/standard-schema/types.d.ts +93 -0
- package/esm/standard-schema/types.d.ts.map +1 -0
- package/esm/validators/any-validator.d.ts +14 -0
- package/esm/validators/any-validator.d.ts.map +1 -1
- package/esm/validators/any-validator.js +19 -1
- package/esm/validators/any-validator.js.map +1 -1
- package/esm/validators/array-validator.d.ts +13 -0
- package/esm/validators/array-validator.d.ts.map +1 -1
- package/esm/validators/array-validator.js +39 -1
- package/esm/validators/array-validator.js.map +1 -1
- package/esm/validators/base-validator.d.ts +74 -1
- package/esm/validators/base-validator.d.ts.map +1 -1
- package/esm/validators/base-validator.js +88 -1
- package/esm/validators/base-validator.js.map +1 -1
- package/esm/validators/boolean-validator.d.ts +17 -0
- package/esm/validators/boolean-validator.d.ts.map +1 -1
- package/esm/validators/boolean-validator.js +22 -1
- package/esm/validators/boolean-validator.js.map +1 -1
- package/esm/validators/computed-validator.d.ts +11 -0
- package/esm/validators/computed-validator.d.ts.map +1 -1
- package/esm/validators/computed-validator.js +15 -0
- package/esm/validators/computed-validator.js.map +1 -1
- package/esm/validators/date-validator.d.ts +18 -0
- package/esm/validators/date-validator.d.ts.map +1 -1
- package/esm/validators/date-validator.js +40 -1
- package/esm/validators/date-validator.js.map +1 -1
- package/esm/validators/int-validator.d.ts +11 -0
- package/esm/validators/int-validator.d.ts.map +1 -1
- package/esm/validators/int-validator.js +12 -0
- package/esm/validators/int-validator.js.map +1 -1
- package/esm/validators/number-validator.d.ts +23 -0
- package/esm/validators/number-validator.d.ts.map +1 -1
- package/esm/validators/number-validator.js +80 -1
- package/esm/validators/number-validator.js.map +1 -1
- package/esm/validators/object-validator.d.ts +37 -0
- package/esm/validators/object-validator.d.ts.map +1 -1
- package/esm/validators/object-validator.js +70 -1
- package/esm/validators/object-validator.js.map +1 -1
- package/esm/validators/record-validator.d.ts +17 -0
- package/esm/validators/record-validator.d.ts.map +1 -1
- package/esm/validators/record-validator.js +25 -1
- package/esm/validators/record-validator.js.map +1 -1
- package/esm/validators/scalar-validator.d.ts +17 -0
- package/esm/validators/scalar-validator.d.ts.map +1 -1
- package/esm/validators/scalar-validator.js +34 -1
- package/esm/validators/scalar-validator.js.map +1 -1
- package/esm/validators/string-validator.d.ts +14 -0
- package/esm/validators/string-validator.d.ts.map +1 -1
- package/esm/validators/string-validator.js +71 -1
- package/esm/validators/string-validator.js.map +1 -1
- package/esm/validators/tuple-validator.d.ts +22 -0
- package/esm/validators/tuple-validator.d.ts.map +1 -1
- package/esm/validators/tuple-validator.js +43 -1
- package/esm/validators/tuple-validator.js.map +1 -1
- package/esm/validators/union-validator.d.ts +13 -0
- package/esm/validators/union-validator.d.ts.map +1 -1
- package/esm/validators/union-validator.js +19 -1
- package/esm/validators/union-validator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('@mongez/reinforcements'),require('@mongez/supportive-is'),require('dayjs');var stringMutators=require('../mutators/string-mutators.js'),alpha=require('../rules/string/alpha.js'),creditCard=require('../rules/string/credit-card.js'),email=require('../rules/string/email.js'),ip=require('../rules/string/ip.js'),pattern=require('../rules/string/pattern.js'),stringComparison=require('../rules/string/string-comparison.js'),strongPasswordRule=require('../rules/string/strong-password-rule.js'),url=require('../rules/string/url.js'),withoutWhitespace=require('../rules/string/without-whitespace.js'),lengthRules=require('../rules/length/length-rules.js'),colorRules=require('../rules/color/color-rules.js'),typeRules=require('../rules/common/type-rules.js'),primitiveValidator=require('./primitive-validator.js');/**
|
|
1
|
+
'use strict';require('@mongez/reinforcements'),require('@mongez/supportive-is'),require('dayjs');var stringMutators=require('../mutators/string-mutators.js'),alpha=require('../rules/string/alpha.js'),creditCard=require('../rules/string/credit-card.js'),email=require('../rules/string/email.js'),ip=require('../rules/string/ip.js'),pattern=require('../rules/string/pattern.js'),stringComparison=require('../rules/string/string-comparison.js'),strongPasswordRule=require('../rules/string/strong-password-rule.js'),url=require('../rules/string/url.js'),withoutWhitespace=require('../rules/string/without-whitespace.js'),lengthRules=require('../rules/length/length-rules.js'),colorRules=require('../rules/color/color-rules.js'),typeRules=require('../rules/common/type-rules.js'),primitiveValidator=require('./primitive-validator.js'),jsonSchema=require('../standard-schema/json-schema.js');/**
|
|
2
2
|
* String validator class
|
|
3
3
|
*/
|
|
4
4
|
class StringValidator extends primitiveValidator.PrimitiveValidator {
|
|
@@ -314,4 +314,74 @@ class StringValidator extends primitiveValidator.PrimitiveValidator {
|
|
|
314
314
|
darkColor(errorMessage) {
|
|
315
315
|
return this.addRule(colorRules.darkColorRule, errorMessage);
|
|
316
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* @inheritdoc
|
|
319
|
+
*
|
|
320
|
+
* Maps String-specific rule options to JSON Schema keywords.
|
|
321
|
+
* Non-representable rules (cross-field, refine, color rules, etc.) are silently omitted.
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```ts
|
|
325
|
+
* v.string().min(2).max(100).email().toJsonSchema("draft-2020-12")
|
|
326
|
+
* // → { type: "string", minLength: 2, maxLength: 100, format: "email" }
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
toJsonSchema(target = "draft-2020-12") {
|
|
330
|
+
const schema = { type: "string" };
|
|
331
|
+
// minLength / min
|
|
332
|
+
const minOpts = jsonSchema.getRuleOptions(this.rules, "minLength");
|
|
333
|
+
if (minOpts?.minLength !== undefined)
|
|
334
|
+
schema.minLength = minOpts.minLength;
|
|
335
|
+
// maxLength / max
|
|
336
|
+
const maxOpts = jsonSchema.getRuleOptions(this.rules, "maxLength");
|
|
337
|
+
if (maxOpts?.maxLength !== undefined)
|
|
338
|
+
schema.maxLength = maxOpts.maxLength;
|
|
339
|
+
// betweenLength covers both min and max in one rule
|
|
340
|
+
const betweenOpts = jsonSchema.getRuleOptions(this.rules, "betweenLength");
|
|
341
|
+
if (betweenOpts) {
|
|
342
|
+
if (betweenOpts.minLength !== undefined)
|
|
343
|
+
schema.minLength = betweenOpts.minLength;
|
|
344
|
+
if (betweenOpts.maxLength !== undefined)
|
|
345
|
+
schema.maxLength = betweenOpts.maxLength;
|
|
346
|
+
}
|
|
347
|
+
// exact length
|
|
348
|
+
const lengthOpts = jsonSchema.getRuleOptions(this.rules, "length");
|
|
349
|
+
if (lengthOpts?.length !== undefined) {
|
|
350
|
+
schema.minLength = lengthOpts.length;
|
|
351
|
+
schema.maxLength = lengthOpts.length;
|
|
352
|
+
}
|
|
353
|
+
// pattern (regex)
|
|
354
|
+
const patternOpts = jsonSchema.getRuleOptions(this.rules, "pattern");
|
|
355
|
+
if (patternOpts?.pattern instanceof RegExp) {
|
|
356
|
+
schema.pattern = patternOpts.pattern.source;
|
|
357
|
+
}
|
|
358
|
+
// format hints
|
|
359
|
+
if (jsonSchema.getRuleOptions(this.rules, "email") !== undefined ||
|
|
360
|
+
this.rules.some(r => r.name === "email")) {
|
|
361
|
+
schema.format = "email";
|
|
362
|
+
}
|
|
363
|
+
else if (this.rules.some(r => r.name === "url")) {
|
|
364
|
+
schema.format = "uri";
|
|
365
|
+
}
|
|
366
|
+
else if (this.rules.some(r => r.name === "ip")) {
|
|
367
|
+
schema.format = "ipv4";
|
|
368
|
+
}
|
|
369
|
+
else if (this.rules.some(r => r.name === "ip4")) {
|
|
370
|
+
schema.format = "ipv4";
|
|
371
|
+
}
|
|
372
|
+
else if (this.rules.some(r => r.name === "ip6")) {
|
|
373
|
+
schema.format = "ipv6";
|
|
374
|
+
}
|
|
375
|
+
else if (this.rules.some(r => r.name === "hexColor")) {
|
|
376
|
+
schema.format = "color";
|
|
377
|
+
}
|
|
378
|
+
// enum (from PrimitiveValidator.in / .enum)
|
|
379
|
+
const inOpts = jsonSchema.getRuleOptions(this.rules, "in");
|
|
380
|
+
if (inOpts?.values && Array.isArray(inOpts.values)) {
|
|
381
|
+
schema.enum = inOpts.values;
|
|
382
|
+
}
|
|
383
|
+
if (this.isNullable)
|
|
384
|
+
jsonSchema.applyNullable(schema, target);
|
|
385
|
+
return schema;
|
|
386
|
+
}
|
|
317
387
|
}exports.StringValidator=StringValidator;//# sourceMappingURL=string-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-validator.js","sources":["../../src/validators/string-validator.ts"],"sourcesContent":[null],"names":["PrimitiveValidator","stringRule","stringifyMutator","uppercaseMutator","lowercaseMutator","capitalizeMutator","titleCaseMutator","camelCaseMutator","pascalCaseMutator","snakeCaseMutator","kebabCaseMutator","trimMutator","ltrimMutator","rtrimMutator","trimMultipleWhitespaceMutator","padStartMutator","padEndMutator","safeHtmlMutator","htmlEscapeMutator","unescapeHtmlMutator","removeSpecialCharactersMutator","alphaOnlyMutator","alphanumericOnlyMutator","removeNumbersMutator","urlDecodeMutator","urlEncodeMutator","slugMutator","base64EncodeMutator","base64DecodeMutator","replaceMutator","replaceAllMutator","appendMutator","prependMutator","reverseMutator","truncateMutator","repeatMutator","maskMutator","emailRule","urlRule","withoutWhitespaceRule","pattern","patternRule","strongPasswordRule","wordsRule","minWordsRule","maxWordsRule","minLengthRule","maxLengthRule","lengthRule","betweenLengthRule","alphaRule","alphaNumericRule","isNumericRule","startsWithRule","endsWithRule","containsRule","notContainsRule","ipRule","ip4Rule","ip6Rule","isCreditCardRule","colorRule","hexColorRule","hslColorRule","rgbColorRule","rgbaColorRule","lightColorRule","darkColorRule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"string-validator.js","sources":["../../src/validators/string-validator.ts"],"sourcesContent":[null],"names":["PrimitiveValidator","stringRule","stringifyMutator","uppercaseMutator","lowercaseMutator","capitalizeMutator","titleCaseMutator","camelCaseMutator","pascalCaseMutator","snakeCaseMutator","kebabCaseMutator","trimMutator","ltrimMutator","rtrimMutator","trimMultipleWhitespaceMutator","padStartMutator","padEndMutator","safeHtmlMutator","htmlEscapeMutator","unescapeHtmlMutator","removeSpecialCharactersMutator","alphaOnlyMutator","alphanumericOnlyMutator","removeNumbersMutator","urlDecodeMutator","urlEncodeMutator","slugMutator","base64EncodeMutator","base64DecodeMutator","replaceMutator","replaceAllMutator","appendMutator","prependMutator","reverseMutator","truncateMutator","repeatMutator","maskMutator","emailRule","urlRule","withoutWhitespaceRule","pattern","patternRule","strongPasswordRule","wordsRule","minWordsRule","maxWordsRule","minLengthRule","maxLengthRule","lengthRule","betweenLengthRule","alphaRule","alphaNumericRule","isNumericRule","startsWithRule","endsWithRule","containsRule","notContainsRule","ipRule","ip4Rule","ip6Rule","isCreditCardRule","colorRule","hexColorRule","hslColorRule","rgbColorRule","rgbaColorRule","lightColorRule","darkColorRule","getRuleOptions","applyNullable"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SchemaContext, ValidationResult } from "../types";
|
|
2
2
|
import { BaseValidator } from "./base-validator";
|
|
3
|
+
import type { JsonSchemaResult, JsonSchemaTarget } from "../standard-schema/json-schema";
|
|
3
4
|
/**
|
|
4
5
|
* Tuple validator class - validates fixed-length arrays with position-specific types
|
|
5
6
|
*
|
|
@@ -30,5 +31,26 @@ export declare class TupleValidator extends BaseValidator {
|
|
|
30
31
|
* Validate tuple - check length then validate each position
|
|
31
32
|
*/
|
|
32
33
|
validate(data: any, context: SchemaContext): Promise<ValidationResult>;
|
|
34
|
+
/**
|
|
35
|
+
* @inheritdoc
|
|
36
|
+
*
|
|
37
|
+
* Tuple keyword diverges between targets:
|
|
38
|
+
* - `draft-2020-12` → `prefixItems` + `items: false` (exact length enforced)
|
|
39
|
+
* - `draft-07` → `items` as array + `additionalItems: false`
|
|
40
|
+
* - `openapi-3.0` → same as draft-07 (OpenAPI 3.0 is based on draft-07)
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* v.tuple([v.string(), v.int(), v.boolean()]).toJsonSchema("draft-2020-12")
|
|
45
|
+
* // → {
|
|
46
|
+
* // type: "array",
|
|
47
|
+
* // prefixItems: [{ type: "string" }, { type: "integer" }, { type: "boolean" }],
|
|
48
|
+
* // items: false,
|
|
49
|
+
* // minItems: 3,
|
|
50
|
+
* // maxItems: 3
|
|
51
|
+
* // }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
|
|
33
55
|
}
|
|
34
56
|
//# sourceMappingURL=tuple-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple-validator.d.ts","sourceRoot":"","sources":["../../src/validators/tuple-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAEtC,UAAU,EAAE,aAAa,EAAE;gBAA3B,UAAU,EAAE,aAAa,EAAE,EAClC,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC;;OAEG;IACa,KAAK,IAAI,IAAI;IAM7B;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"tuple-validator.d.ts","sourceRoot":"","sources":["../../src/validators/tuple-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEzF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAEtC,UAAU,EAAE,aAAa,EAAE;gBAA3B,UAAU,EAAE,aAAa,EAAE,EAClC,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC;;OAEG;IACa,KAAK,IAAI,IAAI;IAM7B;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgDnF;;;;;;;;;;;;;;;;;;;OAmBG;IACa,YAAY,CAAC,MAAM,GAAE,gBAAkC,GAAG,gBAAgB;CAwB3F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('@mongez/reinforcements');var pathHelpers=require('../helpers/path-helpers.js');require('@mongez/supportive-is'),require('net');var typeRules=require('../rules/common/type-rules.js'),baseValidator=require('./base-validator.js');/**
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var pathHelpers=require('../helpers/path-helpers.js');require('@mongez/supportive-is'),require('net');var typeRules=require('../rules/common/type-rules.js'),baseValidator=require('./base-validator.js'),jsonSchema=require('../standard-schema/json-schema.js');/**
|
|
2
2
|
* Tuple validator class - validates fixed-length arrays with position-specific types
|
|
3
3
|
*
|
|
4
4
|
* @example
|
|
@@ -76,4 +76,46 @@ class TupleValidator extends baseValidator.BaseValidator {
|
|
|
76
76
|
data: await this.startTransformationPipeline(mutatedData, context),
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* @inheritdoc
|
|
81
|
+
*
|
|
82
|
+
* Tuple keyword diverges between targets:
|
|
83
|
+
* - `draft-2020-12` → `prefixItems` + `items: false` (exact length enforced)
|
|
84
|
+
* - `draft-07` → `items` as array + `additionalItems: false`
|
|
85
|
+
* - `openapi-3.0` → same as draft-07 (OpenAPI 3.0 is based on draft-07)
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* v.tuple([v.string(), v.int(), v.boolean()]).toJsonSchema("draft-2020-12")
|
|
90
|
+
* // → {
|
|
91
|
+
* // type: "array",
|
|
92
|
+
* // prefixItems: [{ type: "string" }, { type: "integer" }, { type: "boolean" }],
|
|
93
|
+
* // items: false,
|
|
94
|
+
* // minItems: 3,
|
|
95
|
+
* // maxItems: 3
|
|
96
|
+
* // }
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
toJsonSchema(target = "draft-2020-12") {
|
|
100
|
+
const itemSchemas = this.validators.map(v => v.toJsonSchema(target));
|
|
101
|
+
const length = this.validators.length;
|
|
102
|
+
const schema = {
|
|
103
|
+
type: "array",
|
|
104
|
+
minItems: length,
|
|
105
|
+
maxItems: length,
|
|
106
|
+
};
|
|
107
|
+
if (target === "draft-2020-12") {
|
|
108
|
+
// prefixItems is the draft-2020-12 keyword for positional tuple items
|
|
109
|
+
schema.prefixItems = itemSchemas;
|
|
110
|
+
schema.items = false; // no additional items beyond the tuple
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// draft-07 and openapi-3.0: items as array + additionalItems: false
|
|
114
|
+
schema.items = itemSchemas;
|
|
115
|
+
schema.additionalItems = false;
|
|
116
|
+
}
|
|
117
|
+
if (this.isNullable)
|
|
118
|
+
jsonSchema.applyNullable(schema, target);
|
|
119
|
+
return schema;
|
|
120
|
+
}
|
|
79
121
|
}exports.TupleValidator=TupleValidator;//# sourceMappingURL=tuple-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple-validator.js","sources":["../../src/validators/tuple-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","arrayRule","setKeyPath"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tuple-validator.js","sources":["../../src/validators/tuple-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","arrayRule","setKeyPath","applyNullable"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseValidator } from "./base-validator";
|
|
2
|
+
import type { JsonSchemaResult, JsonSchemaTarget } from "../standard-schema/json-schema";
|
|
2
3
|
/**
|
|
3
4
|
* Union validator class - validates value against multiple validator types
|
|
4
5
|
*
|
|
@@ -38,5 +39,17 @@ export declare class UnionValidator extends BaseValidator {
|
|
|
38
39
|
* ```
|
|
39
40
|
*/
|
|
40
41
|
union(validators: BaseValidator[], errorMessage?: string): this;
|
|
42
|
+
/**
|
|
43
|
+
* @inheritdoc
|
|
44
|
+
*
|
|
45
|
+
* Generates `{ oneOf: [...] }` by mapping each sub-validator to its JSON Schema.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* v.union([v.string(), v.number()]).toJsonSchema("draft-2020-12")
|
|
50
|
+
* // → { oneOf: [{ type: "string" }, { type: "number" }] }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
|
|
41
54
|
}
|
|
42
55
|
//# sourceMappingURL=union-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-validator.d.ts","sourceRoot":"","sources":["../../src/validators/union-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"union-validator.d.ts","sourceRoot":"","sources":["../../src/validators/union-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;IAI/D;;;;;;;;;;OAUG;IACa,YAAY,CAAC,MAAM,GAAE,gBAAkC,GAAG,gBAAgB;CAQ3F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('@mongez/reinforcements'),require('@mongez/supportive-is');var union=require('../rules/core/union.js');require('net');var baseValidator=require('./base-validator.js');/**
|
|
1
|
+
'use strict';require('@mongez/reinforcements'),require('@mongez/supportive-is');var union=require('../rules/core/union.js');require('net');var baseValidator=require('./base-validator.js'),jsonSchema=require('../standard-schema/json-schema.js');/**
|
|
2
2
|
* Union validator class - validates value against multiple validator types
|
|
3
3
|
*
|
|
4
4
|
* Tries each validator in order until one passes. If a validator's matchesType()
|
|
@@ -39,4 +39,22 @@ class UnionValidator extends baseValidator.BaseValidator {
|
|
|
39
39
|
union(validators, errorMessage) {
|
|
40
40
|
return this.addRule(union.unionRule, errorMessage, { validators });
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* @inheritdoc
|
|
44
|
+
*
|
|
45
|
+
* Generates `{ oneOf: [...] }` by mapping each sub-validator to its JSON Schema.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* v.union([v.string(), v.number()]).toJsonSchema("draft-2020-12")
|
|
50
|
+
* // → { oneOf: [{ type: "string" }, { type: "number" }] }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
toJsonSchema(target = "draft-2020-12") {
|
|
54
|
+
const opts = jsonSchema.getRuleOptions(this.rules, "union");
|
|
55
|
+
const validators = (opts?.validators ?? []);
|
|
56
|
+
return {
|
|
57
|
+
oneOf: validators.map(v => v.toJsonSchema(target)),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
42
60
|
}exports.UnionValidator=UnionValidator;//# sourceMappingURL=union-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-validator.js","sources":["../../src/validators/union-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","unionRule"],"mappings":"
|
|
1
|
+
{"version":3,"file":"union-validator.js","sources":["../../src/validators/union-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","unionRule","getRuleOptions"],"mappings":"oPAKA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACG,MAAO,cAAe,SAAQA,2BAAa,CAAA;AAC/C;;;;;;;;;;;;AAYG;IACI,KAAK,CAAC,UAA2B,EAAE,YAAqB,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,OAAO,CAACC,eAAS,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;KAC9D;AAED;;;;;;;;;;AAUG;IACa,YAAY,CAAC,SAA2B,eAAe,EAAA;QACrE,MAAM,IAAI,GAAGC,yBAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,UAAU,IAAI,IAAI,EAAE,UAAU,IAAI,EAAE,CAAoB,CAAC;QAE/D,OAAO;AACL,YAAA,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SACnD,CAAC;KACH;AACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ValidationResult } from "../types";
|
|
2
2
|
import type { BaseValidator } from "../validators";
|
|
3
|
-
import { ValidateOptions } from "./validators";
|
|
3
|
+
import { type ValidateOptions } from "./validators";
|
|
4
4
|
/**
|
|
5
5
|
* Validate data against a schema
|
|
6
6
|
*/
|
|
7
|
-
export declare const validate: <T extends BaseValidator
|
|
7
|
+
export declare const validate: <T extends BaseValidator<unknown, unknown>>(schema: T, data: any, { context: extendedContext, ...configurations }?: ValidateOptions) => Promise<ValidationResult>;
|
|
8
8
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/factory/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/factory/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,QAAQ,+DAEb,GAAG,oDACwC,eAAe,KAC/D,QAAQ,gBAAgB,CAmB1B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {AnyValidator}from'../validators/any-validator.js';import {ArrayValidator}from'../validators/array-validator.js';import'@mongez/reinforcements';import'@mongez/supportive-is';import'../validators/methods/equality-conditional-methods.js';import'../validators/methods/forbidden-methods.js';import'../validators/methods/present-methods.js';import'../validators/methods/required-methods.js';import'net';import {BooleanValidator}from'../validators/boolean-validator.js';import {ComputedValidator}from'../validators/computed-validator.js';import {DateValidator}from'../validators/date-validator.js';import {FloatValidator}from'../validators/float-validator.js';import {IntValidator}from'../validators/int-validator.js';import {ManagedValidator}from'../validators/managed-validator.js';import {NumberValidator}from'../validators/number-validator.js';import {NumericValidator}from'../validators/numeric-validator.js';import {ObjectValidator}from'../validators/object-validator.js';import {RecordValidator}from'../validators/record-validator.js';import {ScalarValidator}from'../validators/scalar-validator.js';import {StringValidator}from'../validators/string-validator.js';import {TupleValidator}from'../validators/tuple-validator.js';import {UnionValidator}from'../validators/union-validator.js'
|
|
1
|
+
import {AnyValidator}from'../validators/any-validator.js';import {ArrayValidator}from'../validators/array-validator.js';import'@mongez/reinforcements';import {validate}from'./validate.js';import'@mongez/supportive-is';import'../validators/methods/equality-conditional-methods.js';import'../validators/methods/forbidden-methods.js';import'../validators/methods/present-methods.js';import'../validators/methods/required-methods.js';import'net';import {BooleanValidator}from'../validators/boolean-validator.js';import {ComputedValidator}from'../validators/computed-validator.js';import {DateValidator}from'../validators/date-validator.js';import {FloatValidator}from'../validators/float-validator.js';import {IntValidator}from'../validators/int-validator.js';import {ManagedValidator}from'../validators/managed-validator.js';import {NumberValidator}from'../validators/number-validator.js';import {NumericValidator}from'../validators/numeric-validator.js';import {ObjectValidator}from'../validators/object-validator.js';import {RecordValidator}from'../validators/record-validator.js';import {ScalarValidator}from'../validators/scalar-validator.js';import {StringValidator}from'../validators/string-validator.js';import {TupleValidator}from'../validators/tuple-validator.js';import {UnionValidator}from'../validators/union-validator.js';/**
|
|
2
2
|
* Seal factory object - creates instances of validators
|
|
3
3
|
*
|
|
4
4
|
* Use 'v' to create validation schemas (seals) for your data
|
package/esm/index.d.ts
CHANGED
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,mBAAmB,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{AnyValidator}from'./validators/any-validator.js';export{ArrayValidator}from'./validators/array-validator.js';export{BaseValidator}from'./validators/base-validator.js';import'./validators/methods/equality-conditional-methods.js';import'./validators/methods/forbidden-methods.js';import'./validators/methods/present-methods.js';import'./validators/methods/required-methods.js';export{PrimitiveValidator}from'./validators/primitive-validator.js';export{BooleanValidator}from'./validators/boolean-validator.js';export{ComputedValidator}from'./validators/computed-validator.js';export{DateValidator}from'./validators/date-validator.js';export{FloatValidator}from'./validators/float-validator.js';export{IntValidator}from'./validators/int-validator.js';export{ManagedValidator}from'./validators/managed-validator.js';export{NumberValidator}from'./validators/number-validator.js';export{NumericValidator}from'./validators/numeric-validator.js';export{ObjectValidator}from'./validators/object-validator.js';export{RecordValidator}from'./validators/record-validator.js';export{ScalarValidator}from'./validators/scalar-validator.js';export{StringValidator}from'./validators/string-validator.js';export{TupleValidator}from'./validators/tuple-validator.js';export{UnionValidator}from'./validators/union-validator.js';export{WEEK_DAYS}from'./types/date-types.js';export{isDateValue}from'./helpers/date-helpers.js';export{humanizeSize,resolveFileSize}from'./helpers/file.utils.js';export{getFieldValue}from'./helpers/get-field-value.js';export{setKeyPath}from'./helpers/path-helpers.js';export{VALID_RULE,invalidRule,resolveTranslation}from'./helpers/validation-helpers.js';export{flipArrayMutator,removeEmptyArrayElementsMutator,reverseArrayMutator,sortArrayMutator,uniqueArrayMutator}from'./mutators/array-mutators.js';export{addDaysMutator,addHoursMutator,addMonthsMutator,addYearsMutator,dateMutator,toDateOnlyMutator,toEndOfDayMutator,toEndOfMonthMutator,toEndOfYearMutator,toFormatMutator,toISOStringMutator,toStartOfDayMutator,toStartOfMonthMutator,toStartOfYearMutator,toTimeOnlyMutator,toTimestampMutator,toUTCMutator}from'./mutators/date-mutators.js';export{absMutator,booleanMutator,ceilMutator,floorMutator,numberMutator,numericMutator,roundMutator,roundNumberMutator,toFixedMutator}from'./mutators/number-mutators.js';export{jsonMutator,objectTrimMutator,stripUnknownMutator}from'./mutators/object-mutators.js';export{stringMutator}from'./mutators/scalar-mutators.js';export{alphaOnlyMutator,alphanumericOnlyMutator,appendMutator,base64DecodeMutator,base64EncodeMutator,camelCaseMutator,capitalizeMutator,htmlEscapeMutator,kebabCaseMutator,lowercaseMutator,ltrimMutator,maskMutator,padEndMutator,padStartMutator,pascalCaseMutator,prependMutator,removeNumbersMutator,removeSpecialCharactersMutator,repeatMutator,replaceAllMutator,replaceMutator,reverseMutator,rtrimMutator,safeHtmlMutator,slugMutator,snakeCaseMutator,stringifyMutator,titleCaseMutator,trimMultipleWhitespaceMutator,trimMutator,truncateMutator,unescapeHtmlMutator,uppercaseMutator,urlDecodeMutator,urlEncodeMutator}from'./mutators/string-mutators.js';export{equalRule}from'./rules/core/equal.js';export{forbiddenRule}from'./rules/core/forbidden.js';export{presentRule,requiredRule}from'./rules/core/required.js';export{unionRule}from'./rules/core/union.js';export{whenRule}from'./rules/core/when.js';export{alphaNumericRule,alphaRule,isNumericRule}from'./rules/string/alpha.js';export{isCreditCardRule}from'./rules/string/credit-card.js';export{emailRule}from'./rules/string/email.js';export{ip4Rule,ip6Rule,ipRule}from'./rules/string/ip.js';export{matchesRule}from'./rules/string/matches.js';export{patternRule}from'./rules/string/pattern.js';export{containsRule,endsWithRule,notContainsRule,startsWithRule}from'./rules/string/string-comparison.js';export{strongPasswordRule}from'./rules/string/strong-password-rule.js';export{urlRule}from'./rules/string/url.js';export{withoutWhitespaceRule}from'./rules/string/without-whitespace.js';export{betweenNumbersRule,evenRule,greaterThanRule,lessThanRule,maxRule,minRule,moduloRule,negativeRule,oddRule,positiveRule}from'./rules/number/number-rules.js';export{betweenLengthRule,lengthRule,maxLengthRule,maxWordsRule,minLengthRule,minWordsRule,wordsRule}from'./rules/length/length-rules.js';export{sortedArrayRule,uniqueArrayRule}from'./rules/array/array-rules.js';export{ageRule,beforeHourRule,beforeMinuteRule,beforeTodayRule,betweenHoursRule,betweenMinutesRule,dateRule,fromHourRule,fromMinuteRule,fromTodayRule,maxAgeRule,maxDateRule,minAgeRule,minDateRule,weekDayRule}from'./rules/date/date.js';export{afterTodayRule,betweenDatesRule,futureRule,pastRule,todayRule}from'./rules/date/date-comparison-rules.js';export{businessDayRule,weekdayRule,weekdaysRule,weekendRule}from'./rules/date/date-day-rules.js';export{afterFieldRule,beforeFieldRule,sameAsFieldDateRule}from'./rules/date/date-field-comparison-rules.js';export{betweenDaysRule,betweenMonthsRule,betweenTimesRule,betweenYearsRule,maxDayRule,maxMonthRule,maxYearRule,minDayRule,minMonthRule,minYearRule,monthRule,quarterRule,yearRule}from'./rules/date/date-period-rules.js';export{withinDaysRule,withinFutureDaysRule,withinPastDaysRule}from'./rules/date/date-relative-rules.js';export{betweenAgeRule,birthdayRule,leapYearRule}from'./rules/date/date-special-rules.js';export{maxHeightRule,maxWidthRule,minHeightRule,minWidthRule}from'./rules/file/dimensions.js';export{maxFileSizeRule,minFileSizeRule}from'./rules/file/file-size.js';export{colorRule,darkColorRule,hexColorRule,hslColorRule,lightColorRule,rgbColorRule,rgbaColorRule}from'./rules/color/color-rules.js';export{requiredIfAllEmptyRule,requiredIfAllNotEmptyRule,requiredIfAnyEmptyRule,requiredIfAnyNotEmptyRule,requiredIfEmptyRule,requiredIfInRule,requiredIfNotEmptyRule,requiredIfNotInRule,requiredIfRule}from'./rules/conditional/required-if-rules.js';export{requiredUnlessRule}from'./rules/conditional/required-unless-rules.js';export{requiredWhenRule}from'./rules/conditional/required-when-rule.js';export{requiredWithAllRule,requiredWithAnyRule,requiredWithRule}from'./rules/conditional/required-with-rules.js';export{requiredWithoutAllRule,requiredWithoutAnyRule,requiredWithoutRule}from'./rules/conditional/required-without-rules.js';export{presentIfEmptyRule,presentIfInRule,presentIfNotEmptyRule,presentIfNotInRule,presentIfRule}from'./rules/conditional/present-if-rules.js';export{presentUnlessRule}from'./rules/conditional/present-unless-rules.js';export{presentWithAllRule,presentWithAnyRule,presentWithRule}from'./rules/conditional/present-with-rules.js';export{presentWithoutAllRule,presentWithoutAnyRule,presentWithoutRule}from'./rules/conditional/present-without-rules.js';export{forbiddenIfEmptyRule,forbiddenIfInRule,forbiddenIfNotEmptyRule,forbiddenIfNotInRule,forbiddenIfNotRule,forbiddenIfRule}from'./rules/conditional/forbidden-if-rules.js';export{allowedValuesRule,enumRule,inRule,notAllowedValuesRule}from'./rules/common/enum.js';export{equalsFieldRule,notEqualsFieldRule}from'./rules/common/equals-field-rules.js';export{arrayRule,booleanRule,floatRule,intRule,numberRule,objectRule,plainObjectRule,scalarRule,stringRule}from'./rules/common/type-rules.js';export{unknownKeyRule}from'./rules/common/unknown-key.js';export{validate}from'./factory/validate.js';export{v}from'./factory/validators.js';export{getInstalledPlugins,hasPlugin,registerPlugin,unregisterPlugin}from'./plugins/plugin-system.js';export{configureSeal,getSealConfig,resetSealConfig}from'./config.js';//# sourceMappingURL=index.js.map
|
|
1
|
+
export{AnyValidator}from'./validators/any-validator.js';export{ArrayValidator}from'./validators/array-validator.js';export{BaseValidator}from'./validators/base-validator.js';import'./validators/methods/equality-conditional-methods.js';import'./validators/methods/forbidden-methods.js';import'./validators/methods/present-methods.js';import'./validators/methods/required-methods.js';export{PrimitiveValidator}from'./validators/primitive-validator.js';export{BooleanValidator}from'./validators/boolean-validator.js';export{ComputedValidator}from'./validators/computed-validator.js';export{DateValidator}from'./validators/date-validator.js';export{FloatValidator}from'./validators/float-validator.js';export{IntValidator}from'./validators/int-validator.js';export{ManagedValidator}from'./validators/managed-validator.js';export{NumberValidator}from'./validators/number-validator.js';export{NumericValidator}from'./validators/numeric-validator.js';export{ObjectValidator}from'./validators/object-validator.js';export{RecordValidator}from'./validators/record-validator.js';export{ScalarValidator}from'./validators/scalar-validator.js';export{StringValidator}from'./validators/string-validator.js';export{TupleValidator}from'./validators/tuple-validator.js';export{UnionValidator}from'./validators/union-validator.js';export{WEEK_DAYS}from'./types/date-types.js';export{isDateValue}from'./helpers/date-helpers.js';export{humanizeSize,resolveFileSize}from'./helpers/file.utils.js';export{getFieldValue}from'./helpers/get-field-value.js';export{setKeyPath}from'./helpers/path-helpers.js';export{VALID_RULE,invalidRule,resolveTranslation}from'./helpers/validation-helpers.js';export{flipArrayMutator,removeEmptyArrayElementsMutator,reverseArrayMutator,sortArrayMutator,uniqueArrayMutator}from'./mutators/array-mutators.js';export{addDaysMutator,addHoursMutator,addMonthsMutator,addYearsMutator,dateMutator,toDateOnlyMutator,toEndOfDayMutator,toEndOfMonthMutator,toEndOfYearMutator,toFormatMutator,toISOStringMutator,toStartOfDayMutator,toStartOfMonthMutator,toStartOfYearMutator,toTimeOnlyMutator,toTimestampMutator,toUTCMutator}from'./mutators/date-mutators.js';export{absMutator,booleanMutator,ceilMutator,floorMutator,numberMutator,numericMutator,roundMutator,roundNumberMutator,toFixedMutator}from'./mutators/number-mutators.js';export{jsonMutator,objectTrimMutator,stripUnknownMutator}from'./mutators/object-mutators.js';export{stringMutator}from'./mutators/scalar-mutators.js';export{alphaOnlyMutator,alphanumericOnlyMutator,appendMutator,base64DecodeMutator,base64EncodeMutator,camelCaseMutator,capitalizeMutator,htmlEscapeMutator,kebabCaseMutator,lowercaseMutator,ltrimMutator,maskMutator,padEndMutator,padStartMutator,pascalCaseMutator,prependMutator,removeNumbersMutator,removeSpecialCharactersMutator,repeatMutator,replaceAllMutator,replaceMutator,reverseMutator,rtrimMutator,safeHtmlMutator,slugMutator,snakeCaseMutator,stringifyMutator,titleCaseMutator,trimMultipleWhitespaceMutator,trimMutator,truncateMutator,unescapeHtmlMutator,uppercaseMutator,urlDecodeMutator,urlEncodeMutator}from'./mutators/string-mutators.js';export{equalRule}from'./rules/core/equal.js';export{forbiddenRule}from'./rules/core/forbidden.js';export{presentRule,requiredRule}from'./rules/core/required.js';export{unionRule}from'./rules/core/union.js';export{whenRule}from'./rules/core/when.js';export{alphaNumericRule,alphaRule,isNumericRule}from'./rules/string/alpha.js';export{isCreditCardRule}from'./rules/string/credit-card.js';export{emailRule}from'./rules/string/email.js';export{ip4Rule,ip6Rule,ipRule}from'./rules/string/ip.js';export{matchesRule}from'./rules/string/matches.js';export{patternRule}from'./rules/string/pattern.js';export{containsRule,endsWithRule,notContainsRule,startsWithRule}from'./rules/string/string-comparison.js';export{strongPasswordRule}from'./rules/string/strong-password-rule.js';export{urlRule}from'./rules/string/url.js';export{withoutWhitespaceRule}from'./rules/string/without-whitespace.js';export{betweenNumbersRule,evenRule,greaterThanRule,lessThanRule,maxRule,minRule,moduloRule,negativeRule,oddRule,positiveRule}from'./rules/number/number-rules.js';export{betweenLengthRule,lengthRule,maxLengthRule,maxWordsRule,minLengthRule,minWordsRule,wordsRule}from'./rules/length/length-rules.js';export{sortedArrayRule,uniqueArrayRule}from'./rules/array/array-rules.js';export{ageRule,beforeHourRule,beforeMinuteRule,beforeTodayRule,betweenHoursRule,betweenMinutesRule,dateRule,fromHourRule,fromMinuteRule,fromTodayRule,maxAgeRule,maxDateRule,minAgeRule,minDateRule,weekDayRule}from'./rules/date/date.js';export{afterTodayRule,betweenDatesRule,futureRule,pastRule,todayRule}from'./rules/date/date-comparison-rules.js';export{businessDayRule,weekdayRule,weekdaysRule,weekendRule}from'./rules/date/date-day-rules.js';export{afterFieldRule,beforeFieldRule,sameAsFieldDateRule}from'./rules/date/date-field-comparison-rules.js';export{betweenDaysRule,betweenMonthsRule,betweenTimesRule,betweenYearsRule,maxDayRule,maxMonthRule,maxYearRule,minDayRule,minMonthRule,minYearRule,monthRule,quarterRule,yearRule}from'./rules/date/date-period-rules.js';export{withinDaysRule,withinFutureDaysRule,withinPastDaysRule}from'./rules/date/date-relative-rules.js';export{betweenAgeRule,birthdayRule,leapYearRule}from'./rules/date/date-special-rules.js';export{maxHeightRule,maxWidthRule,minHeightRule,minWidthRule}from'./rules/file/dimensions.js';export{maxFileSizeRule,minFileSizeRule}from'./rules/file/file-size.js';export{colorRule,darkColorRule,hexColorRule,hslColorRule,lightColorRule,rgbColorRule,rgbaColorRule}from'./rules/color/color-rules.js';export{requiredIfAllEmptyRule,requiredIfAllNotEmptyRule,requiredIfAnyEmptyRule,requiredIfAnyNotEmptyRule,requiredIfEmptyRule,requiredIfInRule,requiredIfNotEmptyRule,requiredIfNotInRule,requiredIfRule}from'./rules/conditional/required-if-rules.js';export{requiredUnlessRule}from'./rules/conditional/required-unless-rules.js';export{requiredWhenRule}from'./rules/conditional/required-when-rule.js';export{requiredWithAllRule,requiredWithAnyRule,requiredWithRule}from'./rules/conditional/required-with-rules.js';export{requiredWithoutAllRule,requiredWithoutAnyRule,requiredWithoutRule}from'./rules/conditional/required-without-rules.js';export{presentIfEmptyRule,presentIfInRule,presentIfNotEmptyRule,presentIfNotInRule,presentIfRule}from'./rules/conditional/present-if-rules.js';export{presentUnlessRule}from'./rules/conditional/present-unless-rules.js';export{presentWithAllRule,presentWithAnyRule,presentWithRule}from'./rules/conditional/present-with-rules.js';export{presentWithoutAllRule,presentWithoutAnyRule,presentWithoutRule}from'./rules/conditional/present-without-rules.js';export{forbiddenIfEmptyRule,forbiddenIfInRule,forbiddenIfNotEmptyRule,forbiddenIfNotInRule,forbiddenIfNotRule,forbiddenIfRule}from'./rules/conditional/forbidden-if-rules.js';export{allowedValuesRule,enumRule,inRule,notAllowedValuesRule}from'./rules/common/enum.js';export{equalsFieldRule,notEqualsFieldRule}from'./rules/common/equals-field-rules.js';export{arrayRule,booleanRule,floatRule,intRule,numberRule,objectRule,plainObjectRule,scalarRule,stringRule}from'./rules/common/type-rules.js';export{unknownKeyRule}from'./rules/common/unknown-key.js';export{validate}from'./factory/validate.js';export{v}from'./factory/validators.js';export{getInstalledPlugins,hasPlugin,registerPlugin,unregisterPlugin}from'./plugins/plugin-system.js';export{configureSeal,getSealConfig,resetSealConfig}from'./config.js';export{mapToStandardResult}from'./standard-schema/map-result.js';export{applyNullable,getRuleOptions,wrapNullableStrict}from'./standard-schema/json-schema.js';//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/standard-schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { StandardJSONSchemaV1 } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Supported JSON Schema generation targets.
|
|
4
|
+
*/
|
|
5
|
+
export type JsonSchemaTarget = StandardJSONSchemaV1.Target;
|
|
6
|
+
/**
|
|
7
|
+
* The result shape for a generated JSON Schema.
|
|
8
|
+
*/
|
|
9
|
+
export type JsonSchemaResult = Record<string, unknown>;
|
|
10
|
+
/**
|
|
11
|
+
* Apply nullable to a JSON Schema object based on the target dialect.
|
|
12
|
+
*
|
|
13
|
+
* - draft-2020-12 : `type` becomes an array: `["string", "null"]`
|
|
14
|
+
* - openai-strict : same as draft-2020-12 (type array form)
|
|
15
|
+
* - draft-07 : wraps in `oneOf: [{ ...schema }, { type: "null" }]`
|
|
16
|
+
* - openapi-3.0 : adds `nullable: true` alongside the existing type
|
|
17
|
+
*
|
|
18
|
+
* Mutates the schema in-place.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const schema = { type: "string" };
|
|
23
|
+
* applyNullable(schema, "draft-2020-12");
|
|
24
|
+
* // → { type: ["string", "null"] }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function applyNullable(schema: JsonSchemaResult, target: JsonSchemaTarget): void;
|
|
28
|
+
/**
|
|
29
|
+
* Wrap a field schema as nullable for OpenAI strict mode.
|
|
30
|
+
*
|
|
31
|
+
* OpenAI strict requires optional fields to be expressed as a nullable type
|
|
32
|
+
* rather than being omitted from the `required` array. This helper wraps a
|
|
33
|
+
* given schema into its nullable equivalent using the type-array form.
|
|
34
|
+
*
|
|
35
|
+
* Unlike `applyNullable()` (which mutates in-place), this returns a new
|
|
36
|
+
* schema object to avoid side effects when wrapping child schemas.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* wrapNullableStrict({ type: "string", minLength: 3 })
|
|
41
|
+
* // → { type: ["string", "null"], minLength: 3 }
|
|
42
|
+
*
|
|
43
|
+
* wrapNullableStrict({ type: "object", properties: {...} })
|
|
44
|
+
* // → { type: ["object", "null"], properties: {...} }
|
|
45
|
+
*
|
|
46
|
+
* wrapNullableStrict({ oneOf: [...] })
|
|
47
|
+
* // → { oneOf: [..., { type: "null" }] }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function wrapNullableStrict(schema: JsonSchemaResult): JsonSchemaResult;
|
|
51
|
+
/**
|
|
52
|
+
* Find the first rule matching the given name in a rules array,
|
|
53
|
+
* and return its options bag.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getRuleOptions(rules: Array<{
|
|
56
|
+
name: string;
|
|
57
|
+
context: {
|
|
58
|
+
options: Record<string, unknown>;
|
|
59
|
+
};
|
|
60
|
+
}>, ruleName: string): Record<string, unknown> | undefined;
|
|
61
|
+
//# sourceMappingURL=json-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../src/standard-schema/json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAoBtF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAqB7E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,EAC7E,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGrC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply nullable to a JSON Schema object based on the target dialect.
|
|
3
|
+
*
|
|
4
|
+
* - draft-2020-12 : `type` becomes an array: `["string", "null"]`
|
|
5
|
+
* - openai-strict : same as draft-2020-12 (type array form)
|
|
6
|
+
* - draft-07 : wraps in `oneOf: [{ ...schema }, { type: "null" }]`
|
|
7
|
+
* - openapi-3.0 : adds `nullable: true` alongside the existing type
|
|
8
|
+
*
|
|
9
|
+
* Mutates the schema in-place.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const schema = { type: "string" };
|
|
14
|
+
* applyNullable(schema, "draft-2020-12");
|
|
15
|
+
* // → { type: ["string", "null"] }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
function applyNullable(schema, target) {
|
|
19
|
+
if (target === "openapi-3.0") {
|
|
20
|
+
schema.nullable = true;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (target === "draft-2020-12" || target === "openai-strict") {
|
|
24
|
+
const baseType = schema.type;
|
|
25
|
+
schema.type = Array.isArray(baseType)
|
|
26
|
+
? [...baseType, "null"]
|
|
27
|
+
: [baseType, "null"];
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// draft-07: oneOf wrapping
|
|
31
|
+
const copy = { ...schema };
|
|
32
|
+
for (const key of Object.keys(schema)) {
|
|
33
|
+
delete schema[key];
|
|
34
|
+
}
|
|
35
|
+
schema.oneOf = [copy, { type: "null" }];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Wrap a field schema as nullable for OpenAI strict mode.
|
|
39
|
+
*
|
|
40
|
+
* OpenAI strict requires optional fields to be expressed as a nullable type
|
|
41
|
+
* rather than being omitted from the `required` array. This helper wraps a
|
|
42
|
+
* given schema into its nullable equivalent using the type-array form.
|
|
43
|
+
*
|
|
44
|
+
* Unlike `applyNullable()` (which mutates in-place), this returns a new
|
|
45
|
+
* schema object to avoid side effects when wrapping child schemas.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* wrapNullableStrict({ type: "string", minLength: 3 })
|
|
50
|
+
* // → { type: ["string", "null"], minLength: 3 }
|
|
51
|
+
*
|
|
52
|
+
* wrapNullableStrict({ type: "object", properties: {...} })
|
|
53
|
+
* // → { type: ["object", "null"], properties: {...} }
|
|
54
|
+
*
|
|
55
|
+
* wrapNullableStrict({ oneOf: [...] })
|
|
56
|
+
* // → { oneOf: [..., { type: "null" }] }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
function wrapNullableStrict(schema) {
|
|
60
|
+
// If the schema uses oneOf/anyOf (e.g. union), append null to the list
|
|
61
|
+
if (schema.oneOf) {
|
|
62
|
+
return { ...schema, oneOf: [...schema.oneOf, { type: "null" }] };
|
|
63
|
+
}
|
|
64
|
+
if (schema.anyOf) {
|
|
65
|
+
return { ...schema, anyOf: [...schema.anyOf, { type: "null" }] };
|
|
66
|
+
}
|
|
67
|
+
// If there's no type at all (permissive `{}`), stay permissive
|
|
68
|
+
if (schema.type === undefined) {
|
|
69
|
+
return schema;
|
|
70
|
+
}
|
|
71
|
+
// Standard case: wrap type into array with null
|
|
72
|
+
const baseType = schema.type;
|
|
73
|
+
return {
|
|
74
|
+
...schema,
|
|
75
|
+
type: Array.isArray(baseType) ? [...baseType, "null"] : [baseType, "null"],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Find the first rule matching the given name in a rules array,
|
|
80
|
+
* and return its options bag.
|
|
81
|
+
*/
|
|
82
|
+
function getRuleOptions(rules, ruleName) {
|
|
83
|
+
const rule = rules.find(r => r.name === ruleName);
|
|
84
|
+
return rule?.context?.options;
|
|
85
|
+
}export{applyNullable,getRuleOptions,wrapNullableStrict};//# sourceMappingURL=json-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema.js","sources":["../../src/standard-schema/json-schema.ts"],"sourcesContent":[null],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;;;AAgBG;AACa,SAAA,aAAa,CAAC,MAAwB,EAAE,MAAwB,EAAA;IAC9E,IAAI,MAAM,KAAK,aAAa,EAAE;AAC5B,QAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,OAAO;AACR,KAAA;AAED,IAAA,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,eAAe,EAAE;AAC5D,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAqC,CAAC;QAC9D,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnC,cAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC;AACvB,cAAE,CAAC,QAAkB,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO;AACR,KAAA;;AAGD,IAAA,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,KAAA;AACD,IAAA,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;AAqBG;AACG,SAAU,kBAAkB,CAAC,MAAwB,EAAA;;IAEzD,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,QAAA,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAI,MAAM,CAAC,KAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACjF,KAAA;IAED,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,QAAA,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAI,MAAM,CAAC,KAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACjF,KAAA;;AAGD,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7B,QAAA,OAAO,MAAM,CAAC;AACf,KAAA;;AAGD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAyB,CAAC;IAClD,OAAO;AACL,QAAA,GAAG,MAAM;QACT,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;;AAGG;AACa,SAAA,cAAc,CAC5B,KAA6E,EAC7E,QAAgB,EAAA;AAEhB,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAClD,IAAA,OAAO,IAAI,EAAE,OAAO,EAAE,OAA8C,CAAC;AACvE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ValidationResult } from "../types";
|
|
2
|
+
import type { StandardSchemaV1 } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Maps a Seal ValidationResult to a Standard Schema result shape.
|
|
5
|
+
*
|
|
6
|
+
* Seal error paths are dot-notation strings (e.g. "address.city").
|
|
7
|
+
* Standard Schema expects an array of path segments: [{ key: "address" }, { key: "city" }].
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const result = await validator.validate(value, context);
|
|
12
|
+
* return mapToStandardResult(result);
|
|
13
|
+
* // Success → { value: <data> }
|
|
14
|
+
* // Failure → { issues: [{ message: "...", path: [{ key: "..." }] }] }
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function mapToStandardResult(result: ValidationResult): StandardSchemaV1.Result<unknown>;
|
|
18
|
+
//# sourceMappingURL=map-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-result.d.ts","sourceRoot":"","sources":["../../src/standard-schema/map-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAalC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps a Seal ValidationResult to a Standard Schema result shape.
|
|
3
|
+
*
|
|
4
|
+
* Seal error paths are dot-notation strings (e.g. "address.city").
|
|
5
|
+
* Standard Schema expects an array of path segments: [{ key: "address" }, { key: "city" }].
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const result = await validator.validate(value, context);
|
|
10
|
+
* return mapToStandardResult(result);
|
|
11
|
+
* // Success → { value: <data> }
|
|
12
|
+
* // Failure → { issues: [{ message: "...", path: [{ key: "..." }] }] }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function mapToStandardResult(result) {
|
|
16
|
+
if (result.isValid) {
|
|
17
|
+
return { value: result.data };
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
issues: result.errors.map(e => ({
|
|
21
|
+
message: e.error,
|
|
22
|
+
path: e.input
|
|
23
|
+
? e.input.split(".").map(key => ({ key }))
|
|
24
|
+
: undefined,
|
|
25
|
+
})),
|
|
26
|
+
};
|
|
27
|
+
}export{mapToStandardResult};//# sourceMappingURL=map-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-result.js","sources":["../../src/standard-schema/map-result.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;;;AAaG;AACG,SAAU,mBAAmB,CACjC,MAAwB,EAAA;IAExB,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,QAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/B,KAAA;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;YAC9B,OAAO,EAAE,CAAC,CAAC,KAAK;YAChB,IAAI,EAAE,CAAC,CAAC,KAAK;kBACT,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1C,kBAAE,SAAS;AACd,SAAA,CAAC,CAAC;KACJ,CAAC;AACJ"}
|