@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.
Files changed (155) hide show
  1. package/cjs/factory/validate.d.ts +2 -2
  2. package/cjs/factory/validate.d.ts.map +1 -1
  3. package/cjs/factory/validators.d.ts +17 -2
  4. package/cjs/factory/validators.d.ts.map +1 -1
  5. package/cjs/factory/validators.js +1 -1
  6. package/cjs/factory/validators.js.map +1 -1
  7. package/cjs/index.d.ts +1 -0
  8. package/cjs/index.d.ts.map +1 -1
  9. package/cjs/index.js +1 -1
  10. package/cjs/standard-schema/index.d.ts +4 -0
  11. package/cjs/standard-schema/index.d.ts.map +1 -0
  12. package/cjs/standard-schema/json-schema.d.ts +61 -0
  13. package/cjs/standard-schema/json-schema.d.ts.map +1 -0
  14. package/cjs/standard-schema/json-schema.js +85 -0
  15. package/cjs/standard-schema/json-schema.js.map +1 -0
  16. package/cjs/standard-schema/map-result.d.ts +18 -0
  17. package/cjs/standard-schema/map-result.d.ts.map +1 -0
  18. package/cjs/standard-schema/map-result.js +27 -0
  19. package/cjs/standard-schema/map-result.js.map +1 -0
  20. package/cjs/standard-schema/types.d.ts +93 -0
  21. package/cjs/standard-schema/types.d.ts.map +1 -0
  22. package/cjs/validators/any-validator.d.ts +14 -0
  23. package/cjs/validators/any-validator.d.ts.map +1 -1
  24. package/cjs/validators/any-validator.js +19 -1
  25. package/cjs/validators/any-validator.js.map +1 -1
  26. package/cjs/validators/array-validator.d.ts +13 -0
  27. package/cjs/validators/array-validator.d.ts.map +1 -1
  28. package/cjs/validators/array-validator.js +39 -1
  29. package/cjs/validators/array-validator.js.map +1 -1
  30. package/cjs/validators/base-validator.d.ts +74 -1
  31. package/cjs/validators/base-validator.d.ts.map +1 -1
  32. package/cjs/validators/base-validator.js +88 -1
  33. package/cjs/validators/base-validator.js.map +1 -1
  34. package/cjs/validators/boolean-validator.d.ts +17 -0
  35. package/cjs/validators/boolean-validator.d.ts.map +1 -1
  36. package/cjs/validators/boolean-validator.js +22 -1
  37. package/cjs/validators/boolean-validator.js.map +1 -1
  38. package/cjs/validators/computed-validator.d.ts +11 -0
  39. package/cjs/validators/computed-validator.d.ts.map +1 -1
  40. package/cjs/validators/computed-validator.js +15 -0
  41. package/cjs/validators/computed-validator.js.map +1 -1
  42. package/cjs/validators/date-validator.d.ts +18 -0
  43. package/cjs/validators/date-validator.d.ts.map +1 -1
  44. package/cjs/validators/date-validator.js +40 -1
  45. package/cjs/validators/date-validator.js.map +1 -1
  46. package/cjs/validators/int-validator.d.ts +11 -0
  47. package/cjs/validators/int-validator.d.ts.map +1 -1
  48. package/cjs/validators/int-validator.js +12 -0
  49. package/cjs/validators/int-validator.js.map +1 -1
  50. package/cjs/validators/number-validator.d.ts +23 -0
  51. package/cjs/validators/number-validator.d.ts.map +1 -1
  52. package/cjs/validators/number-validator.js +80 -1
  53. package/cjs/validators/number-validator.js.map +1 -1
  54. package/cjs/validators/object-validator.d.ts +37 -0
  55. package/cjs/validators/object-validator.d.ts.map +1 -1
  56. package/cjs/validators/object-validator.js +70 -1
  57. package/cjs/validators/object-validator.js.map +1 -1
  58. package/cjs/validators/record-validator.d.ts +17 -0
  59. package/cjs/validators/record-validator.d.ts.map +1 -1
  60. package/cjs/validators/record-validator.js +25 -1
  61. package/cjs/validators/record-validator.js.map +1 -1
  62. package/cjs/validators/scalar-validator.d.ts +17 -0
  63. package/cjs/validators/scalar-validator.d.ts.map +1 -1
  64. package/cjs/validators/scalar-validator.js +34 -1
  65. package/cjs/validators/scalar-validator.js.map +1 -1
  66. package/cjs/validators/string-validator.d.ts +14 -0
  67. package/cjs/validators/string-validator.d.ts.map +1 -1
  68. package/cjs/validators/string-validator.js +71 -1
  69. package/cjs/validators/string-validator.js.map +1 -1
  70. package/cjs/validators/tuple-validator.d.ts +22 -0
  71. package/cjs/validators/tuple-validator.d.ts.map +1 -1
  72. package/cjs/validators/tuple-validator.js +43 -1
  73. package/cjs/validators/tuple-validator.js.map +1 -1
  74. package/cjs/validators/union-validator.d.ts +13 -0
  75. package/cjs/validators/union-validator.d.ts.map +1 -1
  76. package/cjs/validators/union-validator.js +19 -1
  77. package/cjs/validators/union-validator.js.map +1 -1
  78. package/esm/factory/validate.d.ts +2 -2
  79. package/esm/factory/validate.d.ts.map +1 -1
  80. package/esm/factory/validators.d.ts +17 -2
  81. package/esm/factory/validators.d.ts.map +1 -1
  82. package/esm/factory/validators.js +1 -1
  83. package/esm/factory/validators.js.map +1 -1
  84. package/esm/index.d.ts +1 -0
  85. package/esm/index.d.ts.map +1 -1
  86. package/esm/index.js +1 -1
  87. package/esm/standard-schema/index.d.ts +4 -0
  88. package/esm/standard-schema/index.d.ts.map +1 -0
  89. package/esm/standard-schema/json-schema.d.ts +61 -0
  90. package/esm/standard-schema/json-schema.d.ts.map +1 -0
  91. package/esm/standard-schema/json-schema.js +85 -0
  92. package/esm/standard-schema/json-schema.js.map +1 -0
  93. package/esm/standard-schema/map-result.d.ts +18 -0
  94. package/esm/standard-schema/map-result.d.ts.map +1 -0
  95. package/esm/standard-schema/map-result.js +27 -0
  96. package/esm/standard-schema/map-result.js.map +1 -0
  97. package/esm/standard-schema/types.d.ts +93 -0
  98. package/esm/standard-schema/types.d.ts.map +1 -0
  99. package/esm/validators/any-validator.d.ts +14 -0
  100. package/esm/validators/any-validator.d.ts.map +1 -1
  101. package/esm/validators/any-validator.js +19 -1
  102. package/esm/validators/any-validator.js.map +1 -1
  103. package/esm/validators/array-validator.d.ts +13 -0
  104. package/esm/validators/array-validator.d.ts.map +1 -1
  105. package/esm/validators/array-validator.js +39 -1
  106. package/esm/validators/array-validator.js.map +1 -1
  107. package/esm/validators/base-validator.d.ts +74 -1
  108. package/esm/validators/base-validator.d.ts.map +1 -1
  109. package/esm/validators/base-validator.js +88 -1
  110. package/esm/validators/base-validator.js.map +1 -1
  111. package/esm/validators/boolean-validator.d.ts +17 -0
  112. package/esm/validators/boolean-validator.d.ts.map +1 -1
  113. package/esm/validators/boolean-validator.js +22 -1
  114. package/esm/validators/boolean-validator.js.map +1 -1
  115. package/esm/validators/computed-validator.d.ts +11 -0
  116. package/esm/validators/computed-validator.d.ts.map +1 -1
  117. package/esm/validators/computed-validator.js +15 -0
  118. package/esm/validators/computed-validator.js.map +1 -1
  119. package/esm/validators/date-validator.d.ts +18 -0
  120. package/esm/validators/date-validator.d.ts.map +1 -1
  121. package/esm/validators/date-validator.js +40 -1
  122. package/esm/validators/date-validator.js.map +1 -1
  123. package/esm/validators/int-validator.d.ts +11 -0
  124. package/esm/validators/int-validator.d.ts.map +1 -1
  125. package/esm/validators/int-validator.js +12 -0
  126. package/esm/validators/int-validator.js.map +1 -1
  127. package/esm/validators/number-validator.d.ts +23 -0
  128. package/esm/validators/number-validator.d.ts.map +1 -1
  129. package/esm/validators/number-validator.js +80 -1
  130. package/esm/validators/number-validator.js.map +1 -1
  131. package/esm/validators/object-validator.d.ts +37 -0
  132. package/esm/validators/object-validator.d.ts.map +1 -1
  133. package/esm/validators/object-validator.js +70 -1
  134. package/esm/validators/object-validator.js.map +1 -1
  135. package/esm/validators/record-validator.d.ts +17 -0
  136. package/esm/validators/record-validator.d.ts.map +1 -1
  137. package/esm/validators/record-validator.js +25 -1
  138. package/esm/validators/record-validator.js.map +1 -1
  139. package/esm/validators/scalar-validator.d.ts +17 -0
  140. package/esm/validators/scalar-validator.d.ts.map +1 -1
  141. package/esm/validators/scalar-validator.js +34 -1
  142. package/esm/validators/scalar-validator.js.map +1 -1
  143. package/esm/validators/string-validator.d.ts +14 -0
  144. package/esm/validators/string-validator.d.ts.map +1 -1
  145. package/esm/validators/string-validator.js +71 -1
  146. package/esm/validators/string-validator.js.map +1 -1
  147. package/esm/validators/tuple-validator.d.ts +22 -0
  148. package/esm/validators/tuple-validator.d.ts.map +1 -1
  149. package/esm/validators/tuple-validator.js +43 -1
  150. package/esm/validators/tuple-validator.js.map +1 -1
  151. package/esm/validators/union-validator.d.ts +13 -0
  152. package/esm/validators/union-validator.d.ts.map +1 -1
  153. package/esm/validators/union-validator.js +19 -1
  154. package/esm/validators/union-validator.js.map +1 -1
  155. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import'@mongez/reinforcements';import'@mongez/supportive-is';import'dayjs';import {absMutator,ceilMutator,floorMutator,roundMutator,toFixedMutator}from'../mutators/number-mutators.js';import'net';import {minRule,maxRule,greaterThanRule,lessThanRule,moduloRule,positiveRule,negativeRule,oddRule,evenRule,betweenNumbersRule}from'../rules/number/number-rules.js';import {lengthRule,minLengthRule,maxLengthRule}from'../rules/length/length-rules.js';import {numberRule}from'../rules/common/type-rules.js';import {PrimitiveValidator}from'./primitive-validator.js';/**
1
+ import'@mongez/reinforcements';import'@mongez/supportive-is';import'dayjs';import {absMutator,ceilMutator,floorMutator,roundMutator,toFixedMutator}from'../mutators/number-mutators.js';import'net';import {minRule,maxRule,greaterThanRule,lessThanRule,moduloRule,positiveRule,negativeRule,oddRule,evenRule,betweenNumbersRule}from'../rules/number/number-rules.js';import {lengthRule,minLengthRule,maxLengthRule}from'../rules/length/length-rules.js';import {numberRule}from'../rules/common/type-rules.js';import {PrimitiveValidator}from'./primitive-validator.js';import {getRuleOptions,applyNullable}from'../standard-schema/json-schema.js';/**
2
2
  * Number validator class - base for Int and Float validators
3
3
  */
