@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
@@ -0,0 +1,75 @@
1
+ import type {
2
+ Constraint,
3
+ ConstraintDescriptor,
4
+ MaybeMany,
5
+ } from './index.cjs'
6
+
7
+ /** JSON Schema primitive `type` values used by `toJsonSchema(...)`. */
8
+ export type JsonSchemaTypeName =
9
+ | 'string'
10
+ | 'number'
11
+ | 'integer'
12
+ | 'boolean'
13
+ | 'object'
14
+ | 'array'
15
+ | 'null'
16
+
17
+ /** Minimal JSON Schema object shape emitted by the built-in exporter. */
18
+ export interface JsonSchema {
19
+ readonly $schema?: string;
20
+ readonly $id?: string;
21
+ readonly $comment?: string;
22
+ readonly title?: string;
23
+ readonly description?: string;
24
+ readonly format?: string;
25
+ readonly default?: unknown;
26
+ readonly examples?: readonly unknown[];
27
+ readonly deprecated?: boolean;
28
+ readonly readOnly?: boolean;
29
+ readonly writeOnly?: boolean;
30
+ readonly type?: JsonSchemaTypeName | readonly JsonSchemaTypeName[];
31
+ readonly const?: unknown;
32
+ readonly enum?: readonly unknown[];
33
+ readonly allOf?: readonly JsonSchema[];
34
+ readonly anyOf?: readonly JsonSchema[];
35
+ readonly oneOf?: readonly JsonSchema[];
36
+ readonly properties?: Readonly<Record<string, JsonSchema>>;
37
+ readonly required?: readonly string[];
38
+ readonly additionalProperties?: boolean | JsonSchema;
39
+ readonly items?: JsonSchema;
40
+ readonly prefixItems?: readonly JsonSchema[];
41
+ readonly minItems?: number;
42
+ readonly maxItems?: number;
43
+ readonly minLength?: number;
44
+ readonly maxLength?: number;
45
+ readonly pattern?: string;
46
+ readonly minimum?: number;
47
+ readonly maximum?: number;
48
+ readonly multipleOf?: number;
49
+ }
50
+
51
+ /** Controls how `toJsonSchema(...)` handles constraints that cannot be represented faithfully. */
52
+ export type JsonSchemaExportMode = 'bestEffort' | 'strict'
53
+
54
+ /** Options for the JSON Schema exporter. */
55
+ export interface ToJsonSchemaOptions {
56
+ readonly mode?: JsonSchemaExportMode
57
+ }
58
+
59
+ /** Error thrown by `toJsonSchema(...)` in strict mode when a node cannot be exported faithfully. */
60
+ export declare class JsonSchemaExportError extends Error {
61
+ constructor(message: string, options: {
62
+ descriptor: ConstraintDescriptor
63
+ reason: string
64
+ path?: readonly PropertyKey[]
65
+ })
66
+ readonly descriptor: ConstraintDescriptor
67
+ readonly reason: string
68
+ readonly path: readonly PropertyKey[]
69
+ }
70
+
71
+ /** Derives a JSON Schema object from one or many public constraint descriptors. */
72
+ export declare const toJsonSchema: <const C extends MaybeMany<Constraint>>(
73
+ constraints: C,
74
+ options?: ToJsonSchemaOptions
75
+ ) => JsonSchema
@@ -0,0 +1,75 @@
1
+ import type {
2
+ Constraint,
3
+ ConstraintDescriptor,
4
+ MaybeMany,
5
+ } from './index.mjs'
6
+
7
+ /** JSON Schema primitive `type` values used by `toJsonSchema(...)`. */
8
+ export type JsonSchemaTypeName =
9
+ | 'string'
10
+ | 'number'
11
+ | 'integer'
12
+ | 'boolean'
13
+ | 'object'
14
+ | 'array'
15
+ | 'null'
16
+
17
+ /** Minimal JSON Schema object shape emitted by the built-in exporter. */
18
+ export interface JsonSchema {
19
+ readonly $schema?: string;
20
+ readonly $id?: string;
21
+ readonly $comment?: string;
22
+ readonly title?: string;
23
+ readonly description?: string;
24
+ readonly format?: string;
25
+ readonly default?: unknown;
26
+ readonly examples?: readonly unknown[];
27
+ readonly deprecated?: boolean;
28
+ readonly readOnly?: boolean;
29
+ readonly writeOnly?: boolean;
30
+ readonly type?: JsonSchemaTypeName | readonly JsonSchemaTypeName[];
31
+ readonly const?: unknown;
32
+ readonly enum?: readonly unknown[];
33
+ readonly allOf?: readonly JsonSchema[];
34
+ readonly anyOf?: readonly JsonSchema[];
35
+ readonly oneOf?: readonly JsonSchema[];
36
+ readonly properties?: Readonly<Record<string, JsonSchema>>;
37
+ readonly required?: readonly string[];
38
+ readonly additionalProperties?: boolean | JsonSchema;
39
+ readonly items?: JsonSchema;
40
+ readonly prefixItems?: readonly JsonSchema[];
41
+ readonly minItems?: number;
42
+ readonly maxItems?: number;
43
+ readonly minLength?: number;
44
+ readonly maxLength?: number;
45
+ readonly pattern?: string;
46
+ readonly minimum?: number;
47
+ readonly maximum?: number;
48
+ readonly multipleOf?: number;
49
+ }
50
+
51
+ /** Controls how `toJsonSchema(...)` handles constraints that cannot be represented faithfully. */
52
+ export type JsonSchemaExportMode = 'bestEffort' | 'strict'
53
+
54
+ /** Options for the JSON Schema exporter. */
55
+ export interface ToJsonSchemaOptions {
56
+ readonly mode?: JsonSchemaExportMode
57
+ }
58
+
59
+ /** Error thrown by `toJsonSchema(...)` in strict mode when a node cannot be exported faithfully. */
60
+ export declare class JsonSchemaExportError extends Error {
61
+ constructor(message: string, options: {
62
+ descriptor: ConstraintDescriptor
63
+ reason: string
64
+ path?: readonly PropertyKey[]
65
+ })
66
+ readonly descriptor: ConstraintDescriptor
67
+ readonly reason: string
68
+ readonly path: readonly PropertyKey[]
69
+ }
70
+
71
+ /** Derives a JSON Schema object from one or many public constraint descriptors. */
72
+ export declare const toJsonSchema: <const C extends MaybeMany<Constraint>>(
73
+ constraints: C,
74
+ options?: ToJsonSchemaOptions
75
+ ) => JsonSchema
@@ -0,0 +1,75 @@
1
+ import type {
2
+ Constraint,
3
+ ConstraintDescriptor,
4
+ MaybeMany,
5
+ } from './index.js'
6
+
7
+ /** JSON Schema primitive `type` values used by `toJsonSchema(...)`. */
8
+ export type JsonSchemaTypeName =
9
+ | 'string'
10
+ | 'number'
11
+ | 'integer'
12
+ | 'boolean'
13
+ | 'object'
14
+ | 'array'
15
+ | 'null'
16
+
17
+ /** Minimal JSON Schema object shape emitted by the built-in exporter. */
18
+ export interface JsonSchema {
19
+ readonly $schema?: string;
20
+ readonly $id?: string;
21
+ readonly $comment?: string;
22
+ readonly title?: string;
23
+ readonly description?: string;
24
+ readonly format?: string;
25
+ readonly default?: unknown;
26
+ readonly examples?: readonly unknown[];
27
+ readonly deprecated?: boolean;
28
+ readonly readOnly?: boolean;
29
+ readonly writeOnly?: boolean;
30
+ readonly type?: JsonSchemaTypeName | readonly JsonSchemaTypeName[];
31
+ readonly const?: unknown;
32
+ readonly enum?: readonly unknown[];
33
+ readonly allOf?: readonly JsonSchema[];
34
+ readonly anyOf?: readonly JsonSchema[];
35
+ readonly oneOf?: readonly JsonSchema[];
36
+ readonly properties?: Readonly<Record<string, JsonSchema>>;
37
+ readonly required?: readonly string[];
38
+ readonly additionalProperties?: boolean | JsonSchema;
39
+ readonly items?: JsonSchema;
40
+ readonly prefixItems?: readonly JsonSchema[];
41
+ readonly minItems?: number;
42
+ readonly maxItems?: number;
43
+ readonly minLength?: number;
44
+ readonly maxLength?: number;
45
+ readonly pattern?: string;
46
+ readonly minimum?: number;
47
+ readonly maximum?: number;
48
+ readonly multipleOf?: number;
49
+ }
50
+
51
+ /** Controls how `toJsonSchema(...)` handles constraints that cannot be represented faithfully. */
52
+ export type JsonSchemaExportMode = 'bestEffort' | 'strict'
53
+
54
+ /** Options for the JSON Schema exporter. */
55
+ export interface ToJsonSchemaOptions {
56
+ readonly mode?: JsonSchemaExportMode
57
+ }
58
+
59
+ /** Error thrown by `toJsonSchema(...)` in strict mode when a node cannot be exported faithfully. */
60
+ export declare class JsonSchemaExportError extends Error {
61
+ constructor(message: string, options: {
62
+ descriptor: ConstraintDescriptor
63
+ reason: string
64
+ path?: readonly PropertyKey[]
65
+ })
66
+ readonly descriptor: ConstraintDescriptor
67
+ readonly reason: string
68
+ readonly path: readonly PropertyKey[]
69
+ }
70
+
71
+ /** Derives a JSON Schema object from one or many public constraint descriptors. */
72
+ export declare const toJsonSchema: <const C extends MaybeMany<Constraint>>(
73
+ constraints: C,
74
+ options?: ToJsonSchemaOptions
75
+ ) => JsonSchema
@@ -0,0 +1,29 @@
1
+ import { Violation } from './types/index.cjs';
2
+ type ViolationPath = readonly PropertyKey[];
3
+ type ViolationTreeState<V extends Violation = Violation> = {
4
+ readonly path: ViolationPath;
5
+ readonly self: V[];
6
+ readonly subtree: V[];
7
+ readonly children: Map<PropertyKey, ViolationTreeState<V>>;
8
+ };
9
+ declare class TreeNode<V extends Violation = Violation> {
10
+ readonly path: readonly PropertyKey[];
11
+ readonly self: ViolationCollection<V>;
12
+ readonly subtree: ViolationCollection<V>;
13
+ readonly children: ReadonlyMap<PropertyKey, TreeNode<V>>;
14
+ constructor(state: ViolationTreeState<V>);
15
+ at(path: readonly PropertyKey[]): TreeNode<V> | undefined;
16
+ }
17
+ export declare class ViolationCollection<V extends Violation = Violation> implements Iterable<V> {
18
+ readonly size: number;
19
+ private readonly violations;
20
+ constructor(violations: readonly V[]);
21
+ [Symbol.iterator](): Iterator<V>;
22
+ forEach(callback: (violation: V, index: number, collection: ViolationCollection<V>) => void): void;
23
+ map<T>(callback: (violation: V, index: number, collection: ViolationCollection<V>) => T): T[];
24
+ at(path: readonly PropertyKey[]): ViolationCollection<V>;
25
+ tree(): TreeNode<V>;
26
+ }
27
+ export type ViolationTreeNode<V extends Violation = Violation> = TreeNode<V>;
28
+ export declare const collection: <V extends Violation>(violations: readonly V[]) => ViolationCollection<V>;
29
+ export {};
@@ -0,0 +1,29 @@
1
+ import { Violation } from './types/index.mjs';
2
+ type ViolationPath = readonly PropertyKey[];
3
+ type ViolationTreeState<V extends Violation = Violation> = {
4
+ readonly path: ViolationPath;
5
+ readonly self: V[];
6
+ readonly subtree: V[];
7
+ readonly children: Map<PropertyKey, ViolationTreeState<V>>;
8
+ };
9
+ declare class TreeNode<V extends Violation = Violation> {
10
+ readonly path: readonly PropertyKey[];
11
+ readonly self: ViolationCollection<V>;
12
+ readonly subtree: ViolationCollection<V>;
13
+ readonly children: ReadonlyMap<PropertyKey, TreeNode<V>>;
14
+ constructor(state: ViolationTreeState<V>);
15
+ at(path: readonly PropertyKey[]): TreeNode<V> | undefined;
16
+ }
17
+ export declare class ViolationCollection<V extends Violation = Violation> implements Iterable<V> {
18
+ readonly size: number;
19
+ private readonly violations;
20
+ constructor(violations: readonly V[]);
21
+ [Symbol.iterator](): Iterator<V>;
22
+ forEach(callback: (violation: V, index: number, collection: ViolationCollection<V>) => void): void;
23
+ map<T>(callback: (violation: V, index: number, collection: ViolationCollection<V>) => T): T[];
24
+ at(path: readonly PropertyKey[]): ViolationCollection<V>;
25
+ tree(): TreeNode<V>;
26
+ }
27
+ export type ViolationTreeNode<V extends Violation = Violation> = TreeNode<V>;
28
+ export declare const collection: <V extends Violation>(violations: readonly V[]) => ViolationCollection<V>;
29
+ export {};
@@ -1,4 +1,4 @@
1
- import { Violation } from '../types';
1
+ import { Violation } from './types/index.js';
2
2
  type ViolationPath = readonly PropertyKey[];
