@modulify/validator 0.1.0 → 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 (463) 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 +29 -0
  398. package/CODE_OF_CONDUCT.md +128 -0
  399. package/README.md +324 -107
  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 +190 -92
  404. package/dist/assertions.d.ts +58 -2
  405. package/dist/assertions.mjs +191 -93
  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 +172 -61
  413. package/dist/index.d.ts +10 -4
  414. package/dist/index.mjs +176 -64
  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 +40 -5
  424. package/dist/predicates.d.ts +25 -3
  425. package/dist/predicates.mjs +40 -5
  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/package.json +43 -33
  449. package/skills/commit-workflow/SKILL.md +93 -0
  450. package/skills/coverage-recovery/SKILL.md +68 -0
  451. package/skills/yarn-lock-conflict-resolution/SKILL.md +69 -0
  452. package/types/index.d.ts +789 -30
  453. package/types/json-schema.d.ts +75 -0
  454. package/dist/assertions/Assert.d.ts +0 -2
  455. package/dist/assertions/HasLength.d.ts +0 -7
  456. package/dist/assertions/check.d.ts +0 -3
  457. package/dist/assertions/index.d.ts +0 -16
  458. package/dist/runners/Each.d.ts +0 -3
  459. package/dist/runners/HasProperties.d.ts +0 -6
  460. package/dist/runners/index.d.ts +0 -2
  461. package/dist/runners.cjs +0 -32
  462. package/dist/runners.d.ts +0 -2
  463. package/dist/runners.mjs +0 -32