4
4
  class NumberValidator extends PrimitiveValidator {
@@ -225,4 +225,83 @@ class NumberValidator extends PrimitiveValidator {
225
225
  toFixed(decimals = 2) {
226
226
  return this.addMutator(toFixedMutator, { decimals });
227
227
  }
228
+ /**
229
+ * @inheritdoc
230
+ *
231
+ * Returns `{ type: "number" }` with numeric constraint keywords.
232
+ * IntValidator overrides `type` to `"integer"`.
233
+ *
234
+ * @note Sibling-scoped rules (minSibling, maxSibling, etc.) are not representable
235
+ * in JSON Schema and are silently omitted.
236
+ *
237
+ * @example
238
+ * ```ts
239
+ * v.number().min(0).max(100).toJsonSchema("draft-2020-12")
240
+ * // → { type: "number", minimum: 0, maximum: 100 }
241
+ * ```
242
+ */
243
+ toJsonSchema(target = "draft-2020-12") {
244
+ return this.buildNumberJsonSchema("number", target);
245
+ }
246
+ /**
247
+ * Shared logic for number/integer JSON Schema generation.
248
+ * Called by NumberValidator.toJsonSchema() (→ type: "number")
249
+ * and IntValidator.toJsonSchema() (→ type: "integer").
250
+ */
251
+ buildNumberJsonSchema(type, target) {
252
+ const schema = { type };
253
+ // minimum (inclusive)
254
+ const minOpts = getRuleOptions(this.rules, "min");
255
+ if (minOpts?.min !== undefined && typeof minOpts.min === "number") {
256
+ schema.minimum = minOpts.min;
257
+ }
258
+ // maximum (inclusive)
259
+ const maxOpts = getRuleOptions(this.rules, "max");
260
+ if (maxOpts?.max !== undefined && typeof maxOpts.max === "number") {
261
+ schema.maximum = maxOpts.max;
262
+ }
263
+ // between (inclusive range)
264
+ const betweenOpts = getRuleOptions(this.rules, "betweenNumbers");
265
+ if (betweenOpts) {
266
+ if (typeof betweenOpts.min === "number")
267
+ schema.minimum = betweenOpts.min;
268
+ if (typeof betweenOpts.max === "number")
269
+ schema.maximum = betweenOpts.max;
270
+ }
271
+ // greaterThan (>) → exclusiveMinimum
272
+ const gtOpts = getRuleOptions(this.rules, "greaterThan");
273
+ if (gtOpts?.value !== undefined && typeof gtOpts.value === "number") {
274
+ if (target === "draft-07") {
275
+ schema.minimum = gtOpts.value;
276
+ schema.exclusiveMinimum = true;
277
+ }
278
+ else {
279
+ schema.exclusiveMinimum = gtOpts.value;
280
+ }
281
+ }
282
+ // lessThan (<) → exclusiveMaximum
283
+ const ltOpts = getRuleOptions(this.rules, "lessThan");
284
+ if (ltOpts?.value !== undefined && typeof ltOpts.value === "number") {
285
+ if (target === "draft-07") {
286
+ schema.maximum = ltOpts.value;
287
+ schema.exclusiveMaximum = true;
288
+ }
289
+ else {
290
+ schema.exclusiveMaximum = ltOpts.value;
291
+ }
292
+ }
293
+ // multipleOf / modulo
294
+ const moduloOpts = getRuleOptions(this.rules, "modulo");
295
+ if (moduloOpts?.value !== undefined && typeof moduloOpts.value === "number") {
296
+ schema.multipleOf = moduloOpts.value;
297
+ }
298
+ // enum (from PrimitiveValidator.in / .enum)
299
+ const inOpts = getRuleOptions(this.rules, "in");
300
+ if (inOpts?.values && Array.isArray(inOpts.values)) {
301
+ schema.enum = inOpts.values;
302
+ }
303
+ if (this.isNullable)
304
+ applyNullable(schema, target);
305
+ return schema;
306
+ }
228
307
  }export{NumberValidator};//# sourceMappingURL=number-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-validator.js","sources":["../../src/validators/number-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"number-validator.js","sources":["../../src/validators/number-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Schema, 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
  * Object validator class with generic schema type for proper type inference
5
6
  */
@@ -184,5 +185,41 @@ export declare class ObjectValidator<TSchema extends Schema = Schema> extends Ba
184
185
  * Get all computed/managed fields from the schema
185
186
  */
186
187
  private getComputedFields;
188
+ /**
189
+ * @inheritdoc
190
+ *
191
+ * Recursively generates JSON Schema for all input fields in the schema.
192
+ * Computed/managed fields are skipped — they have no input representation.
193
+ *
194
+ * **Standard targets** (`draft-2020-12`, `draft-07`, `openapi-3.0`):
195
+ * - Fields marked `.optional()` are excluded from `required`.
196
+ *
197
+ * **`openai-strict` target** (OpenAI Structured Outputs):
198
+ * - ALL fields appear in `required` — OpenAI rejects schemas with optional fields.
199
+ * - Optional fields are instead expressed as nullable types:
200
+ * `{ type: ["string", "null"] }` so the model can output `null` for them.
201
+ * - Recursively applies `openai-strict` to all nested objects.
202
+ *
203
+ * @example
204
+ * ```ts
205
+ * v.object({
206
+ * name: v.string().required(),
207
+ * age: v.int().optional(),
208
+ * }).toJsonSchema("draft-2020-12")
209
+ * // → { type: "object",
210
+ * // properties: { name: { type: "string" }, age: { type: "integer" } },
211
+ * // required: ["name"], additionalProperties: false }
212
+ *
213
+ * v.object({
214
+ * name: v.string().required(),
215
+ * age: v.int().optional(),
216
+ * }).toJsonSchema("openai-strict")
217
+ * // → { type: "object",
218
+ * // properties: { name: { type: "string" }, age: { type: ["integer", "null"] } },
219
+ * // required: ["name", "age"], ← all fields
220
+ * // additionalProperties: false }
221
+ * ```
222
+ */
223
+ toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
187
224
  }
