@oxog/vld 2.4.0 → 3.0.4

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 (192) hide show
  1. package/CHANGELOG.md +165 -1
  2. package/README.md +113 -1
  3. package/dist/chunks/errors-core-BU14-Dk8.js +1 -0
  4. package/dist/cjs/chunks/errors-core-C0mA6tfa.cjs +1 -0
  5. package/dist/cjs/cli/bin.cjs +1 -1
  6. package/dist/cjs/codecs/index.cjs +1 -1
  7. package/dist/cjs/coercion/index.cjs +1 -1
  8. package/dist/cjs/compile.cjs +1 -1
  9. package/dist/cjs/errors.cjs +1 -1
  10. package/dist/cjs/index.cjs +1 -1
  11. package/dist/cjs/locales/af.cjs +1 -1
  12. package/dist/cjs/locales/ar.cjs +1 -1
  13. package/dist/cjs/locales/bn.cjs +1 -1
  14. package/dist/cjs/locales/da.cjs +1 -1
  15. package/dist/cjs/locales/de.cjs +1 -1
  16. package/dist/cjs/locales/en.cjs +1 -1
  17. package/dist/cjs/locales/es-MX.cjs +1 -1
  18. package/dist/cjs/locales/es.cjs +1 -1
  19. package/dist/cjs/locales/fi.cjs +1 -1
  20. package/dist/cjs/locales/fr.cjs +1 -1
  21. package/dist/cjs/locales/gu.cjs +1 -1
  22. package/dist/cjs/locales/hi.cjs +1 -1
  23. package/dist/cjs/locales/id.cjs +1 -1
  24. package/dist/cjs/locales/it.cjs +1 -1
  25. package/dist/cjs/locales/ja.cjs +1 -1
  26. package/dist/cjs/locales/kn.cjs +1 -1
  27. package/dist/cjs/locales/ko.cjs +1 -1
  28. package/dist/cjs/locales/ne.cjs +1 -1
  29. package/dist/cjs/locales/nl.cjs +1 -1
  30. package/dist/cjs/locales/no.cjs +1 -1
  31. package/dist/cjs/locales/pl.cjs +1 -1
  32. package/dist/cjs/locales/pt-BR-v4.cjs +1 -1
  33. package/dist/cjs/locales/pt-BR.cjs +1 -1
  34. package/dist/cjs/locales/pt.cjs +1 -1
  35. package/dist/cjs/locales/ru.cjs +1 -1
  36. package/dist/cjs/locales/sk.cjs +1 -1
  37. package/dist/cjs/locales/sv.cjs +1 -1
  38. package/dist/cjs/locales/sw.cjs +1 -1
  39. package/dist/cjs/locales/th.cjs +1 -1
  40. package/dist/cjs/locales/tr.cjs +1 -1
  41. package/dist/cjs/locales/vi.cjs +1 -1
  42. package/dist/cjs/locales/zh.cjs +1 -1
  43. package/dist/cjs/mini.cjs +1 -1
  44. package/dist/cjs/v3/index.cjs +1 -1
  45. package/dist/cjs/v4/core/index.cjs +1 -1
  46. package/dist/cjs/v4/index.cjs +1 -1
  47. package/dist/cjs/v4/mini/index.cjs +1 -1
  48. package/dist/cjs/v4-mini/index.cjs +1 -1
  49. package/dist/cjs/validators/any.cjs +1 -1
  50. package/dist/cjs/validators/array-v2.cjs +1 -0
  51. package/dist/cjs/validators/array.cjs +1 -1
  52. package/dist/cjs/validators/base.cjs +1 -1
  53. package/dist/cjs/validators/base64.cjs +1 -1
  54. package/dist/cjs/validators/bigint-v2.cjs +1 -0
  55. package/dist/cjs/validators/bigint.cjs +1 -1
  56. package/dist/cjs/validators/boolean.cjs +1 -1
  57. package/dist/cjs/validators/codec.cjs +1 -1
  58. package/dist/cjs/validators/composite-v2.cjs +1 -0
  59. package/dist/cjs/validators/custom.cjs +1 -1
  60. package/dist/cjs/validators/date-v2.cjs +1 -0
  61. package/dist/cjs/validators/date.cjs +1 -1
  62. package/dist/cjs/validators/discriminated-union.cjs +1 -1
  63. package/dist/cjs/validators/enum.cjs +1 -1
  64. package/dist/cjs/validators/file.cjs +1 -1
  65. package/dist/cjs/validators/function.cjs +1 -1
  66. package/dist/cjs/validators/hex.cjs +1 -1
  67. package/dist/cjs/validators/index.cjs +1 -1
  68. package/dist/cjs/validators/intersection.cjs +1 -1
  69. package/dist/cjs/validators/json.cjs +1 -1
  70. package/dist/cjs/validators/lazy.cjs +1 -1
  71. package/dist/cjs/validators/leaf-v2.cjs +1 -0
  72. package/dist/cjs/validators/literal.cjs +1 -1
  73. package/dist/cjs/validators/map.cjs +1 -1
  74. package/dist/cjs/validators/nan.cjs +1 -1
  75. package/dist/cjs/validators/never.cjs +1 -1
  76. package/dist/cjs/validators/null.cjs +1 -1
  77. package/dist/cjs/validators/number-v2.cjs +1 -0
  78. package/dist/cjs/validators/number.cjs +1 -1
  79. package/dist/cjs/validators/object-v2.cjs +1 -0
  80. package/dist/cjs/validators/object.cjs +1 -1
  81. package/dist/cjs/validators/promise.cjs +1 -1
  82. package/dist/cjs/validators/record.cjs +1 -1
  83. package/dist/cjs/validators/set.cjs +1 -1
  84. package/dist/cjs/validators/string-bool.cjs +1 -1
  85. package/dist/cjs/validators/string-formats.cjs +1 -1
  86. package/dist/cjs/validators/string-v2.cjs +1 -0
  87. package/dist/cjs/validators/string.cjs +1 -1
  88. package/dist/cjs/validators/symbol.cjs +1 -1
  89. package/dist/cjs/validators/template-literal.cjs +1 -1
  90. package/dist/cjs/validators/tuple.cjs +1 -1
  91. package/dist/cjs/validators/uint8array.cjs +1 -1
  92. package/dist/cjs/validators/undefined.cjs +1 -1
  93. package/dist/cjs/validators/union-v2.cjs +1 -0
  94. package/dist/cjs/validators/union.cjs +1 -1
  95. package/dist/cjs/validators/unknown.cjs +1 -1
  96. package/dist/cjs/validators/void.cjs +1 -1
  97. package/dist/cjs/validators/wrapper-v2.cjs +1 -0
  98. package/dist/cjs/validators/xor.cjs +1 -1
  99. package/dist/errors-core.d.ts +3 -0
  100. package/dist/errors.js +1 -1
  101. package/dist/index.d.ts +168 -12
  102. package/dist/index.js +1 -1
  103. package/dist/locales/af.js +1 -1
  104. package/dist/locales/ar.js +1 -1
  105. package/dist/locales/bn.js +1 -1
  106. package/dist/locales/da.js +1 -1
  107. package/dist/locales/de.js +1 -1
  108. package/dist/locales/en.js +1 -1
  109. package/dist/locales/es-MX.js +1 -1
  110. package/dist/locales/es.js +1 -1
  111. package/dist/locales/fi.js +1 -1
  112. package/dist/locales/fr.js +1 -1
  113. package/dist/locales/gu.js +1 -1
  114. package/dist/locales/hi.js +1 -1
  115. package/dist/locales/id.js +1 -1
  116. package/dist/locales/it.js +1 -1
  117. package/dist/locales/ja.js +1 -1
  118. package/dist/locales/kn.js +1 -1
  119. package/dist/locales/ko.js +1 -1
  120. package/dist/locales/ne.js +1 -1
  121. package/dist/locales/nl.js +1 -1
  122. package/dist/locales/no.js +1 -1
  123. package/dist/locales/pl.js +1 -1
  124. package/dist/locales/pt-BR-v4.js +1 -1
  125. package/dist/locales/pt-BR.js +1 -1
  126. package/dist/locales/pt.js +1 -1
  127. package/dist/locales/ru.js +1 -1
  128. package/dist/locales/sk.js +1 -1
  129. package/dist/locales/sv.js +1 -1
  130. package/dist/locales/sw.js +1 -1
  131. package/dist/locales/th.js +1 -1
  132. package/dist/locales/tr.js +1 -1
  133. package/dist/locales/types.d.ts +1 -0
  134. package/dist/locales/vi.js +1 -1
  135. package/dist/locales/zh.js +1 -1
  136. package/dist/v3/index.js +1 -1
  137. package/dist/v4/core/index.js +1 -1
  138. package/dist/v4/index.js +1 -1
  139. package/dist/v4/mini/index.js +1 -1
  140. package/dist/v4-mini/index.js +1 -1
  141. package/dist/validators/array-v2.d.ts +113 -0
  142. package/dist/validators/array-v2.js +1 -0
  143. package/dist/validators/array.js +1 -1
  144. package/dist/validators/base.js +1 -1
  145. package/dist/validators/base64.js +1 -1
  146. package/dist/validators/bigint-v2.d.ts +105 -0
  147. package/dist/validators/bigint-v2.js +1 -0
  148. package/dist/validators/bigint.js +1 -1
  149. package/dist/validators/boolean.js +1 -1
  150. package/dist/validators/codec.js +1 -1
  151. package/dist/validators/composite-v2.d.ts +59 -0
  152. package/dist/validators/composite-v2.js +1 -0
  153. package/dist/validators/date-v2.d.ts +140 -0
  154. package/dist/validators/date-v2.js +1 -0
  155. package/dist/validators/date.js +1 -1
  156. package/dist/validators/enum.js +1 -1
  157. package/dist/validators/file.js +1 -1
  158. package/dist/validators/function.js +1 -1
  159. package/dist/validators/hex.js +1 -1
  160. package/dist/validators/intersection.js +1 -1
  161. package/dist/validators/leaf-v2.d.ts +138 -0
  162. package/dist/validators/leaf-v2.js +1 -0
  163. package/dist/validators/literal.js +1 -1
  164. package/dist/validators/map.js +1 -1
  165. package/dist/validators/nan.js +1 -1
  166. package/dist/validators/never.js +1 -1
  167. package/dist/validators/null.js +1 -1
  168. package/dist/validators/number-v2.d.ts +252 -0
  169. package/dist/validators/number-v2.js +1 -0
  170. package/dist/validators/number.js +1 -1
  171. package/dist/validators/object-v2.d.ts +40 -0
  172. package/dist/validators/object-v2.js +1 -0
  173. package/dist/validators/object.js +1 -1
  174. package/dist/validators/record.js +1 -1
  175. package/dist/validators/set.js +1 -1
  176. package/dist/validators/string-formats.js +1 -1
  177. package/dist/validators/string-v2.d.ts +274 -0
  178. package/dist/validators/string-v2.js +1 -0
  179. package/dist/validators/string.js +1 -1
  180. package/dist/validators/symbol.js +1 -1
  181. package/dist/validators/tuple.js +1 -1
  182. package/dist/validators/uint8array.js +1 -1
  183. package/dist/validators/undefined.js +1 -1
  184. package/dist/validators/union-v2.d.ts +28 -0
  185. package/dist/validators/union-v2.js +1 -0
  186. package/dist/validators/void.js +1 -1
  187. package/dist/validators/wrapper-v2.d.ts +74 -0
  188. package/dist/validators/wrapper-v2.js +1 -0
  189. package/dist/zod-error.d.ts +84 -0
  190. package/package.json +1 -1
  191. package/dist/chunks/errors-core-CerMg2rq.js +0 -1
  192. package/dist/cjs/chunks/errors-core-DrydF46s.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),s=require("../locales/runtime.cjs"),t=require("./enum.cjs"),i=require("../chunks/security-aXZVI7qW.cjs"),r=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldObject extends e.VldBase{createSafeParseError(e,t){if(e instanceof r.VldError)return void 0!==t?new r.VldError(e.issues.map(e=>({...e,path:e.path?[t,...e.path]:[t],message:e.message.startsWith("Invalid field")?e.message:s.getMessages().objectField(String(t),e.message)}))):e;const i=e instanceof Error?e.message:String(e);return new r.VldError([{code:"invalid_type",path:void 0!==t?[t]:[],message:void 0===t||i.startsWith("Invalid field")?i:s.getMessages().objectField(String(t),i)}])}constructor(s){super(e.VLD_VALIDATOR_TYPES.OBJECT),this._config=s,this._shapeKeys=Object.keys(s.shape),this._shapeKeysSet=new Set(this._shapeKeys),this._validators=this._shapeKeys.map(e=>this.tryGetFieldValidator(e)),this._validatorTypes=this._shapeKeys.map((e,s)=>this._validators[s]?.validatorType||this.getValidatorType(e)),this._simpleFieldModes=this._validators.map((e,s)=>this.getSimpleFieldMode(e,this._validatorTypes[s])),this._simpleFieldValues=this._validators.map((e,s)=>"literal"===this._simpleFieldModes[s]?e.literal:void 0),this._canUseSimpleObjectFastPath=!s.strict&&!s.passthrough&&!s.catchall&&this._shapeKeys.length>0&&this._simpleFieldModes.every(e=>void 0!==e),this._canUseSafeParseFastPath=this._validators.every(s=>s instanceof e.VldBase)&&(void 0===s.catchall||s.catchall instanceof e.VldBase)}tryGetFieldValidator(e){try{const s=Object.getOwnPropertyDescriptor(this._config.shape,e);if(s?.get)return;return this.resolveFieldValidator(e)}catch{return}}resolveFieldValidator(e){try{const s=this._config.shape[e];if(!s||"function"!=typeof s.safeParse)return;return s}catch{return}}getFieldValidator(e,s){const t=(void 0===s?void 0:this._validators[s])||this.resolveFieldValidator(e);if(!t)throw new Error(`Invalid validator for field "${e}"`);return t}getValidatorType(s){try{const t=this._config.shape[s];return t?.validatorType||e.VLD_VALIDATOR_TYPES.UNKNOWN}catch{return e.VLD_VALIDATOR_TYPES.UNKNOWN}}getSimpleFieldMode(s,t){if(s&&!0===s.isSimple)switch(t){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleFieldError(e,t,i){switch(e){case"string":return s.getMessages().invalidString;case"number":return s.getMessages().invalidNumber;case"boolean":return s.getMessages().invalidBoolean;case"bigint":return s.getMessages().invalidBigint;case"symbol":return s.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof i;case"undefinedValue":return s.getMessages().expectedUndefined;case"literal":return s.getMessages().literalExpected(JSON.stringify(t),JSON.stringify(i));default:return s.getMessages().invalidObject}}parseCheckedField(s,t,i){if(t===e.VLD_VALIDATOR_TYPES.STRING&&"string"==typeof i){const e=s.parseKnownString;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.NUMBER&&"number"==typeof i&&!isNaN(i)){const e=s.parseKnownNumber;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.BOOLEAN&&"boolean"==typeof i){const e=s.parseKnownBoolean;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.BIGINT&&"bigint"==typeof i){const e=s.parseKnownBigInt;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.SYMBOL&&"symbol"==typeof i){const e=s.parseKnownSymbol;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.FUNCTION&&"function"==typeof i){const e=s.parseKnownFunction;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.FILE&&"object"==typeof i&&null!==i&&("size"in i&&"type"in i||"undefined"!=typeof File&&i instanceof File)){const e=s.parseKnownFile;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.DATE&&i instanceof Date){const e=s.parseKnownDate;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.OBJECT&&"object"==typeof i&&null!==i&&!Array.isArray(i)){const e=s.parseKnownObject;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.ARRAY&&Array.isArray(i)){const e=s.parseKnownArray;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.TUPLE&&Array.isArray(i)){const e=s.parseKnownTuple;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.RECORD&&"object"==typeof i&&null!==i&&!Array.isArray(i)){const e=s.parseKnownRecord;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.SET&&i instanceof Set){const e=s.parseKnownSet;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.MAP&&i instanceof Map){const e=s.parseKnownMap;if("function"==typeof e)return e.call(s,i)}return s.parse(i)}parseSimpleObjectValue(e,t,i=!1){if(2===this._shapeKeys.length&&"string"===this._simpleFieldModes[0]&&"number"===this._simpleFieldModes[1]){const t=this._shapeKeys[0],i=e[t];if("string"!=typeof i)throw new Error(s.getMessages().objectField(t,s.getMessages().invalidString));const r=this._shapeKeys[1],n=e[r];if("number"!=typeof n||isNaN(n))throw new Error(s.getMessages().objectField(r,s.getMessages().invalidNumber));const a={};return a[t]=i,a[r]=n,a}if(3===this._shapeKeys.length&&"literal"===this._simpleFieldModes[0]&&"string"===this._simpleFieldModes[1]&&"number"===this._simpleFieldModes[2]){const r=this._shapeKeys[0],n=e[r],a=this._simpleFieldValues[0];if((!i||r!==t)&&n!==a)throw new Error(s.getMessages().objectField(r,this.getSimpleFieldError("literal",a,n)));const o=this._shapeKeys[1],c=e[o];if("string"!=typeof c)throw new Error(s.getMessages().objectField(o,s.getMessages().invalidString));const l=this._shapeKeys[2],h=e[l];if("number"!=typeof h||isNaN(h))throw new Error(s.getMessages().objectField(l,s.getMessages().invalidNumber));const f={};return f[r]=a,f[o]=c,f[l]=h,f}const r={};for(let n=0;n<this._shapeKeys.length;n++){const a=this._shapeKeys[n],o=e[a],c=this._simpleFieldModes[n];switch(c){case"string":if("string"!=typeof o)throw new Error(s.getMessages().objectField(a,s.getMessages().invalidString));r[a]=o;break;case"number":if("number"!=typeof o||isNaN(o))throw new Error(s.getMessages().objectField(a,s.getMessages().invalidNumber));r[a]=o;break;case"boolean":if("boolean"!=typeof o)throw new Error(s.getMessages().objectField(a,s.getMessages().invalidBoolean));r[a]=o;break;case"bigint":if("bigint"!=typeof o)throw new Error(s.getMessages().objectField(a,s.getMessages().invalidBigint));r[a]=o;break;case"symbol":if("symbol"!=typeof o)throw new Error(s.getMessages().objectField(a,s.getMessages().invalidSymbol));r[a]=o;break;case"null":if(null!==o)throw new Error(s.getMessages().objectField(a,this.getSimpleFieldError(c,void 0,o)));r[a]=null;break;case"undefinedValue":if(void 0!==o)throw new Error(s.getMessages().objectField(a,s.getMessages().expectedUndefined));r[a]=void 0;break;case"literal":if(i&&a===t){r[a]=this._simpleFieldValues[n];break}if(o!==this._simpleFieldValues[n])throw new Error(s.getMessages().objectField(a,this.getSimpleFieldError(c,this._simpleFieldValues[n],o)));r[a]=this._simpleFieldValues[n];break;case"passthrough":r[a]=o;break;default:throw new Error(s.getMessages().objectField(a,s.getMessages().invalidObject))}}return r}get config(){return this._config}get shapeKeys(){return this._shapeKeys}get shapeKeysSet(){return this._shapeKeysSet}static create(e){return new VldObject({shape:e})}parse(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this._config.errorMessage||s.getMessages().invalidObject);return this.parseObjectValue(e)}parseKnownObject(e,s){return this.parseObjectValue(e,s)}parseTrustedKnownObject(e,s){return this.parseObjectValue(e,s,!0)}parseObjectValue(e,t,n=!1){if(this._canUseSimpleObjectFastPath)return this.parseSimpleObjectValue(e,t,n);const a={};let o="";try{for(let i=0;i<this._shapeKeys.length;i++){if(o=this._shapeKeys[i],n&&o===t&&"literal"===this._simpleFieldModes[i]){a[o]=this._simpleFieldValues[i];continue}const r=this._simpleFieldModes[i];if(void 0!==r){const t=e[o];switch(r){case"string":if("string"!=typeof t)throw new Error(s.getMessages().invalidString);a[o]=t;continue;case"number":if("number"!=typeof t||isNaN(t))throw new Error(s.getMessages().invalidNumber);a[o]=t;continue;case"boolean":if("boolean"!=typeof t)throw new Error(s.getMessages().invalidBoolean);a[o]=t;continue;case"bigint":if("bigint"!=typeof t)throw new Error(s.getMessages().invalidBigint);a[o]=t;continue;case"symbol":if("symbol"!=typeof t)throw new Error(s.getMessages().invalidSymbol);a[o]=t;continue;case"null":if(null!==t)throw new Error(this.getSimpleFieldError(r,void 0,t));a[o]=null;continue;case"undefinedValue":if(void 0!==t)throw new Error(s.getMessages().expectedUndefined);a[o]=void 0;continue;case"literal":if(t!==this._simpleFieldValues[i])throw new Error(this.getSimpleFieldError(r,this._simpleFieldValues[i],t));a[o]=this._simpleFieldValues[i];continue;case"passthrough":a[o]=t;continue}continue}const c=this.getFieldValidator(o,i);a[o]=this.parseCheckedField(c,this._validatorTypes[i],e[o])}}catch(e){if(e instanceof r.VldError)throw new r.VldError(e.issues.map(e=>({...e,path:e.path?[o,...e.path]:[o],message:s.getMessages().objectField(o,e.message.startsWith("Invalid field")?e.message.replace(/^Invalid field "[^"]+": /,""):e.message)})));const t=e instanceof Error?e.message:String(e);throw new r.VldError([{code:"invalid_type",path:[o],message:t.startsWith("Invalid field")?t:s.getMessages().objectField(o,t)}])}if(this._config.strict||this._config.passthrough||this._config.catchall){const t=Object.keys(e);if(this._config.strict){const e=[];for(let s=0;s<t.length;s++){const i=t[s];this._shapeKeysSet.has(i)||e.push(i)}if(e.length>0)throw new Error(s.getMessages().unexpectedKeys(e))}if(this._config.passthrough)for(let s=0;s<t.length;s++){const r=t[s];this._shapeKeysSet.has(r)||i.isDangerousKey(r)||(a[r]=e[r])}if(this._config.catchall)for(let r=0;r<t.length;r++){const n=t[r];if(!this._shapeKeysSet.has(n)&&!i.isDangerousKey(n))try{a[n]=this._config.catchall.parse(e[n])}catch(e){throw new Error(s.getMessages().objectField(n,e.message))}}}return a}safeParse(t){if("object"!=typeof t||null===t||Array.isArray(t))return{success:!1,error:this.createSafeParseError(this._config.errorMessage||s.getMessages().invalidObject)};const n=t;if(this._canUseSimpleObjectFastPath)try{return{success:!0,data:this.parseSimpleObjectValue(n)}}catch{}if(this._canUseSafeParseFastPath)try{return{success:!0,data:this.parseObjectValue(n)}}catch{}const a={},o=[];for(let t=0;t<this._shapeKeys.length;t++){const i=this._shapeKeys[t],r=n[i],c=this._simpleFieldModes[t];if(void 0!==c){if("string"===c&&"string"==typeof r||"number"===c&&"number"==typeof r&&!isNaN(r)||"boolean"===c&&"boolean"==typeof r||"bigint"===c&&"bigint"==typeof r||"symbol"===c&&"symbol"==typeof r||"null"===c&&null===r||"undefinedValue"===c&&void 0===r||"literal"===c&&r===this._simpleFieldValues[t]||"passthrough"===c){a[i]="literal"===c?this._simpleFieldValues[t]:"null"===c?null:r;continue}o.push({code:"invalid_type",path:[i],message:s.getMessages().objectField(i,this.getSimpleFieldError(c,this._simpleFieldValues[t],r))});continue}let l;try{l=this.getFieldValidator(i,t)}catch(e){const s=this.createSafeParseError(e,i);o.push(...s.issues);continue}try{if(l instanceof e.VldBase)a[i]=this.parseCheckedField(l,this._validatorTypes[t],r);else{const e=l.safeParse(r);if(e.success)a[i]=e.data;else{const s=this.createSafeParseError(e.error,i);o.push(...s.issues)}}}catch(e){const s=this.createSafeParseError(e,i);o.push(...s.issues)}}if(this._config.strict||this._config.passthrough||this._config.catchall){const t=Object.keys(n);if(this._config.strict){const e=[];for(let s=0;s<t.length;s++){const i=t[s];this._shapeKeysSet.has(i)||e.push(i)}e.length>0&&o.push(...e.map(e=>({code:"unrecognized_keys",path:[e],message:s.getMessages().unexpectedKeys([e])})))}if(this._config.passthrough)for(let e=0;e<t.length;e++){const s=t[e];this._shapeKeysSet.has(s)||i.isDangerousKey(s)||(a[s]=n[s])}if(this._config.catchall){const s=this._config.catchall;for(let r=0;r<t.length;r++){const c=t[r];if(!this._shapeKeysSet.has(c)&&!i.isDangerousKey(c))try{if(s instanceof e.VldBase)a[c]=s.parse(n[c]);else{const e=s.safeParse(n[c]);if(e.success)a[c]=e.data;else{const s=this.createSafeParseError(e.error,c);o.push(...s.issues)}}}catch(e){const s=this.createSafeParseError(e,c);o.push(...s.issues)}}}}return o.length>0?{success:!1,error:new r.VldError(o)}:{success:!0,data:a}}encode(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this._config.errorMessage||s.getMessages().invalidObject);return this.encodeObjectSync(e)}safeEncode(e){try{return{success:!0,data:this.encode(e)}}catch(e){return{success:!1,error:this.createSafeParseError(e.message)}}}async encodeAsync(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this._config.errorMessage||s.getMessages().invalidObject);return this.encodeObjectAsync(e)}async safeEncodeAsync(e){try{return{success:!0,data:await this.encodeAsync(e)}}catch(e){return{success:!1,error:this.createSafeParseError(e.message)}}}encodeObjectSync(e){const s={};for(let t=0;t<this._shapeKeys.length;t++){const i=this._shapeKeys[t],r=this.getFieldValidator(i,t).encode(e[i]);(void 0!==r||Object.prototype.hasOwnProperty.call(e,i))&&(s[i]=r)}return this.encodeExtraKeysSync(e,s),s}async encodeObjectAsync(e){const s={};for(let t=0;t<this._shapeKeys.length;t++){const i=this._shapeKeys[t],r=await this.getFieldValidator(i,t).encodeAsync(e[i]);(void 0!==r||Object.prototype.hasOwnProperty.call(e,i))&&(s[i]=r)}const t=this.getEncodedExtraKeys(e);for(const r of t)i.isDangerousKey(r)||(this._config.catchall?s[r]=await this._config.catchall.encodeAsync(e[r]):this._config.passthrough&&(s[r]=e[r]));return s}getEncodedExtraKeys(e){const t=Object.keys(e).filter(e=>!this._shapeKeysSet.has(e));if(this._config.strict&&t.length>0)throw new Error(s.getMessages().unexpectedKeys(t));return t}encodeExtraKeysSync(e,s){for(const t of this.getEncodedExtraKeys(e))i.isDangerousKey(t)||(this._config.catchall?s[t]=this._config.catchall.encode(e[t]):this._config.passthrough&&(s[t]=e[t]))}strict(e){return new VldObject({...this._config,strict:!0,passthrough:!1,errorMessage:e})}passthrough(){return new VldObject({...this._config,strict:!1,passthrough:!0})}loose(){return this.passthrough()}strip(){const e={...this._config,strict:!1,passthrough:!1};return delete e.catchall,new VldObject(e)}partial(){const s={};for(const t in this._config.shape)s[t]=new e.VldOptional(this._config.shape[t]);return new VldObject({...this._config,shape:s})}deepPartial(){const s={};for(const t in this._config.shape){const i=this._config.shape[t];s[t]=i instanceof VldObject?new e.VldOptional(i.deepPartial()):new e.VldOptional(i)}return new VldObject({...this._config,shape:s})}exactPartial(){const s={};for(const t in this._config.shape)s[t]=new e.VldExactOptional(this._config.shape[t]);return new VldObject({...this._config,shape:s})}pick(...e){const s={};let t=[];t=1!==e.length||"object"!=typeof e[0]||null===e[0]||Array.isArray(e[0])?e.flat():Object.keys(e[0]).filter(s=>e[0][s]);for(const e of t)e in this._config.shape&&(s[e]=this._config.shape[e]);return new VldObject({...this._config,shape:s})}omit(...e){let s;s=1!==e.length||"object"!=typeof e[0]||null===e[0]||Array.isArray(e[0])?new Set(e.flat()):new Set(Object.keys(e[0]).filter(s=>e[0][s]));const t={};for(const e in this._config.shape)s.has(e)||(t[e]=this._config.shape[e]);return new VldObject({...this._config,shape:t})}extend(e){return new VldObject({...this._config,shape:{...this._config.shape,...e}})}merge(e){return new VldObject({...this._config,shape:{...this._config.shape,...e.config.shape}})}required(){const s={};for(const t in this._config.shape){const i=this._config.shape[t];if(i instanceof e.VldOptional){const e=i.baseValidator;if(!e||"function"!=typeof e.parse)throw new Error(`Invalid VldOptional structure for field "${t}": missing or invalid baseValidator`);s[t]=e}else s[t]=i}return new VldObject({...this._config,shape:s})}catchall(e){return new VldObject({...this._config,catchall:e,passthrough:!1})}get shape(){return this._config.shape}keyof(){const e=Object.keys(this._config.shape);if(0===e.length)throw new Error("Cannot create keyof enum from empty object");return t.VldEnum.create(e)}safeExtend(e){const t=new Set(Object.keys(this._config.shape)),i=Object.keys(e),r=[];for(const e of i)t.has(e)&&r.push(e);if(r.length>0)throw new Error(`safeExtend: ${s.getMessages().safeExtendOverlap(r)}`);return new VldObject({...this._config,shape:{...this._config.shape,...e}})}}exports.VldObject=VldObject;
1
+ "use strict";var e=require("./base.cjs"),s=require("../locales/runtime.cjs"),t=require("./enum.cjs"),i=require("../chunks/security-aXZVI7qW.cjs"),r=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldObject extends e.VldBase{createSafeParseError(e,t){if(e instanceof r.VldError)return void 0!==t?new r.VldError(e.issues.map(e=>({...e,path:e.path?[t,...e.path]:[t],message:e.message.startsWith("Invalid field")?e.message:s.getMessages().objectField(String(t),e.message)}))):e;const i=e instanceof Error?e.message:String(e);return new r.VldError([{code:"invalid_type",path:void 0!==t?[t]:[],message:void 0===t||i.startsWith("Invalid field")?i:s.getMessages().objectField(String(t),i)}])}constructor(s){super(e.VLD_VALIDATOR_TYPES.OBJECT),this._config=s,this._shapeKeys=Object.keys(s.shape),this._shapeKeysSet=new Set(this._shapeKeys),this._validators=this._shapeKeys.map(e=>this.tryGetFieldValidator(e)),this._validatorTypes=this._shapeKeys.map((e,s)=>this._validators[s]?.validatorType||this.getValidatorType(e)),this._simpleFieldModes=this._validators.map((e,s)=>this.getSimpleFieldMode(e,this._validatorTypes[s])),this._simpleFieldValues=this._validators.map((e,s)=>"literal"===this._simpleFieldModes[s]?e.literal:void 0),this._canUseSimpleObjectFastPath=!s.strict&&!s.passthrough&&!s.catchall&&this._shapeKeys.length>0&&this._simpleFieldModes.every(e=>void 0!==e),this._canUseSafeParseFastPath=this._validators.every(s=>s instanceof e.VldBase)&&(void 0===s.catchall||s.catchall instanceof e.VldBase)}tryGetFieldValidator(e){try{const s=Object.getOwnPropertyDescriptor(this._config.shape,e);if(s?.get)return;return this.resolveFieldValidator(e)}catch{return}}resolveFieldValidator(e){try{const s=this._config.shape[e];if(!s||"function"!=typeof s.safeParse)return;return s}catch{return}}getFieldValidator(e,s){const t=(void 0===s?void 0:this._validators[s])||this.resolveFieldValidator(e);if(!t)throw new Error(`Invalid validator for field "${e}"`);return t}getValidatorType(s){try{const t=this._config.shape[s];return t?.validatorType||e.VLD_VALIDATOR_TYPES.UNKNOWN}catch{return e.VLD_VALIDATOR_TYPES.UNKNOWN}}getSimpleFieldMode(s,t){if(s&&!0===s.isSimple)switch(t){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleFieldError(e,t,i){switch(e){case"string":return s.getMessages().invalidString;case"number":return s.getMessages().invalidNumber;case"boolean":return s.getMessages().invalidBoolean;case"bigint":return s.getMessages().invalidBigint;case"symbol":return s.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof i;case"undefinedValue":return s.getMessages().expectedUndefined;case"literal":return s.getMessages().literalExpected(JSON.stringify(t),JSON.stringify(i));default:return s.getMessages().invalidObject}}parseCheckedField(s,t,i){if(t===e.VLD_VALIDATOR_TYPES.STRING&&"string"==typeof i){const e=s.parseKnownString;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.NUMBER&&"number"==typeof i&&!isNaN(i)){const e=s.parseKnownNumber;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.BOOLEAN&&"boolean"==typeof i){const e=s.parseKnownBoolean;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.BIGINT&&"bigint"==typeof i){const e=s.parseKnownBigInt;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.SYMBOL&&"symbol"==typeof i){const e=s.parseKnownSymbol;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.FUNCTION&&"function"==typeof i){const e=s.parseKnownFunction;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.FILE&&"object"==typeof i&&null!==i&&("size"in i&&"type"in i||"undefined"!=typeof File&&i instanceof File)){const e=s.parseKnownFile;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.DATE&&i instanceof Date){const e=s.parseKnownDate;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.OBJECT&&"object"==typeof i&&null!==i&&!Array.isArray(i)){const e=s.parseKnownObject;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.ARRAY&&Array.isArray(i)){const e=s.parseKnownArray;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.TUPLE&&Array.isArray(i)){const e=s.parseKnownTuple;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.RECORD&&"object"==typeof i&&null!==i&&!Array.isArray(i)){const e=s.parseKnownRecord;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.SET&&i instanceof Set){const e=s.parseKnownSet;if("function"==typeof e)return e.call(s,i)}if(t===e.VLD_VALIDATOR_TYPES.MAP&&i instanceof Map){const e=s.parseKnownMap;if("function"==typeof e)return e.call(s,i)}return s.parse(i)}parseSimpleObjectValue(e,t,i=!1){if(2===this._shapeKeys.length&&"string"===this._simpleFieldModes[0]&&"number"===this._simpleFieldModes[1]){const t=this._shapeKeys[0],i=e[t];if("string"!=typeof i)throw new Error(s.getMessages().objectField(t,s.getMessages().invalidString));const r=this._shapeKeys[1],a=e[r];if("number"!=typeof a||isNaN(a))throw new Error(s.getMessages().objectField(r,s.getMessages().invalidNumber));const n={};return n[t]=i,n[r]=a,n}if(3===this._shapeKeys.length&&"literal"===this._simpleFieldModes[0]&&"string"===this._simpleFieldModes[1]&&"number"===this._simpleFieldModes[2]){const r=this._shapeKeys[0],a=e[r],n=this._simpleFieldValues[0];if((!i||r!==t)&&a!==n)throw new Error(s.getMessages().objectField(r,this.getSimpleFieldError("literal",n,a)));const o=this._shapeKeys[1],c=e[o];if("string"!=typeof c)throw new Error(s.getMessages().objectField(o,s.getMessages().invalidString));const l=this._shapeKeys[2],h=e[l];if("number"!=typeof h||isNaN(h))throw new Error(s.getMessages().objectField(l,s.getMessages().invalidNumber));const g={};return g[r]=n,g[o]=c,g[l]=h,g}const a={};for(let n=0;n<this._shapeKeys.length;n++){const o=this._shapeKeys[n],c=e[o],l=this._simpleFieldModes[n];switch(l){case"string":if("string"!=typeof c)throw new Error(s.getMessages().objectField(o,s.getMessages().invalidString));a[o]=c;break;case"number":if("number"!=typeof c||isNaN(c))throw new Error(s.getMessages().objectField(o,s.getMessages().invalidNumber));a[o]=c;break;case"boolean":if("boolean"!=typeof c)throw new Error(s.getMessages().objectField(o,s.getMessages().invalidBoolean));a[o]=c;break;case"bigint":if("bigint"!=typeof c)throw new Error(s.getMessages().objectField(o,s.getMessages().invalidBigint));a[o]=c;break;case"symbol":if("symbol"!=typeof c)throw new Error(s.getMessages().objectField(o,s.getMessages().invalidSymbol));a[o]=c;break;case"null":if(null!==c)throw new Error(s.getMessages().objectField(o,this.getSimpleFieldError(l,void 0,c)));a[o]=null;break;case"undefinedValue":if(!Object.prototype.hasOwnProperty.call(e,o))throw new r.VldError([{code:"invalid_type",path:[o],message:s.getMessages().objectField(o,s.getMessages().requiredField(o))}]);if(void 0!==c)throw new Error(s.getMessages().objectField(o,s.getMessages().expectedUndefined));a[o]=void 0;break;case"literal":if(i&&o===t){a[o]=this._simpleFieldValues[n];break}if(c!==this._simpleFieldValues[n])throw new Error(s.getMessages().objectField(o,this.getSimpleFieldError(l,this._simpleFieldValues[n],c)));a[o]=this._simpleFieldValues[n];break;case"passthrough":if(!Object.prototype.hasOwnProperty.call(e,o))throw new r.VldError([{code:"invalid_type",path:[o],message:s.getMessages().objectField(o,s.getMessages().requiredField(o))}]);a[o]=c;break;default:throw new Error(s.getMessages().objectField(o,s.getMessages().invalidObject))}}return a}get config(){return this._config}get shapeKeys(){return this._shapeKeys}get shapeKeysSet(){return this._shapeKeysSet}static create(e){return new VldObject({shape:e})}parse(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this._config.errorMessage||s.getMessages().invalidObject);return this.parseObjectValue(e)}parseKnownObject(e,s){return this.parseObjectValue(e,s)}parseTrustedKnownObject(e,s){return this.parseObjectValue(e,s,!0)}parseObjectValue(e,t,a=!1){if(this._canUseSimpleObjectFastPath)return this.parseSimpleObjectValue(e,t,a);const n={};let o="";try{for(let i=0;i<this._shapeKeys.length;i++){if(o=this._shapeKeys[i],a&&o===t&&"literal"===this._simpleFieldModes[i]){n[o]=this._simpleFieldValues[i];continue}const r=this._simpleFieldModes[i];if(void 0!==r){const t=e[o];switch(r){case"string":if("string"!=typeof t)throw new Error(s.getMessages().invalidString);n[o]=t;continue;case"number":if("number"!=typeof t||isNaN(t))throw new Error(s.getMessages().invalidNumber);n[o]=t;continue;case"boolean":if("boolean"!=typeof t)throw new Error(s.getMessages().invalidBoolean);n[o]=t;continue;case"bigint":if("bigint"!=typeof t)throw new Error(s.getMessages().invalidBigint);n[o]=t;continue;case"symbol":if("symbol"!=typeof t)throw new Error(s.getMessages().invalidSymbol);n[o]=t;continue;case"null":if(null!==t)throw new Error(this.getSimpleFieldError(r,void 0,t));n[o]=null;continue;case"undefinedValue":if(!Object.prototype.hasOwnProperty.call(e,o))throw new Error(s.getMessages().objectField(o,s.getMessages().requiredField(o)));if(void 0!==t)throw new Error(s.getMessages().objectField(o,s.getMessages().expectedUndefined));n[o]=void 0;continue;case"literal":if(t!==this._simpleFieldValues[i])throw new Error(this.getSimpleFieldError(r,this._simpleFieldValues[i],t));n[o]=this._simpleFieldValues[i];continue;case"passthrough":if(!Object.prototype.hasOwnProperty.call(e,o))throw new Error(s.getMessages().objectField(o,s.getMessages().requiredField(o)));n[o]=t;continue}continue}const c=this.getFieldValidator(o,i);n[o]=this.parseCheckedField(c,this._validatorTypes[i],e[o])}}catch(e){if(e instanceof r.VldError)throw new r.VldError(e.issues.map(e=>({...e,path:e.path?[o,...e.path]:[o],message:s.getMessages().objectField(o,e.message.startsWith("Invalid field")?e.message.replace(/^Invalid field "[^"]+": /,""):e.message)})));const t=e instanceof Error?e.message:String(e);throw new r.VldError([{code:"invalid_type",path:[o],message:t.startsWith("Invalid field")?t:s.getMessages().objectField(o,t)}])}if(this._config.strict||this._config.passthrough||this._config.catchall){const t=Object.keys(e);if(this._config.strict){const e=[];for(let s=0;s<t.length;s++){const i=t[s];this._shapeKeysSet.has(i)||e.push(i)}if(e.length>0)throw new Error(s.getMessages().unexpectedKeys(e))}if(this._config.passthrough)for(let s=0;s<t.length;s++){const r=t[s];this._shapeKeysSet.has(r)||i.isDangerousKey(r)||(n[r]=e[r])}if(this._config.catchall)for(let r=0;r<t.length;r++){const a=t[r];if(!this._shapeKeysSet.has(a)&&!i.isDangerousKey(a))try{n[a]=this._config.catchall.parse(e[a])}catch(e){throw new Error(s.getMessages().objectField(a,e.message))}}}return n}safeParse(t){if("object"!=typeof t||null===t||Array.isArray(t))return{success:!1,error:this.createSafeParseError(this._config.errorMessage||s.getMessages().invalidObject)};const a=t;if(this._canUseSimpleObjectFastPath)try{return{success:!0,data:this.parseSimpleObjectValue(a)}}catch{}if(this._canUseSafeParseFastPath)try{return{success:!0,data:this.parseObjectValue(a)}}catch{}const n={},o=[];for(let t=0;t<this._shapeKeys.length;t++){const i=this._shapeKeys[t],r=a[i],c=this._simpleFieldModes[t];if(void 0!==c){if(("passthrough"===c||"undefinedValue"===c)&&!Object.prototype.hasOwnProperty.call(a,i)){o.push({code:"invalid_type",path:[i],message:s.getMessages().objectField(i,s.getMessages().requiredField(i))});continue}if("string"===c&&"string"==typeof r||"number"===c&&"number"==typeof r&&!isNaN(r)||"boolean"===c&&"boolean"==typeof r||"bigint"===c&&"bigint"==typeof r||"symbol"===c&&"symbol"==typeof r||"null"===c&&null===r||"undefinedValue"===c&&void 0===r||"literal"===c&&r===this._simpleFieldValues[t]||"passthrough"===c){n[i]="literal"===c?this._simpleFieldValues[t]:"null"===c?null:r;continue}o.push({code:"invalid_type",path:[i],message:s.getMessages().objectField(i,this.getSimpleFieldError(c,this._simpleFieldValues[t],r))});continue}let l;try{l=this.getFieldValidator(i,t)}catch(e){const s=this.createSafeParseError(e,i);o.push(...s.issues);continue}try{if(l instanceof e.VldBase)n[i]=this.parseCheckedField(l,this._validatorTypes[t],r);else{const e=l.safeParse(r);if(e.success)n[i]=e.data;else{const s=this.createSafeParseError(e.error,i);o.push(...s.issues)}}}catch(e){const s=this.createSafeParseError(e,i);o.push(...s.issues)}}if(this._config.strict||this._config.passthrough||this._config.catchall){const t=Object.keys(a);if(this._config.strict){const e=[];for(let s=0;s<t.length;s++){const i=t[s];this._shapeKeysSet.has(i)||e.push(i)}e.length>0&&o.push(...e.map(e=>({code:"unrecognized_keys",path:[e],message:s.getMessages().unexpectedKeys([e])})))}if(this._config.passthrough)for(let e=0;e<t.length;e++){const s=t[e];this._shapeKeysSet.has(s)||i.isDangerousKey(s)||(n[s]=a[s])}if(this._config.catchall){const s=this._config.catchall;for(let r=0;r<t.length;r++){const c=t[r];if(!this._shapeKeysSet.has(c)&&!i.isDangerousKey(c))try{if(s instanceof e.VldBase)n[c]=s.parse(a[c]);else{const e=s.safeParse(a[c]);if(e.success)n[c]=e.data;else{const s=this.createSafeParseError(e.error,c);o.push(...s.issues)}}}catch(e){const s=this.createSafeParseError(e,c);o.push(...s.issues)}}}}return o.length>0?{success:!1,error:new r.VldError(o)}:{success:!0,data:n}}encode(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this._config.errorMessage||s.getMessages().invalidObject);return this.encodeObjectSync(e)}safeEncode(e){try{return{success:!0,data:this.encode(e)}}catch(e){return{success:!1,error:this.createSafeParseError(e.message)}}}async encodeAsync(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this._config.errorMessage||s.getMessages().invalidObject);return this.encodeObjectAsync(e)}async safeEncodeAsync(e){try{return{success:!0,data:await this.encodeAsync(e)}}catch(e){return{success:!1,error:this.createSafeParseError(e.message)}}}encodeObjectSync(e){const s={};for(let t=0;t<this._shapeKeys.length;t++){const i=this._shapeKeys[t],r=this.getFieldValidator(i,t).encode(e[i]);(void 0!==r||Object.prototype.hasOwnProperty.call(e,i))&&(s[i]=r)}return this.encodeExtraKeysSync(e,s),s}async encodeObjectAsync(e){const s={};for(let t=0;t<this._shapeKeys.length;t++){const i=this._shapeKeys[t],r=await this.getFieldValidator(i,t).encodeAsync(e[i]);(void 0!==r||Object.prototype.hasOwnProperty.call(e,i))&&(s[i]=r)}const t=this.getEncodedExtraKeys(e);for(const r of t)i.isDangerousKey(r)||(this._config.catchall?s[r]=await this._config.catchall.encodeAsync(e[r]):this._config.passthrough&&(s[r]=e[r]));return s}getEncodedExtraKeys(e){const t=Object.keys(e).filter(e=>!this._shapeKeysSet.has(e));if(this._config.strict&&t.length>0)throw new Error(s.getMessages().unexpectedKeys(t));return t}encodeExtraKeysSync(e,s){for(const t of this.getEncodedExtraKeys(e))i.isDangerousKey(t)||(this._config.catchall?s[t]=this._config.catchall.encode(e[t]):this._config.passthrough&&(s[t]=e[t]))}strict(e){return new VldObject({...this._config,strict:!0,passthrough:!1,errorMessage:e})}passthrough(){return new VldObject({...this._config,strict:!1,passthrough:!0})}loose(){return this.passthrough()}strip(){const e={...this._config,strict:!1,passthrough:!1};return delete e.catchall,new VldObject(e)}partial(){const s={};for(const t in this._config.shape)s[t]=new e.VldOptional(this._config.shape[t]);return new VldObject({...this._config,shape:s})}deepPartial(){const s={};for(const t in this._config.shape){const i=this._config.shape[t];s[t]=i instanceof VldObject?new e.VldOptional(i.deepPartial()):new e.VldOptional(i)}return new VldObject({...this._config,shape:s})}exactPartial(){const s={};for(const t in this._config.shape)s[t]=new e.VldExactOptional(this._config.shape[t]);return new VldObject({...this._config,shape:s})}pick(...e){const s={};let t=[];t=1!==e.length||"object"!=typeof e[0]||null===e[0]||Array.isArray(e[0])?e.flat():Object.keys(e[0]).filter(s=>e[0][s]);for(const e of t)e in this._config.shape&&(s[e]=this._config.shape[e]);return new VldObject({...this._config,shape:s})}omit(...e){let s;s=1!==e.length||"object"!=typeof e[0]||null===e[0]||Array.isArray(e[0])?new Set(e.flat()):new Set(Object.keys(e[0]).filter(s=>e[0][s]));const t={};for(const e in this._config.shape)s.has(e)||(t[e]=this._config.shape[e]);return new VldObject({...this._config,shape:t})}extend(e){return new VldObject({...this._config,shape:{...this._config.shape,...e}})}merge(e){return new VldObject({...this._config,shape:{...this._config.shape,...e.config.shape}})}required(){const s={};for(const t in this._config.shape){const i=this._config.shape[t];if(i instanceof e.VldOptional){const e=i.baseValidator;if(!e||"function"!=typeof e.parse)throw new Error(`Invalid VldOptional structure for field "${t}": missing or invalid baseValidator`);s[t]=e}else s[t]=i}return new VldObject({...this._config,shape:s})}catchall(e){return new VldObject({...this._config,catchall:e,passthrough:!1})}get shape(){return this._config.shape}keyof(){const e=Object.keys(this._config.shape);if(0===e.length)throw new Error("Cannot create keyof enum from empty object");return t.VldEnum.create(e)}safeExtend(e){const t=new Set(Object.keys(this._config.shape)),i=Object.keys(e),r=[];for(const e of i)t.has(e)&&r.push(e);if(r.length>0)throw new Error(`safeExtend: ${s.getMessages().safeExtendOverlap(r)}`);return new VldObject({...this._config,shape:{...this._config.shape,...e}})}}exports.VldObject=VldObject;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs");require("../registry.cjs"),require("../chunks/errors-core-DrydF46s.cjs");class VldPromise extends e.VldBase{constructor(s){super(e.VLD_VALIDATOR_TYPES.PROMISE),this.inner=s}get"~standard"(){return{version:1,vendor:"vld",validate:async e=>{const s=await this.safeParse(e);return s.success?{value:s.data}:{issues:[{message:s.error.message}]}},types:void 0}}_isThenable(e){return null!==e&&"function"==typeof e.then}unwrap(){return this.inner}async parse(e){if(!this._isThenable(e))throw new Error("Expected a Promise value");const s=await Promise.resolve(e);return this.inner.parseAsync?this.inner.parseAsync(s):this.inner.parse(s)}parseAsync(e){return this.parse(e)}safeParse(s){return this._isThenable(s)?(async()=>{try{const e=await Promise.resolve(s);if(this.inner.safeParseAsync)return await this.inner.safeParseAsync(e);const r=this.inner.safeParse(e);return r.success?{success:!0,data:r.data}:r}catch(s){return{success:!1,error:e.ensureVldError(s)}}})():Promise.resolve({success:!1,error:e.ensureVldError("Expected a Promise value")})}safeParseAsync(e){return this.safeParse(e)}}exports.VldPromise=VldPromise,exports.promise=function(e){return new VldPromise(e)};
1
+ "use strict";var e=require("./base.cjs");require("../registry.cjs"),require("../chunks/errors-core-C0mA6tfa.cjs");class VldPromise extends e.VldBase{constructor(s){super(e.VLD_VALIDATOR_TYPES.PROMISE),this.inner=s}get"~standard"(){return{version:1,vendor:"vld",validate:async e=>{const s=await this.safeParse(e);return s.success?{value:s.data}:{issues:[{message:s.error.message}]}},types:void 0}}_isThenable(e){return null!==e&&"function"==typeof e.then}unwrap(){return this.inner}async parse(e){if(!this._isThenable(e))throw new Error("Expected a Promise value");const s=await Promise.resolve(e);return this.inner.parseAsync?this.inner.parseAsync(s):this.inner.parse(s)}parseAsync(e){return this.parse(e)}safeParse(s){return this._isThenable(s)?(async()=>{try{const e=await Promise.resolve(s);if(this.inner.safeParseAsync)return await this.inner.safeParseAsync(e);const r=this.inner.safeParse(e);return r.success?{success:!0,data:r.data}:r}catch(s){return{success:!1,error:e.ensureVldError(s)}}})():Promise.resolve({success:!1,error:e.ensureVldError("Expected a Promise value")})}safeParseAsync(e){return this.safeParse(e)}}exports.VldPromise=VldPromise,exports.promise=function(e){return new VldPromise(e)};
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/security-aXZVI7qW.cjs"),t=require("../chunks/errors-core-DrydF46s.cjs");function a(e){return new t.VldError([{code:"invalid_object",path:[],message:e}])}require("../registry.cjs"),require("../locales/en.cjs");class VldRecord extends e.VldBase{constructor(r,s,t){super(e.VLD_VALIDATOR_TYPES.RECORD),this.valueValidator=r,this.keyValidator=s,this.errorMessage=t,this._simpleValueMode=this.getSimpleValueMode(r),this._simpleValue="literal"===this._simpleValueMode?r.literal:void 0}get valueSchema(){return this.valueValidator}get keySchema(){return this.keyValidator}get valueType(){return this.valueValidator}get keyType(){return this.keyValidator}static create(e,r){return new VldRecord(e,r)}getSimpleValueMode(r){if(!0===r.isSimple)switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleValueError(e){switch(this._simpleValueMode){case"string":return r.getMessages().invalidString;case"number":return r.getMessages().invalidNumber;case"boolean":return r.getMessages().invalidBoolean;case"bigint":return r.getMessages().invalidBigint;case"symbol":return r.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof e;case"undefinedValue":return r.getMessages().expectedUndefined;case"literal":return r.getMessages().literalExpected(JSON.stringify(this._simpleValue),JSON.stringify(e));default:return r.getMessages().invalidRecord}}parse(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this.errorMessage||r.getMessages().invalidRecord);return this.parseKnownRecord(e)}parseKnownRecord(e){if(void 0!==this.keyValidator)return this.parseKeyedRecord(e);const t={},a=Object.keys(e),i=this._simpleValueMode;for(let o=0;o<a.length;o++){const n=a[o];if(s.isDangerousKey(n))continue;const l=e[n];if(void 0!==i)switch(i){case"string":if("string"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidString));t[n]=l;continue;case"number":if("number"!=typeof l||isNaN(l))throw new Error(r.getMessages().objectField(n,r.getMessages().invalidNumber));t[n]=l;continue;case"boolean":if("boolean"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidBoolean));t[n]=l;continue;case"bigint":if("bigint"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidBigint));t[n]=l;continue;case"symbol":if("symbol"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidSymbol));t[n]=l;continue;case"null":if(null!==l)throw new Error(r.getMessages().objectField(n,this.getSimpleValueError(l)));t[n]=null;continue;case"undefinedValue":if(void 0!==l)throw new Error(r.getMessages().objectField(n,r.getMessages().expectedUndefined));t[n]=void 0;continue;case"literal":if(l!==this._simpleValue)throw new Error(r.getMessages().objectField(n,this.getSimpleValueError(l)));t[n]=this._simpleValue;continue;case"passthrough":t[n]=l;continue}try{t[n]=this.valueValidator.parse(l)}catch(e){throw new Error(r.getMessages().objectField(n,e.message))}}return t}parseKeyedRecord(e){const a={},i=Reflect.ownKeys(e);for(const o of i){if(!Object.prototype.propertyIsEnumerable.call(e,o))continue;if("string"==typeof o&&s.isDangerousKey(o))continue;const i=this.keyValidator.safeParse(o);if(!i.success)throw new t.VldError([{code:"invalid_key",path:[String(o)],message:i.error.message}]);if("string"!=typeof i.data&&"number"!=typeof i.data&&"symbol"!=typeof i.data)throw new t.VldError([{code:"invalid_key",path:[String(o)],message:"Record key transform must return a property key"}]);if("string"!=typeof i.data||!s.isDangerousKey(i.data))try{a[i.data]=this.valueValidator.parse(e[o])}catch(e){throw new Error(r.getMessages().objectField(String(o),e.message))}}return a}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return e instanceof t.VldError?{success:!1,error:e}:{success:!1,error:a(e.message)}}}partial(){const e=this.valueValidator.optional();return new VldRecord(e,this.keyValidator)}loose(){return new VldLooseRecord(this.valueValidator,this.keyValidator)}}class VldLooseRecord extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.RECORD),this.valueValidator=r,this.keyValidator=s}get valueSchema(){return this.valueValidator}parse(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(r.getMessages().invalidRecord);const t={},a=e;for(const e of Reflect.ownKeys(a)){if(!Object.prototype.propertyIsEnumerable.call(a,e))continue;if("string"==typeof e&&s.isDangerousKey(e))continue;const r=this.keyValidator?.safeParse(e);if(r&&!r.success)continue;const i=r?.data??e;if("string"!=typeof i&&"number"!=typeof i&&"symbol"!=typeof i)continue;if("string"==typeof i&&s.isDangerousKey(i))continue;const o=this.valueValidator.safeParse(a[e]);o.success&&(t[i]=o.data)}return t}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:a(e.message)}}}partial(){const e=this.valueValidator.optional();return new VldLooseRecord(e,this.keyValidator)}loose(){return this}}exports.VldRecord=VldRecord;
1
+ "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/security-aXZVI7qW.cjs"),t=require("../chunks/errors-core-C0mA6tfa.cjs");function a(e){return new t.VldError([{code:"invalid_object",path:[],message:e}])}require("../registry.cjs"),require("../locales/en.cjs");class VldRecord extends e.VldBase{constructor(r,s,t){super(e.VLD_VALIDATOR_TYPES.RECORD),this.valueValidator=r,this.keyValidator=s,this.errorMessage=t,this._simpleValueMode=this.getSimpleValueMode(r),this._simpleValue="literal"===this._simpleValueMode?r.literal:void 0}get valueSchema(){return this.valueValidator}get keySchema(){return this.keyValidator}get valueType(){return this.valueValidator}get keyType(){return this.keyValidator}static create(e,r){return new VldRecord(e,r)}getSimpleValueMode(r){if(!0===r.isSimple)switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleValueError(e){switch(this._simpleValueMode){case"string":return r.getMessages().invalidString;case"number":return r.getMessages().invalidNumber;case"boolean":return r.getMessages().invalidBoolean;case"bigint":return r.getMessages().invalidBigint;case"symbol":return r.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof e;case"undefinedValue":return r.getMessages().expectedUndefined;case"literal":return r.getMessages().literalExpected(JSON.stringify(this._simpleValue),JSON.stringify(e));default:return r.getMessages().invalidRecord}}parse(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(this.errorMessage||r.getMessages().invalidRecord);return this.parseKnownRecord(e)}parseKnownRecord(e){if(void 0!==this.keyValidator)return this.parseKeyedRecord(e);const t={},a=Object.keys(e),i=this._simpleValueMode;for(let o=0;o<a.length;o++){const n=a[o];if(s.isDangerousKey(n))continue;const l=e[n];if(void 0!==i)switch(i){case"string":if("string"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidString));t[n]=l;continue;case"number":if("number"!=typeof l||isNaN(l))throw new Error(r.getMessages().objectField(n,r.getMessages().invalidNumber));t[n]=l;continue;case"boolean":if("boolean"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidBoolean));t[n]=l;continue;case"bigint":if("bigint"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidBigint));t[n]=l;continue;case"symbol":if("symbol"!=typeof l)throw new Error(r.getMessages().objectField(n,r.getMessages().invalidSymbol));t[n]=l;continue;case"null":if(null!==l)throw new Error(r.getMessages().objectField(n,this.getSimpleValueError(l)));t[n]=null;continue;case"undefinedValue":if(void 0!==l)throw new Error(r.getMessages().objectField(n,r.getMessages().expectedUndefined));t[n]=void 0;continue;case"literal":if(l!==this._simpleValue)throw new Error(r.getMessages().objectField(n,this.getSimpleValueError(l)));t[n]=this._simpleValue;continue;case"passthrough":t[n]=l;continue}try{t[n]=this.valueValidator.parse(l)}catch(e){throw new Error(r.getMessages().objectField(n,e.message))}}return t}parseKeyedRecord(e){const a={},i=Reflect.ownKeys(e);for(const o of i){if(!Object.prototype.propertyIsEnumerable.call(e,o))continue;if("string"==typeof o&&s.isDangerousKey(o))continue;const i=this.keyValidator.safeParse(o);if(!i.success)throw new t.VldError([{code:"invalid_key",path:[String(o)],message:i.error.message}]);if("string"!=typeof i.data&&"number"!=typeof i.data&&"symbol"!=typeof i.data)throw new t.VldError([{code:"invalid_key",path:[String(o)],message:"Record key transform must return a property key"}]);if("string"!=typeof i.data||!s.isDangerousKey(i.data))try{a[i.data]=this.valueValidator.parse(e[o])}catch(e){throw new Error(r.getMessages().objectField(String(o),e.message))}}return a}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return e instanceof t.VldError?{success:!1,error:e}:{success:!1,error:a(e.message)}}}partial(){const e=this.valueValidator.optional();return new VldRecord(e,this.keyValidator)}loose(){return new VldLooseRecord(this.valueValidator,this.keyValidator)}}class VldLooseRecord extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.RECORD),this.valueValidator=r,this.keyValidator=s}get valueSchema(){return this.valueValidator}parse(e){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(r.getMessages().invalidRecord);const t={},a=e;for(const e of Reflect.ownKeys(a)){if(!Object.prototype.propertyIsEnumerable.call(a,e))continue;if("string"==typeof e&&s.isDangerousKey(e))continue;const r=this.keyValidator?.safeParse(e);if(r&&!r.success)continue;const i=r?.data??e;if("string"!=typeof i&&"number"!=typeof i&&"symbol"!=typeof i)continue;if("string"==typeof i&&s.isDangerousKey(i))continue;const o=this.valueValidator.safeParse(a[e]);o.success&&(t[i]=o.data)}return t}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:a(e.message)}}}partial(){const e=this.valueValidator.optional();return new VldLooseRecord(e,this.keyValidator)}loose(){return this}}exports.VldRecord=VldRecord;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),t=require("../locales/runtime.cjs"),r=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldSet extends e.VldBase{constructor(t,r,s=[]){super(e.VLD_VALIDATOR_TYPES.SET),this.itemValidator=t,this.errorMessage=r,this._checks=s,this._simpleItemMode=this.getSimpleItemMode(t),this._simpleItemValue="literal"===this._simpleItemMode?t.literal:void 0}get itemSchema(){return this.itemValidator}static create(e){return new VldSet(e)}getSimpleItemMode(t){if(!0===t.isSimple)switch(t.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleItemError(e){switch(this._simpleItemMode){case"string":return t.getMessages().invalidString;case"number":return t.getMessages().invalidNumber;case"boolean":return t.getMessages().invalidBoolean;case"bigint":return t.getMessages().invalidBigint;case"symbol":return t.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof e;case"undefinedValue":return t.getMessages().expectedUndefined;case"literal":return t.getMessages().literalExpected(JSON.stringify(this._simpleItemValue),JSON.stringify(e));default:return t.getMessages().invalidSet}}parse(e){if(!(e instanceof Set))throw new Error(this.errorMessage||t.getMessages().invalidSet);return this.parseKnownSet(e)}parseKnownSet(e){const t=new Set,r=this._simpleItemMode;if("string"===r)for(const r of e){if("string"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("number"===r)for(const r of e){if("number"!=typeof r||isNaN(r))throw new Error(this.getSimpleItemError(r));t.add(r)}else if("boolean"===r)for(const r of e){if("boolean"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("bigint"===r)for(const r of e){if("bigint"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("symbol"===r)for(const r of e){if("symbol"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("null"===r)for(const r of e){if(null!==r)throw new Error(this.getSimpleItemError(r));t.add(null)}else if("undefinedValue"===r)for(const r of e){if(void 0!==r)throw new Error(this.getSimpleItemError(r));t.add(void 0)}else if("literal"===r)for(const r of e){if(r!==this._simpleItemValue)throw new Error(this.getSimpleItemError(r));t.add(this._simpleItemValue)}else if("passthrough"===r)for(const r of e)t.add(r);else for(const r of e)try{t.add(this.itemValidator.parse(r))}catch(e){throw new Error(e.message)}for(const e of this._checks)if(!e.fn(t))throw new Error(e.message);return t}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:(t=e.message,new r.VldError([{code:"invalid_type",path:[],message:t}]))}}var t}min(e,t){return new VldSet(this.itemValidator,this.errorMessage,[...this._checks,{fn:t=>t.size>=e,message:t||`Set must contain at least ${e} elements`}])}max(e,t){return new VldSet(this.itemValidator,this.errorMessage,[...this._checks,{fn:t=>t.size<=e,message:t||`Set must contain at most ${e} elements`}])}size(e,t){return new VldSet(this.itemValidator,this.errorMessage,[...this._checks,{fn:t=>t.size===e,message:t||`Set must contain exactly ${e} elements`}])}nonempty(e){return this.min(1,e||"Set cannot be empty")}}exports.VldSet=VldSet;
1
+ "use strict";var e=require("./base.cjs"),t=require("../locales/runtime.cjs"),r=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldSet extends e.VldBase{constructor(t,r,s=[]){super(e.VLD_VALIDATOR_TYPES.SET),this.itemValidator=t,this.errorMessage=r,this._checks=s,this._simpleItemMode=this.getSimpleItemMode(t),this._simpleItemValue="literal"===this._simpleItemMode?t.literal:void 0}get itemSchema(){return this.itemValidator}static create(e){return new VldSet(e)}getSimpleItemMode(t){if(!0===t.isSimple)switch(t.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleItemError(e){switch(this._simpleItemMode){case"string":return t.getMessages().invalidString;case"number":return t.getMessages().invalidNumber;case"boolean":return t.getMessages().invalidBoolean;case"bigint":return t.getMessages().invalidBigint;case"symbol":return t.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof e;case"undefinedValue":return t.getMessages().expectedUndefined;case"literal":return t.getMessages().literalExpected(JSON.stringify(this._simpleItemValue),JSON.stringify(e));default:return t.getMessages().invalidSet}}parse(e){if(!(e instanceof Set))throw new Error(this.errorMessage||t.getMessages().invalidSet);return this.parseKnownSet(e)}parseKnownSet(e){const t=new Set,r=this._simpleItemMode;if("string"===r)for(const r of e){if("string"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("number"===r)for(const r of e){if("number"!=typeof r||isNaN(r))throw new Error(this.getSimpleItemError(r));t.add(r)}else if("boolean"===r)for(const r of e){if("boolean"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("bigint"===r)for(const r of e){if("bigint"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("symbol"===r)for(const r of e){if("symbol"!=typeof r)throw new Error(this.getSimpleItemError(r));t.add(r)}else if("null"===r)for(const r of e){if(null!==r)throw new Error(this.getSimpleItemError(r));t.add(null)}else if("undefinedValue"===r)for(const r of e){if(void 0!==r)throw new Error(this.getSimpleItemError(r));t.add(void 0)}else if("literal"===r)for(const r of e){if(r!==this._simpleItemValue)throw new Error(this.getSimpleItemError(r));t.add(this._simpleItemValue)}else if("passthrough"===r)for(const r of e)t.add(r);else for(const r of e)try{t.add(this.itemValidator.parse(r))}catch(e){throw new Error(e.message)}for(const e of this._checks)if(!e.fn(t))throw new Error(e.message);return t}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:(t=e.message,new r.VldError([{code:"invalid_type",path:[],message:t}]))}}var t}min(e,t){return new VldSet(this.itemValidator,this.errorMessage,[...this._checks,{fn:t=>t.size>=e,message:t||`Set must contain at least ${e} elements`}])}max(e,t){return new VldSet(this.itemValidator,this.errorMessage,[...this._checks,{fn:t=>t.size<=e,message:t||`Set must contain at most ${e} elements`}])}size(e,t){return new VldSet(this.itemValidator,this.errorMessage,[...this._checks,{fn:t=>t.size===e,message:t||`Set must contain exactly ${e} elements`}])}nonempty(e){return this.min(1,e||"Set cannot be empty")}}exports.VldSet=VldSet;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),s=require("../locales/runtime.cjs");require("../registry.cjs"),require("../chunks/errors-core-DrydF46s.cjs"),require("../locales/en.cjs");const t=["true","1","yes","on","y","enabled"],r=["false","0","no","off","n","disabled"];class VldStringBool extends e.VldBase{constructor(s){super(e.VLD_VALIDATOR_TYPES.STRING_BOOL),this.options=s,this.truthyValues=s.truthy??t,this.falsyValues=s.falsy??r;const i=this.normalizeValues(this.truthyValues),n=this.normalizeValues(this.falsyValues);this.normalizedTruthySet=new Set(i),this.normalizedFalsySet=new Set(n),this.validValuesText=[...i,...n].join(", ")}static create(e={}){return new VldStringBool(e)}normalizeValue(e){return this.options.caseSensitive?e:e.toLowerCase()}normalizeValues(e){return this.options.caseSensitive?e:e.map(e=>e.toLowerCase())}parse(e){if("string"!=typeof e){if("boolean"==typeof e)return e;throw new Error(s.getMessages().stringExpected(typeof e,"string"))}const t=this.normalizeValue(e);if(this.normalizedTruthySet.has(t))return!0;if(this.normalizedFalsySet.has(t))return!1;throw new Error(s.getMessages().stringBoolExpected(this.validValuesText,e))}safeParse(s){try{return{success:!0,data:this.parse(s)}}catch(s){return{success:!1,error:e.ensureVldError(s)}}}withTruthy(e){return new VldStringBool({...this.options,truthy:e})}withFalsy(e){return new VldStringBool({...this.options,falsy:e})}caseSensitive(){return new VldStringBool({...this.options,caseSensitive:!0})}caseInsensitive(){return new VldStringBool({...this.options,caseSensitive:!1})}}exports.VldStringBool=VldStringBool;
1
+ "use strict";var e=require("./base.cjs"),s=require("../locales/runtime.cjs");require("../registry.cjs"),require("../chunks/errors-core-C0mA6tfa.cjs"),require("../locales/en.cjs");const t=["true","1","yes","on","y","enabled"],r=["false","0","no","off","n","disabled"];class VldStringBool extends e.VldBase{constructor(s){super(e.VLD_VALIDATOR_TYPES.STRING_BOOL),this.options=s,this.truthyValues=s.truthy??t,this.falsyValues=s.falsy??r;const i=this.normalizeValues(this.truthyValues),n=this.normalizeValues(this.falsyValues);this.normalizedTruthySet=new Set(i),this.normalizedFalsySet=new Set(n),this.validValuesText=[...i,...n].join(", ")}static create(e={}){return new VldStringBool(e)}normalizeValue(e){return this.options.caseSensitive?e:e.toLowerCase()}normalizeValues(e){return this.options.caseSensitive?e:e.map(e=>e.toLowerCase())}parse(e){if("string"!=typeof e){if("boolean"==typeof e)return e;throw new Error(s.getMessages().stringExpected(typeof e,"string"))}const t=this.normalizeValue(e);if(this.normalizedTruthySet.has(t))return!0;if(this.normalizedFalsySet.has(t))return!1;throw new Error(s.getMessages().stringBoolExpected(this.validValuesText,e))}safeParse(s){try{return{success:!0,data:this.parse(s)}}catch(s){return{success:!1,error:e.ensureVldError(s)}}}withTruthy(e){return new VldStringBool({...this.options,truthy:e})}withFalsy(e){return new VldStringBool({...this.options,falsy:e})}caseSensitive(){return new VldStringBool({...this.options,caseSensitive:!0})}caseInsensitive(){return new VldStringBool({...this.options,caseSensitive:!1})}}exports.VldStringBool=VldStringBool;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),t=require("../locales/runtime.cjs"),r=require("../chunks/ip-validation-BZqPamPC.cjs"),a=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");const i="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))";function d(e,t){return e.lastIndex=0,e.test(t)}function s(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function o(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}function n(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"!=typeof e.precision?`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`:-1===e.precision?t:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`}function c(e){return void 0===e?/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/:new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)}const u={cuid:/^[cC][0-9a-z]{6,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,xid:/^[0-9a-vA-V]{20}$/,ksuid:/^[A-Za-z0-9]{27}$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,nanoidOfLength:e=>new RegExp(`^[a-zA-Z0-9_-]{${e}}$`),duration:/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,extendedDuration:/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,guid:/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,creditCard:/^\d(?:[ -]?\d){11,18}$/,uuid:c,uuid4:c(4),uuid6:c(6),uuid7:c(7),email:/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+.-]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9-]*\.)+[A-Za-z]{2,}$/,html5Email:/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,rfc5322Email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}))$/,unicodeEmail:/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,idnEmail:/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,browserEmail:/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,emoji:()=>/^(\p{Extended_Pictographic}|\p{Emoji_Component})+$/u,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6:/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,mac:function(e=":"){const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},cidrv4:/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,cidrv6:/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,base64url:/^[A-Za-z0-9_-]*$/,hostname:/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,domain:/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,httpProtocol:/^https?$/,e164:/^\+[1-9]\d{6,14}$/,date:new RegExp(`^${i}$`),time:function(e={}){return new RegExp(`^${n(e)}$`)},datetime:function(e={}){const t=["Z"];return e.local&&t.push(""),e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)"),new RegExp(`^${i}T${n(e)}(?:${t.join("|")})$`)},string:function(e){const t=e?`[\\s\\S]{${e.minimum??0},${e.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},bigint:/^-?\d+n?$/,integer:/^-?\d+$/,number:/^-?\d+(?:\.\d+)?$/,boolean:/^(?:true|false)$/i,null:/^null$/i,undefined:/^undefined$/i,lowercase:/^[^A-Z]*$/,uppercase:/^[^a-z]*$/,hex:/^[0-9a-fA-F]*$/,md5_hex:/^[0-9a-fA-F]{32}$/,md5_base64:s(22,"=="),md5_base64url:o(22),sha1_hex:/^[0-9a-fA-F]{40}$/,sha1_base64:s(27,"="),sha1_base64url:o(27),sha256_hex:/^[0-9a-fA-F]{64}$/,sha256_base64:s(43,"="),sha256_base64url:o(43),sha384_hex:/^[0-9a-fA-F]{96}$/,sha384_base64:s(64,""),sha384_base64url:o(64),sha512_hex:/^[0-9a-fA-F]{128}$/,sha512_base64:s(86,"=="),sha512_base64url:o(86),jwt:/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/,httpUrl:/^https?:\/\/[^\s/$.?#].[^\s]*$/,md5:/^[a-f0-9]{32}$/i,sha1:/^[a-f0-9]{40}$/i,sha256:/^[a-f0-9]{64}$/i,sha384:/^[a-f0-9]{96}$/i,sha512:/^[a-f0-9]{128}$/i};class VldStringFormat extends e.VldBase{constructor(t,r,a,i=e=>e,d){super(e.VLD_VALIDATOR_TYPES.STRING_FORMAT),this._format=t,this._validator=r,this._errorMessage=a,this._normalize=i,this._patternSource=d}static create(e,t,r,a,i){return new VldStringFormat(e,t,r,a,i)}_createFormatIssue(){const e={code:"invalid_format",path:[],origin:"string",format:this._format,message:this._errorMessage||`Invalid ${this._format}`};return this._patternSource&&(e.pattern=this._patternSource),new a.VldError([e])}parse(e){if("string"!=typeof e)throw new a.VldError([a.createInvalidTypeIssue("string",a.getTypeName(e),t.getMessages().invalidString)]);if(!this._validator(e))throw this._createFormatIssue();return this._normalize(e)}safeParse(e){return"string"!=typeof e?{success:!1,error:new a.VldError([a.createInvalidTypeIssue("string",a.getTypeName(e),t.getMessages().invalidString)])}:this._validator(e)?{success:!0,data:this._normalize(e)}:{success:!1,error:this._createFormatIssue()}}}const l=/[ -]/g;function m(e){return!!u.creditCard.test(e)&&function(e){let t=0,r=!1;for(let a=e.length-1;a>=0;a--){let i=e.charCodeAt(a)-48;r&&(i*=2,i>9&&(i-=9)),t+=i,r=!r}return t%10==0}(e.replace(l,""))}const f={ZodISODate:VldStringFormat,ZodISODateTime:VldStringFormat,ZodISODuration:VldStringFormat,ZodISOTime:VldStringFormat,date:()=>VldStringFormat.create("date",e=>d(u.date,e)),time:(e={})=>{const t=u.time(e);return VldStringFormat.create("time",e=>d(t,e))},datetime:(e={})=>{const t=u.datetime(e);return VldStringFormat.create("datetime",e=>d(t,e))},dateTime:(e={local:!0})=>{const t=u.datetime(e);return VldStringFormat.create("datetime",e=>d(t,e))},duration:()=>VldStringFormat.create("duration",e=>d(u.duration,e))};exports.VldStringFormat=VldStringFormat,exports.base64=()=>VldStringFormat.create("base64",e=>d(u.base64,e)),exports.base64url=()=>VldStringFormat.create("base64url",e=>d(u.base64url,e)),exports.cidrv4=()=>VldStringFormat.create("cidrv4",e=>d(u.cidrv4,e)),exports.cidrv6=()=>VldStringFormat.create("cidrv6",e=>{const t=e.lastIndexOf("/");if(t<=0)return!1;const a=Number(e.slice(t+1));return Number.isInteger(a)&&a>=0&&a<=128&&r.isValidIPv6(e.slice(0,t))}),exports.creditCard=e=>VldStringFormat.create("credit_card",m,e?.message,void 0,u.creditCard.source),exports.cuid=()=>VldStringFormat.create("cuid",e=>d(u.cuid,e)),exports.cuid2=()=>VldStringFormat.create("cuid2",e=>d(u.cuid2,e)),exports.e164=()=>VldStringFormat.create("e164",e=>d(u.e164,e)),exports.email=e=>{const t=e?.pattern??u.email;return VldStringFormat.create("email",e=>d(t,e),void 0,void 0,t.source)},exports.emoji=()=>VldStringFormat.create("emoji",e=>d(u.emoji(),e)),exports.guid=()=>VldStringFormat.create("guid",e=>d(u.guid,e)),exports.hash=e=>VldStringFormat.create("hash",t=>u[e]?.test(t)??!1,`Invalid ${e} hash`),exports.hex=()=>VldStringFormat.create("hex",e=>d(u.hex,e)),exports.hostname=()=>VldStringFormat.create("hostname",e=>d(u.hostname,e)),exports.httpUrl=()=>VldStringFormat.create("httpUrl",e=>d(u.httpUrl,e)),exports.ipv4=()=>VldStringFormat.create("ipv4",e=>d(u.ipv4,e)),exports.ipv6=()=>VldStringFormat.create("ipv6",e=>d(u.ipv6,e)),exports.isValidCreditCard=m,exports.iso=f,exports.jwt=()=>VldStringFormat.create("jwt",e=>d(u.jwt,e)),exports.ksuid=()=>VldStringFormat.create("ksuid",e=>d(u.ksuid,e)),exports.mac=e=>{const t=u.mac(e?.delimiter);return VldStringFormat.create("mac",e=>d(t,e))},exports.nanoid=()=>VldStringFormat.create("nanoid",e=>d(u.nanoid,e)),exports.regexes=u,exports.stringFormat=(e,t)=>{const r=t instanceof RegExp?e=>d(t,e):t;return VldStringFormat.create(e,r)},exports.ulid=()=>VldStringFormat.create("ulid",e=>d(u.ulid,e)),exports.url=(e={})=>VldStringFormat.create("url",t=>{const r=(e=>{try{return new URL(e)}catch{return}})(t);return void 0!==r&&(!e.hostname||d(e.hostname,r.hostname))&&(!e.protocol||d(e.protocol,r.protocol.slice(0,-1)))},void 0,e.normalize?e=>new URL(e).href:void 0),exports.uuid=e=>{const t=c(void 0===e?.version?void 0:Number(e.version.slice(1)));return VldStringFormat.create("uuid",e=>d(t,e))},exports.uuidv4=()=>VldStringFormat.create("uuid",e=>d(u.uuid4,e)),exports.uuidv6=()=>VldStringFormat.create("uuid",e=>d(u.uuid6,e)),exports.uuidv7=()=>VldStringFormat.create("uuid",e=>d(u.uuid7,e)),exports.xid=()=>VldStringFormat.create("xid",e=>d(u.xid,e));
1
+ "use strict";var e=require("./base.cjs"),t=require("../locales/runtime.cjs"),r=require("../chunks/ip-validation-BZqPamPC.cjs"),a=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs"),require("../locales/en.cjs");const i="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))";function d(e,t){return e.lastIndex=0,e.test(t)}function s(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function o(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}function n(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"!=typeof e.precision?`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`:-1===e.precision?t:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`}function c(e){return void 0===e?/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/:new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)}const u={cuid:/^[cC][0-9a-z]{6,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,xid:/^[0-9a-vA-V]{20}$/,ksuid:/^[A-Za-z0-9]{27}$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,nanoidOfLength:e=>new RegExp(`^[a-zA-Z0-9_-]{${e}}$`),duration:/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,extendedDuration:/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,guid:/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,creditCard:/^\d(?:[ -]?\d){11,18}$/,uuid:c,uuid4:c(4),uuid6:c(6),uuid7:c(7),email:/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+.-]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9-]*\.)+[A-Za-z]{2,}$/,html5Email:/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,rfc5322Email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}))$/,unicodeEmail:/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,idnEmail:/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,browserEmail:/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,emoji:()=>/^(\p{Extended_Pictographic}|\p{Emoji_Component})+$/u,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6:/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,mac:function(e=":"){const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},cidrv4:/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,cidrv6:/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,base64url:/^[A-Za-z0-9_-]*$/,hostname:/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,domain:/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,httpProtocol:/^https?$/,e164:/^\+[1-9]\d{6,14}$/,date:new RegExp(`^${i}$`),time:function(e={}){return new RegExp(`^${n(e)}$`)},datetime:function(e={}){const t=["Z"];return e.local&&t.push(""),e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)"),new RegExp(`^${i}T${n(e)}(?:${t.join("|")})$`)},string:function(e){const t=e?`[\\s\\S]{${e.minimum??0},${e.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},bigint:/^-?\d+n?$/,integer:/^-?\d+$/,number:/^-?\d+(?:\.\d+)?$/,boolean:/^(?:true|false)$/i,null:/^null$/i,undefined:/^undefined$/i,lowercase:/^[^A-Z]*$/,uppercase:/^[^a-z]*$/,hex:/^[0-9a-fA-F]*$/,md5_hex:/^[0-9a-fA-F]{32}$/,md5_base64:s(22,"=="),md5_base64url:o(22),sha1_hex:/^[0-9a-fA-F]{40}$/,sha1_base64:s(27,"="),sha1_base64url:o(27),sha256_hex:/^[0-9a-fA-F]{64}$/,sha256_base64:s(43,"="),sha256_base64url:o(43),sha384_hex:/^[0-9a-fA-F]{96}$/,sha384_base64:s(64,""),sha384_base64url:o(64),sha512_hex:/^[0-9a-fA-F]{128}$/,sha512_base64:s(86,"=="),sha512_base64url:o(86),jwt:/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/,httpUrl:/^https?:\/\/[^\s/$.?#].[^\s]*$/,md5:/^[a-f0-9]{32}$/i,sha1:/^[a-f0-9]{40}$/i,sha256:/^[a-f0-9]{64}$/i,sha384:/^[a-f0-9]{96}$/i,sha512:/^[a-f0-9]{128}$/i};class VldStringFormat extends e.VldBase{constructor(t,r,a,i=e=>e,d){super(e.VLD_VALIDATOR_TYPES.STRING_FORMAT),this._format=t,this._validator=r,this._errorMessage=a,this._normalize=i,this._patternSource=d}static create(e,t,r,a,i){return new VldStringFormat(e,t,r,a,i)}_createFormatIssue(){const e={code:"invalid_format",path:[],origin:"string",format:this._format,message:this._errorMessage||`Invalid ${this._format}`};return this._patternSource&&(e.pattern=this._patternSource),new a.VldError([e])}parse(e){if("string"!=typeof e)throw new a.VldError([a.createInvalidTypeIssue("string",a.getTypeName(e),t.getMessages().invalidString)]);if(!this._validator(e))throw this._createFormatIssue();return this._normalize(e)}safeParse(e){return"string"!=typeof e?{success:!1,error:new a.VldError([a.createInvalidTypeIssue("string",a.getTypeName(e),t.getMessages().invalidString)])}:this._validator(e)?{success:!0,data:this._normalize(e)}:{success:!1,error:this._createFormatIssue()}}}const l=/[ -]/g;function m(e){return!!u.creditCard.test(e)&&function(e){let t=0,r=!1;for(let a=e.length-1;a>=0;a--){let i=e.charCodeAt(a)-48;r&&(i*=2,i>9&&(i-=9)),t+=i,r=!r}return t%10==0}(e.replace(l,""))}const f={ZodISODate:VldStringFormat,ZodISODateTime:VldStringFormat,ZodISODuration:VldStringFormat,ZodISOTime:VldStringFormat,date:()=>VldStringFormat.create("date",e=>d(u.date,e)),time:(e={})=>{const t=u.time(e);return VldStringFormat.create("time",e=>d(t,e))},datetime:(e={})=>{const t=u.datetime(e);return VldStringFormat.create("datetime",e=>d(t,e))},dateTime:(e={local:!0})=>{const t=u.datetime(e);return VldStringFormat.create("datetime",e=>d(t,e))},duration:()=>VldStringFormat.create("duration",e=>d(u.duration,e))};exports.VldStringFormat=VldStringFormat,exports.base64=()=>VldStringFormat.create("base64",e=>d(u.base64,e)),exports.base64url=()=>VldStringFormat.create("base64url",e=>d(u.base64url,e)),exports.cidrv4=()=>VldStringFormat.create("cidrv4",e=>d(u.cidrv4,e)),exports.cidrv6=()=>VldStringFormat.create("cidrv6",e=>{const t=e.lastIndexOf("/");if(t<=0)return!1;const a=Number(e.slice(t+1));return Number.isInteger(a)&&a>=0&&a<=128&&r.isValidIPv6(e.slice(0,t))}),exports.creditCard=e=>VldStringFormat.create("credit_card",m,e?.message,void 0,u.creditCard.source),exports.cuid=()=>VldStringFormat.create("cuid",e=>d(u.cuid,e)),exports.cuid2=()=>VldStringFormat.create("cuid2",e=>d(u.cuid2,e)),exports.e164=()=>VldStringFormat.create("e164",e=>d(u.e164,e)),exports.email=e=>{const t=e?.pattern??u.email;return VldStringFormat.create("email",e=>d(t,e),void 0,void 0,t.source)},exports.emoji=()=>VldStringFormat.create("emoji",e=>d(u.emoji(),e)),exports.guid=()=>VldStringFormat.create("guid",e=>d(u.guid,e)),exports.hash=e=>VldStringFormat.create("hash",t=>u[e]?.test(t)??!1,`Invalid ${e} hash`),exports.hex=()=>VldStringFormat.create("hex",e=>d(u.hex,e)),exports.hostname=()=>VldStringFormat.create("hostname",e=>d(u.hostname,e)),exports.httpUrl=()=>VldStringFormat.create("httpUrl",e=>d(u.httpUrl,e)),exports.ipv4=()=>VldStringFormat.create("ipv4",e=>d(u.ipv4,e)),exports.ipv6=()=>VldStringFormat.create("ipv6",e=>d(u.ipv6,e)),exports.isValidCreditCard=m,exports.iso=f,exports.jwt=()=>VldStringFormat.create("jwt",e=>d(u.jwt,e)),exports.ksuid=()=>VldStringFormat.create("ksuid",e=>d(u.ksuid,e)),exports.mac=e=>{const t=u.mac(e?.delimiter);return VldStringFormat.create("mac",e=>d(t,e))},exports.nanoid=()=>VldStringFormat.create("nanoid",e=>d(u.nanoid,e)),exports.regexes=u,exports.stringFormat=(e,t)=>{const r=t instanceof RegExp?e=>d(t,e):t;return VldStringFormat.create(e,r)},exports.ulid=()=>VldStringFormat.create("ulid",e=>d(u.ulid,e)),exports.url=(e={})=>VldStringFormat.create("url",t=>{const r=(e=>{try{return new URL(e)}catch{return}})(t);return void 0!==r&&(!e.hostname||d(e.hostname,r.hostname))&&(!e.protocol||d(e.protocol,r.protocol.slice(0,-1)))},void 0,e.normalize?e=>new URL(e).href:void 0),exports.uuid=e=>{const t=c(void 0===e?.version?void 0:Number(e.version.slice(1)));return VldStringFormat.create("uuid",e=>d(t,e))},exports.uuidv4=()=>VldStringFormat.create("uuid",e=>d(u.uuid4,e)),exports.uuidv6=()=>VldStringFormat.create("uuid",e=>d(u.uuid6,e)),exports.uuidv7=()=>VldStringFormat.create("uuid",e=>d(u.uuid7,e)),exports.xid=()=>VldStringFormat.create("xid",e=>d(u.xid,e));
@@ -0,0 +1 @@
1
+ "use strict";var e=require("./base.cjs"),s=require("../chunks/errors-core-C0mA6tfa.cjs"),t=require("../locales/runtime.cjs"),r=require("../chunks/ip-validation-BZqPamPC.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldStringCheck{}class VldCheckMin extends VldStringCheck{constructor(e,s){super(),this.length=e,this._msg=s,this.kind="min"}get message(){return this._msg}check(e){return e.length<this.length?{code:"too_small",path:[],origin:"string",minimum:this.length,inclusive:!0,message:this._msg||`Too small: expected string to have >=${this.length} characters`}:null}meta(){return{kind:"min",value:this.length,message:this._msg}}}class VldCheckMax extends VldStringCheck{constructor(e,s){super(),this.length=e,this._msg=s,this.kind="max"}get message(){return this._msg}check(e){return e.length>this.length?{code:"too_big",path:[],origin:"string",maximum:this.length,inclusive:!0,message:this._msg||`Too big: expected string to have <=${this.length} characters`}:null}meta(){return{kind:"max",value:this.length,message:this._msg}}}class VldCheckLength extends VldStringCheck{constructor(e,s){super(),this.length=e,this._msg=s,this.kind="length"}get message(){return this._msg}check(e){return e.length!==this.length?{code:"too_big",path:[],origin:"string",exact:this.length,message:this._msg||`Too big: expected string to have exactly ${this.length} characters`}:null}meta(){return{kind:"length",value:this.length,message:this._msg}}}class VldCheckEmail extends VldStringCheck{constructor(e){super(),this._msg=e,this.kind="format"}get message(){return this._msg}check(e){return VldCheckEmail.RE.test(e)?null:{code:"invalid_format",path:[],origin:"string",format:"email",message:this._msg||"Invalid email"}}meta(){return{kind:"format",format:"email",message:this._msg}}}VldCheckEmail.RE=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;class VldCheckUrl extends VldStringCheck{constructor(e){super(),this._msg=e,this.kind="format"}get message(){return this._msg}check(e){return VldCheckUrl.RE.test(e)?null:{code:"invalid_format",path:[],origin:"string",format:"url",message:this._msg||"Invalid url"}}meta(){return{kind:"format",format:"url",message:this._msg}}}VldCheckUrl.RE=/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/;class VldCheckUuid extends VldStringCheck{constructor(e){super(),this._msg=e,this.kind="format"}get message(){return this._msg}check(e){return VldCheckUuid.RE.test(e)?null:{code:"invalid_format",path:[],origin:"string",format:"uuid",message:this._msg||"Invalid uuid"}}meta(){return{kind:"format",format:"uuid",message:this._msg}}}VldCheckUuid.RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;class VldCheckRegex extends VldStringCheck{constructor(e,s){super(),this.pattern=e,this._msg=s,this.kind="regex"}get message(){return this._msg}check(e){return this.pattern.test(e)?null:{code:"invalid_format",path:[],origin:"string",format:"regex",pattern:this.pattern.source,message:this._msg||"Invalid string: does not match pattern"}}meta(){return{kind:"regex",pattern:this.pattern.source,message:this._msg}}}class VldCheckStartsWith extends VldStringCheck{constructor(e,s){super(),this.prefix=e,this._msg=s,this.kind="startsWith"}get message(){return this._msg}check(e){return e.startsWith(this.prefix)?null:{code:"invalid_string",path:[],message:this._msg||`Invalid string: must start with "${this.prefix}"`}}meta(){return{kind:"startsWith",value:this.prefix,message:this._msg}}}class VldCheckEndsWith extends VldStringCheck{constructor(e,s){super(),this.suffix=e,this._msg=s,this.kind="endsWith"}get message(){return this._msg}check(e){return e.endsWith(this.suffix)?null:{code:"invalid_string",path:[],message:this._msg||`Invalid string: must end with "${this.suffix}"`}}meta(){return{kind:"endsWith",value:this.suffix,message:this._msg}}}class VldCheckIncludes extends VldStringCheck{constructor(e,s){super(),this.substring=e,this._msg=s,this.kind="includes"}get message(){return this._msg}check(e){return e.includes(this.substring)?null:{code:"invalid_string",path:[],message:this._msg||`Invalid string: must include "${this.substring}"`}}meta(){return{kind:"includes",value:this.substring,message:this._msg}}}class VldCheckRegexFormat extends VldStringCheck{constructor(e,s,t){super(),this.pattern=e,this.formatName=s,this._msg=t,this.kind="format"}get message(){return this._msg}check(e){return this.pattern.test(e)?null:{code:"invalid_format",path:[],origin:"string",format:this.formatName,pattern:this.pattern.source,message:this._msg||`Invalid ${this.formatName}`}}meta(){return{kind:"format",format:this.formatName,pattern:this.pattern.source,message:this._msg}}}class VldCheckIp extends VldStringCheck{constructor(e){super(),this._msg=e,this.kind="format"}get message(){return this._msg}check(e){return e.length>100||!VldCheckIp.V4.test(e)&&!r.isValidIPv6(e)?{code:"invalid_format",path:[],origin:"string",format:"ip",message:this._msg||"Invalid ip"}:null}meta(){return{kind:"format",format:"ip",message:this._msg}}}VldCheckIp.V4=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;class VldCheckIpv4 extends VldStringCheck{constructor(e){super(),this._msg=e,this.kind="format"}get message(){return this._msg}check(e){return VldCheckIpv4.RE.test(e)?null:{code:"invalid_format",path:[],origin:"string",format:"ipv4",message:this._msg||"Invalid ipv4"}}meta(){return{kind:"format",format:"ipv4",message:this._msg}}}VldCheckIpv4.RE=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;class VldCheckIpv6 extends VldStringCheck{constructor(e){super(),this._msg=e,this.kind="format"}get message(){return this._msg}check(e){return r.isValidIPv6(e)?null:{code:"invalid_format",path:[],origin:"string",format:"ipv6",message:this._msg||"Invalid ipv6"}}meta(){return{kind:"format",format:"ipv6",message:this._msg}}}const i=Object.freeze({type:"string",checks:Object.freeze([]),transforms:Object.freeze([]),isSimple:!0});class VldStringV2 extends e.VldBase{constructor(s=i){super(e.VLD_VALIDATOR_TYPES.STRING),this.__def=s}static create(){return new VldStringV2(i)}get isSimple(){return this.__def.isSimple}get minLength(){return this.__def.jsonSchema?.minLength??null}get maxLength(){return this.__def.jsonSchema?.maxLength??null}get getFormat(){return this.__def.jsonSchema?.format??null}get isCoercion(){return this.validatorType===e.VLD_VALIDATOR_TYPES.COERCE_STRING}parse(e){if("string"!=typeof e)throw new s.VldError([s.createInvalidTypeIssue("string",s.getTypeName(e),this.__def.errorMessage)]);return this.__def.isSimple?e:this.parseKnownString(e)}parseKnownString(e){const t=this.__def,r=t.transforms;let i=e;switch(r.length){case 0:break;case 1:i=r[0](i);break;case 2:i=r[1](r[0](i));break;case 3:i=r[2](r[1](r[0](i)));break;default:for(let e=0;e<r.length;e++)i=r[e](i)}const a=t.checks;for(let e=0;e<a.length;e++){const t=a[e].check(i);if(null!==t)throw new s.VldError([t])}return i}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:e instanceof s.VldError?e:new s.VldError([{code:"custom",path:[],message:String(e)}])}}}withDef(e){const s=(t=e.checks??this.__def.checks,r=e.transforms??this.__def.transforms,i=e.jsonSchema??this.__def.jsonSchema,a=e.errorMessage??this.__def.errorMessage,Object.freeze({type:"string",checks:t,transforms:r,jsonSchema:i,errorMessage:a,isSimple:0===t.length&&0===r.length}));var t,r,i,a;return new this.constructor(s)}min(s,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckMin(s,e.resolveErrorMessage(r,t.getMessages().stringMin(s)))],jsonSchema:{...this.__def.jsonSchema,minLength:s},errorMessage:e.resolveErrorMessage(r,t.getMessages().stringMin(s))})}max(s,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckMax(s,e.resolveErrorMessage(r,t.getMessages().stringMax(s)))],jsonSchema:{...this.__def.jsonSchema,maxLength:s},errorMessage:e.resolveErrorMessage(r,t.getMessages().stringMax(s))})}length(s,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckLength(s,e.resolveErrorMessage(r,t.getMessages().stringLength(s)))],jsonSchema:{...this.__def.jsonSchema,exactLength:s},errorMessage:e.resolveErrorMessage(r,t.getMessages().stringLength(s))})}email(s){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckEmail(e.resolveErrorMessage(s,t.getMessages().stringEmail))],jsonSchema:{...this.__def.jsonSchema,format:"email"},errorMessage:e.resolveErrorMessage(s,t.getMessages().stringEmail)})}url(s){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckUrl(e.resolveErrorMessage(s,t.getMessages().stringUrl))],jsonSchema:{...this.__def.jsonSchema,format:"uri"},errorMessage:e.resolveErrorMessage(s,t.getMessages().stringUrl)})}uuid(s){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckUuid(e.resolveErrorMessage(s,t.getMessages().stringUuid))],jsonSchema:{...this.__def.jsonSchema,format:"uuid"},errorMessage:e.resolveErrorMessage(s,t.getMessages().stringUuid)})}regex(s,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckRegex(s,e.resolveErrorMessage(r,t.getMessages().stringRegex))],jsonSchema:{...this.__def.jsonSchema,pattern:s.source},errorMessage:e.resolveErrorMessage(r,t.getMessages().stringRegex)})}trim(){return this.withDef({type:"string",transforms:[...this.__def.transforms,e=>e.trim()]})}toLowerCase(){return this.withDef({type:"string",transforms:[...this.__def.transforms,e=>e.toLowerCase()]})}lowercase(){return this.toLowerCase()}toUpperCase(){return this.withDef({type:"string",transforms:[...this.__def.transforms,e=>e.toUpperCase()]})}uppercase(){return this.toUpperCase()}normalize(e){return this.withDef({type:"string",transforms:[...this.__def.transforms,s=>s.normalize(e)]})}slugify(){return this.withDef({type:"string",transforms:[...this.__def.transforms,e=>e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")]})}startsWith(s,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckStartsWith(s,e.resolveErrorMessage(r,t.getMessages().stringStartsWith(s)))],errorMessage:e.resolveErrorMessage(r,t.getMessages().stringStartsWith(s))})}endsWith(s,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckEndsWith(s,e.resolveErrorMessage(r,t.getMessages().stringEndsWith(s)))],errorMessage:e.resolveErrorMessage(r,t.getMessages().stringEndsWith(s))})}includes(s,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckIncludes(s,e.resolveErrorMessage(r,t.getMessages().stringIncludes(s)))],errorMessage:e.resolveErrorMessage(r,t.getMessages().stringIncludes(s))})}ip(s){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckIp(e.resolveErrorMessage(s,t.getMessages().stringIp))],jsonSchema:{...this.__def.jsonSchema,format:"ip"},errorMessage:e.resolveErrorMessage(s,t.getMessages().stringIp)})}ipv4(s){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckIpv4(e.resolveErrorMessage(s,t.getMessages().stringIpv4))],jsonSchema:{...this.__def.jsonSchema,format:"ipv4"},errorMessage:e.resolveErrorMessage(s,t.getMessages().stringIpv4)})}ipv6(s){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckIpv6(e.resolveErrorMessage(s,t.getMessages().stringIpv6))],jsonSchema:{...this.__def.jsonSchema,format:"ipv6"},errorMessage:e.resolveErrorMessage(s,t.getMessages().stringIpv6)})}nonempty(s){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckMin(1,e.resolveErrorMessage(s,t.getMessages().stringEmpty))],jsonSchema:{...this.__def.jsonSchema,minLength:Math.max(this.__def.jsonSchema?.minLength||0,1)},errorMessage:e.resolveErrorMessage(s,t.getMessages().stringEmpty)})}addFormat(s,t,r){return this.withDef({type:"string",checks:[...this.__def.checks,new VldCheckRegexFormat(s,t,e.resolveErrorMessage(r,`Invalid ${t}`))],jsonSchema:{...this.__def.jsonSchema,format:t,pattern:s.source},errorMessage:e.resolveErrorMessage(r,`Invalid ${t}`)})}uuidv4(e){return this.addFormat(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"uuid",e)}uuidv6(e){return this.addFormat(/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"uuid",e)}uuidv7(e){return this.addFormat(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"uuid",e)}emoji(e){return this.addFormat(/^(?:\p{Emoji_Presentation}|\p{Emoji}\uFE0F)(?:\u200D(?:\p{Emoji_Presentation}|\p{Emoji}\uFE0F))*$/u,"emoji",e)}base64(e){return this.addFormat(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,"base64",e)}base64url(e){return this.addFormat(/^[A-Za-z0-9_-]*$/,"base64url",e)}jwt(e){return this.addFormat(/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/,"jwt",e)}nanoid(e){return this.addFormat(/^[A-Za-z0-9_-]{21}$/,"nanoid",e)}cuid(e){return this.addFormat(/^c[^\s-]{8,}$/i,"cuid",e)}cuid2(e){return this.addFormat(/^[0-9a-z]+$/,"cuid2",e)}ulid(e){return this.addFormat(/^[0-9A-HJKMNP-TV-Z]{26}$/,"ulid",e)}cidrv4(e){return this.addFormat(/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:3[0-2]|[12]?[0-9])$/,"cidrv4",e)}cidrv6(e){return this.addFormat(/^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$|^(?:[0-9a-fA-F]{1,4}:){1,7}:\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,"cidrv6",e)}e164(e){return this.addFormat(/^\+[1-9]\d{1,14}$/,"e164",e)}xid(e){return this.addFormat(/^[A-HJKMNP-TV-Z0-9]{20}$/,"xid",e)}guid(e){return this.addFormat(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i,"guid",e)}ksuid(e){return this.addFormat(/^[0-9A-Za-z]{27}$/,"ksuid",e)}date(e){return this.addFormat(/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/,"date",e)}time(e){return this.addFormat(/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?$/,"time",e)}datetime(e){return this.addFormat(/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?Z?$/,"datetime",e)}duration(e){return this.addFormat(/^-?P(?!$)(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?=\d)(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$/,"duration",e)}}class VldCoerceStringV2 extends VldStringV2{constructor(s=i){super(s),this.validatorType=e.VLD_VALIDATOR_TYPES.COERCE_STRING}static create(){return new VldCoerceStringV2}parse(e){let s;if("string"==typeof e)s=e;else if("number"==typeof e)s=String(e);else if("boolean"==typeof e)s=e?"true":"false";else if("bigint"==typeof e)s=e.toString();else if("symbol"==typeof e)s=String(e);else{if(null==e)throw new Error(t.getMessages().coercionFailed("string",e));s=e instanceof Date?e.toISOString():Array.isArray(e)?e.join(","):e instanceof RegExp?e.toString():e instanceof Error?e.message||e.toString():String(e)}if(s.length>1e6)throw new Error(t.getMessages().coercionFailed("string",e));const r=s.replace(/[\x00-\x1F\x7F]/g,"");return super.parse(r)}}exports.VldCheckEmail=VldCheckEmail,exports.VldCheckEndsWith=VldCheckEndsWith,exports.VldCheckIncludes=VldCheckIncludes,exports.VldCheckIp=VldCheckIp,exports.VldCheckIpv4=VldCheckIpv4,exports.VldCheckIpv6=VldCheckIpv6,exports.VldCheckLength=VldCheckLength,exports.VldCheckMax=VldCheckMax,exports.VldCheckMin=VldCheckMin,exports.VldCheckRegex=VldCheckRegex,exports.VldCheckRegexFormat=VldCheckRegexFormat,exports.VldCheckStartsWith=VldCheckStartsWith,exports.VldCheckUrl=VldCheckUrl,exports.VldCheckUuid=VldCheckUuid,exports.VldCoerceStringV2=VldCoerceStringV2,exports.VldStringCheck=VldStringCheck,exports.VldStringV2=VldStringV2;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),s=require("../locales/runtime.cjs"),r=require("../chunks/ip-validation-BZqPamPC.cjs"),t=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");const i={email:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,url:/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,uuidv4:/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,uuidv6:/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,uuidv7:/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,emoji:/^(?:\p{Emoji_Presentation}|\p{Emoji}\uFE0F)(?:\u200D(?:\p{Emoji_Presentation}|\p{Emoji}\uFE0F))*$/u,base64:/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,base64url:/^[A-Za-z0-9_-]*$/,jwt:/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/,nanoid:/^[A-Za-z0-9_-]{21}$/,cuid:/^c[^\s-]{8,}$/i,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,cidrv4:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:3[0-2]|[12]?[0-9])$/,cidrv6:/^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$|^(?:[0-9a-fA-F]{1,4}:){1,7}:\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,e164:/^\+[1-9]\d{1,14}$/,xid:/^[A-HJKMNP-TV-Z0-9]{20}$/,guid:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i,ksuid:/^[0-9A-Za-z]{27}$/,isoDate:/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/,isoTime:/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?$/,isoDateTime:/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?Z?$/,isoDuration:/^-?P(?!$)(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?=\d)(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$/};class VldString extends e.VldBase{constructor(s){super(s?.validatorType||e.VLD_VALIDATOR_TYPES.STRING),this.config={checks:s?.checks||[],transforms:s?.transforms||[],errorMessage:s?.errorMessage,jsonSchema:s?.jsonSchema,checkMetas:s?.checkMetas},this._checks=this.config.checks,this._transforms=this.config.transforms,this._isSimple=0===this._checks.length&&0===this._transforms.length,this._checkMetas=this.config.checkMetas}static create(){return new VldString}get isSimple(){return this._isSimple}get minLength(){return this.config.jsonSchema?.minLength??null}get maxLength(){return this.config.jsonSchema?.maxLength??null}_createCheckIssue(e){switch(e.kind){case"min":return{code:"too_small",path:[],origin:"string",minimum:e.value,inclusive:!0,message:e.message||`Too small: expected string to have >=${e.value} characters`};case"max":return{code:"too_big",path:[],origin:"string",maximum:e.value,inclusive:!0,message:e.message||`Too big: expected string to have <=${e.value} characters`};case"length":return{code:"too_big",path:[],origin:"string",exact:e.value,message:e.message||`Too big: expected string to have exactly ${e.value} characters`};case"format":{const s={code:"invalid_format",path:[],origin:"string",format:e.format,message:e.message||`Invalid ${e.format}`};return void 0!==e.pattern&&(s.pattern=e.pattern),s}case"regex":{const s={code:"invalid_format",path:[],origin:"string",format:"regex",message:e.message||"Invalid string: does not match pattern"};return void 0!==e.pattern&&(s.pattern=e.pattern),s}default:return{code:"custom",path:[],message:e.message||"Invalid string"}}}_runChecks(e){const s=this._checks,r=this._checkMetas;for(let t=0;t<s.length;t++)if(!s[t](e))return r?.[t]??this._fallbackMeta();return null}_fallbackMeta(){return{kind:"other",message:this.config.errorMessage}}parse(e){if("string"!=typeof e)throw new t.VldError([t.createInvalidTypeIssue("string",t.getTypeName(e),this.config.errorMessage)]);return this._isSimple?e:this.parseKnownString(e)}parseKnownString(e){if(this._isSimple)return e;const s=this._transforms;let r=e;switch(s.length){case 0:break;case 1:r=s[0](r);break;case 2:r=s[1](s[0](r));break;case 3:r=s[2](s[1](s[0](r)));break;default:for(let e=0;e<s.length;e++)r=s[e](r)}const i=this._runChecks(r);if(i)throw new t.VldError([this._createCheckIssue(i)]);return r}safeParse(e){if("string"!=typeof e)return{success:!1,error:new t.VldError([t.createInvalidTypeIssue("string",t.getTypeName(e),this.config.errorMessage)])};if(this._isSimple)return{success:!0,data:e};try{return{success:!0,data:this.parseKnownString(e)}}catch(e){return e instanceof t.VldError?{success:!1,error:e}:{success:!1,error:(s=e.message,new t.VldError([{code:"invalid_string",path:[],message:s}]))}}var s}min(r,t){return new VldString({checks:[...this.config.checks,e=>e.length>=r],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringMin(r)),jsonSchema:{...this.config.jsonSchema,minLength:r},checkMetas:[...this.config.checkMetas??[],{kind:"min",value:r,message:e.resolveErrorMessage(t,s.getMessages().stringMin(r))}]})}max(r,t){return new VldString({checks:[...this.config.checks,e=>e.length<=r],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringMax(r)),jsonSchema:{...this.config.jsonSchema,maxLength:r},checkMetas:[...this.config.checkMetas??[],{kind:"max",value:r,message:e.resolveErrorMessage(t,s.getMessages().stringMax(r))}]})}length(r,t){return new VldString({checks:[...this.config.checks,e=>e.length===r],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringLength(r)),jsonSchema:{...this.config.jsonSchema,exactLength:r},checkMetas:[...this.config.checkMetas??[],{kind:"length",value:r,message:e.resolveErrorMessage(t,s.getMessages().stringLength(r))}]})}email(r){return new VldString({checks:[...this.config.checks,e=>i.email.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringEmail),jsonSchema:{...this.config.jsonSchema,format:"email"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"email",message:e.resolveErrorMessage(r,s.getMessages().stringEmail)}]})}url(r){return new VldString({checks:[...this.config.checks,e=>i.url.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringUrl),jsonSchema:{...this.config.jsonSchema,format:"uri"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"url",message:e.resolveErrorMessage(r,s.getMessages().stringUrl)}]})}uuid(r){return new VldString({checks:[...this.config.checks,e=>i.uuid.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringUuid),jsonSchema:{...this.config.jsonSchema,format:"uuid"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"uuid",message:e.resolveErrorMessage(r,s.getMessages().stringUuid)}]})}format(s,r,t){return new VldString({checks:[...this.config.checks,e=>s.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,`Invalid ${r}`),jsonSchema:{...this.config.jsonSchema,format:r,pattern:s.source},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:r,pattern:s.source,message:e.resolveErrorMessage(t,`Invalid ${r}`)}]})}uuidv4(e){return this.format(i.uuidv4,"uuid",e)}uuidv6(e){return this.format(i.uuidv6,"uuid",e)}uuidv7(e){return this.format(i.uuidv7,"uuid",e)}emoji(e){return this.format(i.emoji,"emoji",e)}base64(e){return this.format(i.base64,"base64",e)}base64url(e){return this.format(i.base64url,"base64url",e)}jwt(e){return this.format(i.jwt,"jwt",e)}nanoid(e){return this.format(i.nanoid,"nanoid",e)}cuid(e){return this.format(i.cuid,"cuid",e)}cuid2(e){return this.format(i.cuid2,"cuid2",e)}ulid(e){return this.format(i.ulid,"ulid",e)}cidrv4(e){return this.format(i.cidrv4,"cidrv4",e)}cidrv6(e){return this.format(i.cidrv6,"cidrv6",e)}e164(e){return this.format(i.e164,"e164",e)}xid(e){return this.format(i.xid,"xid",e)}guid(e){return this.format(i.guid,"guid",e)}ksuid(e){return this.format(i.ksuid,"ksuid",e)}date(e){return this.format(i.isoDate,"date",e)}time(e){return this.format(i.isoTime,"time",e)}datetime(e){return this.format(i.isoDateTime,"datetime",e)}duration(e){return this.format(i.isoDuration,"duration",e)}regex(r,t){return new VldString({checks:[...this.config.checks,e=>r.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringRegex),jsonSchema:{...this.config.jsonSchema,pattern:r.source},checkMetas:[...this.config.checkMetas??[],{kind:"regex",pattern:r.source,message:e.resolveErrorMessage(t,s.getMessages().stringRegex)}]})}trim(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.trim()],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}toLowerCase(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toLowerCase()],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}lowercase(){return this.toLowerCase()}toUpperCase(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toUpperCase()],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}uppercase(){return this.toUpperCase()}normalize(e){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,s=>s.normalize(e)],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}slugify(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}startsWith(r,t){return new VldString({checks:[...this.config.checks,e=>e.startsWith(r)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringStartsWith(r)),jsonSchema:this.config.jsonSchema})}endsWith(r,t){return new VldString({checks:[...this.config.checks,e=>e.endsWith(r)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringEndsWith(r)),jsonSchema:this.config.jsonSchema})}includes(r,t){return new VldString({checks:[...this.config.checks,e=>e.includes(r)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringIncludes(r)),jsonSchema:this.config.jsonSchema})}ip(t){return new VldString({checks:[...this.config.checks,e=>!(e.length>100)&&(i.ipv4.test(e)||r.isValidIPv6(e))],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringIp),jsonSchema:{...this.config.jsonSchema,format:"ip"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"ip",message:e.resolveErrorMessage(t,s.getMessages().stringIp)}]})}ipv4(r){return new VldString({checks:[...this.config.checks,e=>i.ipv4.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringIpv4),jsonSchema:{...this.config.jsonSchema,format:"ipv4"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"ipv4",message:e.resolveErrorMessage(r,s.getMessages().stringIpv4)}]})}ipv6(t){return new VldString({checks:[...this.config.checks,e=>r.isValidIPv6(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringIpv6),jsonSchema:{...this.config.jsonSchema,format:"ipv6"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"ipv6",message:e.resolveErrorMessage(t,s.getMessages().stringIpv6)}]})}nonempty(r){return new VldString({checks:[...this.config.checks,e=>e.length>0],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringEmpty),jsonSchema:{...this.config.jsonSchema,minLength:Math.max(this.config.jsonSchema?.minLength||0,1)},checkMetas:[...this.config.checkMetas??[],{kind:"min",value:1,message:e.resolveErrorMessage(r,s.getMessages().stringEmpty)}]})}}exports.VldString=VldString;
1
+ "use strict";var e=require("./base.cjs"),s=require("../locales/runtime.cjs"),r=require("../chunks/ip-validation-BZqPamPC.cjs"),t=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs"),require("../locales/en.cjs");const i={email:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,url:/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,uuidv4:/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,uuidv6:/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,uuidv7:/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,emoji:/^(?:\p{Emoji_Presentation}|\p{Emoji}\uFE0F)(?:\u200D(?:\p{Emoji_Presentation}|\p{Emoji}\uFE0F))*$/u,base64:/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,base64url:/^[A-Za-z0-9_-]*$/,jwt:/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/,nanoid:/^[A-Za-z0-9_-]{21}$/,cuid:/^c[^\s-]{8,}$/i,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,cidrv4:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(?:3[0-2]|[12]?[0-9])$/,cidrv6:/^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$|^(?:[0-9a-fA-F]{1,4}:){1,7}:\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,e164:/^\+[1-9]\d{1,14}$/,xid:/^[A-HJKMNP-TV-Z0-9]{20}$/,guid:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i,ksuid:/^[0-9A-Za-z]{27}$/,isoDate:/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/,isoTime:/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?$/,isoDateTime:/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?Z?$/,isoDuration:/^-?P(?!$)(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?(?:T(?=\d)(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$/};class VldString extends e.VldBase{constructor(s){super(s?.validatorType||e.VLD_VALIDATOR_TYPES.STRING),this.config={checks:s?.checks||[],transforms:s?.transforms||[],errorMessage:s?.errorMessage,jsonSchema:s?.jsonSchema,checkMetas:s?.checkMetas},this._checks=this.config.checks,this._transforms=this.config.transforms,this._isSimple=0===this._checks.length&&0===this._transforms.length,this._checkMetas=this.config.checkMetas}static create(){return new VldString}get isSimple(){return this._isSimple}get minLength(){return this.config.jsonSchema?.minLength??null}get maxLength(){return this.config.jsonSchema?.maxLength??null}_createCheckIssue(e){switch(e.kind){case"min":return{code:"too_small",path:[],origin:"string",minimum:e.value,inclusive:!0,message:e.message||`Too small: expected string to have >=${e.value} characters`};case"max":return{code:"too_big",path:[],origin:"string",maximum:e.value,inclusive:!0,message:e.message||`Too big: expected string to have <=${e.value} characters`};case"length":return{code:"too_big",path:[],origin:"string",exact:e.value,message:e.message||`Too big: expected string to have exactly ${e.value} characters`};case"format":{const s={code:"invalid_format",path:[],origin:"string",format:e.format,message:e.message||`Invalid ${e.format}`};return void 0!==e.pattern&&(s.pattern=e.pattern),s}case"regex":{const s={code:"invalid_format",path:[],origin:"string",format:"regex",message:e.message||"Invalid string: does not match pattern"};return void 0!==e.pattern&&(s.pattern=e.pattern),s}default:return{code:"custom",path:[],message:e.message||"Invalid string"}}}_runChecks(e){const s=this._checks,r=this._checkMetas;for(let t=0;t<s.length;t++)if(!s[t](e))return r?.[t]??this._fallbackMeta();return null}_fallbackMeta(){return{kind:"other",message:this.config.errorMessage}}parse(e){if("string"!=typeof e)throw new t.VldError([t.createInvalidTypeIssue("string",t.getTypeName(e),this.config.errorMessage)]);return this._isSimple?e:this.parseKnownString(e)}parseKnownString(e){if(this._isSimple)return e;const s=this._transforms;let r=e;switch(s.length){case 0:break;case 1:r=s[0](r);break;case 2:r=s[1](s[0](r));break;case 3:r=s[2](s[1](s[0](r)));break;default:for(let e=0;e<s.length;e++)r=s[e](r)}const i=this._runChecks(r);if(i)throw new t.VldError([this._createCheckIssue(i)]);return r}safeParse(e){if("string"!=typeof e)return{success:!1,error:new t.VldError([t.createInvalidTypeIssue("string",t.getTypeName(e),this.config.errorMessage)])};if(this._isSimple)return{success:!0,data:e};try{return{success:!0,data:this.parseKnownString(e)}}catch(e){return e instanceof t.VldError?{success:!1,error:e}:{success:!1,error:(s=e.message,new t.VldError([{code:"invalid_string",path:[],message:s}]))}}var s}min(r,t){return new VldString({checks:[...this.config.checks,e=>e.length>=r],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringMin(r)),jsonSchema:{...this.config.jsonSchema,minLength:r},checkMetas:[...this.config.checkMetas??[],{kind:"min",value:r,message:e.resolveErrorMessage(t,s.getMessages().stringMin(r))}]})}max(r,t){return new VldString({checks:[...this.config.checks,e=>e.length<=r],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringMax(r)),jsonSchema:{...this.config.jsonSchema,maxLength:r},checkMetas:[...this.config.checkMetas??[],{kind:"max",value:r,message:e.resolveErrorMessage(t,s.getMessages().stringMax(r))}]})}length(r,t){return new VldString({checks:[...this.config.checks,e=>e.length===r],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringLength(r)),jsonSchema:{...this.config.jsonSchema,exactLength:r},checkMetas:[...this.config.checkMetas??[],{kind:"length",value:r,message:e.resolveErrorMessage(t,s.getMessages().stringLength(r))}]})}email(r){return new VldString({checks:[...this.config.checks,e=>i.email.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringEmail),jsonSchema:{...this.config.jsonSchema,format:"email"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"email",message:e.resolveErrorMessage(r,s.getMessages().stringEmail)}]})}url(r){return new VldString({checks:[...this.config.checks,e=>i.url.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringUrl),jsonSchema:{...this.config.jsonSchema,format:"uri"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"url",message:e.resolveErrorMessage(r,s.getMessages().stringUrl)}]})}uuid(r){return new VldString({checks:[...this.config.checks,e=>i.uuid.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringUuid),jsonSchema:{...this.config.jsonSchema,format:"uuid"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"uuid",message:e.resolveErrorMessage(r,s.getMessages().stringUuid)}]})}format(s,r,t){return new VldString({checks:[...this.config.checks,e=>s.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,`Invalid ${r}`),jsonSchema:{...this.config.jsonSchema,format:r,pattern:s.source},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:r,pattern:s.source,message:e.resolveErrorMessage(t,`Invalid ${r}`)}]})}uuidv4(e){return this.format(i.uuidv4,"uuid",e)}uuidv6(e){return this.format(i.uuidv6,"uuid",e)}uuidv7(e){return this.format(i.uuidv7,"uuid",e)}emoji(e){return this.format(i.emoji,"emoji",e)}base64(e){return this.format(i.base64,"base64",e)}base64url(e){return this.format(i.base64url,"base64url",e)}jwt(e){return this.format(i.jwt,"jwt",e)}nanoid(e){return this.format(i.nanoid,"nanoid",e)}cuid(e){return this.format(i.cuid,"cuid",e)}cuid2(e){return this.format(i.cuid2,"cuid2",e)}ulid(e){return this.format(i.ulid,"ulid",e)}cidrv4(e){return this.format(i.cidrv4,"cidrv4",e)}cidrv6(e){return this.format(i.cidrv6,"cidrv6",e)}e164(e){return this.format(i.e164,"e164",e)}xid(e){return this.format(i.xid,"xid",e)}guid(e){return this.format(i.guid,"guid",e)}ksuid(e){return this.format(i.ksuid,"ksuid",e)}date(e){return this.format(i.isoDate,"date",e)}time(e){return this.format(i.isoTime,"time",e)}datetime(e){return this.format(i.isoDateTime,"datetime",e)}duration(e){return this.format(i.isoDuration,"duration",e)}regex(r,t){return new VldString({checks:[...this.config.checks,e=>r.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringRegex),jsonSchema:{...this.config.jsonSchema,pattern:r.source},checkMetas:[...this.config.checkMetas??[],{kind:"regex",pattern:r.source,message:e.resolveErrorMessage(t,s.getMessages().stringRegex)}]})}trim(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.trim()],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}toLowerCase(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toLowerCase()],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}lowercase(){return this.toLowerCase()}toUpperCase(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toUpperCase()],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}uppercase(){return this.toUpperCase()}normalize(e){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,s=>s.normalize(e)],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}slugify(){return new VldString({checks:this.config.checks,transforms:[...this.config.transforms,e=>e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")],errorMessage:this.config.errorMessage,jsonSchema:this.config.jsonSchema})}startsWith(r,t){return new VldString({checks:[...this.config.checks,e=>e.startsWith(r)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringStartsWith(r)),jsonSchema:this.config.jsonSchema})}endsWith(r,t){return new VldString({checks:[...this.config.checks,e=>e.endsWith(r)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringEndsWith(r)),jsonSchema:this.config.jsonSchema})}includes(r,t){return new VldString({checks:[...this.config.checks,e=>e.includes(r)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringIncludes(r)),jsonSchema:this.config.jsonSchema})}ip(t){return new VldString({checks:[...this.config.checks,e=>!(e.length>100)&&(i.ipv4.test(e)||r.isValidIPv6(e))],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringIp),jsonSchema:{...this.config.jsonSchema,format:"ip"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"ip",message:e.resolveErrorMessage(t,s.getMessages().stringIp)}]})}ipv4(r){return new VldString({checks:[...this.config.checks,e=>i.ipv4.test(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringIpv4),jsonSchema:{...this.config.jsonSchema,format:"ipv4"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"ipv4",message:e.resolveErrorMessage(r,s.getMessages().stringIpv4)}]})}ipv6(t){return new VldString({checks:[...this.config.checks,e=>r.isValidIPv6(e)],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(t,s.getMessages().stringIpv6),jsonSchema:{...this.config.jsonSchema,format:"ipv6"},checkMetas:[...this.config.checkMetas??[],{kind:"format",format:"ipv6",message:e.resolveErrorMessage(t,s.getMessages().stringIpv6)}]})}nonempty(r){return new VldString({checks:[...this.config.checks,e=>e.length>0],transforms:this.config.transforms,errorMessage:e.resolveErrorMessage(r,s.getMessages().stringEmpty),jsonSchema:{...this.config.jsonSchema,minLength:Math.max(this.config.jsonSchema?.minLength||0,1)},checkMetas:[...this.config.checkMetas??[],{kind:"min",value:1,message:e.resolveErrorMessage(r,s.getMessages().stringEmpty)}]})}}exports.VldString=VldString;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldSymbol extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.SYMBOL),this.errorMessage=r}static create(){return new VldSymbol}get isSimple(){return!0}parse(e){if("symbol"!=typeof e)throw new Error(this.errorMessage||r.getMessages().invalidSymbol);return e}parseKnownSymbol(e){return e}safeParse(e){return"symbol"==typeof e?{success:!0,data:e}:{success:!1,error:(t=this.errorMessage||r.getMessages().invalidSymbol,new s.VldError([{code:"invalid_type",path:[],message:t}]))};var t}}exports.VldSymbol=VldSymbol;
1
+ "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldSymbol extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.SYMBOL),this.errorMessage=r}static create(){return new VldSymbol}get isSimple(){return!0}parse(e){if("symbol"!=typeof e)throw new Error(this.errorMessage||r.getMessages().invalidSymbol);return e}parseKnownSymbol(e){return e}safeParse(e){return"symbol"==typeof e?{success:!0,data:e}:{success:!1,error:(t=this.errorMessage||r.getMessages().invalidSymbol,new s.VldError([{code:"invalid_type",path:[],message:t}]))};var t}}exports.VldSymbol=VldSymbol;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs");require("../registry.cjs"),require("../chunks/errors-core-DrydF46s.cjs"),require("../locales/en.cjs");class VldTemplateLiteral extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.TEMPLATE_LITERAL),this.pattern=r}static create(...e){let r="^";for(const s of e)r+="string"==typeof s?s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):t(s);return r+="$",new VldTemplateLiteral(new RegExp(r))}parse(e){if("string"!=typeof e)throw new Error(r.getMessages().invalidString);if(!this.pattern.test(e))throw new Error(r.getMessages().stringPatternInvalid);return e}safeParse(r){try{return{success:!0,data:this.parse(r)}}catch(r){return{success:!1,error:e.ensureVldError(r)}}}}function t(r){switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:case e.VLD_VALIDATOR_TYPES.STRING_FORMAT:return"(.+)";case e.VLD_VALIDATOR_TYPES.NUMBER:case e.VLD_VALIDATOR_TYPES.COERCE_NUMBER:return"(-?\\d+(?:\\.\\d+)?)";case e.VLD_VALIDATOR_TYPES.BIGINT:case e.VLD_VALIDATOR_TYPES.COERCE_BIGINT:return"(-?\\d+)";case e.VLD_VALIDATOR_TYPES.BOOLEAN:case e.VLD_VALIDATOR_TYPES.COERCE_BOOLEAN:return"(true|false)";case e.VLD_VALIDATOR_TYPES.NULL:return"(null)";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"(undefined)";case e.VLD_VALIDATOR_TYPES.LITERAL:{const e=r;if(void 0!==e.literal){return"("+String(e.literal).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+")"}break}}return"(.+)"}exports.VldTemplateLiteral=VldTemplateLiteral,exports.templateLiteral=function(...e){return VldTemplateLiteral.create(...e)};
1
+ "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs");require("../registry.cjs"),require("../chunks/errors-core-C0mA6tfa.cjs"),require("../locales/en.cjs");class VldTemplateLiteral extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.TEMPLATE_LITERAL),this.pattern=r}static create(...e){let r="^";for(const s of e)r+="string"==typeof s?s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):t(s);return r+="$",new VldTemplateLiteral(new RegExp(r))}parse(e){if("string"!=typeof e)throw new Error(r.getMessages().invalidString);if(!this.pattern.test(e))throw new Error(r.getMessages().stringPatternInvalid);return e}safeParse(r){try{return{success:!0,data:this.parse(r)}}catch(r){return{success:!1,error:e.ensureVldError(r)}}}}function t(r){switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:case e.VLD_VALIDATOR_TYPES.STRING_FORMAT:return"(.+)";case e.VLD_VALIDATOR_TYPES.NUMBER:case e.VLD_VALIDATOR_TYPES.COERCE_NUMBER:return"(-?\\d+(?:\\.\\d+)?)";case e.VLD_VALIDATOR_TYPES.BIGINT:case e.VLD_VALIDATOR_TYPES.COERCE_BIGINT:return"(-?\\d+)";case e.VLD_VALIDATOR_TYPES.BOOLEAN:case e.VLD_VALIDATOR_TYPES.COERCE_BOOLEAN:return"(true|false)";case e.VLD_VALIDATOR_TYPES.NULL:return"(null)";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"(undefined)";case e.VLD_VALIDATOR_TYPES.LITERAL:{const e=r;if(void 0!==e.literal){return"("+String(e.literal).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+")"}break}}return"(.+)"}exports.VldTemplateLiteral=VldTemplateLiteral,exports.templateLiteral=function(...e){return VldTemplateLiteral.create(...e)};
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),t=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DrydF46s.cjs");function r(e){return new s.VldError([{code:"invalid_array",path:[],message:e}])}require("../registry.cjs"),require("../locales/en.cjs");class VldTuple extends e.VldBase{constructor(t,s,r=null){super(e.VLD_VALIDATOR_TYPES.TUPLE),this.validators=t,this.errorMessage=s,this.restValidator=r,this._length=t.length,this._validatorTypes=t.map(e=>e.validatorType),this._simpleItemModes=t.map((e,t)=>this.getSimpleItemMode(e,this._validatorTypes[t])),this._simpleItemValues=t.map((e,t)=>"literal"===this._simpleItemModes[t]?e.literal:void 0)}get items(){return this.validators}getSimpleItemMode(t,s){if(!0===t.isSimple)switch(s){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleItemError(e,s,r){switch(e){case"string":return t.getMessages().invalidString;case"number":return t.getMessages().invalidNumber;case"boolean":return t.getMessages().invalidBoolean;case"bigint":return t.getMessages().invalidBigint;case"symbol":return t.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof r;case"undefinedValue":return t.getMessages().expectedUndefined;case"literal":return t.getMessages().literalExpected(JSON.stringify(s),JSON.stringify(r));default:return t.getMessages().invalidTuple}}static create(...e){return new VldTuple(e)}rest(e){return new VldTuple(this.validators,this.errorMessage,e)}parse(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);return this.parseKnownTuple(e)}parseKnownTuple(e){if(null===this.restValidator&&e.length!==this._length||null!==this.restValidator&&e.length<this._length)throw new Error(this.errorMessage||t.getMessages().tupleLength(this._length,e.length));const s=new Array(e.length);for(let r=0;r<this._length;r++){const a=this._simpleItemModes[r],i=e[r];if(void 0!==a)switch(a){case"string":if("string"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidString));s[r]=i;continue;case"number":if("number"!=typeof i||isNaN(i))throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidNumber));s[r]=i;continue;case"boolean":if("boolean"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidBoolean));s[r]=i;continue;case"bigint":if("bigint"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidBigint));s[r]=i;continue;case"symbol":if("symbol"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidSymbol));s[r]=i;continue;case"null":if(null!==i)throw new Error(t.getMessages().arrayItem(r,this.getSimpleItemError(a,void 0,i)));s[r]=null;continue;case"undefinedValue":if(void 0!==i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().expectedUndefined));s[r]=void 0;continue;case"literal":{const e=this._simpleItemValues[r];if(i!==e)throw new Error(t.getMessages().arrayItem(r,this.getSimpleItemError(a,e,i)));s[r]=e;continue}case"passthrough":s[r]=i;continue}try{const e=this.validators[r];s[r]=e.parse(i)}catch(e){throw new Error(t.getMessages().arrayItem(r,e.message))}}if(this.restValidator)for(let r=this._length;r<e.length;r++)try{s[r]=this.restValidator.parse(e[r])}catch(e){throw new Error(t.getMessages().arrayItem(r,e.message))}return s}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:r(e.message)}}}encode(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);this.validateEncodedLength(e.length);const s=new Array(e.length);for(let t=0;t<this._length;t++)s[t]=this.validators[t].encode(e[t]);if(this.restValidator)for(let t=this._length;t<e.length;t++)s[t]=this.restValidator.encode(e[t]);return s}safeEncode(e){try{return{success:!0,data:this.encode(e)}}catch(e){return{success:!1,error:r(e.message)}}}async encodeAsync(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);this.validateEncodedLength(e.length);const s=new Array(e.length);for(let t=0;t<this._length;t++)s[t]=await this.validators[t].encodeAsync(e[t]);if(this.restValidator)for(let t=this._length;t<e.length;t++)s[t]=await this.restValidator.encodeAsync(e[t]);return s}async safeEncodeAsync(e){try{return{success:!0,data:await this.encodeAsync(e)}}catch(e){return{success:!1,error:r(e.message)}}}validateEncodedLength(e){if(null===this.restValidator&&e!==this._length||null!==this.restValidator&&e<this._length)throw new Error(this.errorMessage||t.getMessages().tupleLength(this._length,e))}}exports.VldTuple=VldTuple;
1
+ "use strict";var e=require("./base.cjs"),t=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-C0mA6tfa.cjs");function r(e){return new s.VldError([{code:"invalid_array",path:[],message:e}])}require("../registry.cjs"),require("../locales/en.cjs");class VldTuple extends e.VldBase{constructor(t,s,r=null){super(e.VLD_VALIDATOR_TYPES.TUPLE),this.validators=t,this.errorMessage=s,this.restValidator=r,this._length=t.length,this._validatorTypes=t.map(e=>e.validatorType),this._simpleItemModes=t.map((e,t)=>this.getSimpleItemMode(e,this._validatorTypes[t])),this._simpleItemValues=t.map((e,t)=>"literal"===this._simpleItemModes[t]?e.literal:void 0)}get items(){return this.validators}getSimpleItemMode(t,s){if(!0===t.isSimple)switch(s){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleItemError(e,s,r){switch(e){case"string":return t.getMessages().invalidString;case"number":return t.getMessages().invalidNumber;case"boolean":return t.getMessages().invalidBoolean;case"bigint":return t.getMessages().invalidBigint;case"symbol":return t.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof r;case"undefinedValue":return t.getMessages().expectedUndefined;case"literal":return t.getMessages().literalExpected(JSON.stringify(s),JSON.stringify(r));default:return t.getMessages().invalidTuple}}static create(...e){return new VldTuple(e)}rest(e){return new VldTuple(this.validators,this.errorMessage,e)}parse(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);return this.parseKnownTuple(e)}parseKnownTuple(e){if(null===this.restValidator&&e.length!==this._length||null!==this.restValidator&&e.length<this._length)throw new Error(this.errorMessage||t.getMessages().tupleLength(this._length,e.length));const s=new Array(e.length);for(let r=0;r<this._length;r++){const a=this._simpleItemModes[r],i=e[r];if(void 0!==a)switch(a){case"string":if("string"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidString));s[r]=i;continue;case"number":if("number"!=typeof i||isNaN(i))throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidNumber));s[r]=i;continue;case"boolean":if("boolean"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidBoolean));s[r]=i;continue;case"bigint":if("bigint"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidBigint));s[r]=i;continue;case"symbol":if("symbol"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidSymbol));s[r]=i;continue;case"null":if(null!==i)throw new Error(t.getMessages().arrayItem(r,this.getSimpleItemError(a,void 0,i)));s[r]=null;continue;case"undefinedValue":if(void 0!==i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().expectedUndefined));s[r]=void 0;continue;case"literal":{const e=this._simpleItemValues[r];if(i!==e)throw new Error(t.getMessages().arrayItem(r,this.getSimpleItemError(a,e,i)));s[r]=e;continue}case"passthrough":s[r]=i;continue}try{const e=this.validators[r];s[r]=e.parse(i)}catch(e){throw new Error(t.getMessages().arrayItem(r,e.message))}}if(this.restValidator)for(let r=this._length;r<e.length;r++)try{s[r]=this.restValidator.parse(e[r])}catch(e){throw new Error(t.getMessages().arrayItem(r,e.message))}return s}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:r(e.message)}}}encode(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);this.validateEncodedLength(e.length);const s=new Array(e.length);for(let t=0;t<this._length;t++)s[t]=this.validators[t].encode(e[t]);if(this.restValidator)for(let t=this._length;t<e.length;t++)s[t]=this.restValidator.encode(e[t]);return s}safeEncode(e){try{return{success:!0,data:this.encode(e)}}catch(e){return{success:!1,error:r(e.message)}}}async encodeAsync(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);this.validateEncodedLength(e.length);const s=new Array(e.length);for(let t=0;t<this._length;t++)s[t]=await this.validators[t].encodeAsync(e[t]);if(this.restValidator)for(let t=this._length;t<e.length;t++)s[t]=await this.restValidator.encodeAsync(e[t]);return s}async safeEncodeAsync(e){try{return{success:!0,data:await this.encodeAsync(e)}}catch(e){return{success:!1,error:r(e.message)}}}validateEncodedLength(e){if(null===this.restValidator&&e!==this._length||null!==this.restValidator&&e<this._length)throw new Error(this.errorMessage||t.getMessages().tupleLength(this._length,e))}}exports.VldTuple=VldTuple;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),r=require("../errors.cjs"),t=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../pigment.cjs"),require("../locales/en.cjs");class VldUint8Array extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.UINT8_ARRAY),this.config=r||{}}parse(e){const r=this.safeParse(e);if(!r.success)throw r.error;return r.data}safeParse(e){return e instanceof Uint8Array?void 0!==this.config.exactLength&&e.length!==this.config.exactLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayExactLength(this.config.exactLength))])}:void 0!==this.config.minLength&&e.length<this.config.minLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayMinLength(this.config.minLength))])}:void 0!==this.config.maxLength&&e.length>this.config.maxLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayMaxLength(this.config.maxLength))])}:{success:!0,data:e}:{success:!1,error:new s.VldError([r.createIssue("invalid_type",[],t.getMessages().expectedUint8Array)])}}min(e){return new VldUint8Array({...this.config,minLength:e})}max(e){return new VldUint8Array({...this.config,maxLength:e})}length(e){return new VldUint8Array({exactLength:e,minLength:void 0,maxLength:void 0})}static create(){return new VldUint8Array}}exports.VldUint8Array=VldUint8Array;
1
+ "use strict";var e=require("./base.cjs"),r=require("../errors.cjs"),t=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs"),require("../pigment.cjs"),require("../locales/en.cjs");class VldUint8Array extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.UINT8_ARRAY),this.config=r||{}}parse(e){const r=this.safeParse(e);if(!r.success)throw r.error;return r.data}safeParse(e){return e instanceof Uint8Array?void 0!==this.config.exactLength&&e.length!==this.config.exactLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayExactLength(this.config.exactLength))])}:void 0!==this.config.minLength&&e.length<this.config.minLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayMinLength(this.config.minLength))])}:void 0!==this.config.maxLength&&e.length>this.config.maxLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayMaxLength(this.config.maxLength))])}:{success:!0,data:e}:{success:!1,error:new s.VldError([r.createIssue("invalid_type",[],t.getMessages().expectedUint8Array)])}}min(e){return new VldUint8Array({...this.config,minLength:e})}max(e){return new VldUint8Array({...this.config,maxLength:e})}length(e){return new VldUint8Array({exactLength:e,minLength:void 0,maxLength:void 0})}static create(){return new VldUint8Array}}exports.VldUint8Array=VldUint8Array;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),r=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs");class VldUndefined extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.UNDEFINED)}static create(){return new VldUndefined}get isSimple(){return!0}parse(e){if(void 0!==e)throw new Error("Expected undefined, received "+typeof e)}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:(s=e.message,new r.VldError([{code:"invalid_type",path:[],message:s}]))}}var s}}exports.VldUndefined=VldUndefined;
1
+ "use strict";var e=require("./base.cjs"),r=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs");class VldUndefined extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.UNDEFINED)}static create(){return new VldUndefined}get isSimple(){return!0}parse(e){if(void 0!==e)throw new Error("Expected undefined, received "+typeof e)}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:(s=e.message,new r.VldError([{code:"invalid_type",path:[],message:s}]))}}var s}}exports.VldUndefined=VldUndefined;
@@ -0,0 +1 @@
1
+ "use strict";var e=require("./base.cjs"),r=require("../chunks/errors-core-C0mA6tfa.cjs"),s=require("../locales/runtime.cjs");function t(r){if(!0===r.isSimple)switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefined";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}function n(r){switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return e=>"string"==typeof e;case e.VLD_VALIDATOR_TYPES.NUMBER:return e=>"number"==typeof e&&!isNaN(e);case e.VLD_VALIDATOR_TYPES.BOOLEAN:return e=>"boolean"==typeof e;case e.VLD_VALIDATOR_TYPES.BIGINT:return e=>"bigint"==typeof e;case e.VLD_VALIDATOR_TYPES.SYMBOL:return e=>"symbol"==typeof e;case e.VLD_VALIDATOR_TYPES.NAN:return e=>"number"==typeof e&&Number.isNaN(e);case e.VLD_VALIDATOR_TYPES.ARRAY:return Array.isArray;case e.VLD_VALIDATOR_TYPES.OBJECT:return e=>"object"==typeof e&&null!==e&&!Array.isArray(e);case e.VLD_VALIDATOR_TYPES.NULL:return e=>null===e;case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return e=>void 0===e;case e.VLD_VALIDATOR_TYPES.ENUM:return e=>"string"==typeof e||"number"==typeof e;case e.VLD_VALIDATOR_TYPES.LITERAL:{const e=r.literal;return r=>r===e}case e.VLD_VALIDATOR_TYPES.NEVER:return()=>!1;case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:default:return()=>!0}}require("../registry.cjs"),require("../locales/en.cjs");class VldUnionV2 extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.UNION),this.__def=function(e,r){const s=e.map(n),a=e.map(t),c=e.map((e,r)=>"literal"===a[r]?e.literal:void 0);return{type:"union",validators:e,typeCheckers:s,simpleModes:a,simpleValues:c,errorMessage:r}}(r,s)}static create(...e){return new VldUnionV2(e)}get options(){return this.__def.validators}parse(e){const r=[],{validators:t,typeCheckers:n,simpleModes:a,simpleValues:c}=this.__def;for(let s=0;s<t.length;s++){const u=t[s],V=n[s];if(V&&!V(e))continue;const i=a[s];if(void 0!==i)switch(i){case"string":case"number":case"boolean":case"bigint":case"symbol":case"passthrough":return e;case"null":return null;case"undefined":return;case"literal":return c[s]}try{return u.parse(e)}catch(e){r.push(e instanceof Error?e.message:String(e))}}throw new Error(this.__def.errorMessage||s.getMessages().unionNoMatch(r))}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:e instanceof r.VldError?e:new r.VldError([{code:"custom",path:[],message:e.message}])}}}}exports.VldUnionV2=VldUnionV2;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs");require("../registry.cjs"),require("../chunks/errors-core-DrydF46s.cjs"),require("../locales/en.cjs");class VldUnion extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.UNION),this.validators=r,this.errorMessage=s,this.typeCheckers=r.map(e=>this.createTypeChecker(e)),this.simpleModes=r.map(e=>this.createSimpleMode(e)),this.simpleValues=r.map((e,r)=>"literal"===this.simpleModes[r]?e.literal:void 0)}get options(){return this.validators}createSimpleMode(r){if(!0===r.isSimple)switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefined";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}parseSimpleValue(e,r,s){switch(e){case"string":case"number":case"boolean":case"bigint":case"symbol":case"passthrough":return s;case"null":return null;case"undefined":default:return;case"literal":return this.simpleValues[r]}}createTypeChecker(r){switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return e=>"string"==typeof e;case e.VLD_VALIDATOR_TYPES.NUMBER:return e=>"number"==typeof e&&!isNaN(e);case e.VLD_VALIDATOR_TYPES.BOOLEAN:return e=>"boolean"==typeof e;case e.VLD_VALIDATOR_TYPES.BIGINT:return e=>"bigint"==typeof e;case e.VLD_VALIDATOR_TYPES.SYMBOL:return e=>"symbol"==typeof e;case e.VLD_VALIDATOR_TYPES.NAN:return e=>"number"==typeof e&&Number.isNaN(e);case e.VLD_VALIDATOR_TYPES.ARRAY:return Array.isArray;case e.VLD_VALIDATOR_TYPES.OBJECT:return e=>"object"==typeof e&&null!==e&&!Array.isArray(e);case e.VLD_VALIDATOR_TYPES.NULL:return e=>null===e;case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return e=>void 0===e;case e.VLD_VALIDATOR_TYPES.ENUM:return e=>"string"==typeof e||"number"==typeof e;case e.VLD_VALIDATOR_TYPES.LITERAL:{const e=r.literal;return r=>r===e}case e.VLD_VALIDATOR_TYPES.NEVER:return()=>!1;case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:default:return()=>!0}}static create(...e){return new VldUnion(e)}parse(e){const s=[];for(let r=0;r<this.validators.length;r++){const t=this.validators[r],a=this.typeCheckers[r];if(a&&!a(e))continue;const n=this.simpleModes[r];if(void 0!==n)return this.parseSimpleValue(n,r,e);try{return t.parse(e)}catch(e){const r=e instanceof Error?e.message:String(e);s.push(r)}}throw new Error(this.errorMessage||r.getMessages().unionNoMatch(s))}safeParse(s){const t=[];for(let e=0;e<this.validators.length;e++){const r=this.validators[e],a=this.typeCheckers[e];if(a&&!a(s))continue;const n=this.simpleModes[e];if(void 0!==n)return{success:!0,data:this.parseSimpleValue(n,e,s)};try{return{success:!0,data:r.parse(s)}}catch(e){const r=e instanceof Error?e.message:String(e);t.push(r)}}return{success:!1,error:e.ensureVldError(this.errorMessage||r.getMessages().unionNoMatch(t))}}}exports.VldUnion=VldUnion;
1
+ "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs");require("../registry.cjs"),require("../chunks/errors-core-C0mA6tfa.cjs"),require("../locales/en.cjs");class VldUnion extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.UNION),this.validators=r,this.errorMessage=s,this.typeCheckers=r.map(e=>this.createTypeChecker(e)),this.simpleModes=r.map(e=>this.createSimpleMode(e)),this.simpleValues=r.map((e,r)=>"literal"===this.simpleModes[r]?e.literal:void 0)}get options(){return this.validators}createSimpleMode(r){if(!0===r.isSimple)switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefined";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}parseSimpleValue(e,r,s){switch(e){case"string":case"number":case"boolean":case"bigint":case"symbol":case"passthrough":return s;case"null":return null;case"undefined":default:return;case"literal":return this.simpleValues[r]}}createTypeChecker(r){switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return e=>"string"==typeof e;case e.VLD_VALIDATOR_TYPES.NUMBER:return e=>"number"==typeof e&&!isNaN(e);case e.VLD_VALIDATOR_TYPES.BOOLEAN:return e=>"boolean"==typeof e;case e.VLD_VALIDATOR_TYPES.BIGINT:return e=>"bigint"==typeof e;case e.VLD_VALIDATOR_TYPES.SYMBOL:return e=>"symbol"==typeof e;case e.VLD_VALIDATOR_TYPES.NAN:return e=>"number"==typeof e&&Number.isNaN(e);case e.VLD_VALIDATOR_TYPES.ARRAY:return Array.isArray;case e.VLD_VALIDATOR_TYPES.OBJECT:return e=>"object"==typeof e&&null!==e&&!Array.isArray(e);case e.VLD_VALIDATOR_TYPES.NULL:return e=>null===e;case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return e=>void 0===e;case e.VLD_VALIDATOR_TYPES.ENUM:return e=>"string"==typeof e||"number"==typeof e;case e.VLD_VALIDATOR_TYPES.LITERAL:{const e=r.literal;return r=>r===e}case e.VLD_VALIDATOR_TYPES.NEVER:return()=>!1;case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:default:return()=>!0}}static create(...e){return new VldUnion(e)}parse(e){const s=[];for(let r=0;r<this.validators.length;r++){const t=this.validators[r],a=this.typeCheckers[r];if(a&&!a(e))continue;const n=this.simpleModes[r];if(void 0!==n)return this.parseSimpleValue(n,r,e);try{return t.parse(e)}catch(e){const r=e instanceof Error?e.message:String(e);s.push(r)}}throw new Error(this.errorMessage||r.getMessages().unionNoMatch(s))}safeParse(s){const t=[];for(let e=0;e<this.validators.length;e++){const r=this.validators[e],a=this.typeCheckers[e];if(a&&!a(s))continue;const n=this.simpleModes[e];if(void 0!==n)return{success:!0,data:this.parseSimpleValue(n,e,s)};try{return{success:!0,data:r.parse(s)}}catch(e){const r=e instanceof Error?e.message:String(e);t.push(r)}}return{success:!1,error:e.ensureVldError(this.errorMessage||r.getMessages().unionNoMatch(t))}}}exports.VldUnion=VldUnion;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs");require("../registry.cjs"),require("../chunks/errors-core-DrydF46s.cjs");class VldUnknown extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.UNKNOWN)}static create(){return new VldUnknown}get isSimple(){return!0}parse(e){return e}safeParse(e){return{success:!0,data:e}}}exports.VldUnknown=VldUnknown;
1
+ "use strict";var e=require("./base.cjs");require("../registry.cjs"),require("../chunks/errors-core-C0mA6tfa.cjs");class VldUnknown extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.UNKNOWN)}static create(){return new VldUnknown}get isSimple(){return!0}parse(e){return e}safeParse(e){return{success:!0,data:e}}}exports.VldUnknown=VldUnknown;
@@ -1 +1 @@
1
- "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldVoid extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.VOID)}static create(){return new VldVoid}get isSimple(){return!0}parse(e){if(void 0!==e)throw new Error(r.getMessages().expectedUndefined)}safeParse(e){return void 0===e?{success:!0,data:void 0}:{success:!1,error:new s.VldError([{code:"invalid_type",path:[],message:r.getMessages().expectedUndefined}])}}}exports.VldVoid=VldVoid;
1
+ "use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldVoid extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.VOID)}static create(){return new VldVoid}get isSimple(){return!0}parse(e){if(void 0!==e)throw new Error(r.getMessages().expectedUndefined)}safeParse(e){return void 0===e?{success:!0,data:void 0}:{success:!1,error:new s.VldError([{code:"invalid_type",path:[],message:r.getMessages().expectedUndefined}])}}}exports.VldVoid=VldVoid;
@@ -0,0 +1 @@
1
+ "use strict";var e=require("./base.cjs"),r=require("../chunks/errors-core-C0mA6tfa.cjs");require("../registry.cjs");class VldOptionalV2 extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.OPTIONAL),this.__def=Object.freeze({type:"optional",inner:r})}static create(e){return new VldOptionalV2(e)}parse(e){if(void 0!==e)return this.__def.inner.parse(e)}safeParse(e){return void 0===e?{success:!0,data:void 0}:this.__def.inner.safeParse(e)}unwrap(){return this.__def.inner}}class VldNullableV2 extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.NULLABLE),this.__def=Object.freeze({type:"nullable",inner:r})}static create(e){return new VldNullableV2(e)}parse(e){return null===e?null:this.__def.inner.parse(e)}safeParse(e){return null===e?{success:!0,data:null}:this.__def.inner.safeParse(e)}unwrap(){return this.__def.inner}}class VldNullishV2 extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.NULLISH),this.__def=Object.freeze({type:"nullish",inner:r})}static create(e){return new VldNullishV2(e)}parse(e){return null==e?e:this.__def.inner.parse(e)}safeParse(e){return null==e?{success:!0,data:e}:this.__def.inner.safeParse(e)}unwrap(){return this.__def.inner}}class VldRefineV2 extends e.VldBase{constructor(r,s,t="Refinement check failed",n){super(e.VLD_VALIDATOR_TYPES.REFINE),this.__def=Object.freeze({type:"refine",inner:r,predicate:s,message:t,path:n})}static create(e,r,s="Refinement check failed"){return new VldRefineV2(e,r,s)}parse(e){const s=this.__def.inner.parse(e),t=this.__def.predicate(s);if(t instanceof Promise)throw new Error("Use parseAsync for async refinements");if(!t)throw new r.VldError([{code:"custom",path:this.__def.path?[...this.__def.path]:[],message:this.__def.message}]);return s}safeParse(r){try{return{success:!0,data:this.parse(r)}}catch(r){return{success:!1,error:e.ensureVldError(r)}}}async parseAsync(e){const s=await this.__def.inner.parseAsync(e);if(!await this.__def.predicate(s))throw new r.VldError([{code:"custom",path:[],message:this.__def.message}]);return s}async safeParseAsync(r){try{return{success:!0,data:await this.parseAsync(r)}}catch(r){return{success:!1,error:e.ensureVldError(r)}}}unwrap(){return this.__def.inner}}class VldTransformV2 extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.TRANSFORM),this.__def=Object.freeze({type:"transform",inner:r,transformer:s})}static create(e,r){return new VldTransformV2(e,r)}parse(e){const r=this.__def.inner.parse(e);try{const e=this.__def.transformer(r);if(e instanceof Promise)throw new Error("Use parseAsync for async transforms");return e}catch(e){throw new Error(`Transform failed: ${e.message}`)}}safeParse(r){try{return{success:!0,data:this.parse(r)}}catch(r){return{success:!1,error:e.ensureVldError(r)}}}async parseAsync(e){const r=await this.__def.inner.parseAsync(e);return this.__def.transformer(r)}async safeParseAsync(r){try{return{success:!0,data:await this.parseAsync(r)}}catch(r){return{success:!1,error:e.ensureVldError(r)}}}unwrap(){return this.__def.inner}}exports.VldNullableV2=VldNullableV2,exports.VldNullishV2=VldNullishV2,exports.VldOptionalV2=VldOptionalV2,exports.VldRefineV2=VldRefineV2,exports.VldTransformV2=VldTransformV2;
@@ -1 +1 @@
1
- "use strict";var r=require("./base.cjs");require("../registry.cjs"),require("../chunks/errors-core-DrydF46s.cjs");class VldXor extends r.VldBase{constructor(s){super(r.VLD_VALIDATOR_TYPES.XOR),this._options=s}static create(r){return new VldXor(r)}parse(r){const s=this.safeParse(r);if(!s.success)throw s.error;return s.data}safeParse(s){let e=0,t=null;for(const r of this._options){const o=r.safeParse(s);if(o.success&&(e++,t=o,e>1))break}return 0===e?{success:!1,error:r.ensureVldError("No schema matched in XOR union")}:e>1?{success:!1,error:r.ensureVldError(`Input matches ${e} schemas in XOR union, but exactly one is required`)}:t}getOptions(){return this._options}}exports.VldXor=VldXor;
1
+ "use strict";var r=require("./base.cjs");require("../registry.cjs"),require("../chunks/errors-core-C0mA6tfa.cjs");class VldXor extends r.VldBase{constructor(s){super(r.VLD_VALIDATOR_TYPES.XOR),this._options=s}static create(r){return new VldXor(r)}parse(r){const s=this.safeParse(r);if(!s.success)throw s.error;return s.data}safeParse(s){let e=0,t=null;for(const r of this._options){const o=r.safeParse(s);if(o.success&&(e++,t=o,e>1))break}return 0===e?{success:!1,error:r.ensureVldError("No schema matched in XOR union")}:e>1?{success:!1,error:r.ensureVldError(`Input matches ${e} schemas in XOR union, but exactly one is required`)}:t}getOptions(){return this._options}}exports.VldXor=VldXor;
@@ -49,7 +49,10 @@ export interface VldErrorJSON {
49
49
  }
