@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,348 @@
1
+ # Shape API
2
+
3
+ [Documentation index](./00-index.md)
4
+ [Russian translation](../ru/01-shape-api.md)
5
+
6
+ `shape(...)` is the reusable object-shape API in `@modulify/validator`.
7
+
8
+ It keeps the same runtime validation kernel as the rest of the library, but adds a small immutable object-oriented layer for:
9
+
10
+ - nested object validation;
11
+ - reusable object schemas;
12
+ - derived shapes such as `pick(...)`, `omit(...)`, and `partial(...)`;
13
+ - object-level rules such as `refine(...)` and `fieldsMatch(...)`;
14
+ - descriptor-based introspection through `describe(...)`.
15
+
16
+ ## Quick Start
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(...)` returns a validator, so it can be used anywhere a regular constraint is accepted.
41
+
42
+ ## Mental Model
43
+
44
+ A shape is still a validator. The extra API is a thin wrapper around an object descriptor and a small set of immutable derivation helpers.
45
+
46
+ Each field in the descriptor may contain:
47
+
48
+ - a single constraint;
49
+ - an array of constraints that run sequentially;
50
+ - another structural validator such as `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`, `union(...)`, or `discriminatedUnion(...)`.
51
+
52
+ That means object validation stays aligned with the rest of the library:
53
+
54
+ - field-level checks reuse the same assertions and combinators;
55
+ - violations keep regular nested `path` values;
56
+ - introspection goes through the same `describe(...)` contract;
57
+ - metadata stays opt-in through `meta(...)`.
58
+
59
+ ## Basic Shape Construction
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
+ - the input must be a plain record-like object;
78
+ - every declared field is validated against its own slot;
79
+ - nested violations are reported on the field path;
80
+ - unknown keys are allowed by default.
81
+
82
+ ## Unknown Keys
83
+
84
+ Shapes have two unknown-key modes:
85
+
86
+ - `'passthrough'` - extra keys are allowed;
87
+ - `'strict'` - extra keys produce `shape.unknown-key` violations on the extra key path.
88
+
89
+ `shape(...)` starts in `'passthrough'` mode.
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
+ Important behavior:
101
+
102
+ - `strict()` and `passthrough()` keep the same field descriptor;
103
+ - `strict()` and `passthrough()` keep existing object-level rules;
104
+ - only the unknown-key handling changes.
105
+
106
+ ## Exposed Shape Properties
107
+
108
+ Shape instances expose:
109
+
110
+ - `descriptor` - the current object descriptor;
111
+ - `unknownKeys` - the current unknown-key mode;
112
+ - all standard validator behavior through `check(...)` and `run(...)`.
113
+
114
+ This is useful when a shape needs to be validated, described, and then derived further without rebuilding it from scratch.
115
+
116
+ ## Derived Shapes
117
+
118
+ All shape helpers are immutable. Each call returns a new shape.
119
+
120
+ ### `pick(keys)` and `omit(keys)`
121
+
122
+ Use these when you need a subset of the current 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()` wraps every field in `optional(...)`.
138
+
139
+ ```typescript
140
+ const editableProfile = profile.partial()
141
+ ```
142
+
143
+ This follows the current library model where:
144
+
145
+ - an omitted key;
146
+ - and a key with value `undefined`;
147
+
148
+ are treated the same during validation.
149
+
150
+ ### `extend(descriptor)`
151
+
152
+ `extend(...)` adds or overrides fields using a plain object descriptor.
153
+
154
+ ```typescript
155
+ const account = profile.extend({
156
+ team: isString,
157
+ })
158
+ ```
159
+
160
+ ### `merge(shape)`
161
+
162
+ `merge(...)` merges another shape into the current one.
163
+
164
+ ```typescript
165
+ const account = profile.merge(shape({
166
+ team: isString,
167
+ role: exact('editor'),
168
+ }))
169
+ ```
170
+
171
+ Behavior notes:
172
+
173
+ - the receiver keeps its own unknown-key mode;
174
+ - overlapping keys are overridden by the right-hand shape;
175
+ - object-level rules from the merged shape are not combined into a new shared rule set.
176
+
177
+ ## Rule Retention Semantics
178
+
179
+ There is an intentional distinction between mode switches and structural derivations.
180
+
181
+ `strict()` and `passthrough()` keep object-level rules because the same shape structure is still present.
182
+
183
+ `pick()`, `omit()`, `partial()`, `extend()`, and `merge()` drop object-level rules intentionally, because generic refinements are opaque and may depend on fields that are no longer present or now behave differently.
184
+
185
+ This keeps derived schemas predictable instead of guessing whether an old refinement is still valid.
186
+
187
+ ## Object-Level Rules
188
+
189
+ Shapes can express cross-field invariants without introducing a second schema language.
190
+
191
+ ### `refine(...)`
192
+
193
+ `refine(...)` adds a synchronous object-level rule that runs only after the base shape has already validated successfully as an object.
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(...)` is intentionally thin:
211
+
212
+ - it is sync-only;
213
+ - it returns `[]`, `null`, or `undefined` when the rule passes;
214
+ - it returns one issue or an array of issues when it fails;
215
+ - `path` is relative to the current shape and defaults to `[]`;
216
+ - `value` is optional and defaults to the object value at that relative path;
217
+ - `code` stays machine-readable.
218
+
219
+ Produced violations use:
220
+
221
+ - `violates.kind === 'validator'`;
222
+ - `violates.name === 'shape'`.
223
+
224
+ ### Describing a refine rule
225
+
226
+ Callbacks themselves are not serialized, but you can attach a compact machine-readable descriptor to the rule:
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
+ This shows up later in `describe(...)` under the shape `rules` array.
245
+
246
+ ### `fieldsMatch(...)`
247
+
248
+ `fieldsMatch(...)` is a small helper for the common confirmation-field case.
249
+
250
+ ```typescript
251
+ const registration = shape({
252
+ password: isString,
253
+ confirmPassword: isString,
254
+ }).fieldsMatch(['password', 'confirmPassword'])
255
+ ```
256
+
257
+ It also supports 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
+ ## Validation Order
269
+
270
+ At a high level, shape validation works like this:
271
+
272
+ 1. The input must be a plain record-like object.
273
+ 2. Every declared field is validated recursively.
274
+ 3. Strict unknown-key checks run if the shape is in `'strict'` mode.
275
+ 4. Object-level rules run only if structural validation succeeded first.
276
+
277
+ That ordering matters because object-level rules can then assume a stable validated object shape.
278
+
279
+ ## Nested Shapes
280
+
281
+ Shapes can be nested freely because they are regular validators.
282
+
283
+ ```typescript
284
+ const form = shape({
285
+ profile: shape({
286
+ email: isString,
287
+ nickname: optional(isString),
288
+ }).strict(),
289
+ })
290
+ ```
291
+
292
+ Nested failures keep precise paths such as `['profile', 'email']`.
293
+
294
+ ## Introspection
295
+
296
+ Shapes participate in the public descriptor tree returned by `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 expose:
307
+
308
+ - `unknownKeys`;
309
+ - `fields`;
310
+ - `rules`;
311
+ - optional `metadata`.
312
+
313
+ This is useful for adapters, tooling, and derived exports such as JSON Schema.
314
+
315
+ ## Metadata
316
+
317
+ `meta(...)` can annotate shapes and their fields without changing 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 stays explicit:
338
+
339
+ - there is no implicit inheritance across the tree;
340
+ - shape metadata and field metadata are attached exactly where `meta(...)` was applied.
341
+
342
+ ## Practical Notes
343
+
344
+ - `shape(...)` is object-focused, not schema-first;
345
+ - it reuses the same constraints you already use elsewhere in the library;
346
+ - derived helpers are intentionally small and predictable;
347
+ - object-level rules are expressive, but intentionally lightweight;
348
+ - mismatch between runtime semantics and external schema formats should be handled explicitly through adapter layers such as `describe(...)` or `toJsonSchema(...)`.
@@ -0,0 +1,276 @@
1
+ # Metadata And Introspection
2
+
3
+ [Documentation index](./00-index.md)
4
+ [Russian translation](../ru/02-metadata-and-introspection.md)
5
+
6
+ `@modulify/validator` exposes a public introspection layer built around two small entrypoints:
7
+
8
+ - `meta(...)` for attaching machine-readable metadata to any constraint;
9
+ - `describe(...)` for reading a stable recursive descriptor tree from built-in constraints and compatible custom validators.
10
+
11
+ This layer is intentionally adapter-oriented. It exists so application code and tooling can inspect validation structures without depending on private runtime internals.
12
+
13
+ ## Quick Start
14
+
15
+ ```typescript
16
+ import {
17
+ describe,
18
+ isString,
19
+ meta,
20
+ optional,
21
+ shape,
22
+ } from '@modulify/validator'
23
+
24
+ const registration = meta(shape({
25
+ email: meta(isString, {
26
+ title: 'Email',
27
+ format: 'email',
28
+ }),
29
+ nickname: optional(isString),
30
+ }).strict(), {
31
+ title: 'Registration form',
32
+ })
33
+
34
+ const descriptor = describe(registration)
35
+ ```
36
+
37
+ ## What `meta(...)` Does
38
+
39
+ `meta(...)` attaches read-only machine-readable metadata to a constraint without changing validation semantics.
40
+
41
+ That means:
42
+
43
+ - the original constraint is not mutated;
44
+ - validation success and failure behavior stays the same;
45
+ - the metadata becomes visible through `describe(...)`;
46
+ - nested metadata remains attached exactly where it was applied.
47
+
48
+ Example:
49
+
50
+ ```typescript
51
+ const email = meta(isString, {
52
+ title: 'Email',
53
+ widget: 'email',
54
+ })
55
+ ```
56
+
57
+ The same mechanism works for:
58
+
59
+ - assertions;
60
+ - wrappers such as `optional(...)`;
61
+ - object shapes;
62
+ - structural validators such as `each(...)` or `tuple(...)`;
63
+ - custom validators.
64
+
65
+ ## Metadata Is Explicit, Not Inherited
66
+
67
+ Metadata does not automatically flow through the descriptor tree.
68
+
69
+ If metadata is attached to a parent shape, it stays on that shape node. If metadata is attached to a child field, it stays on that child field node.
70
+
71
+ ```typescript
72
+ const profile = meta(shape({
73
+ email: meta(isString, { title: 'Email' }),
74
+ name: isString,
75
+ }), {
76
+ title: 'Profile',
77
+ })
78
+ ```
79
+
80
+ In this example:
81
+
82
+ - the shape node gets `title: 'Profile'`;
83
+ - the `email` field gets `title: 'Email'`;
84
+ - the `name` field gets no metadata unless you annotate it explicitly.
85
+
86
+ This keeps metadata predictable and avoids hidden tree-wide behavior.
87
+
88
+ ## Metadata Merging
89
+
90
+ If `meta(...)` is applied multiple times to the same constraint, metadata objects are merged from left to right.
91
+
92
+ ```typescript
93
+ const annotated = meta(
94
+ meta(isString, { title: 'Email' }),
95
+ { placeholder: 'name@example.com' }
96
+ )
97
+ ```
98
+
99
+ This produces one descriptor node whose `metadata` contains both keys.
100
+
101
+ ## What `describe(...)` Returns
102
+
103
+ `describe(...)` returns a stable recursive descriptor tree.
104
+
105
+ The descriptor is intentionally machine-readable rather than presentation-oriented. It is designed for adapters and tooling, not for rendering built-in human-readable messages.
106
+
107
+ Examples of built-in `kind` values:
108
+
109
+ - `'assertion'`;
110
+ - `'allOf'`;
111
+ - `'optional'`, `'nullable'`, `'nullish'`;
112
+ - `'shape'`, `'each'`, `'tuple'`, `'record'`;
113
+ - `'union'`, `'discriminatedUnion'`;
114
+ - `'validator'` as a generic fallback for custom validators without a public structural descriptor.
115
+
116
+ ## Assertion Descriptors
117
+
118
+ Leaf assertions produce descriptors with:
119
+
120
+ - `kind: 'assertion'`;
121
+ - `name`;
122
+ - `bail`;
123
+ - primary `code` and `args`;
124
+ - `constraints` for extra checker pipeline entries;
125
+ - optional `metadata`.
126
+
127
+ Example:
128
+
129
+ ```typescript
130
+ const descriptor = describe(meta(isString, { title: 'Display name' }))
131
+ ```
132
+
133
+ This makes assertion metadata visible without changing the assertion runtime itself.
134
+
135
+ ## Wrapper And Structural Descriptors
136
+
137
+ Composed validators describe themselves recursively.
138
+
139
+ Examples:
140
+
141
+ - `optional(...)` exposes `child`;
142
+ - `each(...)` exposes `item`;
143
+ - `tuple(...)` exposes `items`;
144
+ - `union(...)` exposes `branches`;
145
+ - `record(...)` exposes `values`.
146
+
147
+ This recursive structure is what makes adapter layers possible without touching runtime validator internals.
148
+
149
+ ## Shape Descriptors
150
+
151
+ Shapes provide one of the richest built-in descriptor nodes.
152
+
153
+ Shape descriptors include:
154
+
155
+ - `metadata`;
156
+ - `unknownKeys` with `'passthrough'` or `'strict'`;
157
+ - `fields` with one descriptor per object field;
158
+ - `rules` with compact summaries of object-level rules such as `refine(...)` and `fieldsMatch(...)`.
159
+
160
+ Example:
161
+
162
+ ```typescript
163
+ const descriptor = describe(shape({
164
+ email: meta(isString, { format: 'email' }),
165
+ password: isString,
166
+ }).strict())
167
+ ```
168
+
169
+ This is especially useful for:
170
+
171
+ - form adapters;
172
+ - contract adapters;
173
+ - custom documentation generators;
174
+ - JSON Schema export through a separate derivation layer.
175
+
176
+ ## Object-Level Rules In Introspection
177
+
178
+ `refine(...)` callbacks themselves are not serialized.
179
+
180
+ Instead, shapes keep lightweight rule descriptors in `rules`.
181
+
182
+ Built-in examples:
183
+
184
+ - `fieldsMatch(...)` produces a compact `fieldsMatch` rule descriptor;
185
+ - `refine(...)` can accept a custom compact rule descriptor object.
186
+
187
+ This keeps the public descriptor tree stable and serializable enough for tooling, while avoiding the impossible task of serializing arbitrary callbacks.
188
+
189
+ ## Custom Validators
190
+
191
+ Custom validators can participate in the same introspection layer through `custom(...)` plus a public `describe()` method.
192
+
193
+ ```typescript
194
+ import { custom } from '@modulify/validator'
195
+
196
+ const isoDate = custom({
197
+ check(value: unknown): value is string {
198
+ return typeof value === 'string'
199
+ },
200
+ run() {
201
+ return []
202
+ },
203
+ describe() {
204
+ return {
205
+ kind: 'stringFormat',
206
+ format: 'iso-date',
207
+ } as const
208
+ },
209
+ })
210
+ ```
211
+
212
+ Then:
213
+
214
+ - `describe(isoDate)` returns that public descriptor;
215
+ - `meta(...)` can still annotate the custom validator above it.
216
+
217
+ If a custom validator does not expose `describe()`, `describe(...)` falls back to:
218
+
219
+ ```typescript
220
+ { kind: 'validator' }
221
+ ```
222
+
223
+ That fallback is intentionally minimal.
224
+
225
+ ## Adapter Example
226
+
227
+ A small adapter can walk a shape descriptor and collect widget hints:
228
+
229
+ ```typescript
230
+ import type { ConstraintDescriptor } from '@modulify/validator'
231
+
232
+ function collectFieldWidgets(node: ConstraintDescriptor) {
233
+ if (node.kind !== 'shape') {
234
+ return {}
235
+ }
236
+
237
+ return Object.fromEntries(
238
+ Object.entries(node.fields).map(([key, child]) => [key, child.metadata?.widget ?? 'text'])
239
+ )
240
+ }
241
+ ```
242
+
243
+ This is the main purpose of the introspection layer: external code can derive its own view without knowing how runtime validation is implemented internally.
244
+
245
+ ## Relationship To JSON Schema Export
246
+
247
+ `toJsonSchema(...)` is a separate layer derived from the public descriptor contract.
248
+
249
+ That means:
250
+
251
+ - `describe(...)` is the public introspection source of truth;
252
+ - JSON Schema export builds on top of that public shape;
253
+ - the library does not maintain a second hidden schema model for exporters.
254
+
255
+ This separation is intentional:
256
+
257
+ - runtime validation stays runtime-first;
258
+ - metadata stays explicit;
259
+ - export behavior can evolve as a thin adapter layer.
260
+
261
+ ## Practical Boundaries
262
+
263
+ Current boundaries of the metadata and introspection layer:
264
+
265
+ - no built-in message rendering or i18n;
266
+ - no metadata inheritance across the tree;
267
+ - no separate schema DSL alongside runtime constraints;
268
+ - no serialization of runtime callbacks from `refine(...)`;
269
+ - custom validators without public descriptors intentionally remain opaque.
270
+
271
+ ## Practical Notes
272
+
273
+ - use `meta(...)` when you need machine-readable annotations, not hidden behavior;
274
+ - use `describe(...)` when you need a stable structural view of a constraint tree;
275
+ - keep custom descriptors compact and ecosystem-facing;
276
+ - prefer deriving external formats from descriptors instead of re-reading private validator internals.