188
225
  //# sourceMappingURL=object-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-validator.d.ts","sourceRoot":"","sources":["../../src/validators/object-validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD;;GAEG;AACH,qBAAa,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa;IAMxE,MAAM,EAAE,OAAO;IALxB,SAAS,CAAC,kBAAkB,UAAS;IACrC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IACrC,SAAS,CAAC,iBAAiB,UAAS;gBAG3B,MAAM,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC,uCAAuC;IAChC,YAAY;IASnB,uFAAuF;IAChF,KAAK,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAM9B,2CAA2C;IACpC,IAAI,CAAC,SAAS,UAAO;IAK5B;;OAEG;IACI,YAAY,CAAC,KAAK,UAAO;IAMhC;;;;;;;;;;;;OAYG;IACa,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAuB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACI,MAAM,CAAC,UAAU,SAAS,MAAM,EACrC,iBAAiB,EAAE,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,GAC1D,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC;IAgBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACI,KAAK,CAAC,MAAM,SAAS,MAAM,EAChC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,GACjC,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC;IAgCpC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAiBrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,OAAO,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAiBxF,sBAAsB;IACf,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAK/C,wBAAwB;IACX,QAAQ,CACnB,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,aAA6C,GACrD,OAAO,CAAC,gBAAgB,CAAC;IA4H5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"object-validator.d.ts","sourceRoot":"","sources":["../../src/validators/object-validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEzF;;GAEG;AACH,qBAAa,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa;IAMxE,MAAM,EAAE,OAAO;IALxB,SAAS,CAAC,kBAAkB,UAAS;IACrC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IACrC,SAAS,CAAC,iBAAiB,UAAS;gBAG3B,MAAM,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC,uCAAuC;IAChC,YAAY;IASnB,uFAAuF;IAChF,KAAK,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAM9B,2CAA2C;IACpC,IAAI,CAAC,SAAS,UAAO;IAK5B;;OAEG;IACI,YAAY,CAAC,KAAK,UAAO;IAMhC;;;;;;;;;;;;OAYG;IACa,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAuB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACI,MAAM,CAAC,UAAU,SAAS,MAAM,EACrC,iBAAiB,EAAE,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,GAC1D,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC;IAgBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACI,KAAK,CAAC,MAAM,SAAS,MAAM,EAChC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,GACjC,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC;IAgCpC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAiBrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,OAAO,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAiBxF,sBAAsB;IACf,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAK/C,wBAAwB;IACX,QAAQ,CACnB,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,aAA6C,GACrD,OAAO,CAAC,gBAAgB,CAAC;IA4H5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACa,YAAY,CAAC,MAAM,GAAE,gBAAkC,GAAG,gBAAgB;CAoC3F"}
