zod 4.1.0-canary.20250821T014930 → 4.1.0-canary.20250823T071040

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 (158) hide show
  1. package/index.cjs +17 -7
  2. package/package.json +1 -1
  3. package/src/v4/classic/external.ts +0 -1
  4. package/src/v4/classic/parse.ts +49 -0
  5. package/src/v4/classic/schemas.ts +145 -7
  6. package/src/v4/classic/tests/catch.test.ts +25 -0
  7. package/src/v4/classic/tests/codec-examples.test.ts +538 -0
  8. package/src/v4/classic/tests/codec.test.ts +532 -0
  9. package/src/v4/classic/tests/continuability.test.ts +1 -1
  10. package/src/v4/classic/tests/default.test.ts +32 -0
  11. package/src/v4/classic/tests/firstparty.test.ts +4 -0
  12. package/src/v4/classic/tests/function.test.ts +31 -31
  13. package/src/v4/classic/tests/hash.test.ts +68 -0
  14. package/src/v4/classic/tests/nonoptional.test.ts +15 -0
  15. package/src/v4/classic/tests/object.test.ts +31 -0
  16. package/src/v4/classic/tests/pipe.test.ts +25 -5
  17. package/src/v4/classic/tests/prefault.test.ts +25 -0
  18. package/src/v4/classic/tests/preprocess.test.ts +1 -6
  19. package/src/v4/classic/tests/refine.test.ts +76 -3
  20. package/src/v4/classic/tests/string-formats.test.ts +16 -0
  21. package/src/v4/classic/tests/string.test.ts +82 -1
  22. package/src/v4/classic/tests/stringbool.test.ts +40 -0
  23. package/src/v4/classic/tests/template-literal.test.ts +1 -1
  24. package/src/v4/classic/tests/to-json-schema.test.ts +21 -2
  25. package/src/v4/classic/tests/transform.test.ts +7 -0
  26. package/src/v4/classic/tests/union.test.ts +1 -1
  27. package/src/v4/core/api.ts +25 -35
  28. package/src/v4/core/core.ts +7 -26
  29. package/src/v4/core/index.ts +0 -1
  30. package/src/v4/core/json-schema.ts +1 -0
  31. package/src/v4/core/parse.ts +101 -0
  32. package/src/v4/core/regexes.ts +40 -1
  33. package/src/v4/core/schemas.ts +521 -129
  34. package/src/v4/core/to-json-schema.ts +43 -8
  35. package/src/v4/core/util.ts +73 -0
  36. package/src/v4/mini/external.ts +0 -1
  37. package/src/v4/mini/parse.ts +14 -1
  38. package/src/v4/mini/schemas.ts +153 -12
  39. package/src/v4/mini/tests/codec.test.ts +499 -0
  40. package/src/v4/mini/tests/object.test.ts +9 -0
  41. package/src/v4/mini/tests/string.test.ts +16 -0
  42. package/v3/index.cjs +17 -7
  43. package/v4/classic/coerce.cjs +17 -7
  44. package/v4/classic/compat.cjs +17 -7
  45. package/v4/classic/errors.cjs +17 -7
  46. package/v4/classic/external.cjs +18 -9
  47. package/v4/classic/external.d.cts +1 -1
  48. package/v4/classic/external.d.ts +1 -1
  49. package/v4/classic/external.js +1 -1
  50. package/v4/classic/index.cjs +17 -7
  51. package/v4/classic/iso.cjs +17 -7
  52. package/v4/classic/parse.cjs +27 -8
  53. package/v4/classic/parse.d.cts +8 -0
  54. package/v4/classic/parse.d.ts +8 -0
  55. package/v4/classic/parse.js +9 -0
  56. package/v4/classic/schemas.cjs +76 -11
  57. package/v4/classic/schemas.d.cts +48 -2
  58. package/v4/classic/schemas.d.ts +48 -2
  59. package/v4/classic/schemas.js +51 -3
  60. package/v4/core/api.cjs +36 -35
  61. package/v4/core/api.d.cts +3 -4
  62. package/v4/core/api.d.ts +3 -4
  63. package/v4/core/api.js +19 -24
  64. package/v4/core/checks.cjs +17 -7
  65. package/v4/core/core.cjs +8 -1
  66. package/v4/core/core.d.cts +3 -0
  67. package/v4/core/core.d.ts +3 -0
  68. package/v4/core/core.js +6 -0
  69. package/v4/core/errors.cjs +17 -7
  70. package/v4/core/index.cjs +17 -8
  71. package/v4/core/index.d.cts +0 -1
  72. package/v4/core/index.d.ts +0 -1
  73. package/v4/core/index.js +0 -1
  74. package/v4/core/json-schema.d.cts +1 -0
  75. package/v4/core/json-schema.d.ts +1 -0
  76. package/v4/core/parse.cjs +62 -8
  77. package/v4/core/parse.d.cts +24 -0
  78. package/v4/core/parse.d.ts +24 -0
  79. package/v4/core/parse.js +36 -0
  80. package/v4/core/regexes.cjs +34 -2
  81. package/v4/core/regexes.d.cts +16 -0
  82. package/v4/core/regexes.d.ts +16 -0
  83. package/v4/core/regexes.js +32 -1
  84. package/v4/core/schemas.cjs +326 -84
  85. package/v4/core/schemas.d.cts +61 -3
  86. package/v4/core/schemas.d.ts +61 -3
  87. package/v4/core/schemas.js +308 -76
  88. package/v4/core/to-json-schema.cjs +42 -5
  89. package/v4/core/to-json-schema.d.cts +4 -3
  90. package/v4/core/to-json-schema.d.ts +4 -3
  91. package/v4/core/to-json-schema.js +42 -5
  92. package/v4/core/util.cjs +69 -0
  93. package/v4/core/util.d.cts +10 -0
  94. package/v4/core/util.d.ts +10 -0
  95. package/v4/core/util.js +62 -0
  96. package/v4/locales/ar.cjs +17 -7
  97. package/v4/locales/az.cjs +17 -7
  98. package/v4/locales/be.cjs +17 -7
  99. package/v4/locales/bg.cjs +17 -7
  100. package/v4/locales/ca.cjs +17 -7
  101. package/v4/locales/cs.cjs +17 -7
  102. package/v4/locales/da.cjs +17 -7
  103. package/v4/locales/de.cjs +17 -7
  104. package/v4/locales/en.cjs +17 -7
  105. package/v4/locales/eo.cjs +17 -7
  106. package/v4/locales/es.cjs +17 -7
  107. package/v4/locales/fa.cjs +17 -7
  108. package/v4/locales/fi.cjs +17 -7
  109. package/v4/locales/fr-CA.cjs +17 -7
  110. package/v4/locales/fr.cjs +17 -7
  111. package/v4/locales/he.cjs +17 -7
  112. package/v4/locales/hu.cjs +17 -7
  113. package/v4/locales/id.cjs +17 -7
  114. package/v4/locales/is.cjs +17 -7
  115. package/v4/locales/it.cjs +17 -7
  116. package/v4/locales/ja.cjs +17 -7
  117. package/v4/locales/kh.cjs +17 -7
  118. package/v4/locales/ko.cjs +17 -7
  119. package/v4/locales/mk.cjs +17 -7
  120. package/v4/locales/ms.cjs +17 -7
  121. package/v4/locales/nl.cjs +17 -7
  122. package/v4/locales/no.cjs +17 -7
  123. package/v4/locales/ota.cjs +17 -7
  124. package/v4/locales/pl.cjs +17 -7
  125. package/v4/locales/ps.cjs +17 -7
  126. package/v4/locales/pt.cjs +17 -7
  127. package/v4/locales/ru.cjs +17 -7
  128. package/v4/locales/sl.cjs +17 -7
  129. package/v4/locales/sv.cjs +17 -7
  130. package/v4/locales/ta.cjs +17 -7
  131. package/v4/locales/th.cjs +17 -7
  132. package/v4/locales/tr.cjs +17 -7
  133. package/v4/locales/ua.cjs +17 -7
  134. package/v4/locales/ur.cjs +17 -7
  135. package/v4/locales/vi.cjs +17 -7
  136. package/v4/locales/yo.cjs +17 -7
  137. package/v4/locales/zh-CN.cjs +17 -7
  138. package/v4/locales/zh-TW.cjs +17 -7
  139. package/v4/mini/coerce.cjs +17 -7
  140. package/v4/mini/external.cjs +18 -9
  141. package/v4/mini/external.d.cts +1 -1
  142. package/v4/mini/external.d.ts +1 -1
  143. package/v4/mini/external.js +1 -1
  144. package/v4/mini/index.cjs +17 -7
  145. package/v4/mini/iso.cjs +17 -7
  146. package/v4/mini/parse.cjs +9 -1
  147. package/v4/mini/parse.d.cts +1 -1
  148. package/v4/mini/parse.d.ts +1 -1
  149. package/v4/mini/parse.js +1 -1
  150. package/v4/mini/schemas.cjs +75 -10
  151. package/v4/mini/schemas.d.cts +49 -1
  152. package/v4/mini/schemas.d.ts +49 -1
  153. package/v4/mini/schemas.js +49 -2
  154. package/src/v4/core/function.ts +0 -176
  155. package/v4/core/function.cjs +0 -102
  156. package/v4/core/function.d.cts +0 -52
  157. package/v4/core/function.d.ts +0 -52
  158. package/v4/core/function.js +0 -75