3
3
  type ViolationTreeState<V extends Violation = Violation> = {
4
4
  readonly path: ViolationPath;
@@ -0,0 +1,66 @@
1
+ # Releasing @modulify/validator
2
+
3
+ Use Node.js 22.14+ or 24+ and the Yarn version pinned in `package.json`.
4
+ Install dependencies with `yarn install --immutable`.
5
+
6
+ The repository uses `@modulify/conventional-release` to calculate the version,
7
+ update `package.json` and `CHANGELOG.md`, and create a release commit with an
8
+ annotated `v<version>` tag. npm publication and GitHub Releases belong to CI.
9
+
10
+ Preview a release without changing files, commits, or tags:
11
+
12
+ ```sh
13
+ yarn release:dry
14
+ yarn release:dry --prerelease rc
15
+ yarn release:dry --release-as minor
16
+ ```
17
+
18
+ Automatic version recommendations below 1.0 follow pre-major semantics:
19
+ breaking changes advance the minor version; features and fixes advance the patch.
20
+ Explicit `--release-as major` produces 1.0.0. Release configuration lives in
21
+ `release.config.mjs`; dependencies are installed before releasing, so the version
22
+ bump does not rerun installation or update the lockfile.
23
+
24
+ ## GitHub Actions
25
+
26
+ Start the `Release` workflow manually:
27
+
28
+ - `release`: `auto`, `patch`, `minor`, or `major`;
29
+ - `prerelease`: `none`, `alpha`, `beta`, or `rc`;
30
+ - `npm_tag`: `auto` selects `latest` for stable releases and the prerelease channel
31
+ otherwise; an explicit dist-tag can override it.
32
+
33
+ Stable releases run only from `main`. Prereleases may run from other branches,
34
+ but cannot publish to `latest`. Releases are serialized across branches.
35
+
36
+ CI runs lint, strict type checks, runtime and type tests, and packed consumer
37
+ checks before creating the release. It atomically pushes the release commit and
38
+ its tag. A separate job checks out that exact tag, repeats the checks, builds the
39
+ package, and publishes through npm OIDC. A GitHub Release is created after npm
40
+ publication succeeds; prereleases are marked accordingly.
41
+
42
+ If publication or GitHub Release creation fails after the tag was pushed, use
43
+ GitHub Actions **Re-run failed jobs** on the original run. Publication checks the
44
+ registry for the exact version and skips a version already published. Registry
45
+ lookup errors stop the job. Starting a new workflow run prepares another release.
46
+
47
+ ## npm Trusted Publisher
48
+
49
+ The package already has this trusted publisher configured (verified 2026-09-26):
50
+
51
+ | Field | Value |
52
+ | --- | --- |
53
+ | Provider | GitHub Actions |
54
+ | Organization | `modulify` |
55
+ | Repository | `validator` |
56
+ | Workflow filename | `release.yml` |
57
+ | Allowed actions | `npm publish`, `npm stage publish` |
58
+
59
+ Keep the workflow filename aligned with this package-level configuration.
60
+ The publishing job uses a GitHub-hosted runner, Node.js 24, npm 11.5.1 or newer,
61
+ and `id-token: write`. No `NPM_TOKEN` or `NODE_AUTH_TOKEN` secret is used for
62
+ publication. npm generates provenance automatically for this public package
63
+ and repository. See [npm Trusted Publishing](https://docs.npmjs.com/trusted-publishers/).
64
+
65
+ A local authenticated npm session is separate from CI OIDC. Release previews
66
+ and repository-local versioning do not require npm authentication.
@@ -9,6 +9,8 @@
9
9
  - [AI Reference](./07-ai-reference.md) - Compact contract summary for AI agents, tooling, and quick lookup of stable library semantics.
10
10
  - [Violation Code Types](./08-violation-code-types.md) - Detailed guide to `ViolationCodeRegistry`, `ViolationCode`, literal code preservation in descriptors, and external registry augmentation.
11
11
 
12
+ - [Migration From 0.2.1](./09-migration.md) - Breaking changes, renamed types, and updated validation contracts.
13
+
12
14
  ## Translations
13
15
 
14
16
  - [Russian](../ru/00-index.md)
@@ -49,6 +49,8 @@ Each field in the descriptor may contain:
49
49
  - an array of constraints that run sequentially;
50
50
  - another structural validator such as `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`, `union(...)`, or `discriminatedUnion(...)`.
51
51
 
52
+ For assertion arrays, sequencing is stage-aware: guard assertions establish the field domain first, and refinement assertions must be compatible with that domain.
53
+
52
54
  That means object validation stays aligned with the rest of the library:
53
55
 
54
56
  - field-level checks reuse the same assertions and combinators;
@@ -79,6 +81,11 @@ Runtime behavior:
79
81
  - nested violations are reported on the field path;
80
82
  - unknown keys are allowed by default.
81
83
 
84
+ Type-level behavior:
85
+
86
+ - `[isString, hasLength({ min: 8 })]` is valid;
87
+ - `[isNumber, hasLength({ min: 8 })]` is rejected by TypeScript before runtime.
88
+
82
89
  ## Unknown Keys
83
90
 
84
91
  Shapes have two unknown-key modes:
@@ -190,13 +197,36 @@ Shapes can express cross-field invariants without introducing a second schema la
190
197
 
191
198
  ### `refine(...)`
192
199
 
193
- `refine(...)` adds a synchronous object-level rule that runs only after the base shape has already validated successfully as an object.
200
+ `refine(...)` adds an async-first object-level rule that runs only after the base shape has already validated successfully as an object.
201
+
202
+ ```typescript
203
+ const registration = shape({
204
+ email: isString,
205
+ }).refine(async value => {
206
+ const taken = await users.has(value.email)
207
+
208
+ return taken
209
+ ? [{ path: ['email'], code: 'user.email.taken' }]
210
+ : []
211
+ })
212
+ ```
213
+
214
+ `refine(...)` is intentionally thin:
215
+
216
+ - it accepts sync or async callbacks;
217
+ - it returns `[]`, `null`, or `undefined` when the rule passes;
218
+ - it returns one issue or an array of issues when it fails;
219
+ - `path` is relative to the current shape and defaults to `[]`;
220
+ - `value` is optional and defaults to the object value at that relative path;
221
+ - `code` stays machine-readable.
222
+
223
+ If you need an explicitly sync-safe object rule for `validate.sync(...)`, use `refine.sync(...)`:
194
224
 
195
225
  ```typescript
196
226
  const registration = shape({
197
227
  password: isString,
198
228
  confirmPassword: isString,
199
- }).refine(value => {
229
+ }).refine.sync(value => {
200
230
  return value.password === value.confirmPassword
201
231
  ? []
202
232
  : [{
@@ -207,14 +237,7 @@ const registration = shape({
207
237
  })
208
238
  ```
209
239
 
210
- `refine(...)` is intentionally thin:
211
-
212
- - it is sync-only;
213
- - it returns `[]`, `null`, or `undefined` when the rule passes;
214
- - it returns one issue or an array of issues when it fails;
215
- - `path` is relative to the current shape and defaults to `[]`;
216
- - `value` is optional and defaults to the object value at that relative path;
217
- - `code` stays machine-readable.
240
+ `validate.sync(...)`, `matches.sync(...)`, and `shape.check(...)` throw explicitly if they encounter an async `refine(...)` callback.
218
241
 
219
242
  Produced violations use:
220
243
 
@@ -243,6 +266,8 @@ const registration = shape({
243
266
 
244
267
  This shows up later in `describe(...)` under the shape `rules` array.
245
268
 
269
+ Rules registered through async-first `refine(...)` are marked with `async: true` in that descriptor array.
270
+
246
271
  ### `fieldsMatch(...)`
247
272
 
248
273
  `fieldsMatch(...)` is a small helper for the common confirmation-field case.
@@ -182,7 +182,8 @@ Instead, shapes keep lightweight rule descriptors in `rules`.
182
182
  Built-in examples:
183
183
 
184
184
  - `fieldsMatch(...)` produces a compact `fieldsMatch` rule descriptor;
185
- - `refine(...)` can accept a custom compact rule descriptor object.
185
+ - `refine(...)` can accept a custom compact rule descriptor object;
186
+ - async-first `refine(...)` rules are marked with `async: true`.
186
187
 
187
188
  This keeps the public descriptor tree stable and serializable enough for tooling, while avoiding the impossible task of serializing arbitrary callbacks.
188
189
 
@@ -120,7 +120,7 @@ This is one of the reasons the library can stay adapter-friendly without stringi
120
120
  `validate(...)` and `validate.sync(...)` return:
121
121
 
122
122
  ```typescript
123
- type ValidationTuple<T> =
123
+ type ValidationResult<T> =
124
124
  | [ok: true, validated: T, violations: []]
125
125
  | [ok: false, validated: unknown, violations: Violation[]]
126
126
  ```
@@ -69,6 +69,9 @@ Supported practical mappings include:
69
69
 
70
70
  - `isString` -> `type: 'string'`
71
71
  - `isNumber` -> `type: 'number'`
72
+ - `isFiniteNumber` -> `type: 'number'`
73
+ - `isInteger` -> `type: 'integer'`
74
+ - `isSafeInteger` -> `type: 'integer'`, `minimum: Number.MIN_SAFE_INTEGER`, `maximum: Number.MAX_SAFE_INTEGER`
72
75
  - `isBoolean` -> `type: 'boolean'`
73
76
  - `isNull` -> `type: 'null'`
74
77
  - `isEmail` -> `type: 'string'` plus `format: 'email'`
@@ -202,6 +205,8 @@ Important examples:
202
205
 
203
206
  The exporter keeps these boundaries explicit instead of guessing.
204
207
 
208
+ `isValidDate`, `isError`, `isRegExp`, and `isPromiseLike` describe runtime values without a faithful JSON Schema representation. Strict mode throws `JsonSchemaExportError`; best-effort mode emits an unconstrained node. JSON numeric values are finite, so `isFiniteNumber` needs no additional schema keyword.
209
+
205
210
  ## Relationship To `describe(...)`
206
211
 
207
212
  `toJsonSchema(...)` is downstream from `describe(...)`.
@@ -19,6 +19,8 @@ The root package exports:
19
19
  - `validate`
20
20
  - `validate.sync`
21
21
  - `matches.sync`
22
+ - `Guard`
23
+ - `Refinement`
22
24
  - `meta`
23
25
  - `describe`
24
26
  - `custom`
@@ -33,8 +35,9 @@ Use the root package when you need the main validation API, composed validators,
33
35
 
34
36
  The root package includes:
35
37
 
36
- - low-level assertion construction through `assert(...)`
37
- - built-in assertions such as `isString`, `isNumber`, `isBoolean`, `isNull`, `isEmail`, `hasLength(...)`, `oneOf(...)`
38
+ - low-level assertion construction through `assert(...)` and `refine(...)`
39
+ - built-in guard assertions such as `isString`, `isNumber`, `isBoolean`, `isNull`, `isEmail`, `oneOf(...)`
40
+ - built-in refinement assertions such as `hasLength(...)`, `hasSize(...)`, `hasPattern(...)`, `startsWith(...)`, `hasValue(...)`, `multipleOf(...)`
38
41
  - structural combinators such as `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`
39
42
  - wrapper combinators such as `optional(...)`, `nullable(...)`, `nullish(...)`
40
43
  - branching combinators such as `union(...)` and `discriminatedUnion(...)`
@@ -42,6 +45,27 @@ The root package includes:
42
45
 
43
46
  This is the main runtime-facing API surface of the library.
44
47
 
48
+ Sequential assertion arrays are stage-aware: a compatible tuple such as `[isString, hasLength({ min: 3 })]` is supported directly, while incompatible combinations are rejected by the type system.
49
+ Refinement assertions are staged helpers, so `validate(...)` and `matches.sync(...)` expect them to appear after a compatible guard instead of being passed on their own.
50
+
51
+ Structural validators such as `each(...)` reset the assertion stage. Use a new compatible guard before subsequent refinements, for example `[each(isString), isDefined, hasLength({ min: 2 })]`.
52
+
53
+ ### Built-in value guards
54
+
55
+ These checks are available as assertions from the root and `./assertions`, and as boolean type guards from `./predicates`.
56
+
57
+ | Check | Accepted values | Violation code |
58
+ | --- | --- | --- |
59
+ | `isFiniteNumber` | Numbers excluding `NaN` and infinities | `number.finite` |
60
+ | `isInteger` | Integer numbers | `number.integer` |
61
+ | `isSafeInteger` | Integers within JavaScript's safe integer bounds | `number.safe-integer` |
62
+ | `isValidDate` | `Date` instances with a valid timestamp | `date.valid` |
63
+ | `isError` | `Error` instances, including subclasses | `type.error` |
64
+ | `isRegExp` | `RegExp` instances | `type.regexp` |
65
+ | `isPromiseLike` | Objects or functions with a callable `then` property | `type.promise-like` |
66
+
67
+ `isNumber` still accepts infinities; `isDate` still accepts invalid `Date` instances. Use the stricter checks when those values must be rejected. `isPromiseLike` checks the presence of a callable `then`, without executing it or inspecting the resolved value.
68
+
45
69
  ## Metadata And Introspection
46
70
 
47
71
  The same root package also includes:
@@ -67,7 +91,7 @@ These are the main utilities for post-processing machine-readable validation fai
67
91
  `validate(...)` and `validate.sync(...)` return:
68
92
 
69
93
  ```typescript
70
- type ValidationTuple<T> =
94
+ type ValidationResult<T> =
71
95
  | [ok: true, validated: T, violations: []]
72
96
  | [ok: false, validated: unknown, violations: Violation[]]
73
97
  ```
@@ -77,6 +101,8 @@ Practical meaning:
77
101
  - `ok` tells whether validation succeeded;
78
102
  - `validated` becomes strongly typed only in the success branch;
79
103
  - `violations` is empty on success and contains structured failures on error.
104
+ - `validate(...)` is the default async-first entrypoint;
105
+ - `validate.sync(...)` throws explicitly when it encounters async validators or async object-level `shape(...).refine(...)` rules.
80
106
 
81
107
  ## Predicates Subpath
82
108
 
@@ -97,6 +123,12 @@ This subpath contains reusable runtime/type-guard helpers and predicate combinat
97
123
 
98
124
  Use this subpath when you want guard-style runtime checks without pulling in the higher-level validation layer.
99
125
 
126
+ In `isShape({ name: [isString, false] })`, an optional field may be absent,
127
+ but a present value is always checked by its predicate. This includes explicit
128
+ `undefined`: use `Or(isString, isUndefined)` to allow it.
129
+ The shorthand `name: isString` and the tuple `[isString, true]` define required fields.
130
+ Field presence is checked with `in`, including properties in the prototype chain.
131
+
100
132
  ## JSON Schema Export Subpath
101
133
 
102
134
  JSON Schema export is available from:
@@ -14,7 +14,7 @@ It is intentionally recipe-oriented. Use it when you already understand the proj
14
14
  Use this quick rule of thumb:
15
15
 
16
16
  - use `@modulify/validator/predicates` when you only need runtime checks and type guards;
17
- - use built-in assertions such as `isString`, `isDefined`, `hasLength(...)`, `oneOf(...)` when you want machine-readable failures;
17
+ - use built-in guard/refinement assertions such as `isString`, `isDefined`, `hasLength(...)`, `oneOf(...)` when you want machine-readable failures;
18
18
  - use combinators such as `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`, `union(...)`, `discriminatedUnion(...)` when validation becomes structural;
19
19
  - use `meta(...)` and `describe(...)` when another layer needs stable machine-readable descriptors;
20
20
  - use `toJsonSchema(...)` only when you need an interoperability/export view, not as the source of runtime truth.
@@ -44,6 +44,7 @@ Practical pattern:
44
44
 
45
45
  - use `.strict()` for request payloads when unknown keys should be rejected;
46
46
  - keep leaf checks small and composable;
47
+ - when you use an assertion array, start with a compatible guard such as `isString` before string refinements like `hasLength(...)`;
47
48
  - use the `validated` tuple item inside the success branch;
48
49
  - use `violations` as structured data for API responses, logs, or UI mapping.
49
50
 
@@ -43,7 +43,7 @@ Use `@modulify/validator/json-schema` for:
43
43
  ## Validation Result Contract
44
44
 
45
45
  ```typescript
46
- type ValidationTuple<T> =
46
+ type ValidationResult<T> =
47
47
  | [ok: true, validated: T, violations: []]
48
48
  | [ok: false, validated: unknown, violations: Violation[]]
49
49
  ```
@@ -53,7 +53,8 @@ Important consequences:
53
53
  - `validate(...)` narrows the `validated` tuple item in the success branch;
54
54
  - `validate(...)` does not narrow the original input variable;
55
55
  - `matches.sync(...)` is the API that narrows the original variable;
56
- - `violations` is always empty on success.
56
+ - `violations` is always empty on success;
57
+ - `validate(...)` is async-first, while `validate.sync(...)` and `matches.sync(...)` are specialized sync APIs.
57
58
 
58
59
  ## Wrapper Semantics
59
60
 
@@ -90,6 +91,8 @@ Important rule:
90
91
 
91
92
  - structural derivations intentionally drop object-level rules;
92
93
  - mode switches intentionally keep object-level rules.
94
+ - `.refine(...)` is async-first and may return a promise;
95
+ - `.refine.sync(...)` is the explicitly sync-safe object-level rule API.
93
96
 
94
97
  ## Violations Contract
95
98
 
@@ -58,6 +58,32 @@ In TypeScript this means:
58
58
 
59
59
  This is useful when adapters inspect descriptors and want code-aware branching without hand-written casts.
60
60
 
61
+ The same precision now flows into `validate(...)` for parameterized built-ins.
62
+
63
+ ```typescript
64
+ import {
65
+ collection,
66
+ hasLength,
67
+ isString,
68
+ validate,
69
+ } from '@modulify/validator'
70
+
71
+ const [ok, , violations] = validate.sync('ab', [isString, hasLength({ min: 3 })])
72
+
73
+ if (!ok) {
74
+ collection(violations).map(violation => {
75
+ switch (violation.violates.code) {
76
+ case 'type.string':
77
+ return violation.violates.name
78
+ case 'length.min':
79
+ return violation.violates.args[0]
80
+ }
81
+ })
82
+ }
83
+ ```
84
+
85
+ For staged calls like `[isString, hasLength({ min: 3 })]`, impossible branches such as `'length.max'` or `'length.range'` are no longer carried into the violation union, and the unsupported-type branch stays on the descriptor side instead of leaking into staged validation.
86
+
61
87
  ## What The Global Registry Solves
62
88
 
63
89
  Exact literals on individual values are good for local introspection.
@@ -158,7 +184,7 @@ This part does not depend on the global union extraction. The literal is preserv
158
184
  The same idea applies to object-level refinement issues.
159
185
 
160
186
  ```typescript
161
- import type { ObjectShapeRefinementIssue } from '@modulify/validator'
187
+ import type { ShapeRefinementViolationInput } from '@modulify/validator'
162
188
  import {
163
189
  isEmail,
164
190
  isString,
@@ -180,7 +206,7 @@ const signUpForm = shape({
180
206
  path: ['confirmation', 'password'],
181
207
  code: 'profile.password.mismatch',
182
208
  args: [],
183
- }] satisfies ObjectShapeRefinementIssue<'profile.password.mismatch'>
209
+ }] satisfies ShapeRefinementViolationInput<'profile.password.mismatch'>
184
210
  })
185
211
  ```
186
212