@modulify/validator 0.2.0 → 0.3.0

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 (486) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/README.md +12 -2
  3. package/dist/assert-BDOtHdLx.cjs +289 -0
  4. package/dist/assert-CzMg5aO7.mjs +206 -0
  5. package/dist/assert.cjs +7 -65
  6. package/dist/assert.d.cts +37 -0
  7. package/dist/assert.d.mts +37 -0
  8. package/dist/assert.d.ts +24 -3
  9. package/dist/assert.mjs +2 -66
  10. package/dist/assertions-DPYCHREw.mjs +297 -0
  11. package/dist/assertions-nfOKqcjs.cjs +476 -0
  12. package/dist/assertions.cjs +34 -206
  13. package/dist/assertions.d.cts +56 -0
  14. package/dist/assertions.d.mts +56 -0
  15. package/dist/assertions.d.ts +43 -45
  16. package/dist/assertions.mjs +3 -207
  17. package/dist/checkers.d.cts +8 -0
  18. package/dist/checkers.d.mts +8 -0
  19. package/dist/checkers.d.ts +1 -1
  20. package/dist/combinators.cjs +303 -304
  21. package/dist/combinators.d.cts +16 -0
  22. package/dist/combinators.d.mts +16 -0
  23. package/dist/combinators.d.ts +15 -16
  24. package/dist/combinators.mjs +304 -315
  25. package/dist/constraints.d.cts +4 -0
  26. package/dist/constraints.d.mts +4 -0
  27. package/dist/constraints.d.ts +2 -2
  28. package/dist/extractors.d.cts +2 -0
  29. package/dist/extractors.d.mts +2 -0
  30. package/dist/index.cjs +210 -213
  31. package/dist/index.d.cts +12 -0
  32. package/dist/index.d.mts +12 -0
  33. package/dist/index.d.ts +9 -9
  34. package/dist/index.mjs +165 -218
  35. package/dist/json-schema.cjs +364 -489
  36. package/dist/json-schema.d.cts +14 -0
  37. package/dist/json-schema.d.mts +14 -0
  38. package/dist/json-schema.d.ts +3 -3
  39. package/dist/json-schema.mjs +365 -492
  40. package/dist/metadata.cjs +6 -7
  41. package/dist/metadata.d.cts +8 -0
  42. package/dist/metadata.d.mts +8 -0
  43. package/dist/metadata.d.ts +2 -2
  44. package/dist/metadata.mjs +2 -8
  45. package/dist/predicates.cjs +98 -41
  46. package/dist/predicates.d.cts +77 -0
  47. package/dist/predicates.d.mts +77 -0
  48. package/dist/predicates.d.ts +25 -4
  49. package/dist/predicates.mjs +92 -66
  50. package/dist/types/index.d.cts +984 -0
  51. package/dist/types/index.d.mts +984 -0
  52. package/dist/types/index.d.ts +984 -0
  53. package/dist/types/json-schema.d.cts +75 -0
  54. package/dist/types/json-schema.d.mts +75 -0
  55. package/dist/types/json-schema.d.ts +75 -0
  56. package/dist/violations.d.cts +29 -0
  57. package/dist/violations.d.mts +29 -0
  58. package/dist/violations.d.ts +1 -1
  59. package/docs/RELEASING.md +66 -0
  60. package/docs/en/00-index.md +2 -0
  61. package/docs/en/01-shape-api.md +35 -10
  62. package/docs/en/02-metadata-and-introspection.md +2 -1
  63. package/docs/en/03-violations.md +1 -1
  64. package/docs/en/04-json-schema-export.md +5 -0
  65. package/docs/en/05-public-api.md +35 -3
  66. package/docs/en/06-common-recipes.md +2 -1
  67. package/docs/en/07-ai-reference.md +5 -2
  68. package/docs/en/08-violation-code-types.md +28 -2
  69. package/docs/en/09-migration.md +75 -0
  70. package/docs/ru/00-index.md +2 -0
  71. package/docs/ru/01-shape-api.md +35 -10
  72. package/docs/ru/02-metadata-and-introspection.md +2 -1
  73. package/docs/ru/03-violations.md +1 -1
  74. package/docs/ru/04-json-schema-export.md +5 -0
  75. package/docs/ru/05-public-api.md +35 -3
  76. package/docs/ru/06-common-recipes.md +2 -1
  77. package/docs/ru/07-ai-reference.md +5 -2
  78. package/docs/ru/08-violation-code-types.md +28 -2
  79. package/docs/ru/09-migration.md +76 -0
  80. package/docs/ru/README.md +10 -2
  81. package/package.json +71 -37
  82. package/types/index.d.ts +275 -115
  83. package/.yarn/cache/@aashutoshrathi-word-wrap-npm-1.2.6-5b1d95e487-53c2b231a6.zip +0 -0
  84. package/.yarn/cache/@babel-code-frame-npm-7.23.5-cb10d08de6-a10e843595.zip +0 -0
  85. package/.yarn/cache/@babel-helper-string-parser-npm-7.25.7-352069de58-73ef2ceb81.zip +0 -0
  86. package/.yarn/cache/@babel-helper-string-parser-npm-7.27.1-d1471e0598-8bda3448e0.zip +0 -0
  87. package/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.20-18305bb306-dcad63db34.zip +0 -0
  88. package/.yarn/cache/@babel-helper-validator-identifier-npm-7.25.7-1c758f0472-07438e5bf0.zip +0 -0
  89. package/.yarn/cache/@babel-helper-validator-identifier-npm-7.28.5-1953d49d2b-42aaebed91.zip +0 -0
  90. package/.yarn/cache/@babel-highlight-npm-7.23.4-2a9f2d2538-fbff9fcb2f.zip +0 -0
  91. package/.yarn/cache/@babel-parser-npm-7.25.8-fda12195b5-a1a13845b7.zip +0 -0
  92. package/.yarn/cache/@babel-parser-npm-7.29.0-c605c63e8b-333b2aa761.zip +0 -0
  93. package/.yarn/cache/@babel-types-npm-7.25.8-44acfff5f6-55ca2d6df6.zip +0 -0
  94. package/.yarn/cache/@babel-types-npm-7.29.0-6c2fa77581-23cc3466e8.zip +0 -0
  95. package/.yarn/cache/@bcoe-v8-coverage-npm-1.0.2-e80fdc21ac-1eb1dc93cc.zip +0 -0
  96. package/.yarn/cache/@commitlint-cli-npm-20.4.3-7b788c74b9-1f54b6870a.zip +0 -0
  97. package/.yarn/cache/@commitlint-config-conventional-npm-20.4.3-aa90460b69-c7c6fb0b32.zip +0 -0
  98. package/.yarn/cache/@commitlint-config-validator-npm-20.4.3-456f7d3da8-e65f2bd3cc.zip +0 -0
  99. package/.yarn/cache/@commitlint-ensure-npm-20.4.3-432e5ad329-aa1f42317a.zip +0 -0
  100. package/.yarn/cache/@commitlint-execute-rule-npm-20.0.0-6eb8155492-a1035ae9d6.zip +0 -0
  101. package/.yarn/cache/@commitlint-format-npm-20.4.3-ebe3e8cb04-e221f61a07.zip +0 -0
  102. package/.yarn/cache/@commitlint-is-ignored-npm-20.4.3-69e200640d-bc118de0aa.zip +0 -0
  103. package/.yarn/cache/@commitlint-lint-npm-20.4.3-c9940afaeb-e6af7cbbf9.zip +0 -0
  104. package/.yarn/cache/@commitlint-load-npm-20.4.3-81ae2db04a-80fb52e259.zip +0 -0
  105. package/.yarn/cache/@commitlint-message-npm-20.4.3-e9b5d77cad-16f7a67d17.zip +0 -0
  106. package/.yarn/cache/@commitlint-parse-npm-20.4.3-ecc5779976-404fecad36.zip +0 -0
  107. package/.yarn/cache/@commitlint-read-npm-20.4.3-32de5c8d85-3e7f88ad9b.zip +0 -0
  108. package/.yarn/cache/@commitlint-resolve-extends-npm-20.4.3-71b99c2779-09220329ba.zip +0 -0
  109. package/.yarn/cache/@commitlint-rules-npm-20.4.3-390ce9eadc-03348731a9.zip +0 -0
  110. package/.yarn/cache/@commitlint-to-lines-npm-20.0.0-888ee2239e-49bc05eb06.zip +0 -0
  111. package/.yarn/cache/@commitlint-top-level-npm-20.4.3-b0ef9fb207-52a1f59677.zip +0 -0
  112. package/.yarn/cache/@commitlint-types-npm-20.4.3-3d079b12ab-2181f9696f.zip +0 -0
  113. package/.yarn/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-05c5368c13.zip +0 -0
  114. package/.yarn/cache/@esbuild-linux-x64-npm-0.27.3-2041dd7b27-10c0.zip +0 -0
  115. package/.yarn/cache/@eslint-community-eslint-utils-npm-4.9.1-30ad3d49de-dc4ab5e3e3.zip +0 -0
  116. package/.yarn/cache/@eslint-community-regexpp-npm-4.12.2-3d54624470-fddcbc6685.zip +0 -0
  117. package/.yarn/cache/@eslint-config-array-npm-0.23.3-19b1c24f51-7c19027acf.zip +0 -0
  118. package/.yarn/cache/@eslint-config-helpers-npm-0.5.3-b60fa10f11-c836476e83.zip +0 -0
  119. package/.yarn/cache/@eslint-core-npm-1.1.1-bca32bf928-129c654c78.zip +0 -0
  120. package/.yarn/cache/@eslint-js-npm-10.0.1-c30b85ca06-9f3fcaf71b.zip +0 -0
  121. package/.yarn/cache/@eslint-object-schema-npm-3.0.3-4c45388d6c-4abbb7cba5.zip +0 -0
  122. package/.yarn/cache/@eslint-plugin-kit-npm-0.6.1-fafe413a70-f8354a7b92.zip +0 -0
  123. package/.yarn/cache/@gar-promise-retry-npm-1.0.2-960b209ddf-748a84fb0a.zip +0 -0
  124. package/.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip +0 -0
  125. package/.yarn/cache/@humanfs-node-npm-0.16.6-6ee2cad587-8356359c9f.zip +0 -0
  126. package/.yarn/cache/@humanwhocodes-module-importer-npm-1.0.1-9d07ed2e4a-909b69c3b8.zip +0 -0
  127. package/.yarn/cache/@humanwhocodes-retry-npm-0.3.1-9d87bf92c6-f0da1282df.zip +0 -0
  128. package/.yarn/cache/@humanwhocodes-retry-npm-0.4.3-a8d7ca1663-3775bb3008.zip +0 -0
  129. package/.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-c25b6dc159.zip +0 -0
  130. package/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.1-aa2de3f210-0dbc9e29bc.zip +0 -0
  131. package/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip +0 -0
  132. package/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-0c6b5ae663.zip +0 -0
  133. package/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-2eb864f276.zip +0 -0
  134. package/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-f9e538f302.zip +0 -0
  135. package/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-4b30ec8cd5.zip +0 -0
  136. package/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-fa425b606d.zip +0 -0
  137. package/.yarn/cache/@microsoft-api-extractor-model-npm-7.33.4-65dc0810a1-c71569e59a.zip +0 -0
  138. package/.yarn/cache/@microsoft-api-extractor-npm-7.57.6-3ff3fa89f4-2f4598cc6b.zip +0 -0
  139. package/.yarn/cache/@microsoft-tsdoc-config-npm-0.18.1-9e24f960a2-06507f7ced.zip +0 -0
  140. package/.yarn/cache/@microsoft-tsdoc-npm-0.16.0-9d3f19f1b6-8883bb0ed2.zip +0 -0
  141. package/.yarn/cache/@npmcli-agent-npm-4.0.0-502e5ae4f0-f7b5ce0f3d.zip +0 -0
  142. package/.yarn/cache/@npmcli-fs-npm-5.0.0-9d737ae2f3-26e376d780.zip +0 -0
  143. package/.yarn/cache/@polka-url-npm-1.0.0-next.28-024769eda8-acc5ea6259.zip +0 -0
  144. package/.yarn/cache/@rollup-pluginutils-npm-5.1.4-83ce21024f-6d58fbc6f1.zip +0 -0
  145. package/.yarn/cache/@rollup-rollup-linux-x64-gnu-npm-4.59.0-da6c703f69-10c0.zip +0 -0
  146. package/.yarn/cache/@rushstack-node-core-library-npm-5.20.3-c547457ad4-bc9b33c6be.zip +0 -0
  147. package/.yarn/cache/@rushstack-problem-matcher-npm-0.2.1-87bf7eb8c4-d6cf27f6bf.zip +0 -0
  148. package/.yarn/cache/@rushstack-rig-package-npm-0.7.2-5f0f64865a-2e2839fa9a.zip +0 -0
  149. package/.yarn/cache/@rushstack-terminal-npm-0.22.3-2934ccd0ff-0e81fe7543.zip +0 -0
  150. package/.yarn/cache/@rushstack-ts-command-line-npm-5.3.3-d220c0fef2-03d9e9989b.zip +0 -0
  151. package/.yarn/cache/@simple-libs-stream-utils-npm-1.2.0-db53dc026f-2788ac7b16.zip +0 -0
  152. package/.yarn/cache/@standard-schema-spec-npm-1.1.0-d3e5ccd2e2-d90f55acde.zip +0 -0
  153. package/.yarn/cache/@tsconfig-node10-npm-1.0.9-f2e2d20feb-c176a2c1e1.zip +0 -0
  154. package/.yarn/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-dddca2b553.zip +0 -0
  155. package/.yarn/cache/@tsconfig-node14-npm-1.0.3-15321421d2-67c1316d06.zip +0 -0
  156. package/.yarn/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-05f8f2734e.zip +0 -0
  157. package/.yarn/cache/@types-argparse-npm-1.0.38-657c15204c-4fc892da5d.zip +0 -0
  158. package/.yarn/cache/@types-chai-npm-5.2.3-5f61dbddda-e0ef1de3b6.zip +0 -0
  159. package/.yarn/cache/@types-deep-eql-npm-4.0.2-e6bc68cc92-bf3f811843.zip +0 -0
  160. package/.yarn/cache/@types-esrecurse-npm-4.3.1-237d34a55f-90dad74d5d.zip +0 -0
  161. package/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-b3b0e33428.zip +0 -0
  162. package/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-cdfd751f6f.zip +0 -0
  163. package/.yarn/cache/@types-estree-npm-1.0.8-2195bac6d6-39d34d1afa.zip +0 -0
  164. package/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-a996a745e6.zip +0 -0
  165. package/.yarn/cache/@types-node-npm-25.3.5-81ad2eb587-4cf0834a6f.zip +0 -0
  166. package/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.56.1-3df20cf10b-8a97e77779.zip +0 -0
  167. package/.yarn/cache/@typescript-eslint-parser-npm-8.56.1-3f9b1c2f30-61c9dab481.zip +0 -0
  168. package/.yarn/cache/@typescript-eslint-project-service-npm-8.56.1-766cc01259-ca61cde575.zip +0 -0
  169. package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.56.1-2d38e88a4b-89cc1af263.zip +0 -0
  170. package/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.56.1-e35d1dd914-d03b64d7ff.zip +0 -0
  171. package/.yarn/cache/@typescript-eslint-type-utils-npm-8.56.1-e472908945-66517aed50.zip +0 -0
  172. package/.yarn/cache/@typescript-eslint-types-npm-8.56.1-09e50c3c54-e5a0318abd.zip +0 -0
  173. package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.56.1-bdca7e3c09-92f4421dac.zip +0 -0
  174. package/.yarn/cache/@typescript-eslint-utils-npm-8.56.1-aa0778f53a-d9ffd9b294.zip +0 -0
  175. package/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.56.1-901d7b2e4d-86d97905de.zip +0 -0
  176. package/.yarn/cache/@vitest-coverage-v8-npm-4.0.18-62bb7f840e-e23e0da86f.zip +0 -0
  177. package/.yarn/cache/@vitest-expect-npm-4.0.18-03919ccd0b-123b0aa111.zip +0 -0
  178. package/.yarn/cache/@vitest-mocker-npm-4.0.18-118c87f90e-fb0a257e7e.zip +0 -0
  179. package/.yarn/cache/@vitest-pretty-format-npm-4.0.18-a73855e4a4-0086b8c88e.zip +0 -0
  180. package/.yarn/cache/@vitest-runner-npm-4.0.18-3dbdf3fb30-fdb4afa411.zip +0 -0
  181. package/.yarn/cache/@vitest-snapshot-npm-4.0.18-35134202ed-d3bfefa558.zip +0 -0
  182. package/.yarn/cache/@vitest-spy-npm-4.0.18-296c59dce4-6de537890b.zip +0 -0
  183. package/.yarn/cache/@vitest-ui-npm-4.0.18-2112b3c7d4-25ed45b529.zip +0 -0
  184. package/.yarn/cache/@vitest-utils-npm-4.0.18-b1c99a49e0-4a3c43c142.zip +0 -0
  185. package/.yarn/cache/@volar-language-core-npm-2.4.11-9f1617b8e0-ccc5de0c28.zip +0 -0
  186. package/.yarn/cache/@volar-language-core-npm-2.4.28-23fc3d6b92-d41f7327fe.zip +0 -0
  187. package/.yarn/cache/@volar-source-map-npm-2.4.11-1022b0cd34-8e5badf9f6.zip +0 -0
  188. package/.yarn/cache/@volar-source-map-npm-2.4.28-7517299eaf-24b0b02c7f.zip +0 -0
  189. package/.yarn/cache/@volar-typescript-npm-2.4.11-9486696485-bca9bda9c8.zip +0 -0
  190. package/.yarn/cache/@vue-compiler-core-npm-3.5.13-b0c91e9970-b89f3e3ca9.zip +0 -0
  191. package/.yarn/cache/@vue-compiler-dom-npm-3.5.13-8785a9ba19-8f424a7188.zip +0 -0
  192. package/.yarn/cache/@vue-compiler-vue2-npm-2.7.16-ac462b66cc-c76c3fad77.zip +0 -0
  193. package/.yarn/cache/@vue-language-core-npm-2.2.0-451bd2aafd-1c44cc4067.zip +0 -0
  194. package/.yarn/cache/@vue-shared-npm-3.5.13-519178ab33-2c940ef907.zip +0 -0
  195. package/.yarn/cache/abbrev-npm-4.0.0-7d848a1ef0-b4cc169352.zip +0 -0
  196. package/.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip +0 -0
  197. package/.yarn/cache/acorn-npm-8.11.3-0d7ab48b38-3ff155f881.zip +0 -0
  198. package/.yarn/cache/acorn-npm-8.16.0-b2096bf83f-c9c5269722.zip +0 -0
  199. package/.yarn/cache/acorn-walk-npm-8.3.2-df039a42bf-7e2a8dad54.zip +0 -0
  200. package/.yarn/cache/agent-base-npm-7.1.4-cb8b4604d5-c2c9ab7599.zip +0 -0
  201. package/.yarn/cache/ajv-draft-04-npm-1.0.0-6fc962dbab-6044310bd3.zip +0 -0
  202. package/.yarn/cache/ajv-formats-npm-3.0.1-2662cf5b12-168d6bca1e.zip +0 -0
  203. package/.yarn/cache/ajv-npm-6.14.0-41f32f2ba8-a2bc39b055.zip +0 -0
  204. package/.yarn/cache/ajv-npm-8.12.0-3bf6e30741-ac4f72adf7.zip +0 -0
  205. package/.yarn/cache/ajv-npm-8.17.1-12ade7edc6-ec3ba10a57.zip +0 -0
  206. package/.yarn/cache/ajv-npm-8.18.0-6e5e062765-e7517c4261.zip +0 -0
  207. package/.yarn/cache/alien-signals-npm-0.4.14-73b9599f8d-5abb3377bc.zip +0 -0
  208. package/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-9a64bb8627.zip +0 -0
  209. package/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-ece5a8ef06.zip +0 -0
  210. package/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-895a23929d.zip +0 -0
  211. package/.yarn/cache/arg-npm-4.1.3-1748b966a8-070ff801a9.zip +0 -0
  212. package/.yarn/cache/argparse-npm-1.0.10-528934e59d-b2972c5c23.zip +0 -0
  213. package/.yarn/cache/argparse-npm-2.0.1-faff7999e6-c5640c2d89.zip +0 -0
  214. package/.yarn/cache/array-ify-npm-1.0.0-e09a371977-75c9c072fa.zip +0 -0
  215. package/.yarn/cache/assertion-error-npm-2.0.1-8169d136f2-bbbcb117ac.zip +0 -0
  216. package/.yarn/cache/ast-v8-to-istanbul-npm-0.3.12-a066421931-bad6ba222b.zip +0 -0
  217. package/.yarn/cache/balanced-match-npm-4.0.4-fd666b3c7f-07e86102a3.zip +0 -0
  218. package/.yarn/cache/brace-expansion-npm-5.0.4-acb9332524-359cbcfa80.zip +0 -0
  219. package/.yarn/cache/cacache-npm-20.0.3-5f244d5bdd-c7da1ca694.zip +0 -0
  220. package/.yarn/cache/callsites-npm-3.1.0-268f989910-fff9227740.zip +0 -0
  221. package/.yarn/cache/chai-npm-6.2.2-e1795cadaa-e6c69e5f0c.zip +0 -0
  222. package/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-e6543f02ec.zip +0 -0
  223. package/.yarn/cache/chownr-npm-3.0.0-5275e85d25-43925b8770.zip +0 -0
  224. package/.yarn/cache/cliui-npm-8.0.1-3b029092cf-4bda0f09c3.zip +0 -0
  225. package/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-5ad3c53494.zip +0 -0
  226. package/.yarn/cache/color-convert-npm-2.0.1-79730e935b-37e1150172.zip +0 -0
  227. package/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-566a3d42cc.zip +0 -0
  228. package/.yarn/cache/color-name-npm-1.1.4-025792b0ea-a1a3f91415.zip +0 -0
  229. package/.yarn/cache/compare-func-npm-2.0.0-9cd7852f23-78bd4dd4ed.zip +0 -0
  230. package/.yarn/cache/compare-versions-npm-6.1.1-4b4ac16a32-415205c762.zip +0 -0
  231. package/.yarn/cache/confbox-npm-0.1.8-8396039b68-fc2c68d97c.zip +0 -0
  232. package/.yarn/cache/confbox-npm-0.2.4-31ba8953f9-4c36af33d9.zip +0 -0
  233. package/.yarn/cache/conventional-changelog-angular-npm-8.3.0-0cd5330d9e-bab87fa741.zip +0 -0
  234. package/.yarn/cache/conventional-changelog-conventionalcommits-npm-9.3.0-6c1ee7bc50-36be9435bb.zip +0 -0
  235. package/.yarn/cache/conventional-commits-parser-npm-6.3.0-ac5eec936e-7b152db0b6.zip +0 -0
  236. package/.yarn/cache/cosmiconfig-npm-9.0.1-66b0cd2503-a5d4d95599.zip +0 -0
  237. package/.yarn/cache/cosmiconfig-typescript-loader-npm-6.2.0-a314118ca7-0fd8fd9b9b.zip +0 -0
  238. package/.yarn/cache/create-require-npm-1.1.1-839884ca2e-157cbc59b2.zip +0 -0
  239. package/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-053ea8b213.zip +0 -0
  240. package/.yarn/cache/dargs-npm-8.1.0-39fde97ef5-08cbd1ee4a.zip +0 -0
  241. package/.yarn/cache/de-indent-npm-1.0.2-66cccde30f-7058ce58ab.zip +0 -0
  242. package/.yarn/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip +0 -0
  243. package/.yarn/cache/debug-npm-4.4.0-f6efe76023-db94f1a182.zip +0 -0
  244. package/.yarn/cache/debug-npm-4.4.3-0105c6123a-d79136ec6c.zip +0 -0
  245. package/.yarn/cache/deep-is-npm-0.1.4-88938b5a67-7f0ee496e0.zip +0 -0
  246. package/.yarn/cache/diff-npm-4.0.2-73133c7102-81b91f9d39.zip +0 -0
  247. package/.yarn/cache/diff-npm-8.0.3-6f5c127138-d29321c70d.zip +0 -0
  248. package/.yarn/cache/dot-prop-npm-5.3.0-7bf6ee1eb8-93f0d343ef.zip +0 -0
  249. package/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-b6053ad399.zip +0 -0
  250. package/.yarn/cache/entities-npm-4.5.0-7cdb83b832-5b039739f7.zip +0 -0
  251. package/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-285325677b.zip +0 -0
  252. package/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-ba827f8936.zip +0 -0
  253. package/.yarn/cache/es-module-lexer-npm-1.7.0-456b47a08a-4c935affcb.zip +0 -0
  254. package/.yarn/cache/esbuild-npm-0.27.3-85b6c20323-fdc3f87a3f.zip +0 -0
  255. package/.yarn/cache/escalade-npm-3.1.1-e02da076aa-afd02e6ca9.zip +0 -0
  256. package/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-ced4dd3a78.zip +0 -0
  257. package/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-a968ad453d.zip +0 -0
  258. package/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-9497d4dd30.zip +0 -0
  259. package/.yarn/cache/eslint-npm-10.0.3-c98e23b2a9-fbbb4d99cb.zip +0 -0
  260. package/.yarn/cache/eslint-scope-npm-9.1.2-50e6e92f41-9fb8bca5a7.zip +0 -0
  261. package/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-92708e882c.zip +0 -0
  262. package/.yarn/cache/eslint-visitor-keys-npm-5.0.1-30a44b062b-16190bdf2c.zip +0 -0
  263. package/.yarn/cache/espree-npm-11.2.0-095134f369-cf87e18ffd.zip +0 -0
  264. package/.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip +0 -0
  265. package/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-81a37116d1.zip +0 -0
  266. package/.yarn/cache/estraverse-npm-5.3.0-03284f8f63-1ff9447b96.zip +0 -0
  267. package/.yarn/cache/estree-walker-npm-2.0.2-dfab42f65c-53a6c54e20.zip +0 -0
  268. package/.yarn/cache/estree-walker-npm-3.0.3-0372979673-c12e3c2b26.zip +0 -0
  269. package/.yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip +0 -0
  270. package/.yarn/cache/expect-type-npm-1.3.0-95a4384745-8412b3fe4f.zip +0 -0
  271. package/.yarn/cache/exponential-backoff-npm-3.1.3-28be78d98e-77e3ae682b.zip +0 -0
  272. package/.yarn/cache/exsolve-npm-1.0.8-20570c05a2-65e44ae05b.zip +0 -0
  273. package/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-40dedc862e.zip +0 -0
  274. package/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-7f081eb0b8.zip +0 -0
  275. package/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-111972b373.zip +0 -0
  276. package/.yarn/cache/fast-uri-npm-3.0.3-0874072625-4b2c5ce681.zip +0 -0
  277. package/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip +0 -0
  278. package/.yarn/cache/fflate-npm-0.8.2-5129f303f0-03448d630c.zip +0 -0
  279. package/.yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip +0 -0
  280. package/.yarn/cache/find-up-npm-5.0.0-e03e9b796d-062c5a83a9.zip +0 -0
  281. package/.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip +0 -0
  282. package/.yarn/cache/flatted-npm-3.2.9-0462256d3c-5c91c5a0a2.zip +0 -0
  283. package/.yarn/cache/flatted-npm-3.3.4-614e5aba3e-d1f33426e9.zip +0 -0
  284. package/.yarn/cache/fs-extra-npm-11.3.4-29a9d2b3b0-e08276f767.zip +0 -0
  285. package/.yarn/cache/fs-minipass-npm-3.0.3-d148d6ac19-63e80da2ff.zip +0 -0
  286. package/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-a1f0c44595.zip +0 -0
  287. package/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-d8680ee1e5.zip +0 -0
  288. package/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-c6c7b60271.zip +0 -0
  289. package/.yarn/cache/git-raw-commits-npm-4.0.0-60e7e666d1-ab51335d9e.zip +0 -0
  290. package/.yarn/cache/glob-npm-13.0.6-864eb0cece-269c236f11.zip +0 -0
  291. package/.yarn/cache/glob-parent-npm-6.0.2-2cbef12738-317034d886.zip +0 -0
  292. package/.yarn/cache/global-directory-npm-4.0.1-1de95382fd-f9cbeef41d.zip +0 -0
  293. package/.yarn/cache/globals-npm-17.4.0-d04eded15b-2be9e8c2b9.zip +0 -0
  294. package/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip +0 -0
  295. package/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-1c6c83b14b.zip +0 -0
  296. package/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-2e789c61b7.zip +0 -0
  297. package/.yarn/cache/hasown-npm-2.0.0-78b794ceef-5d415b114f.zip +0 -0
  298. package/.yarn/cache/he-npm-1.2.0-3b73a2ff07-a27d478bef.zip +0 -0
  299. package/.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-208e8a12de.zip +0 -0
  300. package/.yarn/cache/http-cache-semantics-npm-4.2.0-fadacfb3ad-45b66a945c.zip +0 -0
  301. package/.yarn/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-4207b06a45.zip +0 -0
  302. package/.yarn/cache/https-proxy-agent-npm-7.0.6-27a95c2690-f729219bc7.zip +0 -0
  303. package/.yarn/cache/husky-npm-9.1.7-5b02eaabc4-35bb110a71.zip +0 -0
  304. package/.yarn/cache/iconv-lite-npm-0.7.2-716fc012a0-3c228920f3.zip +0 -0
  305. package/.yarn/cache/ignore-npm-5.3.0-fb0f5fa062-dc06bea5c2.zip +0 -0
  306. package/.yarn/cache/ignore-npm-7.0.5-dea34ee430-ae00db89fe.zip +0 -0
  307. package/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-7f882953aa.zip +0 -0
  308. package/.yarn/cache/import-lazy-npm-4.0.0-3215653869-a3520313e2.zip +0 -0
  309. package/.yarn/cache/import-meta-resolve-npm-4.2.0-d0ecf96035-3ee8aeecb6.zip +0 -0
  310. package/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-8b51313850.zip +0 -0
  311. package/.yarn/cache/ini-npm-4.1.1-01c2cbda7b-7fddc8dfd3.zip +0 -0
  312. package/.yarn/cache/ip-address-npm-10.1.0-d5d5693401-0103516cfa.zip +0 -0
  313. package/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-e7fb686a73.zip +0 -0
  314. package/.yarn/cache/is-core-module-npm-2.13.1-36e17434f9-2cba9903aa.zip +0 -0
  315. package/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-5487da3569.zip +0 -0
  316. package/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-bb11d825e0.zip +0 -0
  317. package/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-17fb4014e2.zip +0 -0
  318. package/.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-85044ed7ba.zip +0 -0
  319. package/.yarn/cache/is-plain-obj-npm-4.1.0-a4f2a92b44-32130d651d.zip +0 -0
  320. package/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip +0 -0
  321. package/.yarn/cache/isexe-npm-4.0.0-588229ad74-5884815115.zip +0 -0
  322. package/.yarn/cache/istanbul-lib-coverage-npm-3.2.2-5c0526e059-6c7ff21067.zip +0 -0
  323. package/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-84323afb14.zip +0 -0
  324. package/.yarn/cache/istanbul-reports-npm-3.2.0-b755b56d78-d596317cfd.zip +0 -0
  325. package/.yarn/cache/jiti-npm-2.6.1-597ab7fb84-79b2e96a8e.zip +0 -0
  326. package/.yarn/cache/jju-npm-1.4.0-670678eaa3-f3f444557e.zip +0 -0
  327. package/.yarn/cache/js-tokens-npm-10.0.0-2f75d73bcb-a934987478.zip +0 -0
  328. package/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip +0 -0
  329. package/.yarn/cache/js-yaml-npm-4.1.0-3606f32312-184a24b4ea.zip +0 -0
  330. package/.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-0d1c91569d.zip +0 -0
  331. package/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-140932564c.zip +0 -0
  332. package/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-108fa90d4c.zip +0 -0
  333. package/.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-71e30015d7.zip +0 -0
  334. package/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cb168b61fd.zip +0 -0
  335. package/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-4f95b5e8a5.zip +0 -0
  336. package/.yarn/cache/keyv-npm-4.5.4-4c8e2cf7f7-aa52f3c5e1.zip +0 -0
  337. package/.yarn/cache/kolorist-npm-1.8.0-2cc04dcc05-73075db44a.zip +0 -0
  338. package/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-effb03cad7.zip +0 -0
  339. package/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-3da6ee62d4.zip +0 -0
  340. package/.yarn/cache/local-pkg-npm-1.1.2-04ade6b6c7-1bcfcc5528.zip +0 -0
  341. package/.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-d3972ab70d.zip +0 -0
  342. package/.yarn/cache/lodash-npm-4.17.23-50bdb1c01a-1264a90469.zip +0 -0
  343. package/.yarn/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-fcba15d21a.zip +0 -0
  344. package/.yarn/cache/lodash.kebabcase-npm-4.1.1-89ffca7e1f-da5d8f41db.zip +0 -0
  345. package/.yarn/cache/lodash.mergewith-npm-4.6.2-7d2d4201ec-4adbed65ff.zip +0 -0
  346. package/.yarn/cache/lodash.snakecase-npm-4.1.1-b12cdbecb4-f0b3f2497e.zip +0 -0
  347. package/.yarn/cache/lodash.startcase-npm-4.4.0-637aa8cc15-bd82aa87a4.zip +0 -0
  348. package/.yarn/cache/lodash.upperfirst-npm-4.3.1-e3b7c364ba-435625da4b.zip +0 -0
  349. package/.yarn/cache/lru-cache-npm-11.2.6-acb7d4323e-73bbffb298.zip +0 -0
  350. package/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-cb53e58278.zip +0 -0
  351. package/.yarn/cache/magic-string-npm-0.30.17-da1b7593b1-16826e415d.zip +0 -0
  352. package/.yarn/cache/magic-string-npm-0.30.21-9a226cb21e-299378e38f.zip +0 -0
  353. package/.yarn/cache/magicast-npm-0.5.2-24c891cd9d-924af67764.zip +0 -0
  354. package/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-69b98a6c0b.zip +0 -0
  355. package/.yarn/cache/make-error-npm-1.3.6-ccb85d9458-171e458d86.zip +0 -0
  356. package/.yarn/cache/make-fetch-happen-npm-15.0.4-cd90f16f9b-b874bf6879.zip +0 -0
  357. package/.yarn/cache/meow-npm-12.1.1-bd7858d088-a125ca99a3.zip +0 -0
  358. package/.yarn/cache/meow-npm-13.2.0-9907f89171-d5b339ae31.zip +0 -0
  359. package/.yarn/cache/minimatch-npm-10.2.4-11f0605299-35f3dfb7b9.zip +0 -0
  360. package/.yarn/cache/minimatch-npm-9.0.7-145dd43fbb-e90f8d8dd1.zip +0 -0
  361. package/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-19d3fcdca0.zip +0 -0
  362. package/.yarn/cache/minipass-collect-npm-2.0.1-73d3907e40-5167e73f62.zip +0 -0
  363. package/.yarn/cache/minipass-fetch-npm-5.0.2-cd03eefed8-ce4ab9f21c.zip +0 -0
  364. package/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-2a51b63feb.zip +0 -0
  365. package/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip +0 -0
  366. package/.yarn/cache/minipass-npm-7.1.3-b73a16498d-539da88dac.zip +0 -0
  367. package/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-cbda57cea2.zip +0 -0
  368. package/.yarn/cache/minipass-sized-npm-2.0.0-a911fc7d3f-f9201696a6.zip +0 -0
  369. package/.yarn/cache/minizlib-npm-3.1.0-6680befdba-5aad75ab00.zip +0 -0
  370. package/.yarn/cache/mlly-npm-1.8.1-0181666245-664fa66726.zip +0 -0
  371. package/.yarn/cache/mrmime-npm-2.0.0-0326eb1458-312b35ed28.zip +0 -0
  372. package/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-a437714e2f.zip +0 -0
  373. package/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-d924b57e73.zip +0 -0
  374. package/.yarn/cache/muggle-string-npm-0.4.1-fe3c825cc2-e914b63e24.zip +0 -0
  375. package/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip +0 -0
  376. package/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-f5f9a7974b.zip +0 -0
  377. package/.yarn/cache/negotiator-npm-1.0.0-47d727e27e-4c559dd526.zip +0 -0
  378. package/.yarn/cache/node-gyp-npm-12.2.0-11f8fe84f1-3ed046746a.zip +0 -0
  379. package/.yarn/cache/nopt-npm-9.0.0-81316ec15c-1822eb6f9b.zip +0 -0
  380. package/.yarn/cache/obug-npm-2.1.1-029730d296-59dccd7de7.zip +0 -0
  381. package/.yarn/cache/optionator-npm-0.9.3-56c3a4bf80-66fba794d4.zip +0 -0
  382. package/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-9db675949d.zip +0 -0
  383. package/.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-2290d627ab.zip +0 -0
  384. package/.yarn/cache/p-map-npm-7.0.4-39386109d0-a5030935d3.zip +0 -0
  385. package/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-c63d6e8000.zip +0 -0
  386. package/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-77947f2253.zip +0 -0
  387. package/.yarn/cache/path-browserify-npm-1.0.1-f975d99a99-8b8c3fd5c6.zip +0 -0
  388. package/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-8c0bd3f523.zip +0 -0
  389. package/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-748c43efd5.zip +0 -0
  390. package/.yarn/cache/path-parse-npm-1.0.7-09564527b7-11ce261f9d.zip +0 -0
  391. package/.yarn/cache/path-scurry-npm-2.0.2-f10aa6a77e-b35ad37cf6.zip +0 -0
  392. package/.yarn/cache/pathe-npm-2.0.3-0924246ee0-c118dc5a8b.zip +0 -0
  393. package/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip +0 -0
  394. package/.yarn/cache/picomatch-npm-4.0.2-e93516ddf2-7c51f3ad2b.zip +0 -0
  395. package/.yarn/cache/picomatch-npm-4.0.3-0a647b87cc-9582c951e9.zip +0 -0
  396. package/.yarn/cache/pkg-types-npm-1.3.1-832c9cd162-19e6cb8b66.zip +0 -0
  397. package/.yarn/cache/pkg-types-npm-2.3.0-e7381b4aaa-d2bbddc5b8.zip +0 -0
  398. package/.yarn/cache/postcss-npm-8.5.8-b010bee8df-dd918f7127.zip +0 -0
  399. package/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-b00d617431.zip +0 -0
  400. package/.yarn/cache/proc-log-npm-6.1.0-84e609b3f4-4f178d4062.zip +0 -0
  401. package/.yarn/cache/punycode-npm-2.3.1-97543c420d-14f76a8206.zip +0 -0
  402. package/.yarn/cache/quansync-npm-0.2.11-f7bf964a44-cb9a1f8ebc.zip +0 -0
  403. package/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-83aa76a7bc.zip +0 -0
  404. package/.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-aaa267e0c5.zip +0 -0
  405. package/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-8408eec31a.zip +0 -0
  406. package/.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-b21cb7f1fb.zip +0 -0
  407. package/.yarn/cache/resolve-npm-1.22.8-098f379dfe-07e179f437.zip +0 -0
  408. package/.yarn/cache/resolve-patch-4254c24959-0446f02443.zip +0 -0
  409. package/.yarn/cache/retry-npm-0.13.1-89eb100ab6-9ae822ee19.zip +0 -0
  410. package/.yarn/cache/rollup-npm-4.59.0-3b10f603ec-f38742da34.zip +0 -0
  411. package/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7e3c8b2e88.zip +0 -0
  412. package/.yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip +0 -0
  413. package/.yarn/cache/semver-npm-7.6.3-57e82c14d5-88f33e148b.zip +0 -0
  414. package/.yarn/cache/semver-npm-7.7.4-746e538da5-5215ad0234.zip +0 -0
  415. package/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-a41692e7d8.zip +0 -0
  416. package/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1dbed0726d.zip +0 -0
  417. package/.yarn/cache/siginfo-npm-2.0.0-9bbac931f8-3def8f8e51.zip +0 -0
  418. package/.yarn/cache/sirv-npm-3.0.2-6cf658c733-5930e4397a.zip +0 -0
  419. package/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip +0 -0
  420. package/.yarn/cache/socks-npm-2.8.7-d1d20aae19-2805a43a1c.zip +0 -0
  421. package/.yarn/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-5d2c6cecba.zip +0 -0
  422. package/.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip +0 -0
  423. package/.yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip +0 -0
  424. package/.yarn/cache/split2-npm-4.2.0-16aa3883ba-b292beb8ce.zip +0 -0
  425. package/.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-ecadcfe4c7.zip +0 -0
  426. package/.yarn/cache/ssri-npm-13.0.1-c266f2233c-cf6408a186.zip +0 -0
  427. package/.yarn/cache/stackback-npm-0.0.2-73273dc92e-89a1416668.zip +0 -0
  428. package/.yarn/cache/std-env-npm-3.10.0-30d3e2646f-1814927a45.zip +0 -0
  429. package/.yarn/cache/string-argv-npm-0.3.2-6e057a88f1-75c02a8375.zip +0 -0
  430. package/.yarn/cache/string-width-npm-4.2.3-2c27177bae-1e525e92e5.zip +0 -0
  431. package/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-1ae5f212a1.zip +0 -0
  432. package/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-9681a6257b.zip +0 -0
  433. package/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-6ae5ff319b.zip +0 -0
  434. package/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-afb4c88521.zip +0 -0
  435. package/.yarn/cache/supports-color-npm-8.1.1-289e937149-ea1d3c275d.zip +0 -0
  436. package/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-6c40323407.zip +0 -0
  437. package/.yarn/cache/tar-npm-7.5.10-83147ff192-ed905e4b33.zip +0 -0
  438. package/.yarn/cache/tinybench-npm-2.9.0-2861a048db-c3500b0f60.zip +0 -0
  439. package/.yarn/cache/tinyexec-npm-1.0.2-321b713e56-1261a8e34c.zip +0 -0
  440. package/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip +0 -0
  441. package/.yarn/cache/tinyrainbow-npm-3.0.3-06ed35d14d-1e799d35cd.zip +0 -0
  442. package/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-b214d21dbf.zip +0 -0
  443. package/.yarn/cache/totalist-npm-3.0.1-91e71f3baa-4bb1fadb69.zip +0 -0
  444. package/.yarn/cache/ts-api-utils-npm-2.4.0-1179124e9a-ed185861ae.zip +0 -0
  445. package/.yarn/cache/ts-node-npm-10.9.2-3f3890b9ac-5f29938489.zip +0 -0
  446. package/.yarn/cache/tslib-npm-2.8.1-66590b21b8-9c4759110a.zip +0 -0
  447. package/.yarn/cache/type-check-npm-0.4.0-60565800ce-7b3fd0ed43.zip +0 -0
  448. package/.yarn/cache/typescript-eslint-npm-8.56.1-533c704529-c33aeb9a8b.zip +0 -0
  449. package/.yarn/cache/typescript-npm-5.7.2-b1f84a8b28-a873118b52.zip +0 -0
  450. package/.yarn/cache/typescript-npm-5.8.2-b95d637f6a-5c4f6fbf1c.zip +0 -0
  451. package/.yarn/cache/typescript-patch-26c53754b1-5448a08e59.zip +0 -0
  452. package/.yarn/cache/typescript-patch-aed9e5263d-f3b8082c9d.zip +0 -0
  453. package/.yarn/cache/ufo-npm-1.6.3-29bac69d97-bf0e4ebff9.zip +0 -0
  454. package/.yarn/cache/undici-types-npm-7.18.2-3e6d69d829-85a7918911.zip +0 -0
  455. package/.yarn/cache/unique-filename-npm-5.0.0-605f54f18e-afb897e9cf.zip +0 -0
  456. package/.yarn/cache/unique-slug-npm-6.0.0-f26b186e99-da7ade4cb0.zip +0 -0
  457. package/.yarn/cache/universalify-npm-2.0.1-040ba5a21e-73e8ee3809.zip +0 -0
  458. package/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-4ef57b45aa.zip +0 -0
  459. package/.yarn/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-bdc36fb809.zip +0 -0
  460. package/.yarn/cache/vite-npm-7.3.1-330baf2f0d-5c7548f5f4.zip +0 -0
  461. package/.yarn/cache/vite-plugin-dts-npm-4.5.4-2445647687-5fcb7f3739.zip +0 -0
  462. package/.yarn/cache/vitest-npm-4.0.18-52f42bdace-b913cd3203.zip +0 -0
  463. package/.yarn/cache/vscode-uri-npm-3.0.8-56f46b9d24-f7f217f526.zip +0 -0
  464. package/.yarn/cache/which-npm-2.0.2-320ddf72f7-66522872a7.zip +0 -0
  465. package/.yarn/cache/which-npm-6.0.1-afc3b2db90-7e710e54ea.zip +0 -0
  466. package/.yarn/cache/why-is-node-running-npm-2.3.0-011cf61a18-1cde0b01b8.zip +0 -0
  467. package/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-d15fc12c11.zip +0 -0
  468. package/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-4df2842c36.zip +0 -0
  469. package/.yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip +0 -0
  470. package/.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-a499c81ce6.zip +0 -0
  471. package/.yarn/cache/yargs-npm-17.7.2-80b62638e1-ccd7e723e6.zip +0 -0
  472. package/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-f84b5e4816.zip +0 -0
  473. package/.yarn/cache/yn-npm-3.1.1-8ad4259784-0732468dd7.zip +0 -0
  474. package/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-dceb44c285.zip +0 -0
  475. package/.yarn/install-state.gz +0 -0
  476. package/.yarn/releases/yarn-4.12.0.cjs +0 -942
  477. package/.yarnrc.yml +0 -5
  478. package/AGENTS.md +0 -82
  479. package/CODE_OF_CONDUCT.md +0 -128
  480. package/dist/metadata.cjs.js +0 -130
  481. package/dist/metadata.es.js +0 -131
  482. package/docker/services/node/Dockerfile +0 -9
  483. package/drafts/.gitignore +0 -2
  484. package/skills/commit-workflow/SKILL.md +0 -93
  485. package/skills/coverage-recovery/SKILL.md +0 -68
  486. package/skills/yarn-lock-conflict-resolution/SKILL.md +0 -69