@@ -23,3 +23,27 @@ export declare const safeParse: $SafeParse;
23
23
  export type $SafeParseAsync = <T extends schemas.$ZodType>(schema: T, value: unknown, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<util.SafeParseResult<core.output<T>>>;
24
24
  export declare const _safeParseAsync: (_Err: $ZodErrorClass) => $SafeParseAsync;
25
25
  export declare const safeParseAsync: $SafeParseAsync;
26
+ export type $Encode = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => core.input<T>;
27
+ export declare const _encode: (_Err: $ZodErrorClass) => $Encode;
28
+ export declare const encode: $Encode;
29
+ export type $Decode = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => core.output<T>;
30
+ export declare const _decode: (_Err: $ZodErrorClass) => $Decode;
31
+ export declare const decode: $Decode;
32
+ export type $EncodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<core.input<T>>;
33
+ export declare const _encodeAsync: (_Err: $ZodErrorClass) => $EncodeAsync;
34
+ export declare const encodeAsync: $EncodeAsync;
35
+ export type $DecodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<core.output<T>>;
36
+ export declare const _decodeAsync: (_Err: $ZodErrorClass) => $DecodeAsync;
37
+ export declare const decodeAsync: $DecodeAsync;
38
+ export type $SafeEncode = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => util.SafeParseResult<core.input<T>>;
39
+ export declare const _safeEncode: (_Err: $ZodErrorClass) => $SafeEncode;
40
+ export declare const safeEncode: $SafeEncode;
41
+ export type $SafeDecode = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => util.SafeParseResult<core.output<T>>;
42
+ export declare const _safeDecode: (_Err: $ZodErrorClass) => $SafeDecode;
43
+ export declare const safeDecode: $SafeDecode;
44
+ export type $SafeEncodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<util.SafeParseResult<core.input<T>>>;
45
+ export declare const _safeEncodeAsync: (_Err: $ZodErrorClass) => $SafeEncodeAsync;
46
+ export declare const safeEncodeAsync: $SafeEncodeAsync;
47
+ export type $SafeDecodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<util.SafeParseResult<core.output<T>>>;
48
+ export declare const _safeDecodeAsync: (_Err: $ZodErrorClass) => $SafeDecodeAsync;
49
+ export declare const safeDecodeAsync: $SafeDecodeAsync;
@@ -23,3 +23,27 @@ export declare const safeParse: $SafeParse;
23
23
  export type $SafeParseAsync = <T extends schemas.$ZodType>(schema: T, value: unknown, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<util.SafeParseResult<core.output<T>>>;
24
24
  export declare const _safeParseAsync: (_Err: $ZodErrorClass) => $SafeParseAsync;
25
25
  export declare const safeParseAsync: $SafeParseAsync;
26
+ export type $Encode = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => core.input<T>;
27
+ export declare const _encode: (_Err: $ZodErrorClass) => $Encode;
28
+ export declare const encode: $Encode;
29
+ export type $Decode = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => core.output<T>;
30
+ export declare const _decode: (_Err: $ZodErrorClass) => $Decode;
31
+ export declare const decode: $Decode;
32
+ export type $EncodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<core.input<T>>;
33
+ export declare const _encodeAsync: (_Err: $ZodErrorClass) => $EncodeAsync;
34
+ export declare const encodeAsync: $EncodeAsync;
35
+ export type $DecodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<core.output<T>>;
36
+ export declare const _decodeAsync: (_Err: $ZodErrorClass) => $DecodeAsync;
37
+ export declare const decodeAsync: $DecodeAsync;
38
+ export type $SafeEncode = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => util.SafeParseResult<core.input<T>>;
39
+ export declare const _safeEncode: (_Err: $ZodErrorClass) => $SafeEncode;
40
+ export declare const safeEncode: $SafeEncode;
41
+ export type $SafeDecode = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => util.SafeParseResult<core.output<T>>;
42
+ export declare const _safeDecode: (_Err: $ZodErrorClass) => $SafeDecode;
43
+ export declare const safeDecode: $SafeDecode;
44
+ export type $SafeEncodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.output<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<util.SafeParseResult<core.input<T>>>;
45
+ export declare const _safeEncodeAsync: (_Err: $ZodErrorClass) => $SafeEncodeAsync;
46
+ export declare const safeEncodeAsync: $SafeEncodeAsync;
47
+ export type $SafeDecodeAsync = <T extends schemas.$ZodType>(schema: T, value: core.input<T>, _ctx?: schemas.ParseContext<errors.$ZodIssue>) => Promise<util.SafeParseResult<core.output<T>>>;
48
+ export declare const _safeDecodeAsync: (_Err: $ZodErrorClass) => $SafeDecodeAsync;
49
+ export declare const safeDecodeAsync: $SafeDecodeAsync;
package/v4/core/parse.js CHANGED
@@ -55,3 +55,39 @@ export const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
55
55
  : { success: true, data: result.value };
56
56
  };
57
57
  export const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);