@@ -1,4 +1,4 @@
1
- import {except}from'@mongez/reinforcements';import {isPlainObject}from'@mongez/supportive-is';import {setKeyPath}from'../helpers/path-helpers.js';import'dayjs';import {stripUnknownMutator,objectTrimMutator}from'../mutators/object-mutators.js';import'net';import {objectRule}from'../rules/common/type-rules.js';import {unknownKeyRule}from'../rules/common/unknown-key.js';import {BaseValidator}from'./base-validator.js';import {ComputedValidator}from'./computed-validator.js';/**
1
+ import {except}from'@mongez/reinforcements';import {isPlainObject}from'@mongez/supportive-is';import {setKeyPath}from'../helpers/path-helpers.js';import'dayjs';import {stripUnknownMutator,objectTrimMutator}from'../mutators/object-mutators.js';import'net';import {objectRule}from'../rules/common/type-rules.js';import {unknownKeyRule}from'../rules/common/unknown-key.js';import {BaseValidator}from'./base-validator.js';import {ComputedValidator}from'./computed-validator.js';import {wrapNullableStrict,applyNullable}from'../standard-schema/json-schema.js';/**
2
2
  * Object validator class with generic schema type for proper type inference
3
3
  */
4
4
  class ObjectValidator extends BaseValidator {
@@ -391,6 +391,75 @@ class ObjectValidator extends BaseValidator {
391
391
  }
392
392
  return computed;
393
393
  }
