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