58
+ export const _encode = (_Err) => (schema, value, _ctx) => {
59
+ const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
60
+ return _parse(_Err)(schema, value, ctx);
61
+ };
62
+ export const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);
63
+ export const _decode = (_Err) => (schema, value, _ctx) => {
64
+ return _parse(_Err)(schema, value, _ctx);
65
+ };
66
+ export const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);
67
+ export const _encodeAsync = (_Err) => async (schema, value, _ctx) => {
68
+ const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
69
+ return _parseAsync(_Err)(schema, value, ctx);
70
+ };
71
+ export const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);
72
+ export const _decodeAsync = (_Err) => async (schema, value, _ctx) => {
73
+ return _parseAsync(_Err)(schema, value, _ctx);
74
+ };
75
+ export const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);
76
+ export const _safeEncode = (_Err) => (schema, value, _ctx) => {
77
+ const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
78
+ return _safeParse(_Err)(schema, value, ctx);
79
+ };
80
+ export const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);
81
+ export const _safeDecode = (_Err) => (schema, value, _ctx) => {
82
+ return _safeParse(_Err)(schema, value, _ctx);
83
+ };
84
+ export const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);
85
+ export const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {
86
+ const ctx = _ctx ? Object.assign(_ctx, { direction: "backward" }) : { direction: "backward" };
87
+ return _safeParseAsync(_Err)(schema, value, ctx);
88
+ };
89
+ export const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);
90
+ export const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
91
+ return _safeParseAsync(_Err)(schema, value, _ctx);
92
+ };
93
+ export const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uppercase = exports.lowercase = exports.undefined = exports.null = exports.boolean = exports.number = exports.integer = exports.bigint = exports.string = exports.date = exports.e164 = exports.domain = exports.hostname = exports.base64url = exports.base64 = exports.cidrv6 = exports.cidrv4 = exports.ipv6 = exports.ipv4 = exports.browserEmail = exports.idnEmail = exports.unicodeEmail = exports.rfc5322Email = exports.html5Email = exports.email = exports.uuid7 = exports.uuid6 = exports.uuid4 = exports.uuid = exports.guid = exports.extendedDuration = exports.duration = exports.nanoid = exports.ksuid = exports.xid = exports.ulid = exports.cuid2 = exports.cuid = void 0;
3
+ exports.sha384_base64 = exports.sha384_hex = exports.sha256_base64url = exports.sha256_base64 = exports.sha256_hex = exports.sha1_base64url = exports.sha1_base64 = exports.sha1_hex = exports.md5_base64url = exports.md5_base64 = exports.md5_hex = exports.hex = exports.uppercase = exports.lowercase = exports.undefined = exports.null = exports.boolean = exports.number = exports.integer = exports.bigint = exports.string = exports.date = exports.e164 = exports.domain = exports.hostname = exports.base64url = exports.base64 = exports.cidrv6 = exports.cidrv4 = exports.ipv6 = exports.ipv4 = exports.browserEmail = exports.idnEmail = exports.unicodeEmail = exports.rfc5322Email = exports.html5Email = exports.email = exports.uuid7 = exports.uuid6 = exports.uuid4 = exports.uuid = exports.guid = exports.extendedDuration = exports.duration = exports.nanoid = exports.ksuid = exports.xid = exports.ulid = exports.cuid2 = exports.cuid = void 0;
4
+ exports.sha512_base64url = exports.sha512_base64 = exports.sha512_hex = exports.sha384_base64url = void 0;
4
5
  exports.emoji = emoji;