394
+ /**
395
+ * @inheritdoc
396
+ *
397
+ * Recursively generates JSON Schema for all input fields in the schema.
398
+ * Computed/managed fields are skipped — they have no input representation.
399
+ *
400
+ * **Standard targets** (`draft-2020-12`, `draft-07`, `openapi-3.0`):
401
+ * - Fields marked `.optional()` are excluded from `required`.
402
+ *
403
+ * **`openai-strict` target** (OpenAI Structured Outputs):
404
+ * - ALL fields appear in `required` — OpenAI rejects schemas with optional fields.
405
+ * - Optional fields are instead expressed as nullable types:
406
+ * `{ type: ["string", "null"] }` so the model can output `null` for them.
407
+ * - Recursively applies `openai-strict` to all nested objects.
408
+ *
409
+ * @example
410
+ * ```ts
411
+ * v.object({
412
+ * name: v.string().required(),
413
+ * age: v.int().optional(),
414
+ * }).toJsonSchema("draft-2020-12")
415
+ * // → { type: "object",
416
+ * // properties: { name: { type: "string" }, age: { type: "integer" } },
417
+ * // required: ["name"], additionalProperties: false }
418
+ *
419
+ * v.object({
420
+ * name: v.string().required(),
421
+ * age: v.int().optional(),
422
+ * }).toJsonSchema("openai-strict")
423
+ * // → { type: "object",
424
+ * // properties: { name: { type: "string" }, age: { type: ["integer", "null"] } },
425
+ * // required: ["name", "age"], ← all fields
426
+ * // additionalProperties: false }
427
+ * ```
428
+ */
429
+ toJsonSchema(target = "draft-2020-12") {
430
+ const properties = {};
431
+ const required = [];
432
+ const isOpenAIStrict = target === "openai-strict";
433
+ for (const [key, validator] of Object.entries(this.schema)) {
434
+ // Skip computed/managed — runtime-only, no input schema
435
+ if (validator instanceof ComputedValidator)
436
+ continue;
437
+ let fieldSchema = validator.toJsonSchema(target);
438
+ if (isOpenAIStrict) {
439
+ // OpenAI strict: every field must be in required.
440
+ // Optional fields are expressed as nullable rather than absent.
441
+ if (validator.isOptional) {
442
+ fieldSchema = wrapNullableStrict(fieldSchema);
443
+ }
444
+ required.push(key);
445
+ }
446
+ else {
447
+ // Standard JSON Schema: only non-optional fields go in required
448
+ if (!validator.isOptional) {
449
+ required.push(key);
450
+ }
451
+ }
452
+ properties[key] = fieldSchema;
453
+ }
454
+ const schema = { type: "object", properties };
455
+ if (required.length > 0)
456
+ schema.required = required;
457
+ if (!this.shouldAllowUnknown)
458
+ schema.additionalProperties = false;
459
+ if (this.isNullable)
460
+ applyNullable(schema, target);
461
+ return schema;
462
+ }
394
463
  }
395
464
  /** Recursively remove undefined values from an object */