50
50
  export declare class VldError extends Error {
51
51
  readonly issues: VldIssue[];
52
+ private _stack;
52
53
  constructor(issues: VldIssue[], customMessage?: string);
54
+ /** Force-capture the stack trace on demand. */
55
+ captureStack(): void;
53
56
  get firstError(): VldIssue | undefined;
54
57
  get errors(): VldIssue[];
55
58
  get isEmpty(): boolean;
package/dist/errors.js CHANGED
@@ -1 +1 @@
1
- import{vldTheme as e}from"./pigment.js";export{V as VldError}from"./chunks/errors-core-CerMg2rq.js";function r(e){const r={errors:[]};for(const t of e.issues){let e=r;const s=t.path;for(let r=0;r<s.length;r++){const o=s[r],n=r===s.length-1;if("string"==typeof o)e.properties||(e.properties={}),e.properties[o]||(e.properties[o]={errors:[]}),n?e.properties[o].errors.push(t.message):e=e.properties[o];else if("number"==typeof o){for(e.items||(e.items=[]);e.items.length<=o;)e.items.push(void 0);e.items[o]||(e.items[o]={errors:[]}),n?e.items[o].errors.push(t.message):e=e.items[o]}}0===s.length&&r.errors.push(t.message)}return r}function t(r,t={}){const{colored:s=!0,theme:o=e,includeCode:n=!1,includeDetails:i=!1}=t,c=[];for(const e of r.issues){let r=`${s?o.symbol("✖"):"✖"} ${s?o.error(e.message):e.message}`;if(n){r+=` ${s?o.muted(`[${e.code}]`):`[${e.code}]`}`}if(e.path.length>0){const t=e.path.map((e,r)=>{if("string"==typeof e){const t=0===r?e:`.${e}`;return s?o.path(t):t}{const r=`[${e}]`;return s?o.path(r):r}}).join("");r+=`\n ${s?o.muted("→ at "):"→ at "}${t}`}if(i){if(e.expected){r+=`\n ${s?o.muted("expected: ")+o.success(e.expected):`expected: ${e.expected}`}`}if(e.received){r+=`\n ${s?o.muted("received: ")+o.warning(e.received):`received: ${e.received}`}`}}c.push(r)}return c.join("\n")}function s(e,r={}){return t(e,{...r,colored:!0})}function o(e,r={}){return t(e,{...r,colored:!1})}function n(e){const r=[],t={};for(const s of e.issues)if(0===s.path.length)r.push(s.message);else{const e=s.path[0].toString();t[e]||(t[e]=[]),t[e].push(s.message)}return{formErrors:r,fieldErrors:t}}function i(e,r,t,s){return{code:e,path:[...r],message:t,...s}}function c(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":e instanceof Date?"date":typeof e}export{i as createIssue,n as flattenError,c as getValueType,t as prettifyError,s as prettifyErrorColored,o as prettifyErrorPlain,r as treeifyError};
1
+ import{vldTheme as e}from"./pigment.js";export{V as VldError}from"./chunks/errors-core-BU14-Dk8.js";function r(e){const r={errors:[]};for(const t of e.issues){let e=r;const s=t.path;for(let r=0;r<s.length;r++){const o=s[r],n=r===s.length-1;if("string"==typeof o)e.properties||(e.properties={}),e.properties[o]||(e.properties[o]={errors:[]}),n?e.properties[o].errors.push(t.message):e=e.properties[o];else if("number"==typeof o){for(e.items||(e.items=[]);e.items.length<=o;)e.items.push(void 0);e.items[o]||(e.items[o]={errors:[]}),n?e.items[o].errors.push(t.message):e=e.items[o]}}0===s.length&&r.errors.push(t.message)}return r}function t(r,t={}){const{colored:s=!0,theme:o=e,includeCode:n=!1,includeDetails:i=!1}=t,c=[];for(const e of r.issues){let r=`${s?o.symbol("✖"):"✖"} ${s?o.error(e.message):e.message}`;if(n){r+=` ${s?o.muted(`[${e.code}]`):`[${e.code}]`}`}if(e.path.length>0){const t=e.path.map((e,r)=>{if("string"==typeof e){const t=0===r?e:`.${e}`;return s?o.path(t):t}{const r=`[${e}]`;return s?o.path(r):r}}).join("");r+=`\n ${s?o.muted("→ at "):"→ at "}${t}`}if(i){if(e.expected){r+=`\n ${s?o.muted("expected: ")+o.success(e.expected):`expected: ${e.expected}`}`}if(e.received){r+=`\n ${s?o.muted("received: ")+o.warning(e.received):`received: ${e.received}`}`}}c.push(r)}return c.join("\n")}function s(e,r={}){return t(e,{...r,colored:!0})}function o(e,r={}){return t(e,{...r,colored:!1})}function n(e){const r=[],t={};for(const s of e.issues)if(0===s.path.length)r.push(s.message);else{const e=s.path[0].toString();t[e]||(t[e]=[]),t[e].push(s.message)}return{formErrors:r,fieldErrors:t}}function i(e,r,t,s){return{code:e,path:[...r],message:t,...s}}function c(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":e instanceof Date?"date":typeof e}export{i as createIssue,n as flattenError,c as getValueType,t as prettifyError,s as prettifyErrorColored,o as prettifyErrorPlain,r as treeifyError};