5
6
  exports.time = time;
6
7
  exports.datetime = datetime;
@@ -21,7 +22,7 @@ exports.guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0
21
22
  * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */
22
23
  const uuid = (version) => {
23
24
  if (!version)
24
- return /^([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)$/;
25
+ return /^([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)$/;
25
26
  return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
26
27
  };
27
28
  exports.uuid = uuid;
@@ -102,3 +103,34 @@ exports.undefined = _undefined;
102
103
  exports.lowercase = /^[^A-Z]*$/;
103
104
  // regex for string with no lowercase letters
104
105
  exports.uppercase = /^[^a-z]*$/;
106
+ // regex for hexadecimal strings (any length)
107
+ exports.hex = /^[0-9a-fA-F]*$/;
108
+ // Hash regexes for different algorithms and encodings
109
+ // Helper function to create base64 regex with exact length and padding
110
+ function fixedBase64(bodyLength, padding) {
111
+ return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);
112
+ }
113
+ // Helper function to create base64url regex with exact length (no padding)
114
+ function fixedBase64url(length) {
115
+ return new RegExp(`^[A-Za-z0-9-_]{${length}}$`);
116
+ }
117
+ // MD5 (16 bytes): base64 = 24 chars total (22 + "==")
118
+ exports.md5_hex = /^[0-9a-fA-F]{32}$/;
119
+ exports.md5_base64 = fixedBase64(22, "==");
120
+ exports.md5_base64url = fixedBase64url(22);
121
+ // SHA1 (20 bytes): base64 = 28 chars total (27 + "=")
122
+ exports.sha1_hex = /^[0-9a-fA-F]{40}$/;
123
+ exports.sha1_base64 = fixedBase64(27, "=");
124
+ exports.sha1_base64url = fixedBase64url(27);
125
+ // SHA256 (32 bytes): base64 = 44 chars total (43 + "=")
126
+ exports.sha256_hex = /^[0-9a-fA-F]{64}$/;
127
+ exports.sha256_base64 = fixedBase64(43, "=");
128
+ exports.sha256_base64url = fixedBase64url(43);
129
+ // SHA384 (48 bytes): base64 = 64 chars total (no padding)
130
+ exports.sha384_hex = /^[0-9a-fA-F]{96}$/;
131
+ exports.sha384_base64 = fixedBase64(64, "");
132
+ exports.sha384_base64url = fixedBase64url(64);
133
+ // SHA512 (64 bytes): base64 = 88 chars total (86 + "==")
134
+ exports.sha512_hex = /^[0-9a-fA-F]{128}$/;
135
+ exports.sha512_base64 = fixedBase64(86, "==");
136
+ exports.sha512_base64url = fixedBase64url(86);
@@ -60,3 +60,19 @@ declare const _undefined: RegExp;
60
60
  export { _undefined as undefined };
61
61
  export declare const lowercase: RegExp;
62
62
  export declare const uppercase: RegExp;
63
+ export declare const hex: RegExp;
64
+ export declare const md5_hex: RegExp;
65
+ export declare const md5_base64: RegExp;
66
+ export declare const md5_base64url: RegExp;
67
+ export declare const sha1_hex: RegExp;
68
+ export declare const sha1_base64: RegExp;
69
+ export declare const sha1_base64url: RegExp;
70
+ export declare const sha256_hex: RegExp;
71
+ export declare const sha256_base64: RegExp;
72
+ export declare const sha256_base64url: RegExp;
73
+ export declare const sha384_hex: RegExp;
74
+ export declare const sha384_base64: RegExp;
75
+ export declare const sha384_base64url: RegExp;
76
+ export declare const sha512_hex: RegExp;
77
+ export declare const sha512_base64: RegExp;
78
+ export declare const sha512_base64url: RegExp;
@@ -60,3 +60,19 @@ declare const _undefined: RegExp;
60
60
  export { _undefined as undefined };
61
61
  export declare const lowercase: RegExp;
62
62
  export declare const uppercase: RegExp;
63
+ export declare const hex: RegExp;
64
+ export declare const md5_hex: RegExp;
65
+ export declare const md5_base64: RegExp;
66
+ export declare const md5_base64url: RegExp;
67
+ export declare const sha1_hex: RegExp;
68
+ export declare const sha1_base64: RegExp;
69
+ export declare const sha1_base64url: RegExp;
70
+ export declare const sha256_hex: RegExp;
71
+ export declare const sha256_base64: RegExp;
72
+ export declare const sha256_base64url: RegExp;
73
+ export declare const sha384_hex: RegExp;
74
+ export declare const sha384_base64: RegExp;
75
+ export declare const sha384_base64url: RegExp;
76
+ export declare const sha512_hex: RegExp;
77
+ export declare const sha512_base64: RegExp;
78
+ export declare const sha512_base64url: RegExp;
@@ -15,7 +15,7 @@ export const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{
15
15
  * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */
16
16
  export const uuid = (version) => {
17
17
  if (!version)
18
- return /^([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)$/;
18
+ return /^([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)$/;
19
19
  return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
20
20
  };
21
21
  export const uuid4 = /*@__PURE__*/ uuid(4);
@@ -94,3 +94,34 @@ export { _undefined as undefined };
94
94
  export const lowercase = /^[^A-Z]*$/;
95
95
  // regex for string with no lowercase letters
96
96
  export const uppercase = /^[^a-z]*$/;
97
+ // regex for hexadecimal strings (any length)
98
+ export const hex = /^[0-9a-fA-F]*$/;
99
+ // Hash regexes for different algorithms and encodings
100
+ // Helper function to create base64 regex with exact length and padding
101
+ function fixedBase64(bodyLength, padding) {
102
+ return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);
103
+ }
104
+ // Helper function to create base64url regex with exact length (no padding)
105
+ function fixedBase64url(length) {
106
+ return new RegExp(`^[A-Za-z0-9-_]{${length}}$`);
107
+ }
108
+ // MD5 (16 bytes): base64 = 24 chars total (22 + "==")
109
+ export const md5_hex = /^[0-9a-fA-F]{32}$/;
110
+ export const md5_base64 = /*@__PURE__*/ fixedBase64(22, "==");
111
+ export const md5_base64url = /*@__PURE__*/ fixedBase64url(22);
112
+ // SHA1 (20 bytes): base64 = 28 chars total (27 + "=")
113
+ export const sha1_hex = /^[0-9a-fA-F]{40}$/;
114
+ export const sha1_base64 = /*@__PURE__*/ fixedBase64(27, "=");
115
+ export const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);
116
+ // SHA256 (32 bytes): base64 = 44 chars total (43 + "=")
117
+ export const sha256_hex = /^[0-9a-fA-F]{64}$/;
118
+ export const sha256_base64 = /*@__PURE__*/ fixedBase64(43, "=");
119
+ export const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);
120
+ // SHA384 (48 bytes): base64 = 64 chars total (no padding)
121
+ export const sha384_hex = /^[0-9a-fA-F]{96}$/;
122
+ export const sha384_base64 = /*@__PURE__*/ fixedBase64(64, "");
123
+ export const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);
124
+ // SHA512 (64 bytes): base64 = 88 chars total (86 + "==")
125
+ export const sha512_hex = /^[0-9a-fA-F]{128}$/;
126
+ export const sha512_base64 = /*@__PURE__*/ fixedBase64(86, "==");
127
+ export const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);