396
465
  function removeUndefinedValues(obj, visited = new WeakMap()) {
@@ -1 +1 @@
1
- {"version":3,"file":"object-validator.js","sources":["../../src/validators/object-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-validator.js","sources":["../../src/validators/object-validator.ts"],"sourcesContent":[null],"names":[],"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
  * Record validator class - validates objects with dynamic keys and consistent value types
5
6
  *
@@ -33,5 +34,21 @@ export declare class RecordValidator extends BaseValidator {
33
34
  * Validate record - iterate all keys and validate each value
34
35
  */
35
36
  validate(data: any, context: SchemaContext): Promise<ValidationResult>;
37
+ /**
38
+ * @inheritdoc
39
+ *
40
+ * Generates `{ type: "object", additionalProperties: <valueSchema> }` —
41
+ * the standard JSON Schema for a dictionary/map with homogeneous values.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * v.record(v.string()).toJsonSchema("draft-2020-12")
46
+ * // → { type: "object", additionalProperties: { type: "string" } }
47
+ *
48
+ * v.record(v.union([v.string(), v.number()])).toJsonSchema("draft-2020-12")
49
+ * // → { type: "object", additionalProperties: { oneOf: [{ type: "string" }, { type: "number" }] } }
50
+ * ```
51
+ */
52
+ toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
36
53
  }
37
54
  //# sourceMappingURL=record-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"record-validator.d.ts","sourceRoot":"","sources":["../../src/validators/record-validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAEvC,cAAc,EAAE,aAAa;gBAA7B,cAAc,EAAE,aAAa,EACpC,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM;IAIxC;;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;CAsCpF"}
1
+ {"version":3,"file":"record-validator.d.ts","sourceRoot":"","sources":["../../src/validators/record-validator.ts"],"names":[],"mappings":"AAGA,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;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAEvC,cAAc,EAAE,aAAa;gBAA7B,cAAc,EAAE,aAAa,EACpC,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM;IAIxC;;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;IAuCnF;;;;;;;;;;;;;;OAcG;IACa,YAAY,CAAC,MAAM,GAAE,gBAAkC,GAAG,gBAAgB;CAU3F"}
@@ -1,4 +1,4 @@
1
- import {isPlainObject}from'@mongez/supportive-is';import'@mongez/reinforcements';import {setKeyPath}from'../helpers/path-helpers.js';import'net';import {objectRule,plainObjectRule}from'../rules/common/type-rules.js';import {BaseValidator}from'./base-validator.js';/**
1
+ import {isPlainObject}from'@mongez/supportive-is';import'@mongez/reinforcements';import {setKeyPath}from'../helpers/path-helpers.js';import'net';import {objectRule,plainObjectRule}from'../rules/common/type-rules.js';import {BaseValidator}from'./base-validator.js';import {applyNullable}from'../standard-schema/json-schema.js';/**
2
2
  * Record validator class - validates objects with dynamic keys and consistent value types
3
3
  *
4
4
  * @example
@@ -73,4 +73,28 @@ class RecordValidator extends BaseValidator {
73
73
  data: await this.startTransformationPipeline(mutatedData, context),
74
74
  };
75
75
  }
76
+ /**
77
+ * @inheritdoc
78
+ *
79
+ * Generates `{ type: "object", additionalProperties: <valueSchema> }` —
80
+ * the standard JSON Schema for a dictionary/map with homogeneous values.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * v.record(v.string()).toJsonSchema("draft-2020-12")
85
+ * // → { type: "object", additionalProperties: { type: "string" } }
86
+ *
87
+ * v.record(v.union([v.string(), v.number()])).toJsonSchema("draft-2020-12")
88
+ * // → { type: "object", additionalProperties: { oneOf: [{ type: "string" }, { type: "number" }] } }
89
+ * ```
90
+ */
91
+ toJsonSchema(target = "draft-2020-12") {
92
+ const schema = {
93
+ type: "object",
94
+ additionalProperties: this.valueValidator.toJsonSchema(target),
95
+ };
96
+ if (this.isNullable)
97
+ applyNullable(schema, target);
98
+ return schema;
99
+ }
76
100
  }export{RecordValidator};//# sourceMappingURL=record-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record-validator.js","sources":["../../src/validators/record-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"wQAMA;;;;;;;;;;;;;AAaG;AACG,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAEvC,IAAA,cAAA,CAAA;IADT,WACS,CAAA,cAA6B,EACpC,YAAqB,EAAA;AAErB,QAAA,KAAK,EAAE,CAAC;QAHD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;AAIpC,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;KAC/C;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,YAAqB,EAAA;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;KACpD;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED;;AAEG;IACa,KAAK,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AACpD,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;AACI,IAAA,MAAM,QAAQ,CAAC,IAAS,EAAE,OAAsB,EAAA;AACrD,QAAA,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAEnD,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;AAAE,YAAA,OAAO,MAAM,CAAC;QAE5C,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;QAGtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAI;AAChD,YAAA,MAAM,YAAY,GAAkB;AAClC,gBAAA,GAAG,OAAO;AACV,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;gBACvB,GAAG;gBACH,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aACpC,CAAC;AAEF,YAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;;AAGvF,YAAA,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC;;AAGpC,YAAA,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEtC,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,MAAM;YACN,IAAI,EAAE,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,OAAO,CAAC;SACnE,CAAC;KACH;AACF"}
1
+ {"version":3,"file":"record-validator.js","sources":["../../src/validators/record-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"sUAQA;;;;;;;;;;;;;AAaG;AACG,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAEvC,IAAA,cAAA,CAAA;IADT,WACS,CAAA,cAA6B,EACpC,YAAqB,EAAA;AAErB,QAAA,KAAK,EAAE,CAAC;QAHD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;AAIpC,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;KAC/C;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,YAAqB,EAAA;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;KACpD;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED;;AAEG;IACa,KAAK,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AACpD,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;AACI,IAAA,MAAM,QAAQ,CAAC,IAAS,EAAE,OAAsB,EAAA;AACrD,QAAA,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAEnD,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;AAAE,YAAA,OAAO,MAAM,CAAC;QAE5C,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;QAGtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAI;AAChD,YAAA,MAAM,YAAY,GAAkB;AAClC,gBAAA,GAAG,OAAO;AACV,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;gBACvB,GAAG;gBACH,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aACpC,CAAC;AAEF,YAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;;AAGvF,YAAA,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC;;AAGpC,YAAA,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEtC,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,MAAM;YACN,IAAI,EAAE,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,OAAO,CAAC;SACnE,CAAC;KACH;AAED;;;;;;;;;;;;;;AAcG;IACa,YAAY,CAAC,SAA2B,eAAe,EAAA;AACrE,QAAA,MAAM,MAAM,GAAqB;AAC/B,YAAA,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC;SAC/D,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU;AAAE,YAAA,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,QAAA,OAAO,MAAM,CAAC;KACf;AACF"}
@@ -1,4 +1,5 @@
1
1
  import { PrimitiveValidator } from "./primitive-validator";
2
+ import type { JsonSchemaResult, JsonSchemaTarget } from "../standard-schema/json-schema";
2
3
  /**
3
4
  * Scalar validator class
4
5
  *
@@ -72,5 +73,21 @@ export declare class ScalarValidator extends PrimitiveValidator {
72
73
  * Declined value if another field is missing
73
74
  */
74
75
  declinedWithout(field: string, errorMessage?: string): this;
76
+ /**
77
+ * @inheritdoc
78
+ *
79
+ * A scalar accepts string | number | boolean. If `.in()` / `.enum()` is used,
80
+ * output collapses to a simple `enum` list instead.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * v.scalar().toJsonSchema("draft-2020-12")
85
+ * // → { oneOf: [{ type: "string" }, { type: "number" }, { type: "boolean" }] }
86
+ *
87
+ * v.scalar().in(["active", "inactive"]).toJsonSchema("draft-2020-12")
88
+ * // → { enum: ["active", "inactive"] }
89
+ * ```
90
+ */
91
+ toJsonSchema(_target?: JsonSchemaTarget): JsonSchemaResult;
75
92
  }
76
93
  //# sourceMappingURL=scalar-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scalar-validator.d.ts","sourceRoot":"","sources":["../../src/validators/scalar-validator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,kBAAkB;gBAClC,YAAY,CAAC,EAAE,MAAM;IAiBxC;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG;IAI7B;;OAEG;IACI,QAAQ;IAIf;;OAEG;IACI,QAAQ;IAIf;;;OAGG;IACI,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAIrC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAIlE;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAItE;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI9D;;OAEG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI7D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI3D;;;OAGG;IACI,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAIrC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAIlE;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAItE;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI9D;;OAEG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI7D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAI5D"}
1
+ {"version":3,"file":"scalar-validator.d.ts","sourceRoot":"","sources":["../../src/validators/scalar-validator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEzF;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,kBAAkB;gBAClC,YAAY,CAAC,EAAE,MAAM;IAiBxC;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG;IAI7B;;OAEG;IACI,QAAQ;IAIf;;OAEG;IACI,QAAQ;IAIf;;;OAGG;IACI,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAIrC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAIlE;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAItE;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI9D;;OAEG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI7D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI3D;;;OAGG;IACI,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAIrC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAIlE;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM;IAItE;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI9D;;OAEG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI7D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI3D;;;;;;;;;;;;;;OAcG;IACa,YAAY,CAAC,OAAO,GAAE,gBAAkC,GAAG,gBAAgB;CAoB5F"}
@@ -1,4 +1,4 @@
1
- import'@mongez/reinforcements';import {VALID_RULE,invalidRule}from'../helpers/validation-helpers.js';import'@mongez/supportive-is';import'dayjs';import {numberMutator}from'../mutators/number-mutators.js';import {stringMutator}from'../mutators/scalar-mutators.js';import {acceptedRule,acceptedIfRule,acceptedUnlessRule,acceptedIfRequiredRule,acceptedIfPresentRule,acceptedWithoutRule}from'../rules/scalar/accepted-rule.js';import {declinedRule,declinedIfRule,declinedUnlessRule,declinedIfRequiredRule,declinedIfPresentRule,declinedWithoutRule}from'../rules/scalar/declined-rule.js';import {PrimitiveValidator}from'./primitive-validator.js';/**
1
+ import'@mongez/reinforcements';import {VALID_RULE,invalidRule}from'../helpers/validation-helpers.js';import'@mongez/supportive-is';import'dayjs';import {numberMutator}from'../mutators/number-mutators.js';import {stringMutator}from'../mutators/scalar-mutators.js';import {acceptedRule,acceptedIfRule,acceptedUnlessRule,acceptedIfRequiredRule,acceptedIfPresentRule,acceptedWithoutRule}from'../rules/scalar/accepted-rule.js';import {declinedRule,declinedIfRule,declinedUnlessRule,declinedIfRequiredRule,declinedIfPresentRule,declinedWithoutRule}from'../rules/scalar/declined-rule.js';import {PrimitiveValidator}from'./primitive-validator.js';import {getRuleOptions}from'../standard-schema/json-schema.js';/**
2
2
  * Scalar validator class
3
3
  *
4
4
  * Core validator for scalar values (string, number, boolean).
@@ -113,4 +113,37 @@ class ScalarValidator extends PrimitiveValidator {
113
113
  declinedWithout(field, errorMessage) {
114
114
  return this.addRule(declinedWithoutRule, errorMessage, { field });
115
115
  }
116
+ /**
117
+ * @inheritdoc
118
+ *
119
+ * A scalar accepts string | number | boolean. If `.in()` / `.enum()` is used,
120
+ * output collapses to a simple `enum` list instead.
121
+ *
122
+ * @example
123
+ * ```ts
124
+ * v.scalar().toJsonSchema("draft-2020-12")
125
+ * // → { oneOf: [{ type: "string" }, { type: "number" }, { type: "boolean" }] }
126
+ *
127
+ * v.scalar().in(["active", "inactive"]).toJsonSchema("draft-2020-12")
128
+ * // → { enum: ["active", "inactive"] }
129
+ * ```
130
+ */
131
+ toJsonSchema(_target = "draft-2020-12") {
132
+ // If a value set is constrained, collapse to enum
133
+ const inOpts = getRuleOptions(this.rules, "in");
134
+ if (inOpts?.values && Array.isArray(inOpts.values)) {
135
+ return { enum: inOpts.values };
136
+ }
137
+ const enumOpts = getRuleOptions(this.rules, "enum");
138
+ if (enumOpts?.enum && Array.isArray(enumOpts.enum)) {
139
+ return { enum: enumOpts.enum };
140
+ }
141
+ return {
142
+ oneOf: [
143
+ { type: "string" },
144
+ { type: "number" },
145
+ { type: "boolean" },
146
+ ],
147
+ };
148
+ }
116
149
  }export{ScalarValidator};//# sourceMappingURL=scalar-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scalar-validator.js","sources":["../../src/validators/scalar-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scalar-validator.js","sources":["../../src/validators/scalar-validator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { PrimitiveValidator } from "./primitive-validator";
2
+ import type { JsonSchemaResult, JsonSchemaTarget } from "../standard-schema/json-schema";
2
3
  /**
3
4
  * String validator class
4
5
  */
@@ -171,5 +172,18 @@ export declare class StringValidator extends PrimitiveValidator {
171
172
  lightColor(errorMessage?: string): this;
172
173
  /** Determine if the value is a valid dark color */
173
174
  darkColor(errorMessage?: string): this;
175
+ /**
176
+ * @inheritdoc
177
+ *
178
+ * Maps String-specific rule options to JSON Schema keywords.
179
+ * Non-representable rules (cross-field, refine, color rules, etc.) are silently omitted.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * v.string().min(2).max(100).email().toJsonSchema("draft-2020-12")
184
+ * // → { type: "string", minLength: 2, maxLength: 100, format: "email" }
185
+ * ```
186
+ */
187
+ toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
174
188
  }
175
189
  //# sourceMappingURL=string-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"string-validator.d.ts","sourceRoot":"","sources":["../../src/validators/string-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-validator.d.ts","sourceRoot":"","sources":["../../src/validators/string-validator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import'@mongez/reinforcements';import'@mongez/supportive-is';import'dayjs';import {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}from'../mutators/string-mutators.js';import {alphaRule,alphaNumericRule,isNumericRule}from'../rules/string/alpha.js';import {isCreditCardRule}from'../rules/string/credit-card.js';import {emailRule}from'../rules/string/email.js';import {ipRule,ip4Rule,ip6Rule}from'../rules/string/ip.js';import {patternRule}from'../rules/string/pattern.js';import {startsWithRule,endsWithRule,containsRule,notContainsRule}from'../rules/string/string-comparison.js';import {strongPasswordRule}from'../rules/string/strong-password-rule.js';import {urlRule}from'../rules/string/url.js';import {withoutWhitespaceRule}from'../rules/string/without-whitespace.js';import {wordsRule,minWordsRule,maxWordsRule,minLengthRule,maxLengthRule,lengthRule,betweenLengthRule}from'../rules/length/length-rules.js';import {colorRule,hexColorRule,hslColorRule,rgbColorRule,rgbaColorRule,lightColorRule,darkColorRule}from'../rules/color/color-rules.js';import {stringRule}from'../rules/common/type-rules.js';import {PrimitiveValidator}from'./primitive-validator.js';/**
1
+ import'@mongez/reinforcements';import'@mongez/supportive-is';import'dayjs';import {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}from'../mutators/string-mutators.js';import {alphaRule,alphaNumericRule,isNumericRule}from'../rules/string/alpha.js';import {isCreditCardRule}from'../rules/string/credit-card.js';import {emailRule}from'../rules/string/email.js';import {ipRule,ip4Rule,ip6Rule}from'../rules/string/ip.js';import {patternRule}from'../rules/string/pattern.js';import {startsWithRule,endsWithRule,containsRule,notContainsRule}from'../rules/string/string-comparison.js';import {strongPasswordRule}from'../rules/string/strong-password-rule.js';import {urlRule}from'../rules/string/url.js';import {withoutWhitespaceRule}from'../rules/string/without-whitespace.js';import {wordsRule,minWordsRule,maxWordsRule,minLengthRule,maxLengthRule,lengthRule,betweenLengthRule}from'../rules/length/length-rules.js';import {colorRule,hexColorRule,hslColorRule,rgbColorRule,rgbaColorRule,lightColorRule,darkColorRule}from'../rules/color/color-rules.js';import {stringRule}from'../rules/common/type-rules.js';import {PrimitiveValidator}from'./primitive-validator.js';import {getRuleOptions,applyNullable}from'../standard-schema/json-schema.js';/**
2
2
  * String validator class
3
3
  */
4
4
  class StringValidator extends PrimitiveValidator {
@@ -314,4 +314,74 @@ class StringValidator extends PrimitiveValidator {
314
314
  darkColor(errorMessage) {
315
315
  return this.addRule(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 = getRuleOptions(this.rules, "minLength");
333
+ if (minOpts?.minLength !== undefined)
334
+ schema.minLength = minOpts.minLength;
335
+ // maxLength / max
336
+ const maxOpts = 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 = 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 = 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 = getRuleOptions(this.rules, "pattern");
355
+ if (patternOpts?.pattern instanceof RegExp) {
356
+ schema.pattern = patternOpts.pattern.source;
357
+ }
358
+ // format hints
359
+ if (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 = getRuleOptions(this.rules, "in");
380
+ if (inOpts?.values && Array.isArray(inOpts.values)) {
381
+ schema.enum = inOpts.values;
382
+ }
383
+ if (this.isNullable)
384
+ applyNullable(schema, target);
385
+ return schema;
386
+ }
317
387
  }export{StringValidator};//# sourceMappingURL=string-validator.js.map