@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
@@ -0,0 +1,264 @@
1
+ # Экспорт JSON Schema
2
+
3
+ [Оглавление документации](./00-index.md)
4
+ [English version](../en/04-json-schema-export.md)
5
+
6
+ `@modulify/validator/json-schema` предоставляет тонкий слой экспорта в JSON Schema поверх публичного descriptor contract.
7
+
8
+ Это именно derivation layer, а не вторая schema model. Exporter читает публичные descriptors и строит по ним представление в виде JSON Schema.
9
+
10
+ ## Быстрый старт
11
+
12
+ ```typescript
13
+ import {
14
+ isNumber,
15
+ isString,
16
+ meta,
17
+ optional,
18
+ shape,
19
+ } from '@modulify/validator'
20
+ import { toJsonSchema } from '@modulify/validator/json-schema'
21
+
22
+ const profile = meta(shape({
23
+ email: meta(isString, {
24
+ title: 'Email',
25
+ format: 'email',
26
+ }),
27
+ age: optional(isNumber),
28
+ }).strict(), {
29
+ title: 'Profile',
30
+ })
31
+
32
+ const jsonSchema = toJsonSchema(profile)
33
+ ```
34
+
35
+ ## Ментальная модель
36
+
37
+ Поток экспорта специально устроен просто:
38
+
39
+ 1. validators публикуют публичные descriptors через `describe(...)`;
40
+ 2. `toJsonSchema(...)` строит JSON Schema поверх этих descriptors;
41
+ 3. unsupported или opaque nodes либо пропускаются в best-effort режиме, либо приводят к ошибке в strict режиме.
42
+
43
+ Это разделение важно, потому что:
44
+
45
+ - runtime validation остаётся runtime-first;
46
+ - поведение exporter-а остаётся явным;
47
+ - custom tooling может опираться на один публичный introspection contract.
48
+
49
+ ## Точка входа
50
+
51
+ JSON Schema export импортируется из отдельного subpath:
52
+
53
+ ```typescript
54
+ import {
55
+ JsonSchemaExportError,
56
+ toJsonSchema,
57
+ } from '@modulify/validator/json-schema'
58
+ ```
59
+
60
+ Root package намеренно не делает реэкспорт этого API.
61
+
62
+ ## Поддерживаемые built-in mappings
63
+
64
+ Exporter покрывает built-in descriptor set, который уже участвует в публичной introspection.
65
+
66
+ ### Базовые assertions
67
+
68
+ Практические mappings включают:
69
+
70
+ - `isString` -> `type: 'string'`
71
+ - `isNumber` -> `type: 'number'`
72
+ - `isBoolean` -> `type: 'boolean'`
73
+ - `isNull` -> `type: 'null'`
74
+ - `isEmail` -> `type: 'string'` и `format: 'email'`
75
+ - `exact(...)` -> `const`
76
+ - `oneOf(...)` -> `enum`
77
+ - `hasLength(...)` -> ограничения длины для строк и массивов
78
+
79
+ ### Обёртки
80
+
81
+ Поддерживаются wrappers:
82
+
83
+ - `optional(...)`
84
+ - `nullable(...)`
85
+ - `nullish(...)`
86
+
87
+ `optional(...)` влияет на вычисление object `required`. `nullable(...)` и `nullish(...)` экспортируются как union с `null`.
88
+
89
+ ### Структурные combinators
90
+
91
+ Поддерживаются structural mappings:
92
+
93
+ - `shape(...)`
94
+ - `each(...)`
95
+ - `tuple(...)`
96
+ - `record(...)`
97
+
98
+ ### Ветвящиеся combinators
99
+
100
+ Поддерживаются branching mappings:
101
+
102
+ - `union(...)`
103
+ - `discriminatedUnion(...)`
104
+
105
+ ### Последовательные slots
106
+
107
+ Массивы constraints в одном slot экспортируются как JSON Schema `allOf`.
108
+
109
+ ## Преобразование object schemas
110
+
111
+ `shape(...)` экспортируется как JSON Schema object с:
112
+
113
+ - `type: 'object'`
114
+ - `properties`
115
+ - `required`
116
+ - `additionalProperties`
117
+
118
+ Поведение unknown keys отображается так:
119
+
120
+ - `.strict()` -> `additionalProperties: false`
121
+ - default или `.passthrough()` -> `additionalProperties: true`
122
+
123
+ ## `required` и `undefined`
124
+
125
+ Одна из важных границ касается наличия объектных полей.
126
+
127
+ Runtime layer во многих практических сценариях рассматривает как один и тот же случай:
128
+
129
+ - отсутствие ключа;
130
+ - и ключ со значением `undefined`;
131
+
132
+ особенно вокруг `optional(...)` и derived helpers вроде `partial()`.
133
+
134
+ JSON Schema моделирует это не так. Поэтому exporter аппроксимирует наличие полей через JSON Schema `required`, а не обещает точную semantic parity.
135
+
136
+ Это сделано намеренно: экспорт нужно воспринимать как interoperability layer, а не как обещание полной эквивалентности runtime semantics и JSON Schema.
137
+
138
+ ## Преобразование metadata
139
+
140
+ Exporter не копирует всю metadata в JSON Schema автоматически.
141
+
142
+ Вместо этого используется небольшой явный whitelist:
143
+
144
+ - `title`
145
+ - `description`
146
+ - `format`
147
+ - `default`
148
+ - `examples`
149
+ - `deprecated`
150
+ - `readOnly`
151
+ - `writeOnly`
152
+
153
+ Остальная metadata остаётся библиотечно-специфичной и автоматически в экспорт не попадает.
154
+
155
+ Так metadata layer остаётся явным и не превращается в implicit magic.
156
+
157
+ ## Best-Effort режим
158
+
159
+ Best-effort режим используется по умолчанию:
160
+
161
+ ```typescript
162
+ const schema = toJsonSchema(profile)
163
+ ```
164
+
165
+ В этом режиме:
166
+
167
+ - unsupported или opaque nodes превращаются в permissive `{}` schema nodes;
168
+ - unsupported object-level shape rules отбрасываются;
169
+ - отброшенные shape rules по возможности помечаются через `$comment`.
170
+
171
+ Этот режим удобен, когда нужен максимально широкий внешний schema export, даже если часть runtime semantics нельзя выразить честно.
172
+
173
+ ## Strict режим
174
+
175
+ Strict режим отклоняет unsupported nodes:
176
+
177
+ ```typescript
178
+ const schema = toJsonSchema(profile, { mode: 'strict' })
179
+ ```
180
+
181
+ Если export нельзя представить faithfully, exporter выбрасывает `JsonSchemaExportError`.
182
+
183
+ Эта ошибка содержит:
184
+
185
+ - descriptor, на котором произошёл сбой;
186
+ - machine-readable причину;
187
+ - путь внутри descriptor tree, где возникла ошибка.
188
+
189
+ Strict режим полезен, когда silent fallback был бы вводящим в заблуждение.
190
+
191
+ ## Неподдерживаемые и opaque cases
192
+
193
+ Не всё runtime behavior имеет faithful representation в JSON Schema.
194
+
195
+ Важные примеры:
196
+
197
+ - custom validators без поддерживаемого публичного descriptor;
198
+ - неизвестные custom descriptor kinds;
199
+ - object-level `refine(...)` rules;
200
+ - descriptor nodes, чья семантика зависит от runtime-only behavior;
201
+ - значения, которые нельзя практично представить как JSON Schema constants или enums.
202
+
203
+ Exporter фиксирует эти границы явно и не пытается гадать.
204
+
205
+ ## Связь с `describe(...)`
206
+
207
+ `toJsonSchema(...)` находится downstream от `describe(...)`.
208
+
209
+ Это значит:
210
+
211
+ - JSON Schema export должен опираться на публичные descriptors;
212
+ - логика exporter-а не должна зависеть от приватных runtime internals;
213
+ - custom validators участвуют в export сначала через публичный descriptor contract.
214
+
215
+ Так архитектура остаётся тонкой и стабильной для внешнего tooling.
216
+
217
+ ## Пример metadata-aware экспорта shape
218
+
219
+ ```typescript
220
+ const profile = meta(shape({
221
+ email: meta(isString, {
222
+ title: 'Email',
223
+ format: 'email',
224
+ }),
225
+ age: optional(isNumber),
226
+ }).strict(), {
227
+ title: 'Profile',
228
+ })
229
+
230
+ const schema = toJsonSchema(profile)
231
+ ```
232
+
233
+ Практически это означает:
234
+
235
+ - metadata shape может стать schema metadata;
236
+ - metadata полей может стать metadata свойств;
237
+ - strict object behavior становится `additionalProperties: false`.
238
+
239
+ ## Пример ошибки в strict режиме
240
+
241
+ ```typescript
242
+ const schema = shape({
243
+ publishedAt: custom({
244
+ check(value: unknown): value is string {
245
+ return typeof value === 'string'
246
+ },
247
+ run() {
248
+ return []
249
+ },
250
+ }),
251
+ })
252
+
253
+ toJsonSchema(schema, { mode: 'strict' })
254
+ ```
255
+
256
+ Здесь будет исключение, потому что custom validator остаётся opaque для exporter-а.
257
+
258
+ ## Практические замечания
259
+
260
+ - воспринимайте JSON Schema export как interoperability layer;
261
+ - используйте best-effort режим, когда partial export допустим;
262
+ - используйте strict режим, когда unsupported semantics должны приводить к явной ошибке;
263
+ - если custom descriptors должны участвовать в export, держите их компактными и публичными;
264
+ - не считайте JSON Schema export заменой runtime validation semantics.
@@ -0,0 +1,123 @@
1
+ # Публичный API
2
+
3
+ [Оглавление документации](./00-index.md)
4
+ [English version](../en/05-public-api.md)
5
+
6
+ Этот документ суммирует package surface `@modulify/validator` и поддерживаемые subpath exports.
7
+
8
+ Это навигационный guide о том:
9
+
10
+ - где находится каждый публичный entrypoint;
11
+ - какие группы функций экспортируются вместе;
12
+ - как выглядит результат валидации;
13
+ - какие API вынесены в отдельные subpath вроде predicates и JSON Schema export.
14
+
15
+ ## Корневой пакет
16
+
17
+ Root package экспортирует:
18
+
19
+ - `validate`
20
+ - `validate.sync`
21
+ - `matches.sync`
22
+ - `meta`
23
+ - `describe`
24
+ - `custom`
25
+ - `collection`
26
+ - `ViolationCollection`
27
+ - все экспорты из `./assertions`
28
+ - все экспорты из `./combinators`
29
+
30
+ Используйте root package, когда нужен основной validation API, composed validators, metadata/introspection и violation utilities.
31
+
32
+ ## Assertions и combinators
33
+
34
+ Root package включает:
35
+
36
+ - низкоуровневое создание assertions через `assert(...)`
37
+ - built-in assertions вроде `isString`, `isNumber`, `isBoolean`, `isNull`, `isEmail`, `hasLength(...)`, `oneOf(...)`
38
+ - structural combinators вроде `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`
39
+ - wrappers вроде `optional(...)`, `nullable(...)`, `nullish(...)`
40
+ - branching combinators вроде `union(...)` и `discriminatedUnion(...)`
41
+ - проверку точного значения через `exact(...)`
42
+
43
+ Это основной runtime-facing API surface библиотеки.
44
+
45
+ ## Метаданные и интроспекция
46
+
47
+ Тот же root package также включает:
48
+
49
+ - `meta(...)`
50
+ - `describe(...)`
51
+ - `custom(...)`
52
+
53
+ Вместе они дают публичный machine-readable descriptor contract и metadata layer поверх него.
54
+
55
+ ## Утилиты для нарушений
56
+
57
+ Root package также содержит:
58
+
59
+ - raw violation results, возвращаемые `validate(...)`
60
+ - `collection(...)`
61
+ - `ViolationCollection`
62
+
63
+ Это основные утилиты для постобработки machine-readable validation failures.
64
+
65
+ ## Результат валидации
66
+
67
+ `validate(...)` и `validate.sync(...)` возвращают:
68
+
69
+ ```typescript
70
+ type ValidationTuple<T> =
71
+ | [ok: true, validated: T, violations: []]
72
+ | [ok: false, validated: unknown, violations: Violation[]]
73
+ ```
74
+
75
+ Практически это значит:
76
+
77
+ - `ok` показывает, прошла ли валидация;
78
+ - `validated` становится строго типизированным только в успешной ветке;
79
+ - `violations` пуст при успехе и содержит структурированные ошибки при неуспехе.
80
+
81
+ ## Subpath predicates
82
+
83
+ Predicates доступны из:
84
+
85
+ ```typescript
86
+ @modulify/validator/predicates
87
+ ```
88
+
89
+ Этот subpath содержит переиспользуемые runtime/type-guard helpers и predicate combinators, например:
90
+
91
+ - `isString`
92
+ - `isNumber`
93
+ - `isRecord`
94
+ - `isArray`
95
+ - `isShape`
96
+ - `And`, `Or`, `Not`
97
+
98
+ Используйте этот subpath, когда нужны guard-style runtime checks без более высокого validation layer.
99
+
100
+ ## Subpath экспорта JSON Schema
101
+
102
+ JSON Schema export доступен из:
103
+
104
+ ```typescript
105
+ @modulify/validator/json-schema
106
+ ```
107
+
108
+ Этот subpath содержит:
109
+
110
+ - `toJsonSchema(...)`
111
+ - `JsonSchemaExportError`
112
+
113
+ Он намеренно отделён от root package, чтобы export-specific concerns не смешивались с основным validation entrypoint.
114
+
115
+ ## Как читать package surface
116
+
117
+ На верхнем уровне:
118
+
119
+ - root package = validation, combinators, metadata, violations;
120
+ - `./predicates` = standalone runtime/type-guard helpers;
121
+ - `./json-schema` = производный слой JSON Schema export.
122
+
123
+ Такое разделение сохраняет основной API понятным и в то же время позволяет держать специализированные subpath там, где это действительно нужно.
@@ -0,0 +1,273 @@
1
+ # Практические рецепты
2
+
3
+ [Оглавление документации](./00-index.md)
4
+ [Английская версия](../en/06-common-recipes.md)
5
+
6
+ Это руководство отвечает на практический вопрос:
7
+
8
+ > Какую часть `@modulify/validator` использовать для задачи `X`?
9
+
10
+ Оно специально ориентировано на практические сценарии. Открывайте его, когда общее направление библиотеки уже понятно и нужен быстрый путь к конкретному решению.
11
+
12
+ ## Сначала выберите правильный слой
13
+
14
+ Быстрое правило выбора:
15
+
16
+ - используйте `@modulify/validator/predicates`, когда нужны только runtime checks и type guards;
17
+ - используйте built-in assertions вроде `isString`, `isDefined`, `hasLength(...)`, `oneOf(...)`, когда нужны машиночитаемые ошибки;
18
+ - используйте combinators вроде `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`, `union(...)`, `discriminatedUnion(...)`, когда валидация становится структурной;
19
+ - используйте `meta(...)` и `describe(...)`, когда другой слой нуждается в стабильных машиночитаемых descriptors;
20
+ - используйте `toJsonSchema(...)` только тогда, когда нужно представление для interoperability или экспорта, а не источник runtime truth.
21
+
22
+ ## Валидация API payload
23
+
24
+ Используйте `shape(...)` вместе с leaf assertions.
25
+
26
+ ```typescript
27
+ import {
28
+ hasLength,
29
+ isDefined,
30
+ isString,
31
+ shape,
32
+ validate,
33
+ } from '@modulify/validator'
34
+
35
+ const createUser = shape({
36
+ email: [isDefined, isString],
37
+ password: [isString, hasLength({ min: 8 })],
38
+ }).strict()
39
+
40
+ const [ok, validated, violations] = validate.sync(input, createUser)
41
+ ```
42
+
43
+ Практический шаблон:
44
+
45
+ - используйте `.strict()` для request payload, если неизвестные ключи должны отклоняться;
46
+ - держите leaf checks маленькими и хорошо сочетаемыми друг с другом;
47
+ - используйте элемент кортежа `validated` внутри успешной ветки;
48
+ - используйте `violations` как структурированные данные для ответов API, логов или сопоставления с UI.
49
+
50
+ ## Сужение уже существующей переменной в sync-коде
51
+
52
+ Используйте `matches.sync(...)`.
53
+
54
+ ```typescript
55
+ import {
56
+ isDefined,
57
+ isString,
58
+ matches,
59
+ } from '@modulify/validator'
60
+
61
+ const value: unknown = source()
62
+
63
+ if (matches.sync(value, [isDefined, isString])) {
64
+ value.toUpperCase()
65
+ }
66
+ ```
67
+
68
+ Используйте этот API, когда нужно сузить саму исходную переменную.
69
+
70
+ Не используйте для этого `validate.sync(...)`, если главная цель — сузить исходную переменную. `validate.sync(...)` сужает `validated` в кортеже, а не исходное входное значение.
71
+
72
+ ## Моделирование optional, nullable и nullish полей
73
+
74
+ Используйте wrapper, который соответствует вашей runtime-семантике:
75
+
76
+ - `optional(x)` принимает `undefined`
77
+ - `nullable(x)` принимает `null`
78
+ - `nullish(x)` принимает и `null`, и `undefined`
79
+
80
+ ```typescript
81
+ const profile = shape({
82
+ nickname: optional(isString),
83
+ middleName: nullable(isString),
84
+ bio: nullish(isString),
85
+ })
86
+ ```
87
+
88
+ Практическое правило:
89
+
90
+ - используйте `optional(...)` для отсутствующих или неустановленных полей;
91
+ - используйте `nullable(...)`, когда `null` — это осмысленное явное значение;
92
+ - используйте `nullish(...)` только тогда, когда оба случая действительно допустимы.
93
+
94
+ ## Переиспользование одной shape в нескольких представлениях
95
+
96
+ Соберите одну базовую shape, а затем выводите производные варианты.
97
+
98
+ ```typescript
99
+ import {
100
+ exact,
101
+ isString,
102
+ optional,
103
+ shape,
104
+ } from '@modulify/validator'
105
+
106
+ const account = shape({
107
+ id: isString,
108
+ nickname: optional(isString),
109
+ role: exact('admin'),
110
+ }).strict()
111
+
112
+ const publicAccount = account.pick(['id', 'nickname'])
113
+ const editableAccount = account.partial()
114
+ const adminAccount = account.extend({ team: isString })
115
+ ```
116
+
117
+ Этот шаблон полезен, когда один доменный объект используется в:
118
+
119
+ - API payload;
120
+ - состоянии формы;
121
+ - внутренних границах сервиса;
122
+ - публичных представлениях с урезанным набором полей.
123
+
124
+ Помните, что структурные derivations вроде `pick()`, `omit()`, `partial()`, `extend()` и `merge()` намеренно сбрасывают object-level rules.
125
+
126
+ ## Добавление metadata для UI без жёсткой связи UI со слоем валидации
127
+
128
+ Используйте `meta(...)` поверх любого constraint.
129
+
130
+ ```typescript
131
+ import {
132
+ isString,
133
+ meta,
134
+ shape,
135
+ } from '@modulify/validator'
136
+
137
+ const registration = shape({
138
+ email: meta(isString, {
139
+ title: 'Email',
140
+ description: 'Primary login address',
141
+ }),
142
+ })
143
+ ```
144
+
145
+ Это удобно, когда отдельному слою нужны:
146
+
147
+ - названия полей;
148
+ - placeholders или подсказки для отображения;
149
+ - предметно-ориентированные метаданные для отображения;
150
+ - инструменты, работающие через descriptors.
151
+
152
+ Только часть метаданных позже отображается в JSON Schema. Остальные ключи остаются специфичными для библиотеки.
153
+
154
+ ## Построение состояния ошибок полей для форм
155
+
156
+ Используйте `collection(...)` поверх `violations`.
157
+
158
+ ```typescript
159
+ import {
160
+ collection,
161
+ isString,
162
+ shape,
163
+ validate,
164
+ } from '@modulify/validator'
165
+
166
+ const schema = shape({
167
+ profile: shape({
168
+ email: isString,
169
+ }),
170
+ })
171
+
172
+ const [ok, validated, violations] = validate.sync(input, schema)
173
+ const errors = collection(violations)
174
+
175
+ const rootErrors = errors.at([])
176
+ const emailErrors = errors.at(['profile', 'email'])
177
+ ```
178
+
179
+ Это рекомендуемая форма, когда нужен точный поиск по path, а не разбор строк.
180
+
181
+ ## Добавление межполевых правил
182
+
183
+ Используйте `fieldsMatch(...)` для частого случая подтверждения поля и `refine(...)` для всего остального.
184
+
185
+ ```typescript
186
+ const registration = shape({
187
+ password: isString,
188
+ confirmPassword: isString,
189
+ }).fieldsMatch(['password', 'confirmPassword'])
190
+ ```
191
+
192
+ ```typescript
193
+ const registration = shape({
194
+ password: isString,
195
+ confirmPassword: isString,
196
+ }).refine(value => {
197
+ return value.password === value.confirmPassword
198
+ ? []
199
+ : [{
200
+ path: ['confirmPassword'],
201
+ code: 'shape.fields.mismatch',
202
+ args: [['password', 'confirmPassword']],
203
+ }]
204
+ })
205
+ ```
206
+
207
+ Выбирайте `fieldsMatch(...)`, когда правило — это именно равенство двух selectors.
208
+
209
+ Выбирайте `refine(...)`, когда:
210
+
211
+ - участвуют больше двух полей;
212
+ - правило доменно-специфично;
213
+ - нужен явный контроль над выходным path;
214
+ - нужен custom descriptor для introspection.
215
+
216
+ ## Написание custom validator, понятного инструментам
217
+
218
+ Используйте `custom(...)` и добавляйте `describe()`, если validator должен участвовать в публичной introspection.
219
+
220
+ ```typescript
221
+ import { custom } from '@modulify/validator'
222
+
223
+ const isoDate = custom({
224
+ check(value: unknown): value is string {
225
+ return typeof value === 'string'
226
+ },
227
+ run() {
228
+ return []
229
+ },
230
+ describe() {
231
+ return {
232
+ kind: 'stringFormat' as const,
233
+ format: 'iso-date' as const,
234
+ }
235
+ },
236
+ })
237
+ ```
238
+
239
+ Без `describe()` validator намеренно остаётся непрозрачным для `describe(...)` и `toJsonSchema(...)`.
240
+
241
+ ## Безопасный экспорт JSON Schema
242
+
243
+ Используйте `toJsonSchema(...)` в двух режимах в зависимости от потребителя.
244
+
245
+ ```typescript
246
+ import { toJsonSchema } from '@modulify/validator/json-schema'
247
+
248
+ const schema = toJsonSchema(profile)
249
+ const strictSchema = toJsonSchema(profile, { mode: 'strict' })
250
+ ```
251
+
252
+ Используйте best-effort режим, когда:
253
+
254
+ - внешние потребители допускают permissive `{}` nodes;
255
+ - частичный экспорт лучше, чем его отсутствие;
256
+ - нужно максимально широкое представление schema.
257
+
258
+ Используйте strict режим, когда:
259
+
260
+ - экспорт с потерями был бы вводящим в заблуждение;
261
+ - JSON Schema является частью контракта;
262
+ - unsupported runtime semantics должны падать явно.
263
+
264
+ ## Рекомендуемый порядок чтения
265
+
266
+ Если вы только входите в библиотеку, самый короткий полезный маршрут такой:
267
+
268
+ 1. `README.md`
269
+ 2. `01-shape-api.md`
270
+ 3. `03-violations.md`
271
+ 4. `02-metadata-and-introspection.md`
272
+ 5. `04-json-schema-export.md`
273
+ 6. `07-ai-reference.md`, если нужна компактная сводка по контракту