@warlock.js/seal 4.0.139 → 4.0.141
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.d.ts +17 -2
- package/cjs/factory/validators.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.d.ts +17 -2
- package/esm/factory/validators.d.ts.map +1 -1
- package/esm/factory/validators.js +1 -1
- package/esm/factory/validators.js.map +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
|
@@ -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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard Schema Spec Types
|
|
3
|
+
*
|
|
4
|
+
* Copied from @standard-schema/spec to avoid a runtime dependency.
|
|
5
|
+
* Source: https://standardschema.dev
|
|
6
|
+
*
|
|
7
|
+
* Implements:
|
|
8
|
+
* - StandardSchemaV1 — for validation interop (OpenAI, LangGraph, TanStack Form, Conform, etc.)
|
|
9
|
+
* - StandardJSONSchemaV1 — for JSON Schema generation (OpenAPI, draft-07, draft-2020-12)
|
|
10
|
+
*/
|
|
11
|
+
/** The Standard Schema interface. */
|
|
12
|
+
export interface StandardSchemaV1<Input = unknown, Output = Input> {
|
|
13
|
+
readonly "~standard": StandardSchemaV1.Props<Input, Output>;
|
|
14
|
+
}
|
|
15
|
+
export declare namespace StandardSchemaV1 {
|
|
16
|
+
/** The Standard Schema properties interface. */
|
|
17
|
+
interface Props<Input = unknown, Output = Input> {
|
|
18
|
+
/** The version number of the standard. */
|
|
19
|
+
readonly version: 1;
|
|
20
|
+
/** The vendor name of the schema library. */
|
|
21
|
+
readonly vendor: string;
|
|
22
|
+
/** Inferred types associated with the schema. */
|
|
23
|
+
readonly types?: Types<Input, Output> | undefined;
|
|
24
|
+
/** Validates unknown input values. */
|
|
25
|
+
readonly validate: (value: unknown, options?: Options | undefined) => Result<Output> | Promise<Result<Output>>;
|
|
26
|
+
}
|
|
27
|
+
/** Success result. */
|
|
28
|
+
interface SuccessResult<Output> {
|
|
29
|
+
readonly value: Output;
|
|
30
|
+
readonly issues?: undefined;
|
|
31
|
+
}
|
|
32
|
+
/** Options passed to validate. */
|
|
33
|
+
interface Options {
|
|
34
|
+
readonly libraryOptions?: Record<string, unknown> | undefined;
|
|
35
|
+
}
|
|
36
|
+
/** Failure result. */
|
|
37
|
+
interface FailureResult {
|
|
38
|
+
readonly issues: ReadonlyArray<Issue>;
|
|
39
|
+
}
|
|
40
|
+
type Result<Output> = SuccessResult<Output> | FailureResult;
|
|
41
|
+
/** Issue in a failed result. */
|
|
42
|
+
interface Issue {
|
|
43
|
+
readonly message: string;
|
|
44
|
+
readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
|
|
45
|
+
}
|
|
46
|
+
/** A single segment in an issue path. */
|
|
47
|
+
interface PathSegment {
|
|
48
|
+
readonly key: PropertyKey;
|
|
49
|
+
}
|
|
50
|
+
/** The Standard types interface. */
|
|
51
|
+
interface Types<Input = unknown, Output = Input> {
|
|
52
|
+
readonly input: Input;
|
|
53
|
+
readonly output: Output;
|
|
54
|
+
}
|
|
55
|
+
/** Infer the input type of a Standard Schema. */
|
|
56
|
+
type InferInput<S extends StandardSchemaV1> = NonNullable<S["~standard"]["types"]>["input"];
|
|
57
|
+
/** Infer the output type of a Standard Schema. */
|
|
58
|
+
type InferOutput<S extends StandardSchemaV1> = NonNullable<S["~standard"]["types"]>["output"];
|
|
59
|
+
}
|
|
60
|
+
/** The Standard JSON Schema interface. */
|
|
61
|
+
export interface StandardJSONSchemaV1<Input = unknown, Output = Input> {
|
|
62
|
+
readonly "~standard": StandardJSONSchemaV1.Props<Input, Output>;
|
|
63
|
+
}
|
|
64
|
+
export declare namespace StandardJSONSchemaV1 {
|
|
65
|
+
interface Props<Input = unknown, Output = Input> extends Omit<StandardSchemaV1.Props<Input, Output>, never> {
|
|
66
|
+
readonly jsonSchema: Converter;
|
|
67
|
+
}
|
|
68
|
+
/** Methods for generating JSON Schema. */
|
|
69
|
+
interface Converter {
|
|
70
|
+
/** Converts the input type to JSON Schema. */
|
|
71
|
+
readonly input: (options: Options) => Record<string, unknown>;
|
|
72
|
+
/** Converts the output type to JSON Schema. */
|
|
73
|
+
readonly output: (options: Options) => Record<string, unknown>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Supported JSON Schema targets.
|
|
77
|
+
* Libraries should throw if a target is not supported.
|
|
78
|
+
*
|
|
79
|
+
* - `draft-2020-12` — JSON Schema 2020-12 (default, recommended)
|
|
80
|
+
* - `draft-07` — JSON Schema draft-07 (Swagger 2.0, older tooling)
|
|
81
|
+
* - `openapi-3.0` — OpenAPI 3.0 extensions (nullable: true)
|
|
82
|
+
* - `openai-strict` — OpenAI Structured Outputs strict mode.
|
|
83
|
+
* All fields listed in required; optional fields
|
|
84
|
+
* expressed as `{ type: ["T", "null"] }` instead
|
|
85
|
+
* of being omitted from required.
|
|
86
|
+
*/
|
|
87
|
+
type Target = "draft-2020-12" | "draft-07" | "openapi-3.0" | "openai-strict" | ({} & string);
|
|
88
|
+
interface Options {
|
|
89
|
+
readonly target: Target;
|
|
90
|
+
readonly libraryOptions?: Record<string, unknown> | undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/standard-schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import { BaseValidator } from "./base-validator";
|
|
2
|
+
import type { JsonSchemaResult, JsonSchemaTarget } from "../standard-schema/json-schema";
|
|
2
3
|
/**
|
|
3
4
|
* Any validator - accepts any value
|
|
4
5
|
*/
|
|
5
6
|
export declare class AnyValidator extends BaseValidator {
|
|
7
|
+
/**
|
|
8
|
+
* @inheritdoc
|
|
9
|
+
*
|
|
10
|
+
* Any validator accepts anything. In JSON Schema, an empty object `{}`
|
|
11
|
+
* is the permissive schema that accepts any valid JSON value.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* v.any().toJsonSchema("draft-2020-12")
|
|
16
|
+
* // → {}
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
|
|
6
20
|
}
|
|
7
21
|
//# sourceMappingURL=any-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"any-validator.d.ts","sourceRoot":"","sources":["../../src/validators/any-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"any-validator.d.ts","sourceRoot":"","sources":["../../src/validators/any-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEzF;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAC7C;;;;;;;;;;;OAWG;IACa,YAAY,CAAC,MAAM,GAAE,gBAAkC,GAAG,gBAAgB;CAK3F"}
|
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
import {BaseValidator}from'./base-validator.js';/**
|
|
1
|
+
import {BaseValidator}from'./base-validator.js';import {applyNullable}from'../standard-schema/json-schema.js';/**
|
|
2
2
|
* Any validator - accepts any value
|
|
3
3
|
*/
|
|
4
4
|
class AnyValidator extends BaseValidator {
|
|
5
|
+
/**
|
|
6
|
+
* @inheritdoc
|
|
7
|
+
*
|
|
8
|
+
* Any validator accepts anything. In JSON Schema, an empty object `{}`
|
|
9
|
+
* is the permissive schema that accepts any valid JSON value.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* v.any().toJsonSchema("draft-2020-12")
|
|
14
|
+
* // → {}
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
toJsonSchema(target = "draft-2020-12") {
|
|
18
|
+
const schema = {};
|
|
19
|
+
if (this.isNullable)
|
|
20
|
+
applyNullable(schema, target);
|
|
21
|
+
return schema;
|
|
22
|
+
}
|
|
5
23
|
}export{AnyValidator};//# sourceMappingURL=any-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"any-validator.js","sources":["../../src/validators/any-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"any-validator.js","sources":["../../src/validators/any-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"8GAIA;;AAEG;AACG,MAAO,YAAa,SAAQ,aAAa,CAAA;AAC7C;;;;;;;;;;;AAWG;IACa,YAAY,CAAC,SAA2B,eAAe,EAAA;QACrE,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU;AAAE,YAAA,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnD,QAAA,OAAO,MAAM,CAAC;KACf;AACF"}
|
|
@@ -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
|
* Array validator class
|
|
5
6
|
*/
|
|
@@ -55,5 +56,17 @@ export declare class ArrayValidator extends BaseValidator {
|
|
|
55
56
|
mutate(data: any, context: SchemaContext): any;
|
|
56
57
|
/** Validate array */
|
|
57
58
|
validate(data: any, context: SchemaContext): Promise<ValidationResult>;
|
|
59
|
+
/**
|
|
60
|
+
* @inheritdoc
|
|
61
|
+
*
|
|
62
|
+
* Recursively generates JSON Schema for the array items.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* v.array(v.string().min(1)).minLength(1).toJsonSchema("draft-2020-12")
|
|
67
|
+
* // → { type: "array", items: { type: "string", minLength: 1 }, minItems: 1 }
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
|
|
58
71
|
}
|
|
59
72
|
//# sourceMappingURL=array-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-validator.d.ts","sourceRoot":"","sources":["../../src/validators/array-validator.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAEtC,SAAS,EAAE,aAAa;gBAAxB,SAAS,EAAE,aAAa,EAC/B,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC;;OAEG;IACa,KAAK,IAAI,IAAI;IAQ7B,0BAA0B;IACnB,IAAI;IAIX,kCAAkC;IAC3B,OAAO;IAId,qCAAqC;IAC9B,UAAU;IAIjB,iBAAiB;IACV,IAAI,CAAC,SAAS,GAAE,KAAK,GAAG,MAAc,EAAE,GAAG,CAAC,EAAE,MAAM;IAI3D,yDAAyD;IAClD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAItD,sDAAsD;IAC/C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAItD,+CAA+C;IACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAInD;;;;;;;;;;;;;OAaG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAO9D;;OAEG;IACI,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAIpE,oCAAoC;IAC7B,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM;IAInC,2BAA2B;IACpB,MAAM,CAAC,SAAS,GAAE,KAAK,GAAG,MAAc,EAAE,YAAY,CAAC,EAAE,MAAM;IAItE,sBAAsB;IACf,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAK/C,qBAAqB;IACR,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"array-validator.d.ts","sourceRoot":"","sources":["../../src/validators/array-validator.ts"],"names":[],"mappings":"AAWA,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;;GAEG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAEtC,SAAS,EAAE,aAAa;gBAAxB,SAAS,EAAE,aAAa,EAC/B,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC;;OAEG;IACa,KAAK,IAAI,IAAI;IAQ7B,0BAA0B;IACnB,IAAI;IAIX,kCAAkC;IAC3B,OAAO;IAId,qCAAqC;IAC9B,UAAU;IAIjB,iBAAiB;IACV,IAAI,CAAC,SAAS,GAAE,KAAK,GAAG,MAAc,EAAE,GAAG,CAAC,EAAE,MAAM;IAI3D,yDAAyD;IAClD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAItD,sDAAsD;IAC/C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAItD,+CAA+C;IACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAInD;;;;;;;;;;;;;OAaG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAO9D;;OAEG;IACI,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAIpE,oCAAoC;IAC7B,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM;IAInC,2BAA2B;IACpB,MAAM,CAAC,SAAS,GAAE,KAAK,GAAG,MAAc,EAAE,YAAY,CAAC,EAAE,MAAM;IAItE,sBAAsB;IACf,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAK/C,qBAAqB;IACR,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsCnF;;;;;;;;;;OAUG;IACa,YAAY,CAAC,MAAM,GAAE,gBAAkC,GAAG,gBAAgB;CA4B3F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import'@mongez/reinforcements';import {setKeyPath}from'../helpers/path-helpers.js';import {flipArrayMutator,uniqueArrayMutator,sortArrayMutator}from'../mutators/array-mutators.js';import'dayjs';import'@mongez/supportive-is';import'net';import {minLengthRule,maxLengthRule,lengthRule,betweenLengthRule}from'../rules/length/length-rules.js';import {uniqueArrayRule,sortedArrayRule}from'../rules/array/array-rules.js';import {arrayRule}from'../rules/common/type-rules.js';import {BaseValidator}from'./base-validator.js';/**
|
|
1
|
+
import'@mongez/reinforcements';import {setKeyPath}from'../helpers/path-helpers.js';import {flipArrayMutator,uniqueArrayMutator,sortArrayMutator}from'../mutators/array-mutators.js';import'dayjs';import'@mongez/supportive-is';import'net';import {minLengthRule,maxLengthRule,lengthRule,betweenLengthRule}from'../rules/length/length-rules.js';import {uniqueArrayRule,sortedArrayRule}from'../rules/array/array-rules.js';import {arrayRule}from'../rules/common/type-rules.js';import {BaseValidator}from'./base-validator.js';import {getRuleOptions,applyNullable}from'../standard-schema/json-schema.js';/**
|
|
2
2
|
* Array validator class
|
|
3
3
|
*/
|
|
4
4
|
class ArrayValidator extends BaseValidator {
|
|
@@ -121,4 +121,42 @@ class ArrayValidator extends BaseValidator {
|
|
|
121
121
|
data: await this.startTransformationPipeline(mutatedData, context),
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* @inheritdoc
|
|
126
|
+
*
|
|
127
|
+
* Recursively generates JSON Schema for the array items.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* v.array(v.string().min(1)).minLength(1).toJsonSchema("draft-2020-12")
|
|
132
|
+
* // → { type: "array", items: { type: "string", minLength: 1 }, minItems: 1 }
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
toJsonSchema(target = "draft-2020-12") {
|
|
136
|
+
const schema = {
|
|
137
|
+
type: "array",
|
|
138
|
+
items: this.validator.toJsonSchema(target),
|
|
139
|
+
};
|
|
140
|
+
const minOpts = getRuleOptions(this.rules, "minLength");
|
|
141
|
+
if (minOpts?.minLength !== undefined)
|
|
142
|
+
schema.minItems = minOpts.minLength;
|
|
143
|
+
const maxOpts = getRuleOptions(this.rules, "maxLength");
|
|
144
|
+
if (maxOpts?.maxLength !== undefined)
|
|
145
|
+
schema.maxItems = maxOpts.maxLength;
|
|
146
|
+
const betweenOpts = getRuleOptions(this.rules, "betweenLength");
|
|
147
|
+
if (betweenOpts) {
|
|
148
|
+
if (betweenOpts.minLength !== undefined)
|
|
149
|
+
schema.minItems = betweenOpts.minLength;
|
|
150
|
+
if (betweenOpts.maxLength !== undefined)
|
|
151
|
+
schema.maxItems = betweenOpts.maxLength;
|
|
152
|
+
}
|
|
153
|
+
const lengthOpts = getRuleOptions(this.rules, "length");
|
|
154
|
+
if (lengthOpts?.length !== undefined) {
|
|
155
|
+
schema.minItems = lengthOpts.length;
|
|
156
|
+
schema.maxItems = lengthOpts.length;
|
|
157
|
+
}
|
|
158
|
+
if (this.isNullable)
|
|
159
|
+
applyNullable(schema, target);
|
|
160
|
+
return schema;
|
|
161
|
+
}
|
|
124
162
|
}export{ArrayValidator};//# sourceMappingURL=array-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-validator.js","sources":["../../src/validators/array-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array-validator.js","sources":["../../src/validators/array-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { JsonSchemaResult, JsonSchemaTarget } from "../standard-schema/json-schema";
|
|
2
|
+
import type { StandardJSONSchemaV1 } from "../standard-schema/types";
|
|
1
3
|
import type { ContextualSchemaRule, ContextualizedMutator, ContextualizedTransformer, Mutator, SchemaContext, SchemaRule, SchemaRuleOptions, SimpleTransformerCallback, TransformerCallback, ValidationAttributesList, ValidationResult } from "../types";
|
|
2
4
|
/**
|
|
3
5
|
* Base validator class - foundation for all validators
|
|
4
6
|
*/
|
|
5
|
-
export declare class BaseValidator {
|
|
7
|
+
export declare class BaseValidator<TInput = unknown, TOutput = TInput> {
|
|
6
8
|
rules: ContextualSchemaRule[];
|
|
7
9
|
mutators: ContextualizedMutator[];
|
|
8
10
|
protected defaultValue: any | (() => any);
|
|
@@ -348,5 +350,76 @@ export declare class BaseValidator {
|
|
|
348
350
|
* Set rule attributes list
|
|
349
351
|
*/
|
|
350
352
|
protected setRuleAttributesList(rule: ContextualSchemaRule): void;
|
|
353
|
+
/**
|
|
354
|
+
* Standard Schema V1 compliance.
|
|
355
|
+
*
|
|
356
|
+
* Allows this validator to be used with any Standard Schema-aware library
|
|
357
|
+
* (OpenAI structured outputs, LangGraph, TanStack Form, Conform, Valibot adapters, etc.)
|
|
358
|
+
* without extra adapters.
|
|
359
|
+
*
|
|
360
|
+
* Delegates to the `validate()` factory so all `configureSeal()` options
|
|
361
|
+
* (translations, firstErrorOnly) are picked up automatically at call time.
|
|
362
|
+
*
|
|
363
|
+
* Includes Standard JSON Schema support via `jsonSchema.input()` / `jsonSchema.output()`.
|
|
364
|
+
*
|
|
365
|
+
* ## How Standard Schema libraries consume this
|
|
366
|
+
*
|
|
367
|
+
* You pass the **schema object itself** to the library — they internally read
|
|
368
|
+
* `schema["~standard"]`. Do NOT pass `schema["~standard"]` directly.
|
|
369
|
+
*
|
|
370
|
+
* @example
|
|
371
|
+
* ```ts
|
|
372
|
+
* const schema = v.object({ name: v.string().required() });
|
|
373
|
+
*
|
|
374
|
+
* // TanStack Form — pass schema, library reads ["~standard"] internally
|
|
375
|
+
* const form = useForm({ validators: { onChange: schema } });
|
|
376
|
+
*
|
|
377
|
+
* // Conform (Remix) — same pattern
|
|
378
|
+
* const [form] = useForm({ onValidate({ formData }) {
|
|
379
|
+
* return parseWithStandardSchema(formData, { schema });
|
|
380
|
+
* }});
|
|
381
|
+
*
|
|
382
|
+
* // Direct validation (lower level — most apps don't need this)
|
|
383
|
+
* const result = await schema["~standard"].validate({ name: "Hasan" });
|
|
384
|
+
* // → { value: { name: "Hasan" } } on success
|
|
385
|
+
* // → { issues: [{ message: "...", path: [{ key: "name" }] }] } on failure
|
|
386
|
+
*
|
|
387
|
+
* // JSON Schema for OpenAI / LangChain tool calling
|
|
388
|
+
* const parameters = schema["~standard"].jsonSchema.input({ target: "openai-strict" });
|
|
389
|
+
* // → { type: "object", properties: {...}, required: [...], additionalProperties: false }
|
|
390
|
+
* ```
|
|
391
|
+
*
|
|
392
|
+
* @note Cross-field rules (sameAs, requiredIf, requiredWith) rely on sibling values
|
|
393
|
+
* available in the full validation context. When called on a standalone scalar validator,
|
|
394
|
+
* sibling data is absent and those rules will not evaluate correctly.
|
|
395
|
+
* Always call on the parent ObjectValidator for full-payload validation.
|
|
396
|
+
*/
|
|
397
|
+
get ["~standard"](): StandardJSONSchemaV1.Props<TInput, TOutput>;
|
|
398
|
+
/**
|
|
399
|
+
* Generate a JSON Schema representation of this validator.
|
|
400
|
+
*
|
|
401
|
+
* Supports targets: `"draft-2020-12"` (default), `"draft-07"`, `"openapi-3.0"`.
|
|
402
|
+
*
|
|
403
|
+
* Subclasses override this to describe their specific constraints.
|
|
404
|
+
* The base implementation returns `{}` (permissive — accepts anything),
|
|
405
|
+
* which is correct for validators with no representable JSON Schema constraints.
|
|
406
|
+
*
|
|
407
|
+
* @note Rules that cannot be expressed in JSON Schema are silently omitted:
|
|
408
|
+
* - Cross-field rules: sameAs, requiredIf, requiredWith, requiredWithout
|
|
409
|
+
* - Custom callbacks: refine()
|
|
410
|
+
* - Framework-specific runtime rules (core/cascade plugins)
|
|
411
|
+
* These rules still run normally at validation time — only absent from JSON Schema.
|
|
412
|
+
*
|
|
413
|
+
* @example
|
|
414
|
+
* ```ts
|
|
415
|
+
* v.string().min(3).max(50).toJsonSchema("draft-2020-12")
|
|
416
|
+
* // → { type: "string", minLength: 3, maxLength: 50 }
|
|
417
|
+
*
|
|
418
|
+
* v.object({ name: v.string().required(), age: v.int().optional() })
|
|
419
|
+
* .toJsonSchema("draft-07")
|
|
420
|
+
* // → { type: "object", properties: { name: { type: "string" }, age: { type: "integer" } }, required: ["name"] }
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
423
|
+
toJsonSchema(_target?: JsonSchemaTarget): JsonSchemaResult;
|
|
351
424
|
}
|
|
352
425
|
//# sourceMappingURL=base-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-validator.d.ts","sourceRoot":"","sources":["../../src/validators/base-validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-validator.d.ts","sourceRoot":"","sources":["../../src/validators/base-validator.ts"],"names":[],"mappings":"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"}
|