package/types/index.d.ts CHANGED
@@ -27,6 +27,9 @@ export type Checker<T, A extends readonly unknown[] = readonly unknown[]> = (val
27
27
  /** Extracts a derived value from the original input before a checker runs. */
28
28
  export type Extractor<T, V> = (value: T) => V
29
29
 
30
+ /** Public stage marker for assertion pipelines. */
31
+ export type AssertionStage = 'guard' | 'refinement'
32
+
30
33
  /** Origin layer that produced a violation. */
31
34
  export type ViolationKind = 'assertion' | 'validator' | 'runtime'
32
35
 
@@ -63,23 +66,27 @@ type ResolveViolationSubjectArgs<COrT extends string | readonly unknown[], C ext
63
66
  * `declare module '@modulify/validator' { interface ViolationCodeRegistry { 'legacy.code': never } }`
64
67
  */
65
68
  export interface ViolationCodeRegistry {
69
+ 'date.valid': ViolationCodeEntry<'assertion', 'isValidDate', readonly []>;
66
70
  'length.exact': ViolationCodeEntry<'assertion', 'hasLength', readonly [exact: number]>;
67
71
  'length.max': ViolationCodeEntry<'assertion', 'hasLength', readonly [max: number]>;
68
72
  'length.min': ViolationCodeEntry<'assertion', 'hasLength', readonly [min: number]>;
69
73
  'length.range': ViolationCodeEntry<'assertion', 'hasLength', readonly [range: readonly [number, number]]>;
70
74
  'length.unsupported-type': ViolationCodeEntry<'assertion', 'hasLength', readonly []>;
71
75
  'number.exact': ViolationCodeEntry<'assertion', 'hasValue', readonly [exact: number]>;
76
+ 'number.finite': ViolationCodeEntry<'assertion', 'isFiniteNumber', readonly []>;
77
+ 'number.integer': ViolationCodeEntry<'assertion', 'isInteger', readonly []>;
72
78
  'number.max': ViolationCodeEntry<'assertion', 'hasValue', readonly [max: number]>;
73
79
  'number.min': ViolationCodeEntry<'assertion', 'hasValue', readonly [min: number]>;
74
80
  'number.multiple-of': ViolationCodeEntry<'assertion', 'multipleOf', readonly [step: number]>;
75
81
  'number.nan': ViolationCodeEntry<'assertion', 'isNaN', readonly []>;
76
82
  'number.range': ViolationCodeEntry<'assertion', 'hasValue', readonly [range: readonly [number, number]]>;
83
+ 'number.safe-integer': ViolationCodeEntry<'assertion', 'isSafeInteger', readonly []>;
77
84
  'number.unsupported-type': ViolationCodeEntry<'assertion', 'hasValue' | 'multipleOf', readonly []>;
78
85
  'runtime.rejection': ViolationCodeEntry<'runtime', 'validate', readonly [reason: unknown]>;
79
86
  'shape.fields.mismatch': ViolationCodeEntry<
80
87
  'validator',
81
88
  'shape',
82
- readonly [selectors: readonly [ObjectShapeFieldSelector, ObjectShapeFieldSelector]]
89
+ readonly [selectors: readonly [ShapeFieldSelector, ShapeFieldSelector]]
83
90
  >;
84
91
  'shape.unknown-key': ViolationCodeEntry<'validator', 'shape', readonly []>;
85
92
  'size.exact': ViolationCodeEntry<'assertion', 'hasSize', readonly [exact: number]>;
@@ -102,12 +109,15 @@ export interface ViolationCodeRegistry {
102
109
  'type.blob': ViolationCodeEntry<'assertion', 'isBlob', readonly []>;
103
110
  'type.boolean': ViolationCodeEntry<'assertion', 'isBoolean', readonly []>;
104
111
  'type.date': ViolationCodeEntry<'assertion', 'isDate', readonly []>;
112
+ 'type.error': ViolationCodeEntry<'assertion', 'isError', readonly []>;
105
113
  'type.file': ViolationCodeEntry<'assertion', 'isFile', readonly []>;
106
114
  'type.function': ViolationCodeEntry<'assertion', 'isFunction', readonly []>;
107
115
  'type.map': ViolationCodeEntry<'assertion', 'isMap', readonly []>;
108
116
  'type.null': ViolationCodeEntry<'assertion', 'isNull', readonly []>;
109
117
  'type.number': ViolationCodeEntry<'assertion', 'isNumber', readonly []>;
118
+ 'type.promise-like': ViolationCodeEntry<'assertion', 'isPromiseLike', readonly []>;
110
119
  'type.record': ViolationCodeEntry<'validator', 'shape' | 'discriminatedUnion' | 'record', readonly []>;
120
+ 'type.regexp': ViolationCodeEntry<'assertion', 'isRegExp', readonly []>;
111
121
  'type.set': ViolationCodeEntry<'assertion', 'isSet', readonly []>;
112
122
  'type.string': ViolationCodeEntry<'assertion', 'isString', readonly []>;
113
123
  'type.symbol': ViolationCodeEntry<'assertion', 'isSymbol', readonly []>;
@@ -225,7 +235,7 @@ export declare const collection: <V extends Violation>(violations: readonly V[])
225
235
  export type ConstraintMetadata = Readonly<Record<string, unknown>>
226
236
 
227
237
  /** Public descriptor entry for additional assertion-level checks. */
228
- export interface AssertionDescriptorConstraint<
238
+ export interface AssertionConstraintDescriptor<
229
239
  C extends string = string,
230
240
  A extends readonly unknown[] = readonly unknown[],
231
241
  > {
@@ -234,7 +244,7 @@ export interface AssertionDescriptorConstraint<
234
244
  }
235
245
 
236
246
  /** Shared descriptor shape returned by `describe(...)`. */
237
- export interface ConstraintDescriptorBase<K extends string = string> {
247
+ export interface BaseConstraintDescriptor<K extends string = string> {
238
248
  readonly kind: K;
239
249
  readonly metadata?: ConstraintMetadata
240
250
  }
@@ -243,8 +253,8 @@ export interface ConstraintDescriptorBase<K extends string = string> {
243
253
  export interface AssertionDescriptor<
244
254
  C extends string = string,
245
255
  A extends readonly unknown[] = readonly unknown[],
246
- T extends readonly AssertionDescriptorConstraint[] = readonly AssertionDescriptorConstraint[],
247
- > extends ConstraintDescriptorBase<'assertion'> {
256
+ T extends readonly AssertionConstraintDescriptor[] = readonly AssertionConstraintDescriptor[],
257
+ > extends BaseConstraintDescriptor<'assertion'> {
248
258
  readonly name: string;
249
259
  readonly bail: boolean;
250
260
  readonly code: C;
@@ -253,17 +263,17 @@ export interface AssertionDescriptor<
253
263
  }
254
264
 
255
265
  /** Generic fallback descriptor for custom validators without structural instrumentation. */
256
- export type ValidatorDescriptor = ConstraintDescriptorBase<'validator'>
266
+ export type OpaqueValidatorDescriptor = BaseConstraintDescriptor<'validator'>
257
267
 
258
268
  /** Public extension descriptor for custom validators that expose their own `describe()` contract. */
259
- export interface CustomConstraintDescriptor<K extends string = string> extends ConstraintDescriptorBase<K> {
269
+ export interface CustomConstraintDescriptor<K extends string = string> extends BaseConstraintDescriptor<K> {
260
270
  readonly [key: string]: unknown
261
271
  }
262
272
 
263
273
  /** Descriptor for sequential arrays of constraints used in a single slot. */
264
274
  export interface AllOfConstraintDescriptor<
265
275
  T extends readonly unknown[] = readonly ConstraintDescriptor[],
266
- > extends ConstraintDescriptorBase<'allOf'> {
276
+ > extends BaseConstraintDescriptor<'allOf'> {
267
277
  readonly constraints: T
268
278
  }
269
279
 
@@ -271,42 +281,42 @@ export interface AllOfConstraintDescriptor<
271
281
  export interface WrapperConstraintDescriptor<
272
282
  K extends 'optional' | 'nullable' | 'nullish' = 'optional' | 'nullable' | 'nullish',
273
283
  C = ConstraintDescriptor,
274
- > extends ConstraintDescriptorBase<K> {
284
+ > extends BaseConstraintDescriptor<K> {
275
285
  readonly child: C
276
286
  }
277
287
 
278
288
  /** Descriptor for `each(...)`. */
279
289
  export interface EachConstraintDescriptor<
280
290
  C = ConstraintDescriptor,
281
- > extends ConstraintDescriptorBase<'each'> {
291
+ > extends BaseConstraintDescriptor<'each'> {
282
292
  readonly item: C
283
293
  }
284
294
 
285
295
  /** Descriptor for `tuple(...)`. */
286
296
  export interface TupleConstraintDescriptor<
287
297
  T extends readonly unknown[] = readonly ConstraintDescriptor[],
288
- > extends ConstraintDescriptorBase<'tuple'> {
298
+ > extends BaseConstraintDescriptor<'tuple'> {
289
299
  readonly items: T
290
300
  }
291
301
 
292
302
  /** Descriptor for `union(...)`. */
293
303
  export interface UnionConstraintDescriptor<
294
304
  T extends readonly unknown[] = readonly ConstraintDescriptor[],
295
- > extends ConstraintDescriptorBase<'union'> {
305
+ > extends BaseConstraintDescriptor<'union'> {
296
306
  readonly branches: T
297
307
  }
298
308
 
299
309
  /** Descriptor for `record(...)`. */
300
310
  export interface RecordConstraintDescriptor<
301
311
  C = ConstraintDescriptor,
302
- > extends ConstraintDescriptorBase<'record'> {
312
+ > extends BaseConstraintDescriptor<'record'> {
303
313
  readonly values: C
304
314
  }
305
315
 
306
316
  /** Descriptor for `discriminatedUnion(...)`. */
307
317
  export interface DiscriminatedUnionConstraintDescriptor<
308
318
  V = Readonly<Record<PropertyKey, ConstraintDescriptor>>,
309
- > extends ConstraintDescriptorBase<'discriminatedUnion'> {
319
+ > extends BaseConstraintDescriptor<'discriminatedUnion'> {
310
320
  readonly key: PropertyKey;
311
321
  readonly variants: V
312
322
  }
@@ -317,29 +327,37 @@ export interface ObjectShapeRuleDescriptorBase<K extends string = string> {
317
327
  readonly metadata?: ConstraintMetadata
318
328
  }
319
329
 
320
- /** Generic compact descriptor for sync object-level rules added via `.refine(...)`. */
321
- export type GenericObjectShapeRuleDescriptor<
330
+ /** Generic compact descriptor for sync-safe object-level rules. */
331
+ export type SyncObjectShapeRuleDescriptor<
322
332
  K extends string = 'refine',
323
333
  > = ObjectShapeRuleDescriptorBase<K>
324
334
 
335
+ /** Compact descriptor for object-level rules registered through the async-first `.refine(...)` API. */
336
+ export interface AsyncObjectShapeRuleDescriptor<
337
+ K extends string = 'refine',
338
+ > extends ObjectShapeRuleDescriptorBase<K> {
339
+ readonly async: true
340
+ }
341
+
325
342
  /** Descriptor for the built-in `.fieldsMatch(...)` helper. */
326
343
  export interface FieldsMatchObjectShapeRuleDescriptor<
327
- Left extends ObjectShapeFieldSelector = ObjectShapeFieldSelector,
328
- Right extends ObjectShapeFieldSelector = ObjectShapeFieldSelector,
344
+ Left extends ShapeFieldSelector = ShapeFieldSelector,
345
+ Right extends ShapeFieldSelector = ShapeFieldSelector,
329
346
  > extends ObjectShapeRuleDescriptorBase<'fieldsMatch'> {
330
347
  readonly selectors: readonly [Left, Right]
331
348
  }
332
349
 
333
350
  /** Machine-readable summary of object-level rules registered on a shape. */
334
351
  export type ObjectShapeRuleDescriptor =
335
- | GenericObjectShapeRuleDescriptor<string>
352
+ | SyncObjectShapeRuleDescriptor<string>
353
+ | AsyncObjectShapeRuleDescriptor<string>
336
354
  | FieldsMatchObjectShapeRuleDescriptor
337
355
 
338
356
  /** Descriptor for `shape(...)`. */
339
357
  export interface ShapeConstraintDescriptor<
340
358
  F = Readonly<Record<PropertyKey, ConstraintDescriptor>>,
341
359
  R extends readonly ObjectShapeRuleDescriptor[] = readonly ObjectShapeRuleDescriptor[],
342
- > extends ConstraintDescriptorBase<'shape'> {
360
+ > extends BaseConstraintDescriptor<'shape'> {
343
361
  readonly unknownKeys: UnknownKeysMode;
344
362
  readonly fields: F;
345
363
  readonly rules: R
@@ -349,7 +367,7 @@ export interface ShapeConstraintDescriptor<
349
367
  export type BuiltInConstraintDescriptor =
350
368
  | AssertionDescriptor
351
369
  | AllOfConstraintDescriptor
352
- | ValidatorDescriptor
370
+ | OpaqueValidatorDescriptor
353
371
  | WrapperConstraintDescriptor
354
372
  | EachConstraintDescriptor
355
373
  | TupleConstraintDescriptor
@@ -368,9 +386,13 @@ export type ConstraintDescriptor = BuiltInConstraintDescriptor | CustomConstrain
368
386
  * `type LengthConstraint = AssertionConstraint<string, number, [min: number], 'length.min'>`
369
387
  */
370
388
  export type AssertionConstraint<
371
- T = unknown,
372
- V = unknown,
373
- A extends readonly unknown[] = readonly unknown[],
389
+ // Defaults erase heterogeneous checker signatures; concrete tuples retain their types.
390
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
391
+ T = any,
392
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
393
+ V = any,
394
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
395
+ A extends readonly unknown[] = any[],
374
396
  C extends string = string
375
397
  > = readonly [
376
398
  Extractor<T, V>,
@@ -381,13 +403,13 @@ export type AssertionConstraint<
381
403
 
382
404
  /** Maps an assertion checker tuple into its public descriptor entry. */
383
405
  export type DescribeAssertionConstraint<C extends AssertionConstraint> =
384
- C extends AssertionConstraint<unknown, unknown, infer A, infer Code>
385
- ? AssertionDescriptorConstraint<Code, A>
406
+ C extends readonly [unknown, unknown, infer Code extends string, ...infer A]
407
+ ? AssertionConstraintDescriptor<Code, A>
386
408
  : never
387
409
 
388
410
  /** Maps an assertion checker tuple into the violation subject it can produce. */
389
411
  export type AssertionConstraintSubject<C extends AssertionConstraint, N extends string = string> =
390
- C extends AssertionConstraint<unknown, unknown, infer A, infer Code>
412
+ C extends readonly [unknown, unknown, infer Code extends string, ...infer A]
391
413
  ? {
392
414
  kind: 'assertion';
393
415
  name: N;
@@ -403,6 +425,8 @@ export type DescribeAssertionConstraintTuple<T extends readonly AssertionConstra
403
425
  : never
404
426
  } & ReadonlyArray<DescribeAssertionConstraint<T[number]>>
405
427
 
428
+ declare const assertionStageBrand: unique symbol
429
+
406
430
  /**
407
431
  * Leaf-level validator that checks a single value and either succeeds with `null`
408
432
  * or returns a structured violation.
@@ -415,20 +439,42 @@ export type Assertion<
415
439
  Code extends string = string,
416
440
  A extends readonly unknown[] = readonly unknown[],
417
441
  Name extends string = string,
442
+ Stage extends AssertionStage = AssertionStage,
418
443
  > = ((value: unknown) => MaybePromise<Omit<Violation<
419
- {
420
- kind: 'assertion';
421
- name: Name;
422
- code: Code;
423
- args: A;
424
- } | AssertionConstraintSubject<C[number], Name>
444
+ Stage extends 'refinement'
445
+ ? AssertionConstraintSubject<C[number], Name>
446
+ : {
447
+ kind: 'assertion';
448
+ name: Name;
449
+ code: Code;
450
+ args: A;
451
+ } | AssertionConstraintSubject<C[number], Name>
425
452
  >, 'path'> | null>) & {
426
453
  readonly name: Name;
427
454
  readonly bail: boolean;
428
455
  readonly constraints: C;
429
456
  readonly check: Predicate<T>;
457
+ readonly [assertionStageBrand]: Stage;
430
458
  }
431
459
 
460
+ /** Assertion stage that establishes the base domain for subsequent checks. */
461
+ export type Guard<
462
+ T = unknown,
463
+ C extends readonly AssertionConstraint[] = readonly AssertionConstraint[],
464
+ Code extends string = string,
465
+ A extends readonly unknown[] = readonly unknown[],
466
+ Name extends string = string,
467
+ > = Assertion<T, C, Code, A, Name, 'guard'>
468
+
469
+ /** Assertion stage that validates properties inside an already established domain. */
470
+ export type Refinement<
471
+ T = unknown,
472
+ C extends readonly AssertionConstraint[] = readonly AssertionConstraint[],
473
+ Code extends string = string,
474
+ A extends readonly unknown[] = readonly unknown[],
475
+ Name extends string = string,
476
+ > = Assertion<T, C, Code, A, Name, 'refinement'>
477
+
432
478
  /**
433
479
  * Any reusable validation unit: either a leaf `Assertion` or a composed `Validator`.
434
480
  *
@@ -437,14 +483,77 @@ export type Assertion<
437
483
  */
438
484
  export type Constraint<T = unknown> = Assertion<T> | Validator<T>
439
485
 
486
+ type ConstraintSequenceState<
487
+ Value,
488
+ Ready extends boolean,
489
+ > = {
490
+ value: Value;
491
+ ready: Ready;
492
+ }
493
+
494
+ type ApplyConstraintStep<
495
+ State extends ConstraintSequenceState<unknown, boolean>,
496
+ Step extends Constraint,
497
+ > =
498
+ [Step] extends [Refinement<infer Input, readonly AssertionConstraint[], string, readonly unknown[], string>]
499
+ ? State['ready'] extends true
500
+ ? [State['value']] extends [Input]
501
+ ? ConstraintSequenceState<State['value'], true>
502
+ : never
503
+ : never
504
+ : Step extends Validator<infer Output>
505
+ ? ConstraintSequenceState<State['value'] & Output, false>
506
+ : Step extends Assertion<infer Output>
507
+ ? ConstraintSequenceState<State['value'] & Output, true>
508
+ : never
509
+
510
+ type CompatibleConstraintTupleState<
511
+ T extends readonly Constraint[],
512
+ State extends ConstraintSequenceState<unknown, boolean> = ConstraintSequenceState<unknown, false>,
513
+ > =
514
+ T extends readonly [infer First extends Constraint, ...infer Rest extends readonly Constraint[]]
515
+ ? ApplyConstraintStep<State, First> extends infer Next
516
+ ? [Next] extends [never]
517
+ ? never
518
+ : Next extends ConstraintSequenceState<unknown, boolean>
519
+ ? CompatibleConstraintTupleState<Rest, Next>
520
+ : never
521
+ : never
522
+ : State
523
+
524
+ /** Tuple of sequential constraints with stage-aware assertion compatibility checks. */
525
+ export type CompatibleConstraintTuple<T extends readonly Constraint[] = readonly Constraint[]> =
526
+ number extends T['length']
527
+ ? T
528
+ : T extends readonly [Constraint, ...Constraint[]]
529
+ ? CompatibleConstraintTupleState<T> extends never
530
+ ? never
531
+ : T
532
+ : T
533
+
534
+ /** One-or-many constraint input after applying staged assertion compatibility checks. */
535
+ export type CompatibleConstraints<C> =
536
+ C extends readonly Constraint[]
537
+ ? CompatibleConstraintTuple<C>
538
+ : C extends Refinement<unknown, readonly AssertionConstraint[], string, readonly unknown[], string>
539
+ ? never
540
+ : C extends Constraint
541
+ ? C
542
+ : never
543
+
440
544
  /** Extracts the validated TypeScript type from a single constraint. */
441
545
  export type InferConstraint<C> =
442
- C extends Assertion<infer T, readonly AssertionConstraint[], string, readonly unknown[], string>
546
+ C extends Assertion<infer T, readonly AssertionConstraint[], string, readonly unknown[], string, AssertionStage>
443
547
  ? T
444
548
  : C extends Validator<infer T>
445
549
  ? T
446
550
  : never
447
551
 
552
+ type InferConstraintIntersection<C> =
553
+ (C extends unknown ? (value: InferConstraint<C>) => void : never) extends (value: infer Output) => void
554
+ ? Output
555
+ : never
556
+
448
557
  /**
449
558
  * Extracts the validated TypeScript type from one or many constraints.
450
559
  *
@@ -460,22 +569,28 @@ export type InferConstraints<C> =
460
569
  C extends readonly []
461
570
  ? unknown
462
571
  : C extends readonly unknown[]
463
- ? UnionToIntersection<InferConstraint<C[number]>>
572
+ ? number extends C['length']
573
+ ? InferConstraintIntersection<C[number]>
574
+ : Intersect<{ [K in keyof C]: InferConstraint<C[K]> }>
464
575
  : InferConstraint<C>
465
576
 
466
577
  /** Internal async runner signature used by composed validators. */
467
- export type Validate = (
578
+ export type Validate = ((
468
579
  value: unknown,
469
- constraints: MaybeMany<Constraint>,
580
+ constraints: CompatibleConstraints<MaybeMany<Constraint>>,
470
581
  path?: PropertyKey[]
471
- ) => Promise<Violation[]>
582
+ ) => Promise<Violation[]>) & {
583
+ readonly sync?: false
584
+ }
472
585
 
473
586
  /** Internal sync runner signature used by composed validators. */
474
- export type ValidateSync = (
587
+ export type ValidateSync = ((
475
588
  value: unknown,
476
- constraints: MaybeMany<Constraint>,
589
+ constraints: CompatibleConstraints<MaybeMany<Constraint>>,
477
590
  path?: PropertyKey[]
478
- ) => Violation[]
591
+ ) => Violation[]) & {
592
+ readonly sync: true
593
+ }
479
594
 
480
595
  /** Internal union of async and sync runner signatures. */
481
596
  export type ValidateLike = Validate | ValidateSync
@@ -489,18 +604,18 @@ export type Validation<F extends ValidateLike> = F extends Validate
489
604
  export type UnknownKeysMode = 'passthrough' | 'strict'
490
605
 
491
606
  /** Field selector accepted by shape helpers that can point to the current level or a nested path. */
492
- export type ObjectShapeFieldSelector = PropertyKey | readonly PropertyKey[]
607
+ export type ShapeFieldSelector = PropertyKey | readonly PropertyKey[]
493
608
 
494
- type ResolveObjectShapeRefinementIssueCode<COrA extends string | readonly unknown[]> = COrA extends string ? COrA : string
495
- type ResolveObjectShapeRefinementIssueArgs<COrA extends string | readonly unknown[], C extends string> = [COrA] extends [readonly unknown[]]
609
+ type ResolveShapeRefinementViolationCode<COrA extends string | readonly unknown[]> = COrA extends string ? COrA : string
610
+ type ResolveShapeRefinementViolationArgs<COrA extends string | readonly unknown[], C extends string> = [COrA] extends [readonly unknown[]]
496
611
  ? COrA
497
612
  : ViolationArgs<C>
498
613
 
499
- /** Machine-readable issue returned by an object-level shape refinement. */
500
- export type ObjectShapeRefinementIssue<
614
+ /** Machine-readable violation input returned by an object-level shape refinement. */
615
+ export type ShapeRefinementViolationInput<
501
616
  COrA extends string | readonly unknown[] = string,
502
- C extends string = ResolveObjectShapeRefinementIssueCode<COrA>,
503
- A extends readonly unknown[] = ResolveObjectShapeRefinementIssueArgs<COrA, C>,
617
+ C extends string = ResolveShapeRefinementViolationCode<COrA>,
618
+ A extends readonly unknown[] = ResolveShapeRefinementViolationArgs<COrA, C>,
504
619
  > = {
505
620
  path?: PropertyKey[];
506
621
  code: C;
@@ -512,18 +627,68 @@ export type ObjectShapeRefinementIssue<
512
627
  value?: unknown;
513
628
  }
514
629
 
515
- /** Sync object-level rule that runs after the base shape has validated successfully. */
516
- export type ObjectShapeRefinement<
630
+ /** Sync-safe object-level rule that runs after the base shape has validated successfully. */
631
+ export type SyncShapeRefinement<
517
632
  T,
518
- I extends ObjectShapeRefinementIssue = ObjectShapeRefinementIssue,
633
+ I extends ShapeRefinementViolationInput = ShapeRefinementViolationInput,
519
634
  > = (
520
635
  value: T
521
636
  ) => MaybeMany<I | null | undefined> | null | undefined
522
637
 
638
+ /** Async-first object-level rule that runs after the base shape has validated successfully. */
639
+ export type ShapeRefinement<
640
+ T,
641
+ I extends ShapeRefinementViolationInput = ShapeRefinementViolationInput,
642
+ > = (
643
+ value: T
644
+ ) => MaybePromise<MaybeMany<I | null | undefined> | null | undefined>
645
+
646
+ type AsyncObjectShapeRuleDescriptorOf<RD extends SyncObjectShapeRuleDescriptor<string>> =
647
+ Omit<RD, 'async'> & AsyncObjectShapeRuleDescriptor<RD['kind']>
648
+
649
+ /** Explicitly sync-safe callable helper exposed as `shape(...).refine.sync(...)`. */
650
+ export interface ShapeRefineMethodSync<
651
+ D extends ShapeDescriptor = ShapeDescriptor,
652
+ M extends UnknownKeysMode = UnknownKeysMode,
653
+ R extends readonly ObjectShapeRuleDescriptor[] = readonly ObjectShapeRuleDescriptor[],
654
+ RI extends ShapeRefinementViolationInput = never,
655
+ > {
656
+ <const I extends ShapeRefinementViolationInput = ShapeRefinementViolationInput>(
657
+ refinement: SyncShapeRefinement<InferShape<D>, I>
658
+ ): ObjectShape<D, M, [...R, SyncObjectShapeRuleDescriptor<'refine'>], RI | I>;
659
+ <
660
+ const I extends ShapeRefinementViolationInput = ShapeRefinementViolationInput,
661
+ const RD extends SyncObjectShapeRuleDescriptor<string> = SyncObjectShapeRuleDescriptor<'refine'>
662
+ >(
663
+ refinement: SyncShapeRefinement<InferShape<D>, I>,
664
+ descriptor: RD
665
+ ): ObjectShape<D, M, [...R, RD], RI | I>;
666
+ }
667
+
668
+ /** Async-first callable shape helper exposed as `shape(...).refine(...)`. */
669
+ export interface ShapeRefineMethod<
670
+ D extends ShapeDescriptor = ShapeDescriptor,
671
+ M extends UnknownKeysMode = UnknownKeysMode,
672
+ R extends readonly ObjectShapeRuleDescriptor[] = readonly ObjectShapeRuleDescriptor[],
673
+ RI extends ShapeRefinementViolationInput = never,
674
+ > {
675
+ <const I extends ShapeRefinementViolationInput = ShapeRefinementViolationInput>(
676
+ refinement: ShapeRefinement<InferShape<D>, I>
677
+ ): ObjectShape<D, M, [...R, AsyncObjectShapeRuleDescriptor<'refine'>], RI | I>;
678
+ <
679
+ const I extends ShapeRefinementViolationInput = ShapeRefinementViolationInput,
680
+ const RD extends SyncObjectShapeRuleDescriptor<string> = SyncObjectShapeRuleDescriptor<'refine'>
681
+ >(
682
+ refinement: ShapeRefinement<InferShape<D>, I>,
683
+ descriptor: RD
684
+ ): ObjectShape<D, M, [...R, AsyncObjectShapeRuleDescriptorOf<RD>], RI | I>;
685
+ sync: ShapeRefineMethodSync<D, M, R, RI>;
686
+ }
687
+
523
688
  type KnownCodeViolation<C extends KnownViolationCode> = Violation<KnownViolationSubject<C>>
524
689
 
525
- type ShapeRefinementIssueSubject<I extends ObjectShapeRefinementIssue> =
526
- I extends ObjectShapeRefinementIssue<string | readonly unknown[], infer C, infer A>
690
+ type ShapeRefinementIssueSubject<I extends ShapeRefinementViolationInput> =
691
+ I extends ShapeRefinementViolationInput<string | readonly unknown[], infer C, infer A>
527
692
  ? C extends KnownViolationCode
528
693
  ? {
529
694
  kind: 'validator';
@@ -534,55 +699,57 @@ type ShapeRefinementIssueSubject<I extends ObjectShapeRefinementIssue> =
534
699
  : ViolationSubject<A, 'validator', C>
535
700
  : never
536
701
 
537
- type ShapeRefinementIssueViolation<I extends ObjectShapeRefinementIssue> =
538
- I extends ObjectShapeRefinementIssue
702
+ type ShapeRefinementIssueViolation<I extends ShapeRefinementViolationInput> =
703
+ I extends ShapeRefinementViolationInput
539
704
  ? Violation<ShapeRefinementIssueSubject<I>>
540
705
  : never
541
706
 
542
- type InferObjectDescriptorViolations<D extends ObjectDescriptor> = {
543
- [K in keyof D]: InferMaybeManyViolations<D[K]>
707
+ type InferShapeViolations<D extends ShapeDescriptor> = {
708
+ [K in keyof D]: InferViolations<D[K]>
544
709
  }[keyof D]
545
710
 
546
711
  /** Maps a single constraint into the union of violations it can produce. */
547
712
  export type InferConstraintViolations<C extends Constraint> =
548
- C extends Assertion<unknown, infer AC, infer Code, infer Args, infer Name>
713
+ C extends Guard<unknown, infer AC, infer Code, infer Args, infer Name>
549
714
  ? Violation<{
550
715
  kind: 'assertion';
551
716
  name: Name;
552
717
  code: Code;
553
718
  args: Args;
554
719
  } | AssertionConstraintSubject<AC[number], Name>>
720
+ : C extends Refinement<unknown, infer AC, string, readonly unknown[], infer Name>
721
+ ? Violation<AssertionConstraintSubject<AC[number], Name>>
555
722
  : C extends ObjectShape<infer D, infer M, readonly ObjectShapeRuleDescriptor[], infer RI>
556
723
  ? KnownCodeViolation<'type.record'>
557
724
  | (M extends 'strict' ? KnownCodeViolation<'shape.unknown-key'> : never)
558
- | InferObjectDescriptorViolations<D>
725
+ | InferShapeViolations<D>
559
726
  | ShapeRefinementIssueViolation<RI>
560
727
  : C extends OptionalValidator<infer Child>
561
- ? InferMaybeManyViolations<Child>
728
+ ? InferViolations<Child>
562
729
  : C extends NullableValidator<infer Child>
563
- ? InferMaybeManyViolations<Child>
730
+ ? InferViolations<Child>
564
731
  : C extends NullishValidator<infer Child>
565
- ? InferMaybeManyViolations<Child>
732
+ ? InferViolations<Child>
566
733
  : C extends EachValidator<infer Child>
567
- ? KnownCodeViolation<'type.array'> | InferMaybeManyViolations<Child>
734
+ ? KnownCodeViolation<'type.array'> | InferViolations<Child>
568
735
  : C extends TupleValidator<infer Items>
569
736
  ? KnownCodeViolation<'type.array'>
570
737
  | KnownCodeViolation<'tuple.length'>
571
- | InferMaybeManyViolations<Items[number]>
738
+ | InferViolations<Items[number]>
572
739
  : C extends UnionValidator<infer Branches>
573
- ? KnownCodeViolation<'union.no-match'> | InferMaybeManyViolations<Branches[number]>
740
+ ? KnownCodeViolation<'union.no-match'> | InferViolations<Branches[number]>
574
741
  : C extends DiscriminatedUnionValidator<PropertyKey, infer Variants>
575
742
  ? KnownCodeViolation<'type.record'>
576
743
  | KnownCodeViolation<'union.invalid-discriminator'>
577
- | InferMaybeManyViolations<Variants[keyof Variants]>
744
+ | InferViolations<Variants[keyof Variants]>
578
745
  : C extends RecordValidator<infer Values>
579
- ? KnownCodeViolation<'type.record'> | InferMaybeManyViolations<Values>
746
+ ? KnownCodeViolation<'type.record'> | InferViolations<Values>
580
747
  : C extends Validator
581
748
  ? Violation
582
749
  : never
583
750
 
584
751
  /** Maps one-or-many constraints into the union of violations they can produce. */
585
- export type InferMaybeManyViolations<C extends MaybeMany<Constraint>> =
752
+ export type InferViolations<C extends MaybeMany<Constraint>> =
586
753
  C extends readonly []
587
754
  ? never
588
755
  : C extends readonly Constraint[]
@@ -598,7 +765,7 @@ export type ValidationSuccess<T> = [ok: true, validated: T, violations: []]
598
765
  export type ValidationFailure<V extends Violation = Violation> = [ok: false, validated: unknown, violations: V[]]
599
766
 
600
767
  /**
601
- * The result tuple returned by `validate(...)` and `validate.sync(...)`.
768
+ * The result returned by `validate(...)` and `validate.sync(...)`.
602
769
  *
603
770
  * Example:
604
771
  * `const [ok, validated, violations] = await validate(value, schema)`
@@ -606,10 +773,7 @@ export type ValidationFailure<V extends Violation = Violation> = [ok: false, val
606
773
  * Example:
607
774
  * `if (ok) validated.name.toUpperCase()`
608
775
  */
609
- export type ValidationTuple<T, V extends Violation = Violation> = ValidationSuccess<T> | ValidationFailure<V>
610
-
611
- /** Alias for `ValidationTuple<T>`. */
612
- export type ValidationResult<T, V extends Violation = Violation> = ValidationTuple<T, V>
776
+ export type ValidationResult<T, V extends Violation = Violation> = ValidationSuccess<T> | ValidationFailure<V>
613
777
 
614
778
  /** Attaches read-only metadata to a constraint without changing validation semantics. */
615
779
  export declare const meta: <const C extends Constraint, const M extends ConstraintMetadata>(constraint: C, metadata: M) => C
@@ -644,22 +808,27 @@ export interface DescribedValidator<
644
808
  export declare const custom: <const V extends Validator>(validator: V) => V
645
809
 
646
810
  /** Descriptor that maps object keys to one or many constraints. */
647
- export type ObjectDescriptor = Record<PropertyKey, MaybeMany<Constraint>>
811
+ export type ShapeDescriptor = Record<PropertyKey, MaybeMany<Constraint>>
812
+
813
+ /** Shape descriptor with stage-aware compatibility checks applied to every field slot. */
814
+ export type CompatibleShapeDescriptor<D extends ShapeDescriptor> = {
815
+ [K in keyof D]: CompatibleConstraints<D[K]>
816
+ }
648
817
 
649
- /** Runtime type inferred from an object descriptor. */
650
- export type InferObjectDescriptor<D extends ObjectDescriptor> = {
818
+ /** Runtime type inferred from a shape descriptor. */
819
+ export type InferShape<D extends ShapeDescriptor> = {
651
820
  [K in keyof D]: InferConstraints<D[K]>
652
821
  }
653
822
 
654
823
  /** Descriptor produced by `.partial()` where every field accepts `undefined`. */
655
- export type PartialObjectDescriptor<D extends ObjectDescriptor> = {
824
+ export type PartialShapeDescriptor<D extends ShapeDescriptor> = {
656
825
  [K in keyof D]: Validator<InferConstraints<D[K]> | undefined>
657
826
  }
658
827
 
659
828
  /** Utility type for overriding descriptor keys from left to right. */
660
- export type MergeObjectDescriptors<
661
- Left extends ObjectDescriptor,
662
- Right extends ObjectDescriptor,
829
+ export type MergeShapeDescriptors<
830
+ Left extends ShapeDescriptor,
831
+ Right extends ShapeDescriptor,
663
832
  > = Omit<Left, keyof Right> & Right
664
833
 
665
834
  /**
@@ -669,67 +838,58 @@ export type MergeObjectDescriptors<
669
838
  * `const user = shape({ name: isString }).strict()`
670
839
  */
671
840
  export interface ObjectShape<
672
- D extends ObjectDescriptor = ObjectDescriptor,
841
+ D extends ShapeDescriptor = ShapeDescriptor,
673
842
  M extends UnknownKeysMode = 'passthrough',
674
843
  R extends readonly ObjectShapeRuleDescriptor[] = readonly ObjectShapeRuleDescriptor[],
675
- RI extends ObjectShapeRefinementIssue = never,
676
- > extends Validator<InferObjectDescriptor<D>> {
844
+ RI extends ShapeRefinementViolationInput = never,
845
+ > extends Validator<InferShape<D>> {
677
846
  readonly descriptor: D;
678
847
  readonly unknownKeys: M;
679
- refine<const I extends ObjectShapeRefinementIssue = ObjectShapeRefinementIssue>(
680
- refinement: ObjectShapeRefinement<InferObjectDescriptor<D>, I>
681
- ): ObjectShape<D, M, [...R, GenericObjectShapeRuleDescriptor<'refine'>], RI | I>;
682
- refine<
683
- const I extends ObjectShapeRefinementIssue = ObjectShapeRefinementIssue,
684
- const RD extends GenericObjectShapeRuleDescriptor<string> = GenericObjectShapeRuleDescriptor<'refine'>
685
- >(
686
- refinement: ObjectShapeRefinement<InferObjectDescriptor<D>, I>,
687
- descriptor: RD
688
- ): ObjectShape<D, M, [...R, RD], RI | I>;
689
- fieldsMatch<const K extends readonly [ObjectShapeFieldSelector, ObjectShapeFieldSelector]>(
848
+ readonly refine: ShapeRefineMethod<D, M, R, RI>;
849
+ fieldsMatch<const K extends readonly [ShapeFieldSelector, ShapeFieldSelector]>(
690
850
  keys: K
691
- ): ObjectShape<D, M, [...R, FieldsMatchObjectShapeRuleDescriptor<K[0], K[1]>], RI | ObjectShapeRefinementIssue<'shape.fields.mismatch'>>;
851
+ ): ObjectShape<D, M, [...R, FieldsMatchObjectShapeRuleDescriptor<K[0], K[1]>], RI | ShapeRefinementViolationInput<'shape.fields.mismatch'>>;
692
852
  strict(): ObjectShape<D, 'strict', R, RI>;
693
853
  passthrough(): ObjectShape<D, 'passthrough', R, RI>;
694
854
  pick<const K extends readonly (keyof D)[]>(keys: K): ObjectShape<Pick<D, K[number]>, M, [], never>;
695
855
  omit<const K extends readonly (keyof D)[]>(keys: K): ObjectShape<Omit<D, K[number]>, M, [], never>;
696
- partial(): ObjectShape<PartialObjectDescriptor<D>, M, [], never>;
697
- extend<const E extends ObjectDescriptor>(descriptor: E): ObjectShape<MergeObjectDescriptors<D, E>, M, [], never>;
698
- merge<const E extends ObjectDescriptor, OM extends UnknownKeysMode, OR extends readonly ObjectShapeRuleDescriptor[]>(
699
- shape: ObjectShape<E, OM, OR, ObjectShapeRefinementIssue>
700
- ): ObjectShape<MergeObjectDescriptors<D, E>, M, [], never>;
856
+ partial(): ObjectShape<PartialShapeDescriptor<D>, M, [], never>;
857
+ extend<const E extends ShapeDescriptor>(descriptor: E): ObjectShape<MergeShapeDescriptors<D, E>, M, [], never>;
858
+ merge<const E extends ShapeDescriptor, OM extends UnknownKeysMode, OR extends readonly ObjectShapeRuleDescriptor[]>(
859
+ shape: ObjectShape<E, OM, OR, ShapeRefinementViolationInput>
860
+ ): ObjectShape<MergeShapeDescriptors<D, E>, M, [], never>;
701
861
  }
702
862
 
703
863
  /** Helper that maps a single constraint into its public `describe(...)` result. */
704
864
  export type DescribeConstraint<C extends Constraint> =
705
- C extends Assertion<unknown, infer AC, infer Code, infer Args, string>
865
+ C extends Assertion<unknown, infer AC, infer Code, infer Args, string, AssertionStage>
706
866
  ? AssertionDescriptor<Code, Args, DescribeAssertionConstraintTuple<AC>>
707
- : C extends ObjectShape<infer D, infer M, infer R, ObjectShapeRefinementIssue>
708
- ? ShapeConstraintDescriptor<DescribeObjectDescriptor<D>, R> & { readonly unknownKeys: M }
867
+ : C extends ObjectShape<infer D, infer M, infer R, ShapeRefinementViolationInput>
868
+ ? ShapeConstraintDescriptor<DescribeShapeDescriptor<D>, R> & { readonly unknownKeys: M }
709
869
  : C extends OptionalValidator<infer Child>
710
- ? WrapperConstraintDescriptor<'optional', DescribeMaybeMany<Child>>
870
+ ? WrapperConstraintDescriptor<'optional', DescribeConstraints<Child>>
711
871
  : C extends NullableValidator<infer Child>
712
- ? WrapperConstraintDescriptor<'nullable', DescribeMaybeMany<Child>>
872
+ ? WrapperConstraintDescriptor<'nullable', DescribeConstraints<Child>>
713
873
  : C extends NullishValidator<infer Child>
714
- ? WrapperConstraintDescriptor<'nullish', DescribeMaybeMany<Child>>
874
+ ? WrapperConstraintDescriptor<'nullish', DescribeConstraints<Child>>
715
875
  : C extends EachValidator<infer Child>
716
- ? EachConstraintDescriptor<DescribeMaybeMany<Child>>
876
+ ? EachConstraintDescriptor<DescribeConstraints<Child>>
717
877
  : C extends TupleValidator<infer Items>
718
878
  ? TupleConstraintDescriptor<DescribeConstraintTuple<Items>>
719
879
  : C extends UnionValidator<infer Branches>
720
880
  ? UnionConstraintDescriptor<DescribeConstraintTuple<Branches>>
721
881
  : C extends DiscriminatedUnionValidator<PropertyKey, infer Variants>
722
- ? DiscriminatedUnionConstraintDescriptor<DescribeObjectDescriptor<Variants>>
882
+ ? DiscriminatedUnionConstraintDescriptor<DescribeShapeDescriptor<Variants>>
723
883
  : C extends RecordValidator<infer Values>
724
- ? RecordConstraintDescriptor<DescribeMaybeMany<Values>>
884
+ ? RecordConstraintDescriptor<DescribeConstraints<Values>>
725
885
  : C extends DescribedValidator<unknown, infer D>
726
886
  ? D & { readonly metadata?: ConstraintMetadata }
727
887
  : C extends Validator
728
- ? ValidatorDescriptor
888
+ ? OpaqueValidatorDescriptor
729
889
  : never
730
890
 
731
891
  /** Helper that maps a one-or-many constraint slot into its public `describe(...)` result. */
732
- export type DescribeMaybeMany<C extends MaybeMany<Constraint>> =
892
+ export type DescribeConstraints<C extends MaybeMany<Constraint>> =
733
893
  C extends readonly [infer Only]
734
894
  ? Only extends Constraint
735
895
  ? DescribeConstraint<Only>
@@ -743,14 +903,14 @@ export type DescribeMaybeMany<C extends MaybeMany<Constraint>> =
743
903
  : never
744
904
 
745
905
  /** Helper that maps object descriptors into their `describe(...)` field tree. */
746
- export type DescribeObjectDescriptor<D extends ObjectDescriptor> = {
747
- [K in keyof D]: DescribeMaybeMany<D[K]>
906
+ export type DescribeShapeDescriptor<D extends ShapeDescriptor> = {
907
+ [K in keyof D]: DescribeConstraints<D[K]>
748
908
  }
749
909
 
750
910
  /** Helper that maps tuples of constraints into tuples of descriptors. */
751
911
  export type DescribeConstraintTuple<T extends readonly MaybeMany<Constraint>[]> = {
752
- readonly [K in keyof T]: DescribeMaybeMany<T[K]>
753
- } & ReadonlyArray<DescribeMaybeMany<T[number]>>
912
+ readonly [K in keyof T]: DescribeConstraints<T[K]>
913
+ } & ReadonlyArray<DescribeConstraints<T[number]>>
754
914
 
755
915
  declare const optionalValidatorBrand: unique symbol
756
916
  declare const nullableValidatorBrand: unique symbol