@@ -0,0 +1,241 @@
1
+ # Violation Code Types
2
+
3
+ [Documentation index](./00-index.md)
4
+ [Russian translation](../ru/08-violation-code-types.md)
5
+
6
+ `@modulify/validator` exposes two related layers around machine-readable codes:
7
+
8
+ - exact literal codes in assertion descriptors and structured violations;
9
+ - an extensible global registry that can be used to derive a project-wide union of known codes.
10
+
11
+ This guide explains when each layer is useful, how they work together, and how to extend them safely.
12
+
13
+ ## Quick Start
14
+
15
+ The public entrypoints are:
16
+
17
+ - `ViolationCodeEntry` - a compact contract record for a known code;
18
+ - `ViolationCodeRegistry` - an interface that collects known codes;
19
+ - `ViolationCode` - a union extracted from `keyof ViolationCodeRegistry`;
20
+ - `ViolationArgs<C>`, `ViolationKindOf<C>`, and `ViolationNameOf<C>` - code-driven utility types.
21
+
22
+ The package ships built-in keys for its own built-in violations, for example:
23
+
24
+ - `'type.string'`
25
+ - `'length.min'`
26
+ - `'shape.unknown-key'`
27
+ - `'runtime.rejection'`
28
+
29
+ So the following works out of the box:
30
+
31
+ ```typescript
32
+ import type { ViolationCode } from '@modulify/validator'
33
+
34
+ const code: ViolationCode = 'type.string'
35
+ ```
36
+
37
+ ## Exact Codes From `describe(...)`
38
+
39
+ Built-in assertions now preserve their exact code literals in introspection.
40
+
41
+ ```typescript
42
+ import {
43
+ describe,
44
+ hasLength,
45
+ isString,
46
+ } from '@modulify/validator'
47
+
48
+ const stringDescriptor = describe(isString)
49
+ const lengthDescriptor = describe(hasLength({ min: 3 }))
50
+ ```
51
+
52
+ In TypeScript this means:
53
+
54
+ - `stringDescriptor.code` is typed as `'type.string'`;
55
+ - `stringDescriptor.args` is typed as `[]`;
56
+ - `lengthDescriptor.code` is typed as `'length.unsupported-type'`;
57
+ - `lengthDescriptor.constraints[number].code` is typed as a concrete length-code union instead of plain `string`.
58
+
59
+ This is useful when adapters inspect descriptors and want code-aware branching without hand-written casts.
60
+
61
+ ## What The Global Registry Solves
62
+
63
+ Exact literals on individual values are good for local introspection.
64
+
65
+ The global registry solves a different problem: extracting one reusable union for the whole app.
66
+
67
+ ```typescript
68
+ import type { ViolationCode } from '@modulify/validator'
69
+
70
+ type AppViolationCode = ViolationCode
71
+ ```
72
+
73
+ That union can be reused in:
74
+
75
+ - message dictionaries;
76
+ - analytics payload contracts;
77
+ - API error envelopes;
78
+ - UI error-state mappers;
79
+ - shared helper utilities.
80
+
81
+ ## Extending `ViolationCodeRegistry`
82
+
83
+ The registry is designed for module augmentation and now stores small code contracts.
84
+
85
+ ```typescript
86
+ import type { ViolationCodeEntry } from '@modulify/validator'
87
+ import '@modulify/validator'
88
+
89
+ declare module '@modulify/validator' {
90
+ interface ViolationCodeRegistry {
91
+ 'user.email.taken': ViolationCodeEntry<'validator', 'user', readonly []>;
92
+ 'profile.password.mismatch': ViolationCodeEntry<'validator', 'shape', readonly []>;
93
+ }
94
+ }
95
+ ```
96
+
97
+ After that:
98
+
99
+ ```typescript
100
+ import type { ViolationCode } from '@modulify/validator'
101
+
102
+ const codeA: ViolationCode = 'user.email.taken'
103
+ const codeB: ViolationCode = 'profile.password.mismatch'
104
+ ```
105
+
106
+ This lets you define project-specific codes once and reuse the extracted union everywhere else.
107
+
108
+ If you still have older augmentations that use `never`, they continue to contribute to `ViolationCode`, but they fall back to generic `kind` / `name` / `args` typing until you migrate them to `ViolationCodeEntry`.
109
+
110
+ ## Deriving Related Types From A Code
111
+
112
+ Once a code is registered with a contract entry, it becomes a key into the related type information.
113
+
114
+ ```typescript
115
+ import type {
116
+ ViolationArgs,
117
+ ViolationKindOf,
118
+ ViolationNameOf,
119
+ ViolationSubject,
120
+ } from '@modulify/validator'
121
+
122
+ type PasswordArgs = ViolationArgs<'profile.password.mismatch'>
123
+ type PasswordKind = ViolationKindOf<'profile.password.mismatch'>
124
+ type PasswordName = ViolationNameOf<'profile.password.mismatch'>
125
+ type PasswordSubject = ViolationSubject<'profile.password.mismatch'>
126
+ ```
127
+
128
+ That means:
129
+
130
+ - `PasswordArgs` becomes `readonly []`;
131
+ - `PasswordKind` becomes `'validator'`;
132
+ - `PasswordName` becomes `'shape'`;
133
+ - `PasswordSubject` gets the matching `kind`, `name`, `code`, and `args`.
134
+
135
+ ## Using Augmented Codes In Custom Assertions
136
+
137
+ Custom assertions can keep their own explicit code literals.
138
+
139
+ ```typescript
140
+ import { assert } from '@modulify/validator/assertions'
141
+
142
+ const isAvailableEmail = assert(
143
+ (value: unknown): value is string => typeof value === 'string' && value.includes('@'),
144
+ {
145
+ name: 'isAvailableEmail',
146
+ bail: true,
147
+ code: 'user.email.taken',
148
+ }
149
+ )
150
+ ```
151
+
152
+ Then `describe(isAvailableEmail).code` is typed as `'user.email.taken'`.
153
+
154
+ This part does not depend on the global union extraction. The literal is preserved directly from the assertion definition.
155
+
156
+ ## Using Augmented Codes In Shape Refinements
157
+
158
+ The same idea applies to object-level refinement issues.
159
+
160
+ ```typescript
161
+ import type { ObjectShapeRefinementIssue } from '@modulify/validator'
162
+ import {
163
+ isEmail,
164
+ isString,
165
+ shape,
166
+ } from '@modulify/validator'
167
+
168
+ const signUpForm = shape({
169
+ email: [isString, isEmail],
170
+ password: isString,
171
+ confirmation: shape({
172
+ password: isString,
173
+ }),
174
+ }).refine(value => {
175
+ if (value.password === value.confirmation.password) {
176
+ return []
177
+ }
178
+
179
+ return [{
180
+ path: ['confirmation', 'password'],
181
+ code: 'profile.password.mismatch',
182
+ args: [],
183
+ }] satisfies ObjectShapeRefinementIssue<'profile.password.mismatch'>
184
+ })
185
+ ```
186
+
187
+ That keeps the refinement code aligned with the same registry-backed union used elsewhere.
188
+
189
+ ## A Practical Pattern For App-Level Mappers
190
+
191
+ Many consumers want a small helper layer that maps codes into rendering or transport concerns.
192
+
193
+ ```typescript
194
+ import type {
195
+ Violation,
196
+ ViolationCode,
197
+ } from '@modulify/validator'
198
+
199
+ const labels: Partial<Record<ViolationCode, string>> = {
200
+ 'type.string': 'Expected a string',
201
+ 'length.min': 'Value is too short',
202
+ 'user.email.taken': 'Email is already taken',
203
+ }
204
+
205
+ function toLabel(violation: Violation) {
206
+ return labels[violation.violates.code as ViolationCode] ?? violation.violates.code
207
+ }
208
+ ```
209
+
210
+ You do not need to force every possible code into one giant exhaustive map. `Partial<Record<ViolationCode, ...>>` is often the most practical option.
211
+
212
+ ## Built-In Union vs Explicit Literal Preservation
213
+
214
+ These two behaviors are complementary:
215
+
216
+ - built-in and augmented codes appear in the reusable `ViolationCode` union;
217
+ - explicit custom literals are preserved directly where values are created, such as `assert(...)` or typed refinement issues.
218
+
219
+ That distinction is important.
220
+
221
+ If you define a custom literal but do not augment `ViolationCodeRegistry`:
222
+
223
+ - local descriptor and violation values can still carry that exact literal;
224
+ - the global `ViolationCode` union will not include it yet.
225
+
226
+ If you augment `ViolationCodeRegistry` with `never` instead of `ViolationCodeEntry`:
227
+
228
+ - the global `ViolationCode` union will include the code;
229
+ - the code still falls back to generic `kind`, `name`, and `args` typing.
230
+
231
+ So the usual recommendation is:
232
+
233
+ 1. define the custom code where the violation is produced;
234
+ 2. add it to `ViolationCodeRegistry`;
235
+ 3. reuse `ViolationCode` in adapters and app-level helper types.
236
+
237
+ ## Related APIs
238
+
239
+ - [Metadata And Introspection](./02-metadata-and-introspection.md)
240
+ - [Violations](./03-violations.md)
241
+ - [Public API](./05-public-api.md)
@@ -0,0 +1,15 @@
1
+ # Документация
2
+
3
+ - [README на русском](./README.md) - Перевод основного README с обзором библиотеки и ссылками на подробные руководства.
4
+ - [API объектных схем](./01-shape-api.md) - Подробное описание `shape(...)`, производных вспомогательных методов, режимов unknown keys и правил уровня объекта.
5
+ - [Метаданные и интроспекция](./02-metadata-and-introspection.md) - Подробное описание слоя метаданных, introspection и пользовательских descriptors.
6
+ - [Нарушения](./03-violations.md) - Подробное описание формата violation, `collection(...)` и дерева ошибок.
7
+ - [Экспорт JSON Schema](./04-json-schema-export.md) - Подробное описание слоя экспорта, поддерживаемых преобразований и режимов strict и best-effort.
8
+ - [Публичный API](./05-public-api.md) - Обзор публичных точек входа, subpath exports и результата валидации.
9
+ - [Практические рецепты](./06-common-recipes.md) - Практические сценарии по выбору слоя, валидации payload, переиспользованию shape, построению состояния ошибок в UI и безопасному экспорту схемы.
10
+ - [Справка для AI](./07-ai-reference.md) - Краткое описание контракта для AI agents, инструментов и быстрого поиска стабильной семантики библиотеки.
11
+ - [Типы кодов нарушений](./08-violation-code-types.md) - Подробное руководство по `ViolationCodeRegistry`, `ViolationCode`, сохранению literal-кодов в descriptors и внешнему расширению реестра.
12
+
13
+ ## Переводы
14
+
15
+ - [English](../en/00-index.md)
@@ -0,0 +1,348 @@
1
+ # API объектных схем
2
+
3
+ [Оглавление документации](./00-index.md)
4
+ [English version](../en/01-shape-api.md)
5
+
6
+ `shape(...)` — это переиспользуемый API объектных схем в `@modulify/validator`.
7
+
8
+ Он сохраняет тот же runtime validation kernel, что и остальная библиотека, но добавляет небольшой неизменяемый object-oriented слой для:
9
+
10
+ - валидации вложенных объектов;
11
+ - переиспользуемых object schema;
12
+ - производных схем вроде `pick(...)`, `omit(...)` и `partial(...)`;
13
+ - object-level rules вроде `refine(...)` и `fieldsMatch(...)`;
14
+ - descriptor-based introspection через `describe(...)`.
15
+
16
+ ## Быстрый старт
17
+
18
+ ```typescript
19
+ import {
20
+ exact,
21
+ isString,
22
+ optional,
23
+ shape,
24
+ validate,
25
+ } from '@modulify/validator'
26
+
27
+ const profile = shape({
28
+ id: isString,
29
+ nickname: optional(isString),
30
+ role: exact('admin'),
31
+ }).strict()
32
+
33
+ const [ok, validated, violations] = validate.sync({
34
+ id: 'u1',
35
+ nickname: 'neo',
36
+ role: 'admin',
37
+ }, profile)
38
+ ```
39
+
40
+ `shape(...)` возвращает обычный validator, поэтому его можно использовать везде, где принимается regular constraint.
41
+
42
+ ## Ментальная модель
43
+
44
+ Shape по-прежнему остаётся validator-ом. Дополнительный API — это тонкая обёртка поверх object descriptor и небольшого набора immutable helpers для derivation.
45
+
46
+ Каждое поле в descriptor может содержать:
47
+
48
+ - один constraint;
49
+ - массив constraint-ов, которые выполняются последовательно;
50
+ - другой structural validator вроде `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`, `union(...)` или `discriminatedUnion(...)`.
51
+
52
+ Поэтому object validation остаётся согласованной с остальной библиотекой:
53
+
54
+ - field-level checks переиспользуют те же assertions и combinators;
55
+ - violations сохраняют обычные вложенные `path`;
56
+ - introspection идёт через тот же контракт `describe(...)`;
57
+ - metadata остаётся явной через `meta(...)`.
58
+
59
+ ## Базовое создание shape
60
+
61
+ ```typescript
62
+ import {
63
+ hasLength,
64
+ isDefined,
65
+ isString,
66
+ shape,
67
+ } from '@modulify/validator'
68
+
69
+ const registration = shape({
70
+ email: [isDefined, isString],
71
+ password: [isString, hasLength({ min: 8 })],
72
+ })
73
+ ```
74
+
75
+ Runtime behavior:
76
+
77
+ - входное значение должно быть plain record-like object;
78
+ - каждое объявленное поле валидируется по своему slot;
79
+ - вложенные violations возвращаются на пути поля;
80
+ - unknown keys по умолчанию разрешены.
81
+
82
+ ## Неизвестные ключи
83
+
84
+ У shape есть два режима работы с неизвестными ключами:
85
+
86
+ - `'passthrough'` — лишние ключи разрешены;
87
+ - `'strict'` — лишние ключи создают `shape.unknown-key` violations на пути лишнего ключа.
88
+
89
+ `shape(...)` по умолчанию создаётся в режиме `'passthrough'`.
90
+
91
+ ```typescript
92
+ const profile = shape({
93
+ id: isString,
94
+ })
95
+
96
+ const strictProfile = profile.strict()
97
+ const permissiveProfile = strictProfile.passthrough()
98
+ ```
99
+
100
+ Важно:
101
+
102
+ - `strict()` и `passthrough()` сохраняют тот же field descriptor;
103
+ - `strict()` и `passthrough()` сохраняют существующие object-level rules;
104
+ - меняется только поведение unknown keys.
105
+
106
+ ## Публичные свойства shape
107
+
108
+ У экземпляров shape есть:
109
+
110
+ - `descriptor` — текущий object descriptor;
111
+ - `unknownKeys` — текущий режим unknown keys;
112
+ - стандартное validator-поведение через `check(...)` и `run(...)`.
113
+
114
+ Это удобно, когда одну и ту же shape нужно валидировать, описывать через `describe(...)` и затем выводить производные схемы без ручной пересборки.
115
+
116
+ ## Производные схемы
117
+
118
+ Все helpers у shape immutable. Каждый вызов возвращает новую shape.
119
+
120
+ ### `pick(keys)` и `omit(keys)`
121
+
122
+ Используются, когда нужен поднабор текущей object schema.
123
+
124
+ ```typescript
125
+ const profile = shape({
126
+ id: isString,
127
+ nickname: optional(isString),
128
+ role: exact('admin'),
129
+ })
130
+
131
+ const publicProfile = profile.pick(['id', 'nickname'])
132
+ const internalProfile = profile.omit(['nickname'])
133
+ ```
134
+
135
+ ### `partial()`
136
+
137
+ `partial()` оборачивает каждое поле в `optional(...)`.
138
+
139
+ ```typescript
140
+ const editableProfile = profile.partial()
141
+ ```
142
+
143
+ Это соответствует текущей модели библиотеки, в которой:
144
+
145
+ - отсутствующий ключ;
146
+ - и ключ со значением `undefined`;
147
+
148
+ во время валидации трактуются одинаково.
149
+
150
+ ### `extend(descriptor)`
151
+
152
+ `extend(...)` добавляет или переопределяет поля через обычный object descriptor.
153
+
154
+ ```typescript
155
+ const account = profile.extend({
156
+ team: isString,
157
+ })
158
+ ```
159
+
160
+ ### `merge(shape)`
161
+
162
+ `merge(...)` объединяет текущую shape с другой shape.
163
+
164
+ ```typescript
165
+ const account = profile.merge(shape({
166
+ team: isString,
167
+ role: exact('editor'),
168
+ }))
169
+ ```
170
+
171
+ Поведение:
172
+
173
+ - unknown-key mode берётся у receiver shape;
174
+ - пересекающиеся ключи переопределяются правой shape;
175
+ - object-level rules из merge target не пытаются автоматически объединяться в новый общий набор.
176
+
177
+ ## Семантика сохранения rules
178
+
179
+ Есть намеренное различие между переключением режима и структурным derivation.
180
+
181
+ `strict()` и `passthrough()` сохраняют object-level rules, потому что структура shape по сути остаётся той же.
182
+
183
+ `pick()`, `omit()`, `partial()`, `extend()` и `merge()` намеренно сбрасывают object-level rules, потому что generic refinements непрозрачны и могут зависеть от полей, которых больше нет или которые теперь ведут себя иначе.
184
+
185
+ Так derived schemas остаются предсказуемыми и библиотека не делает сомнительных предположений о валидности старых refinements.
186
+
187
+ ## Правила уровня объекта
188
+
189
+ Shapes позволяют выражать cross-field invariants без внедрения второй schema language.
190
+
191
+ ### `refine(...)`
192
+
193
+ `refine(...)` добавляет синхронное object-level rule, которое запускается только после того, как базовая shape уже успешно провалидировалась как объект.
194
+
195
+ ```typescript
196
+ const registration = shape({
197
+ password: isString,
198
+ confirmPassword: isString,
199
+ }).refine(value => {
200
+ return value.password === value.confirmPassword
201
+ ? []
202
+ : [{
203
+ path: ['confirmPassword'],
204
+ code: 'shape.fields.mismatch',
205
+ args: [['password', 'confirmPassword']],
206
+ }]
207
+ })
208
+ ```
209
+
210
+ `refine(...)` специально остаётся тонким:
211
+
212
+ - он только sync;
213
+ - при успехе возвращает `[]`, `null` или `undefined`;
214
+ - при ошибке возвращает один issue или массив issue;
215
+ - `path` задаётся относительно текущей shape и по умолчанию равен `[]`;
216
+ - `value` необязателен и по умолчанию берётся из значения объекта по этому относительному пути;
217
+ - `code` остаётся machine-readable.
218
+
219
+ Сгенерированные violations используют:
220
+
221
+ - `violates.kind === 'validator'`;
222
+ - `violates.name === 'shape'`.
223
+
224
+ ### Descriptor для refine rule
225
+
226
+ Сами callbacks не сериализуются, но для rule можно добавить компактный machine-readable descriptor:
227
+
228
+ ```typescript
229
+ const registration = shape({
230
+ password: isString,
231
+ confirmPassword: isString,
232
+ }).refine(value => {
233
+ return value.password === value.confirmPassword
234
+ ? []
235
+ : [{ path: ['confirmPassword'], code: 'shape.fields.mismatch' }]
236
+ }, {
237
+ kind: 'passwordConfirmation',
238
+ metadata: {
239
+ fields: ['password', 'confirmPassword'],
240
+ },
241
+ })
242
+ ```
243
+
244
+ Позже это попадает в `describe(...)` в массив `rules`.
245
+
246
+ ### `fieldsMatch(...)`
247
+
248
+ `fieldsMatch(...)` — небольшой helper для частого случая с полем подтверждения.
249
+
250
+ ```typescript
251
+ const registration = shape({
252
+ password: isString,
253
+ confirmPassword: isString,
254
+ }).fieldsMatch(['password', 'confirmPassword'])
255
+ ```
256
+
257
+ Он также поддерживает nested selectors:
258
+
259
+ ```typescript
260
+ const registration = shape({
261
+ password: isString,
262
+ confirm: shape({
263
+ password: isString,
264
+ }),
265
+ }).fieldsMatch(['password', ['confirm', 'password']])
266
+ ```
267
+
268
+ ## Порядок валидации
269
+
270
+ На верхнем уровне валидация shape устроена так:
271
+
272
+ 1. Вход должен быть plain record-like object.
273
+ 2. Каждое объявленное поле валидируется рекурсивно.
274
+ 3. В режиме `'strict'` выполняются проверки неизвестных ключей.
275
+ 4. Object-level rules запускаются только если structural validation до этого полностью прошла.
276
+
277
+ Этот порядок важен, потому что object-level rules тогда работают уже с устойчивой провалидированной формой объекта.
278
+
279
+ ## Вложенные shape
280
+
281
+ Shape можно свободно вкладывать друг в друга, потому что это обычные validators.
282
+
283
+ ```typescript
284
+ const form = shape({
285
+ profile: shape({
286
+ email: isString,
287
+ nickname: optional(isString),
288
+ }).strict(),
289
+ })
290
+ ```
291
+
292
+ Вложенные ошибки сохраняют точные пути вроде `['profile', 'email']`.
293
+
294
+ ## Интроспекция
295
+
296
+ Shape участвуют в публичном descriptor tree, который возвращает `describe(...)`.
297
+
298
+ ```typescript
299
+ import { describe } from '@modulify/validator'
300
+
301
+ const descriptor = describe(shape({
302
+ email: isString,
303
+ }).strict())
304
+ ```
305
+
306
+ Shape descriptors содержат:
307
+
308
+ - `unknownKeys`;
309
+ - `fields`;
310
+ - `rules`;
311
+ - опциональную `metadata`.
312
+
313
+ Это полезно для adapters, tooling и производных export layers, например для JSON Schema.
314
+
315
+ ## Метаданные
316
+
317
+ `meta(...)` может аннотировать и shape целиком, и отдельные поля, не меняя validation semantics.
318
+
319
+ ```typescript
320
+ import {
321
+ describe,
322
+ meta,
323
+ } from '@modulify/validator'
324
+
325
+ const profile = meta(shape({
326
+ email: meta(isString, {
327
+ title: 'Email',
328
+ format: 'email',
329
+ }),
330
+ }).strict(), {
331
+ title: 'Profile',
332
+ })
333
+
334
+ const descriptor = describe(profile)
335
+ ```
336
+
337
+ Metadata остаётся полностью явной:
338
+
339
+ - никакого implicit inheritance по дереву нет;
340
+ - metadata shape и metadata полей появляются ровно там, где был вызван `meta(...)`.
341
+
342
+ ## Практические замечания
343
+
344
+ - `shape(...)` ориентирован на объекты, а не на schema-first подход;
345
+ - он переиспользует те же constraints, что и остальная библиотека;
346
+ - derived helpers намеренно маленькие и предсказуемые;
347
+ - object-level rules выразительны, но остаются лёгкими;
348
+ - расхождения между runtime semantics и внешними форматами схем лучше отражать явно через adapter layers вроде `describe(...)` или `toJsonSchema(...)`.