@modulify/validator 0.0.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/cache/@aashutoshrathi-word-wrap-npm-1.2.6-5b1d95e487-53c2b231a6.zip +0 -0
- package/.yarn/cache/@babel-code-frame-npm-7.23.5-cb10d08de6-a10e843595.zip +0 -0
- package/.yarn/cache/@babel-helper-string-parser-npm-7.25.7-352069de58-73ef2ceb81.zip +0 -0
- package/.yarn/cache/@babel-helper-string-parser-npm-7.27.1-d1471e0598-8bda3448e0.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.20-18305bb306-dcad63db34.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.25.7-1c758f0472-07438e5bf0.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.28.5-1953d49d2b-42aaebed91.zip +0 -0
- package/.yarn/cache/@babel-highlight-npm-7.23.4-2a9f2d2538-fbff9fcb2f.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.25.8-fda12195b5-a1a13845b7.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.29.0-c605c63e8b-333b2aa761.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.25.8-44acfff5f6-55ca2d6df6.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.29.0-6c2fa77581-23cc3466e8.zip +0 -0
- package/.yarn/cache/@bcoe-v8-coverage-npm-1.0.2-e80fdc21ac-1eb1dc93cc.zip +0 -0
- package/.yarn/cache/@commitlint-cli-npm-20.4.3-7b788c74b9-1f54b6870a.zip +0 -0
- package/.yarn/cache/@commitlint-config-conventional-npm-20.4.3-aa90460b69-c7c6fb0b32.zip +0 -0
- package/.yarn/cache/@commitlint-config-validator-npm-20.4.3-456f7d3da8-e65f2bd3cc.zip +0 -0
- package/.yarn/cache/@commitlint-ensure-npm-20.4.3-432e5ad329-aa1f42317a.zip +0 -0
- package/.yarn/cache/@commitlint-execute-rule-npm-20.0.0-6eb8155492-a1035ae9d6.zip +0 -0
- package/.yarn/cache/@commitlint-format-npm-20.4.3-ebe3e8cb04-e221f61a07.zip +0 -0
- package/.yarn/cache/@commitlint-is-ignored-npm-20.4.3-69e200640d-bc118de0aa.zip +0 -0
- package/.yarn/cache/@commitlint-lint-npm-20.4.3-c9940afaeb-e6af7cbbf9.zip +0 -0
- package/.yarn/cache/@commitlint-load-npm-20.4.3-81ae2db04a-80fb52e259.zip +0 -0
- package/.yarn/cache/@commitlint-message-npm-20.4.3-e9b5d77cad-16f7a67d17.zip +0 -0
- package/.yarn/cache/@commitlint-parse-npm-20.4.3-ecc5779976-404fecad36.zip +0 -0
- package/.yarn/cache/@commitlint-read-npm-20.4.3-32de5c8d85-3e7f88ad9b.zip +0 -0
- package/.yarn/cache/@commitlint-resolve-extends-npm-20.4.3-71b99c2779-09220329ba.zip +0 -0
- package/.yarn/cache/@commitlint-rules-npm-20.4.3-390ce9eadc-03348731a9.zip +0 -0
- package/.yarn/cache/@commitlint-to-lines-npm-20.0.0-888ee2239e-49bc05eb06.zip +0 -0
- package/.yarn/cache/@commitlint-top-level-npm-20.4.3-b0ef9fb207-52a1f59677.zip +0 -0
- package/.yarn/cache/@commitlint-types-npm-20.4.3-3d079b12ab-2181f9696f.zip +0 -0
- package/.yarn/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-05c5368c13.zip +0 -0
- package/.yarn/cache/@esbuild-linux-x64-npm-0.27.3-2041dd7b27-10c0.zip +0 -0
- package/.yarn/cache/@eslint-community-eslint-utils-npm-4.9.1-30ad3d49de-dc4ab5e3e3.zip +0 -0
- package/.yarn/cache/@eslint-community-regexpp-npm-4.12.2-3d54624470-fddcbc6685.zip +0 -0
- package/.yarn/cache/@eslint-config-array-npm-0.23.3-19b1c24f51-7c19027acf.zip +0 -0
- package/.yarn/cache/@eslint-config-helpers-npm-0.5.3-b60fa10f11-c836476e83.zip +0 -0
- package/.yarn/cache/@eslint-core-npm-1.1.1-bca32bf928-129c654c78.zip +0 -0
- package/.yarn/cache/@eslint-js-npm-10.0.1-c30b85ca06-9f3fcaf71b.zip +0 -0
- package/.yarn/cache/@eslint-object-schema-npm-3.0.3-4c45388d6c-4abbb7cba5.zip +0 -0
- package/.yarn/cache/@eslint-plugin-kit-npm-0.6.1-fafe413a70-f8354a7b92.zip +0 -0
- package/.yarn/cache/@gar-promise-retry-npm-1.0.2-960b209ddf-748a84fb0a.zip +0 -0
- package/.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip +0 -0
- package/.yarn/cache/@humanfs-node-npm-0.16.6-6ee2cad587-8356359c9f.zip +0 -0
- package/.yarn/cache/@humanwhocodes-module-importer-npm-1.0.1-9d07ed2e4a-909b69c3b8.zip +0 -0
- package/.yarn/cache/@humanwhocodes-retry-npm-0.3.1-9d87bf92c6-f0da1282df.zip +0 -0
- package/.yarn/cache/@humanwhocodes-retry-npm-0.4.3-a8d7ca1663-3775bb3008.zip +0 -0
- package/.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-c25b6dc159.zip +0 -0
- package/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.1-aa2de3f210-0dbc9e29bc.zip +0 -0
- package/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip +0 -0
- package/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-0c6b5ae663.zip +0 -0
- package/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-2eb864f276.zip +0 -0
- package/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-f9e538f302.zip +0 -0
- package/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-4b30ec8cd5.zip +0 -0
- package/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-fa425b606d.zip +0 -0
- package/.yarn/cache/@microsoft-api-extractor-model-npm-7.33.4-65dc0810a1-c71569e59a.zip +0 -0
- package/.yarn/cache/@microsoft-api-extractor-npm-7.57.6-3ff3fa89f4-2f4598cc6b.zip +0 -0
- package/.yarn/cache/@microsoft-tsdoc-config-npm-0.18.1-9e24f960a2-06507f7ced.zip +0 -0
- package/.yarn/cache/@microsoft-tsdoc-npm-0.16.0-9d3f19f1b6-8883bb0ed2.zip +0 -0
- package/.yarn/cache/@npmcli-agent-npm-4.0.0-502e5ae4f0-f7b5ce0f3d.zip +0 -0
- package/.yarn/cache/@npmcli-fs-npm-5.0.0-9d737ae2f3-26e376d780.zip +0 -0
- package/.yarn/cache/@polka-url-npm-1.0.0-next.28-024769eda8-acc5ea6259.zip +0 -0
- package/.yarn/cache/@rollup-pluginutils-npm-5.1.4-83ce21024f-6d58fbc6f1.zip +0 -0
- package/.yarn/cache/@rollup-rollup-linux-x64-gnu-npm-4.59.0-da6c703f69-10c0.zip +0 -0
- package/.yarn/cache/@rushstack-node-core-library-npm-5.20.3-c547457ad4-bc9b33c6be.zip +0 -0
- package/.yarn/cache/@rushstack-problem-matcher-npm-0.2.1-87bf7eb8c4-d6cf27f6bf.zip +0 -0
- package/.yarn/cache/@rushstack-rig-package-npm-0.7.2-5f0f64865a-2e2839fa9a.zip +0 -0
- package/.yarn/cache/@rushstack-terminal-npm-0.22.3-2934ccd0ff-0e81fe7543.zip +0 -0
- package/.yarn/cache/@rushstack-ts-command-line-npm-5.3.3-d220c0fef2-03d9e9989b.zip +0 -0
- package/.yarn/cache/@simple-libs-stream-utils-npm-1.2.0-db53dc026f-2788ac7b16.zip +0 -0
- package/.yarn/cache/@standard-schema-spec-npm-1.1.0-d3e5ccd2e2-d90f55acde.zip +0 -0
- package/.yarn/cache/@tsconfig-node10-npm-1.0.9-f2e2d20feb-c176a2c1e1.zip +0 -0
- package/.yarn/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-dddca2b553.zip +0 -0
- package/.yarn/cache/@tsconfig-node14-npm-1.0.3-15321421d2-67c1316d06.zip +0 -0
- package/.yarn/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-05f8f2734e.zip +0 -0
- package/.yarn/cache/@types-argparse-npm-1.0.38-657c15204c-4fc892da5d.zip +0 -0
- package/.yarn/cache/@types-chai-npm-5.2.3-5f61dbddda-e0ef1de3b6.zip +0 -0
- package/.yarn/cache/@types-deep-eql-npm-4.0.2-e6bc68cc92-bf3f811843.zip +0 -0
- package/.yarn/cache/@types-esrecurse-npm-4.3.1-237d34a55f-90dad74d5d.zip +0 -0
- package/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-b3b0e33428.zip +0 -0
- package/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-cdfd751f6f.zip +0 -0
- package/.yarn/cache/@types-estree-npm-1.0.8-2195bac6d6-39d34d1afa.zip +0 -0
- package/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-a996a745e6.zip +0 -0
- package/.yarn/cache/@types-node-npm-25.3.5-81ad2eb587-4cf0834a6f.zip +0 -0
- package/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.56.1-3df20cf10b-8a97e77779.zip +0 -0
- package/.yarn/cache/@typescript-eslint-parser-npm-8.56.1-3f9b1c2f30-61c9dab481.zip +0 -0
- package/.yarn/cache/@typescript-eslint-project-service-npm-8.56.1-766cc01259-ca61cde575.zip +0 -0
- package/.yarn/cache/@typescript-eslint-scope-manager-npm-8.56.1-2d38e88a4b-89cc1af263.zip +0 -0
- package/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.56.1-e35d1dd914-d03b64d7ff.zip +0 -0
- package/.yarn/cache/@typescript-eslint-type-utils-npm-8.56.1-e472908945-66517aed50.zip +0 -0
- package/.yarn/cache/@typescript-eslint-types-npm-8.56.1-09e50c3c54-e5a0318abd.zip +0 -0
- package/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.56.1-bdca7e3c09-92f4421dac.zip +0 -0
- package/.yarn/cache/@typescript-eslint-utils-npm-8.56.1-aa0778f53a-d9ffd9b294.zip +0 -0
- package/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.56.1-901d7b2e4d-86d97905de.zip +0 -0
- package/.yarn/cache/@vitest-coverage-v8-npm-4.0.18-62bb7f840e-e23e0da86f.zip +0 -0
- package/.yarn/cache/@vitest-expect-npm-4.0.18-03919ccd0b-123b0aa111.zip +0 -0
- package/.yarn/cache/@vitest-mocker-npm-4.0.18-118c87f90e-fb0a257e7e.zip +0 -0
- package/.yarn/cache/@vitest-pretty-format-npm-4.0.18-a73855e4a4-0086b8c88e.zip +0 -0
- package/.yarn/cache/@vitest-runner-npm-4.0.18-3dbdf3fb30-fdb4afa411.zip +0 -0
- package/.yarn/cache/@vitest-snapshot-npm-4.0.18-35134202ed-d3bfefa558.zip +0 -0
- package/.yarn/cache/@vitest-spy-npm-4.0.18-296c59dce4-6de537890b.zip +0 -0
- package/.yarn/cache/@vitest-ui-npm-4.0.18-2112b3c7d4-25ed45b529.zip +0 -0
- package/.yarn/cache/@vitest-utils-npm-4.0.18-b1c99a49e0-4a3c43c142.zip +0 -0
- package/.yarn/cache/@volar-language-core-npm-2.4.11-9f1617b8e0-ccc5de0c28.zip +0 -0
- package/.yarn/cache/@volar-language-core-npm-2.4.28-23fc3d6b92-d41f7327fe.zip +0 -0
- package/.yarn/cache/@volar-source-map-npm-2.4.11-1022b0cd34-8e5badf9f6.zip +0 -0
- package/.yarn/cache/@volar-source-map-npm-2.4.28-7517299eaf-24b0b02c7f.zip +0 -0
- package/.yarn/cache/@volar-typescript-npm-2.4.11-9486696485-bca9bda9c8.zip +0 -0
- package/.yarn/cache/@vue-compiler-core-npm-3.5.13-b0c91e9970-b89f3e3ca9.zip +0 -0
- package/.yarn/cache/@vue-compiler-dom-npm-3.5.13-8785a9ba19-8f424a7188.zip +0 -0
- package/.yarn/cache/@vue-compiler-vue2-npm-2.7.16-ac462b66cc-c76c3fad77.zip +0 -0
- package/.yarn/cache/@vue-language-core-npm-2.2.0-451bd2aafd-1c44cc4067.zip +0 -0
- package/.yarn/cache/@vue-shared-npm-3.5.13-519178ab33-2c940ef907.zip +0 -0
- package/.yarn/cache/abbrev-npm-4.0.0-7d848a1ef0-b4cc169352.zip +0 -0
- package/.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip +0 -0
- package/.yarn/cache/acorn-npm-8.11.3-0d7ab48b38-3ff155f881.zip +0 -0
- package/.yarn/cache/acorn-npm-8.16.0-b2096bf83f-c9c5269722.zip +0 -0
- package/.yarn/cache/acorn-walk-npm-8.3.2-df039a42bf-7e2a8dad54.zip +0 -0
- package/.yarn/cache/agent-base-npm-7.1.4-cb8b4604d5-c2c9ab7599.zip +0 -0
- package/.yarn/cache/ajv-draft-04-npm-1.0.0-6fc962dbab-6044310bd3.zip +0 -0
- package/.yarn/cache/ajv-formats-npm-3.0.1-2662cf5b12-168d6bca1e.zip +0 -0
- package/.yarn/cache/ajv-npm-6.14.0-41f32f2ba8-a2bc39b055.zip +0 -0
- package/.yarn/cache/ajv-npm-8.12.0-3bf6e30741-ac4f72adf7.zip +0 -0
- package/.yarn/cache/ajv-npm-8.17.1-12ade7edc6-ec3ba10a57.zip +0 -0
- package/.yarn/cache/ajv-npm-8.18.0-6e5e062765-e7517c4261.zip +0 -0
- package/.yarn/cache/alien-signals-npm-0.4.14-73b9599f8d-5abb3377bc.zip +0 -0
- package/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-9a64bb8627.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-ece5a8ef06.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-895a23929d.zip +0 -0
- package/.yarn/cache/arg-npm-4.1.3-1748b966a8-070ff801a9.zip +0 -0
- package/.yarn/cache/argparse-npm-1.0.10-528934e59d-b2972c5c23.zip +0 -0
- package/.yarn/cache/argparse-npm-2.0.1-faff7999e6-c5640c2d89.zip +0 -0
- package/.yarn/cache/array-ify-npm-1.0.0-e09a371977-75c9c072fa.zip +0 -0
- package/.yarn/cache/assertion-error-npm-2.0.1-8169d136f2-bbbcb117ac.zip +0 -0
- package/.yarn/cache/ast-v8-to-istanbul-npm-0.3.12-a066421931-bad6ba222b.zip +0 -0
- package/.yarn/cache/balanced-match-npm-4.0.4-fd666b3c7f-07e86102a3.zip +0 -0
- package/.yarn/cache/brace-expansion-npm-5.0.4-acb9332524-359cbcfa80.zip +0 -0
- package/.yarn/cache/cacache-npm-20.0.3-5f244d5bdd-c7da1ca694.zip +0 -0
- package/.yarn/cache/callsites-npm-3.1.0-268f989910-fff9227740.zip +0 -0
- package/.yarn/cache/chai-npm-6.2.2-e1795cadaa-e6c69e5f0c.zip +0 -0
- package/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-e6543f02ec.zip +0 -0
- package/.yarn/cache/chownr-npm-3.0.0-5275e85d25-43925b8770.zip +0 -0
- package/.yarn/cache/cliui-npm-8.0.1-3b029092cf-4bda0f09c3.zip +0 -0
- package/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-5ad3c53494.zip +0 -0
- package/.yarn/cache/color-convert-npm-2.0.1-79730e935b-37e1150172.zip +0 -0
- package/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-566a3d42cc.zip +0 -0
- package/.yarn/cache/color-name-npm-1.1.4-025792b0ea-a1a3f91415.zip +0 -0
- package/.yarn/cache/compare-func-npm-2.0.0-9cd7852f23-78bd4dd4ed.zip +0 -0
- package/.yarn/cache/compare-versions-npm-6.1.1-4b4ac16a32-415205c762.zip +0 -0
- package/.yarn/cache/confbox-npm-0.1.8-8396039b68-fc2c68d97c.zip +0 -0
- package/.yarn/cache/confbox-npm-0.2.4-31ba8953f9-4c36af33d9.zip +0 -0
- package/.yarn/cache/conventional-changelog-angular-npm-8.3.0-0cd5330d9e-bab87fa741.zip +0 -0
- package/.yarn/cache/conventional-changelog-conventionalcommits-npm-9.3.0-6c1ee7bc50-36be9435bb.zip +0 -0
- package/.yarn/cache/conventional-commits-parser-npm-6.3.0-ac5eec936e-7b152db0b6.zip +0 -0
- package/.yarn/cache/cosmiconfig-npm-9.0.1-66b0cd2503-a5d4d95599.zip +0 -0
- package/.yarn/cache/cosmiconfig-typescript-loader-npm-6.2.0-a314118ca7-0fd8fd9b9b.zip +0 -0
- package/.yarn/cache/create-require-npm-1.1.1-839884ca2e-157cbc59b2.zip +0 -0
- package/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-053ea8b213.zip +0 -0
- package/.yarn/cache/dargs-npm-8.1.0-39fde97ef5-08cbd1ee4a.zip +0 -0
- package/.yarn/cache/de-indent-npm-1.0.2-66cccde30f-7058ce58ab.zip +0 -0
- package/.yarn/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip +0 -0
- package/.yarn/cache/debug-npm-4.4.0-f6efe76023-db94f1a182.zip +0 -0
- package/.yarn/cache/debug-npm-4.4.3-0105c6123a-d79136ec6c.zip +0 -0
- package/.yarn/cache/deep-is-npm-0.1.4-88938b5a67-7f0ee496e0.zip +0 -0
- package/.yarn/cache/diff-npm-4.0.2-73133c7102-81b91f9d39.zip +0 -0
- package/.yarn/cache/diff-npm-8.0.3-6f5c127138-d29321c70d.zip +0 -0
- package/.yarn/cache/dot-prop-npm-5.3.0-7bf6ee1eb8-93f0d343ef.zip +0 -0
- package/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-b6053ad399.zip +0 -0
- package/.yarn/cache/entities-npm-4.5.0-7cdb83b832-5b039739f7.zip +0 -0
- package/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-285325677b.zip +0 -0
- package/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-ba827f8936.zip +0 -0
- package/.yarn/cache/es-module-lexer-npm-1.7.0-456b47a08a-4c935affcb.zip +0 -0
- package/.yarn/cache/esbuild-npm-0.27.3-85b6c20323-fdc3f87a3f.zip +0 -0
- package/.yarn/cache/escalade-npm-3.1.1-e02da076aa-afd02e6ca9.zip +0 -0
- package/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-ced4dd3a78.zip +0 -0
- package/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-a968ad453d.zip +0 -0
- package/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-9497d4dd30.zip +0 -0
- package/.yarn/cache/eslint-npm-10.0.3-c98e23b2a9-fbbb4d99cb.zip +0 -0
- package/.yarn/cache/eslint-scope-npm-9.1.2-50e6e92f41-9fb8bca5a7.zip +0 -0
- package/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-92708e882c.zip +0 -0
- package/.yarn/cache/eslint-visitor-keys-npm-5.0.1-30a44b062b-16190bdf2c.zip +0 -0
- package/.yarn/cache/espree-npm-11.2.0-095134f369-cf87e18ffd.zip +0 -0
- package/.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip +0 -0
- package/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-81a37116d1.zip +0 -0
- package/.yarn/cache/estraverse-npm-5.3.0-03284f8f63-1ff9447b96.zip +0 -0
- package/.yarn/cache/estree-walker-npm-2.0.2-dfab42f65c-53a6c54e20.zip +0 -0
- package/.yarn/cache/estree-walker-npm-3.0.3-0372979673-c12e3c2b26.zip +0 -0
- package/.yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip +0 -0
- package/.yarn/cache/expect-type-npm-1.3.0-95a4384745-8412b3fe4f.zip +0 -0
- package/.yarn/cache/exponential-backoff-npm-3.1.3-28be78d98e-77e3ae682b.zip +0 -0
- package/.yarn/cache/exsolve-npm-1.0.8-20570c05a2-65e44ae05b.zip +0 -0
- package/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-40dedc862e.zip +0 -0
- package/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-7f081eb0b8.zip +0 -0
- package/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-111972b373.zip +0 -0
- package/.yarn/cache/fast-uri-npm-3.0.3-0874072625-4b2c5ce681.zip +0 -0
- package/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip +0 -0
- package/.yarn/cache/fflate-npm-0.8.2-5129f303f0-03448d630c.zip +0 -0
- package/.yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip +0 -0
- package/.yarn/cache/find-up-npm-5.0.0-e03e9b796d-062c5a83a9.zip +0 -0
- package/.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip +0 -0
- package/.yarn/cache/flatted-npm-3.2.9-0462256d3c-5c91c5a0a2.zip +0 -0
- package/.yarn/cache/flatted-npm-3.3.4-614e5aba3e-d1f33426e9.zip +0 -0
- package/.yarn/cache/fs-extra-npm-11.3.4-29a9d2b3b0-e08276f767.zip +0 -0
- package/.yarn/cache/fs-minipass-npm-3.0.3-d148d6ac19-63e80da2ff.zip +0 -0
- package/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-a1f0c44595.zip +0 -0
- package/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-d8680ee1e5.zip +0 -0
- package/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-c6c7b60271.zip +0 -0
- package/.yarn/cache/git-raw-commits-npm-4.0.0-60e7e666d1-ab51335d9e.zip +0 -0
- package/.yarn/cache/glob-npm-13.0.6-864eb0cece-269c236f11.zip +0 -0
- package/.yarn/cache/glob-parent-npm-6.0.2-2cbef12738-317034d886.zip +0 -0
- package/.yarn/cache/global-directory-npm-4.0.1-1de95382fd-f9cbeef41d.zip +0 -0
- package/.yarn/cache/globals-npm-17.4.0-d04eded15b-2be9e8c2b9.zip +0 -0
- package/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip +0 -0
- package/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-1c6c83b14b.zip +0 -0
- package/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-2e789c61b7.zip +0 -0
- package/.yarn/cache/hasown-npm-2.0.0-78b794ceef-5d415b114f.zip +0 -0
- package/.yarn/cache/he-npm-1.2.0-3b73a2ff07-a27d478bef.zip +0 -0
- package/.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-208e8a12de.zip +0 -0
- package/.yarn/cache/http-cache-semantics-npm-4.2.0-fadacfb3ad-45b66a945c.zip +0 -0
- package/.yarn/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-4207b06a45.zip +0 -0
- package/.yarn/cache/https-proxy-agent-npm-7.0.6-27a95c2690-f729219bc7.zip +0 -0
- package/.yarn/cache/husky-npm-9.1.7-5b02eaabc4-35bb110a71.zip +0 -0
- package/.yarn/cache/iconv-lite-npm-0.7.2-716fc012a0-3c228920f3.zip +0 -0
- package/.yarn/cache/ignore-npm-5.3.0-fb0f5fa062-dc06bea5c2.zip +0 -0
- package/.yarn/cache/ignore-npm-7.0.5-dea34ee430-ae00db89fe.zip +0 -0
- package/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-7f882953aa.zip +0 -0
- package/.yarn/cache/import-lazy-npm-4.0.0-3215653869-a3520313e2.zip +0 -0
- package/.yarn/cache/import-meta-resolve-npm-4.2.0-d0ecf96035-3ee8aeecb6.zip +0 -0
- package/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-8b51313850.zip +0 -0
- package/.yarn/cache/ini-npm-4.1.1-01c2cbda7b-7fddc8dfd3.zip +0 -0
- package/.yarn/cache/ip-address-npm-10.1.0-d5d5693401-0103516cfa.zip +0 -0
- package/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-e7fb686a73.zip +0 -0
- package/.yarn/cache/is-core-module-npm-2.13.1-36e17434f9-2cba9903aa.zip +0 -0
- package/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-5487da3569.zip +0 -0
- package/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-bb11d825e0.zip +0 -0
- package/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-17fb4014e2.zip +0 -0
- package/.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-85044ed7ba.zip +0 -0
- package/.yarn/cache/is-plain-obj-npm-4.1.0-a4f2a92b44-32130d651d.zip +0 -0
- package/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip +0 -0
- package/.yarn/cache/isexe-npm-4.0.0-588229ad74-5884815115.zip +0 -0
- package/.yarn/cache/istanbul-lib-coverage-npm-3.2.2-5c0526e059-6c7ff21067.zip +0 -0
- package/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-84323afb14.zip +0 -0
- package/.yarn/cache/istanbul-reports-npm-3.2.0-b755b56d78-d596317cfd.zip +0 -0
- package/.yarn/cache/jiti-npm-2.6.1-597ab7fb84-79b2e96a8e.zip +0 -0
- package/.yarn/cache/jju-npm-1.4.0-670678eaa3-f3f444557e.zip +0 -0
- package/.yarn/cache/js-tokens-npm-10.0.0-2f75d73bcb-a934987478.zip +0 -0
- package/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip +0 -0
- package/.yarn/cache/js-yaml-npm-4.1.0-3606f32312-184a24b4ea.zip +0 -0
- package/.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-0d1c91569d.zip +0 -0
- package/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-140932564c.zip +0 -0
- package/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-108fa90d4c.zip +0 -0
- package/.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-71e30015d7.zip +0 -0
- package/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cb168b61fd.zip +0 -0
- package/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-4f95b5e8a5.zip +0 -0
- package/.yarn/cache/keyv-npm-4.5.4-4c8e2cf7f7-aa52f3c5e1.zip +0 -0
- package/.yarn/cache/kolorist-npm-1.8.0-2cc04dcc05-73075db44a.zip +0 -0
- package/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-effb03cad7.zip +0 -0
- package/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-3da6ee62d4.zip +0 -0
- package/.yarn/cache/local-pkg-npm-1.1.2-04ade6b6c7-1bcfcc5528.zip +0 -0
- package/.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-d3972ab70d.zip +0 -0
- package/.yarn/cache/lodash-npm-4.17.23-50bdb1c01a-1264a90469.zip +0 -0
- package/.yarn/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-fcba15d21a.zip +0 -0
- package/.yarn/cache/lodash.kebabcase-npm-4.1.1-89ffca7e1f-da5d8f41db.zip +0 -0
- package/.yarn/cache/lodash.mergewith-npm-4.6.2-7d2d4201ec-4adbed65ff.zip +0 -0
- package/.yarn/cache/lodash.snakecase-npm-4.1.1-b12cdbecb4-f0b3f2497e.zip +0 -0
- package/.yarn/cache/lodash.startcase-npm-4.4.0-637aa8cc15-bd82aa87a4.zip +0 -0
- package/.yarn/cache/lodash.upperfirst-npm-4.3.1-e3b7c364ba-435625da4b.zip +0 -0
- package/.yarn/cache/lru-cache-npm-11.2.6-acb7d4323e-73bbffb298.zip +0 -0
- package/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-cb53e58278.zip +0 -0
- package/.yarn/cache/magic-string-npm-0.30.17-da1b7593b1-16826e415d.zip +0 -0
- package/.yarn/cache/magic-string-npm-0.30.21-9a226cb21e-299378e38f.zip +0 -0
- package/.yarn/cache/magicast-npm-0.5.2-24c891cd9d-924af67764.zip +0 -0
- package/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-69b98a6c0b.zip +0 -0
- package/.yarn/cache/make-error-npm-1.3.6-ccb85d9458-171e458d86.zip +0 -0
- package/.yarn/cache/make-fetch-happen-npm-15.0.4-cd90f16f9b-b874bf6879.zip +0 -0
- package/.yarn/cache/meow-npm-12.1.1-bd7858d088-a125ca99a3.zip +0 -0
- package/.yarn/cache/meow-npm-13.2.0-9907f89171-d5b339ae31.zip +0 -0
- package/.yarn/cache/minimatch-npm-10.2.4-11f0605299-35f3dfb7b9.zip +0 -0
- package/.yarn/cache/minimatch-npm-9.0.7-145dd43fbb-e90f8d8dd1.zip +0 -0
- package/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-19d3fcdca0.zip +0 -0
- package/.yarn/cache/minipass-collect-npm-2.0.1-73d3907e40-5167e73f62.zip +0 -0
- package/.yarn/cache/minipass-fetch-npm-5.0.2-cd03eefed8-ce4ab9f21c.zip +0 -0
- package/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-2a51b63feb.zip +0 -0
- package/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip +0 -0
- package/.yarn/cache/minipass-npm-7.1.3-b73a16498d-539da88dac.zip +0 -0
- package/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-cbda57cea2.zip +0 -0
- package/.yarn/cache/minipass-sized-npm-2.0.0-a911fc7d3f-f9201696a6.zip +0 -0
- package/.yarn/cache/minizlib-npm-3.1.0-6680befdba-5aad75ab00.zip +0 -0
- package/.yarn/cache/mlly-npm-1.8.1-0181666245-664fa66726.zip +0 -0
- package/.yarn/cache/mrmime-npm-2.0.0-0326eb1458-312b35ed28.zip +0 -0
- package/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-a437714e2f.zip +0 -0
- package/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-d924b57e73.zip +0 -0
- package/.yarn/cache/muggle-string-npm-0.4.1-fe3c825cc2-e914b63e24.zip +0 -0
- package/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip +0 -0
- package/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-f5f9a7974b.zip +0 -0
- package/.yarn/cache/negotiator-npm-1.0.0-47d727e27e-4c559dd526.zip +0 -0
- package/.yarn/cache/node-gyp-npm-12.2.0-11f8fe84f1-3ed046746a.zip +0 -0
- package/.yarn/cache/nopt-npm-9.0.0-81316ec15c-1822eb6f9b.zip +0 -0
- package/.yarn/cache/obug-npm-2.1.1-029730d296-59dccd7de7.zip +0 -0
- package/.yarn/cache/optionator-npm-0.9.3-56c3a4bf80-66fba794d4.zip +0 -0
- package/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-9db675949d.zip +0 -0
- package/.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-2290d627ab.zip +0 -0
- package/.yarn/cache/p-map-npm-7.0.4-39386109d0-a5030935d3.zip +0 -0
- package/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-c63d6e8000.zip +0 -0
- package/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-77947f2253.zip +0 -0
- package/.yarn/cache/path-browserify-npm-1.0.1-f975d99a99-8b8c3fd5c6.zip +0 -0
- package/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-8c0bd3f523.zip +0 -0
- package/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-748c43efd5.zip +0 -0
- package/.yarn/cache/path-parse-npm-1.0.7-09564527b7-11ce261f9d.zip +0 -0
- package/.yarn/cache/path-scurry-npm-2.0.2-f10aa6a77e-b35ad37cf6.zip +0 -0
- package/.yarn/cache/pathe-npm-2.0.3-0924246ee0-c118dc5a8b.zip +0 -0
- package/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip +0 -0
- package/.yarn/cache/picomatch-npm-4.0.2-e93516ddf2-7c51f3ad2b.zip +0 -0
- package/.yarn/cache/picomatch-npm-4.0.3-0a647b87cc-9582c951e9.zip +0 -0
- package/.yarn/cache/pkg-types-npm-1.3.1-832c9cd162-19e6cb8b66.zip +0 -0
- package/.yarn/cache/pkg-types-npm-2.3.0-e7381b4aaa-d2bbddc5b8.zip +0 -0
- package/.yarn/cache/postcss-npm-8.5.8-b010bee8df-dd918f7127.zip +0 -0
- package/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-b00d617431.zip +0 -0
- package/.yarn/cache/proc-log-npm-6.1.0-84e609b3f4-4f178d4062.zip +0 -0
- package/.yarn/cache/punycode-npm-2.3.1-97543c420d-14f76a8206.zip +0 -0
- package/.yarn/cache/quansync-npm-0.2.11-f7bf964a44-cb9a1f8ebc.zip +0 -0
- package/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-83aa76a7bc.zip +0 -0
- package/.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-aaa267e0c5.zip +0 -0
- package/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-8408eec31a.zip +0 -0
- package/.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-b21cb7f1fb.zip +0 -0
- package/.yarn/cache/resolve-npm-1.22.8-098f379dfe-07e179f437.zip +0 -0
- package/.yarn/cache/resolve-patch-4254c24959-0446f02443.zip +0 -0
- package/.yarn/cache/retry-npm-0.13.1-89eb100ab6-9ae822ee19.zip +0 -0
- package/.yarn/cache/rollup-npm-4.59.0-3b10f603ec-f38742da34.zip +0 -0
- package/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7e3c8b2e88.zip +0 -0
- package/.yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip +0 -0
- package/.yarn/cache/semver-npm-7.6.3-57e82c14d5-88f33e148b.zip +0 -0
- package/.yarn/cache/semver-npm-7.7.4-746e538da5-5215ad0234.zip +0 -0
- package/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-a41692e7d8.zip +0 -0
- package/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1dbed0726d.zip +0 -0
- package/.yarn/cache/siginfo-npm-2.0.0-9bbac931f8-3def8f8e51.zip +0 -0
- package/.yarn/cache/sirv-npm-3.0.2-6cf658c733-5930e4397a.zip +0 -0
- package/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip +0 -0
- package/.yarn/cache/socks-npm-2.8.7-d1d20aae19-2805a43a1c.zip +0 -0
- package/.yarn/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-5d2c6cecba.zip +0 -0
- package/.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip +0 -0
- package/.yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip +0 -0
- package/.yarn/cache/split2-npm-4.2.0-16aa3883ba-b292beb8ce.zip +0 -0
- package/.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-ecadcfe4c7.zip +0 -0
- package/.yarn/cache/ssri-npm-13.0.1-c266f2233c-cf6408a186.zip +0 -0
- package/.yarn/cache/stackback-npm-0.0.2-73273dc92e-89a1416668.zip +0 -0
- package/.yarn/cache/std-env-npm-3.10.0-30d3e2646f-1814927a45.zip +0 -0
- package/.yarn/cache/string-argv-npm-0.3.2-6e057a88f1-75c02a8375.zip +0 -0
- package/.yarn/cache/string-width-npm-4.2.3-2c27177bae-1e525e92e5.zip +0 -0
- package/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-1ae5f212a1.zip +0 -0
- package/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-9681a6257b.zip +0 -0
- package/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-6ae5ff319b.zip +0 -0
- package/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-afb4c88521.zip +0 -0
- package/.yarn/cache/supports-color-npm-8.1.1-289e937149-ea1d3c275d.zip +0 -0
- package/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-6c40323407.zip +0 -0
- package/.yarn/cache/tar-npm-7.5.10-83147ff192-ed905e4b33.zip +0 -0
- package/.yarn/cache/tinybench-npm-2.9.0-2861a048db-c3500b0f60.zip +0 -0
- package/.yarn/cache/tinyexec-npm-1.0.2-321b713e56-1261a8e34c.zip +0 -0
- package/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip +0 -0
- package/.yarn/cache/tinyrainbow-npm-3.0.3-06ed35d14d-1e799d35cd.zip +0 -0
- package/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-b214d21dbf.zip +0 -0
- package/.yarn/cache/totalist-npm-3.0.1-91e71f3baa-4bb1fadb69.zip +0 -0
- package/.yarn/cache/ts-api-utils-npm-2.4.0-1179124e9a-ed185861ae.zip +0 -0
- package/.yarn/cache/ts-node-npm-10.9.2-3f3890b9ac-5f29938489.zip +0 -0
- package/.yarn/cache/tslib-npm-2.8.1-66590b21b8-9c4759110a.zip +0 -0
- package/.yarn/cache/type-check-npm-0.4.0-60565800ce-7b3fd0ed43.zip +0 -0
- package/.yarn/cache/typescript-eslint-npm-8.56.1-533c704529-c33aeb9a8b.zip +0 -0
- package/.yarn/cache/typescript-npm-5.7.2-b1f84a8b28-a873118b52.zip +0 -0
- package/.yarn/cache/typescript-npm-5.8.2-b95d637f6a-5c4f6fbf1c.zip +0 -0
- package/.yarn/cache/typescript-patch-26c53754b1-5448a08e59.zip +0 -0
- package/.yarn/cache/typescript-patch-aed9e5263d-f3b8082c9d.zip +0 -0
- package/.yarn/cache/ufo-npm-1.6.3-29bac69d97-bf0e4ebff9.zip +0 -0
- package/.yarn/cache/undici-types-npm-7.18.2-3e6d69d829-85a7918911.zip +0 -0
- package/.yarn/cache/unique-filename-npm-5.0.0-605f54f18e-afb897e9cf.zip +0 -0
- package/.yarn/cache/unique-slug-npm-6.0.0-f26b186e99-da7ade4cb0.zip +0 -0
- package/.yarn/cache/universalify-npm-2.0.1-040ba5a21e-73e8ee3809.zip +0 -0
- package/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-4ef57b45aa.zip +0 -0
- package/.yarn/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-bdc36fb809.zip +0 -0
- package/.yarn/cache/vite-npm-7.3.1-330baf2f0d-5c7548f5f4.zip +0 -0
- package/.yarn/cache/vite-plugin-dts-npm-4.5.4-2445647687-5fcb7f3739.zip +0 -0
- package/.yarn/cache/vitest-npm-4.0.18-52f42bdace-b913cd3203.zip +0 -0
- package/.yarn/cache/vscode-uri-npm-3.0.8-56f46b9d24-f7f217f526.zip +0 -0
- package/.yarn/cache/which-npm-2.0.2-320ddf72f7-66522872a7.zip +0 -0
- package/.yarn/cache/which-npm-6.0.1-afc3b2db90-7e710e54ea.zip +0 -0
- package/.yarn/cache/why-is-node-running-npm-2.3.0-011cf61a18-1cde0b01b8.zip +0 -0
- package/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-d15fc12c11.zip +0 -0
- package/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-4df2842c36.zip +0 -0
- package/.yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip +0 -0
- package/.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-a499c81ce6.zip +0 -0
- package/.yarn/cache/yargs-npm-17.7.2-80b62638e1-ccd7e723e6.zip +0 -0
- package/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-f84b5e4816.zip +0 -0
- package/.yarn/cache/yn-npm-3.1.1-8ad4259784-0732468dd7.zip +0 -0
- package/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-dceb44c285.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.12.0.cjs +942 -0
- package/.yarnrc.yml +5 -0
- package/AGENTS.md +82 -0
- package/CHANGELOG.md +55 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/README.md +300 -119
- package/dist/assert.cjs +66 -0
- package/dist/assert.d.ts +16 -0
- package/dist/assert.mjs +66 -0
- package/dist/assertions.cjs +207 -0
- package/dist/assertions.d.ts +58 -0
- package/dist/assertions.mjs +207 -0
- package/dist/checkers.d.ts +8 -0
- package/dist/combinators.cjs +341 -0
- package/dist/combinators.d.ts +17 -0
- package/dist/combinators.mjs +341 -0
- package/dist/constraints.d.ts +4 -0
- package/dist/extractors.d.ts +2 -0
- package/dist/index.cjs +219 -315
- package/dist/index.d.ts +12 -0
- package/dist/index.mjs +220 -306
- package/dist/json-schema.cjs +514 -0
- package/dist/json-schema.d.ts +14 -0
- package/dist/json-schema.mjs +514 -0
- package/dist/metadata.cjs +8 -0
- package/dist/metadata.cjs.js +130 -0
- package/dist/metadata.d.ts +8 -0
- package/dist/metadata.es.js +131 -0
- package/dist/metadata.mjs +8 -0
- package/dist/predicates.cjs +116 -0
- package/dist/predicates.d.ts +56 -0
- package/dist/predicates.mjs +116 -0
- package/dist/violations.d.ts +29 -0
- package/docker/services/node/Dockerfile +9 -0
- package/docs/en/00-index.md +14 -0
- package/docs/en/01-shape-api.md +348 -0
- package/docs/en/02-metadata-and-introspection.md +276 -0
- package/docs/en/03-violations.md +267 -0
- package/docs/en/04-json-schema-export.md +264 -0
- package/docs/en/05-public-api.md +123 -0
- package/docs/en/06-common-recipes.md +273 -0
- package/docs/en/07-ai-reference.md +215 -0
- package/docs/en/08-violation-code-types.md +241 -0
- package/docs/ru/00-index.md +15 -0
- package/docs/ru/01-shape-api.md +348 -0
- package/docs/ru/02-metadata-and-introspection.md +276 -0
- package/docs/ru/03-violations.md +267 -0
- package/docs/ru/04-json-schema-export.md +264 -0
- package/docs/ru/05-public-api.md +123 -0
- package/docs/ru/06-common-recipes.md +273 -0
- package/docs/ru/07-ai-reference.md +215 -0
- package/docs/ru/08-violation-code-types.md +241 -0
- package/docs/ru/README.md +371 -0
- package/drafts/.gitignore +2 -0
- package/logo.png +0 -0
- package/package.json +85 -35
- package/skills/commit-workflow/SKILL.md +93 -0
- package/skills/coverage-recovery/SKILL.md +68 -0
- package/skills/yarn-lock-conflict-resolution/SKILL.md +69 -0
- package/types/index.d.ts +780 -86
- package/types/json-schema.d.ts +75 -0
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Справка для AI
|
|
2
|
+
|
|
3
|
+
[Оглавление документации](./00-index.md)
|
|
4
|
+
[Английская версия](../en/07-ai-reference.md)
|
|
5
|
+
|
|
6
|
+
Эта страница — компактное описание контракта для AI agents, code generators, IDE tools и людей, которым нужен максимально короткий и однозначный набор правил.
|
|
7
|
+
|
|
8
|
+
Её стоит воспринимать как каноническую краткую справку поверх более подробных руководств.
|
|
9
|
+
|
|
10
|
+
## Базовая модель
|
|
11
|
+
|
|
12
|
+
`@modulify/validator` организован вокруг трёх основных слоёв:
|
|
13
|
+
|
|
14
|
+
- predicates: проверки во время выполнения и type guards;
|
|
15
|
+
- assertions: машиночитаемые ошибки leaf-уровня;
|
|
16
|
+
- combinators: структурная композиция assertions и validators.
|
|
17
|
+
|
|
18
|
+
Библиотека не строится вокруг встроенных человекочитаемых сообщений.
|
|
19
|
+
|
|
20
|
+
Violations — это прежде всего структурированные данные.
|
|
21
|
+
|
|
22
|
+
## Канонические точки входа
|
|
23
|
+
|
|
24
|
+
Используйте корневой пакет для:
|
|
25
|
+
|
|
26
|
+
- `validate`
|
|
27
|
+
- `validate.sync`
|
|
28
|
+
- `matches.sync`
|
|
29
|
+
- `meta`
|
|
30
|
+
- `describe`
|
|
31
|
+
- `custom`
|
|
32
|
+
- `collection`
|
|
33
|
+
- built-in assertions
|
|
34
|
+
- combinators
|
|
35
|
+
|
|
36
|
+
Используйте `@modulify/validator/predicates` для самостоятельных проверок в стиле guard.
|
|
37
|
+
|
|
38
|
+
Используйте `@modulify/validator/json-schema` для:
|
|
39
|
+
|
|
40
|
+
- `toJsonSchema(...)`
|
|
41
|
+
- `JsonSchemaExportError`
|
|
42
|
+
|
|
43
|
+
## Контракт результата валидации
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
type ValidationTuple<T> =
|
|
47
|
+
| [ok: true, validated: T, violations: []]
|
|
48
|
+
| [ok: false, validated: unknown, violations: Violation[]]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Важные следствия:
|
|
52
|
+
|
|
53
|
+
- `validate(...)` сужает `validated` в успешной ветке;
|
|
54
|
+
- `validate(...)` не сужает исходную входную переменную;
|
|
55
|
+
- `matches.sync(...)` — это API для сужения исходной переменной;
|
|
56
|
+
- `violations` при успехе всегда пуст.
|
|
57
|
+
|
|
58
|
+
## Семантика wrappers
|
|
59
|
+
|
|
60
|
+
- `optional(x)` принимает `undefined`
|
|
61
|
+
- `nullable(x)` принимает `null`
|
|
62
|
+
- `nullish(x)` принимает `null | undefined`
|
|
63
|
+
|
|
64
|
+
Эти wrappers моделируют допустимые значения во время выполнения, а не формулировки для UI.
|
|
65
|
+
|
|
66
|
+
## Семантика shape
|
|
67
|
+
|
|
68
|
+
`shape(...)` валидирует обычные record-like objects.
|
|
69
|
+
|
|
70
|
+
По умолчанию:
|
|
71
|
+
|
|
72
|
+
- unknown keys разрешены;
|
|
73
|
+
- unknown-key mode равен `'passthrough'`;
|
|
74
|
+
- object-level rules отсутствуют.
|
|
75
|
+
|
|
76
|
+
Переключатели режима:
|
|
77
|
+
|
|
78
|
+
- `.strict()` сохраняет те же поля и rules, но отклоняет unknown keys;
|
|
79
|
+
- `.passthrough()` сохраняет те же поля и rules, но разрешает unknown keys.
|
|
80
|
+
|
|
81
|
+
Структурные derivations:
|
|
82
|
+
|
|
83
|
+
- `.pick(...)`
|
|
84
|
+
- `.omit(...)`
|
|
85
|
+
- `.partial(...)`
|
|
86
|
+
- `.extend(...)`
|
|
87
|
+
- `.merge(...)`
|
|
88
|
+
|
|
89
|
+
Важное правило:
|
|
90
|
+
|
|
91
|
+
- structural derivations намеренно сбрасывают object-level rules;
|
|
92
|
+
- mode switches намеренно сохраняют object-level rules.
|
|
93
|
+
|
|
94
|
+
## Контракт violations
|
|
95
|
+
|
|
96
|
+
Violations — это машиночитаемые объекты с:
|
|
97
|
+
|
|
98
|
+
- значением, на котором произошла ошибка;
|
|
99
|
+
- path;
|
|
100
|
+
- semantic subject в `violates`.
|
|
101
|
+
|
|
102
|
+
Не стройте дальнейшую обработку на разборе текста.
|
|
103
|
+
|
|
104
|
+
Предпочитайте:
|
|
105
|
+
|
|
106
|
+
- `violations`
|
|
107
|
+
- `collection(...)`
|
|
108
|
+
- поиск по path
|
|
109
|
+
|
|
110
|
+
Вместо:
|
|
111
|
+
|
|
112
|
+
- сопоставления строк;
|
|
113
|
+
- разового разбора сообщений;
|
|
114
|
+
- извлечения имён полей из текстов.
|
|
115
|
+
|
|
116
|
+
## Контракт metadata
|
|
117
|
+
|
|
118
|
+
`meta(...)` добавляет непрозрачные машиночитаемые метаданные к любому constraint.
|
|
119
|
+
|
|
120
|
+
`describe(...)` возвращает стабильное рекурсивное дерево descriptors.
|
|
121
|
+
|
|
122
|
+
Custom validators могут участвовать в этом контракте через `describe()`.
|
|
123
|
+
|
|
124
|
+
Без `describe()` custom validator намеренно остаётся непрозрачным и обычно выглядит так:
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
{ kind: 'validator' }
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Контракт JSON Schema
|
|
131
|
+
|
|
132
|
+
`toJsonSchema(...)` — это производный слой для interoperability.
|
|
133
|
+
|
|
134
|
+
Это не источник runtime truth.
|
|
135
|
+
|
|
136
|
+
Best-effort режим:
|
|
137
|
+
|
|
138
|
+
- режим по умолчанию;
|
|
139
|
+
- unsupported nodes превращаются в permissive `{}` schemas;
|
|
140
|
+
- unsupported shape rules могут быть отброшены с `$comment`.
|
|
141
|
+
|
|
142
|
+
Strict режим:
|
|
143
|
+
|
|
144
|
+
- выбрасывает `JsonSchemaExportError`;
|
|
145
|
+
- содержит `descriptor`, `reason` и `path`.
|
|
146
|
+
|
|
147
|
+
Важное несоответствие:
|
|
148
|
+
|
|
149
|
+
- JSON Schema `required` — это лишь приближение runtime semantics вокруг `undefined`;
|
|
150
|
+
- не следует ожидать полного семантического совпадения между runtime validation и экспортированной JSON Schema.
|
|
151
|
+
|
|
152
|
+
## Канонические шаблоны
|
|
153
|
+
|
|
154
|
+
Используйте это, когда нужно валидировать payload:
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
const [ok, validated, violations] = validate.sync(input, schema)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Используйте это, когда нужно сузить исходную переменную:
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
if (matches.sync(value, schema)) {
|
|
164
|
+
// здесь value уже сужено
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Используйте это, когда нужны переиспользуемые object schemas:
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
const schema = shape({...}).strict()
|
|
172
|
+
const partial = schema.partial()
|
|
173
|
+
const subset = schema.pick([...])
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Используйте это, когда другому слою нужна машиночитаемая introspection:
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
const descriptor = describe(schema)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Используйте это, когда внешней системе нужно представление для экспорта:
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
const jsonSchema = toJsonSchema(schema)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Стоит / Не стоит
|
|
189
|
+
|
|
190
|
+
Стоит:
|
|
191
|
+
|
|
192
|
+
- держите leaf constraints маленькими и хорошо сочетаемыми друг с другом;
|
|
193
|
+
- относитесь к `violations` как к данным, а не как к сообщениям;
|
|
194
|
+
- используйте `shape(...)` для переиспользуемых object contracts;
|
|
195
|
+
- добавляйте `describe()` к custom validators, которые должны участвовать в инструментах;
|
|
196
|
+
- используйте strict JSON Schema export только тогда, когда экспорт с потерями неприемлем.
|
|
197
|
+
|
|
198
|
+
Не стоит:
|
|
199
|
+
|
|
200
|
+
- ожидать, что `validate(...)` сузит исходную входную переменную;
|
|
201
|
+
- считать `toJsonSchema(...)` полным зеркалом runtime semantics;
|
|
202
|
+
- считать, что structural derivations shape сохраняют object-level rules;
|
|
203
|
+
- строить инструменты на приватных internals вместо `describe(...)`;
|
|
204
|
+
- строить дальнейшую логику вокруг человекочитаемых строк.
|
|
205
|
+
|
|
206
|
+
## Лучшие источники истины
|
|
207
|
+
|
|
208
|
+
Для деталей реализации и edge cases предпочтителен такой порядок:
|
|
209
|
+
|
|
210
|
+
1. `README.md`
|
|
211
|
+
2. `docs/ru/*.md` или `docs/en/*.md`
|
|
212
|
+
3. `tests/*.test.ts`
|
|
213
|
+
4. `tests/*.test-d.ts`
|
|
214
|
+
|
|
215
|
+
Тесты — самый точный источник поведения там, где проза может оставлять пространство для неверной интерпретации.
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# Типы кодов нарушений
|
|
2
|
+
|
|
3
|
+
[Индекс документации](./00-index.md)
|
|
4
|
+
[English version](../en/08-violation-code-types.md)
|
|
5
|
+
|
|
6
|
+
`@modulify/validator` теперь даёт два связанных слоя для машиночитаемых кодов:
|
|
7
|
+
|
|
8
|
+
- точные literal-коды в assertion descriptors и structured violations;
|
|
9
|
+
- расширяемый глобальный реестр, из которого можно получить project-wide union известных кодов.
|
|
10
|
+
|
|
11
|
+
В этом руководстве разобрано, когда полезен каждый из слоёв, как они сочетаются и как безопасно расширять их в приложении.
|
|
12
|
+
|
|
13
|
+
## Быстрый старт
|
|
14
|
+
|
|
15
|
+
Основные публичные точки входа:
|
|
16
|
+
|
|
17
|
+
- `ViolationCodeEntry` - компактная контрактная запись для известного кода;
|
|
18
|
+
- `ViolationCodeRegistry` - интерфейс-реестр известных кодов;
|
|
19
|
+
- `ViolationCode` - union, извлекаемый из `keyof ViolationCodeRegistry`;
|
|
20
|
+
- `ViolationArgs<C>`, `ViolationKindOf<C>` и `ViolationNameOf<C>` - code-driven utility types.
|
|
21
|
+
|
|
22
|
+
Пакет уже содержит built-in ключи для собственных violations, например:
|
|
23
|
+
|
|
24
|
+
- `'type.string'`
|
|
25
|
+
- `'length.min'`
|
|
26
|
+
- `'shape.unknown-key'`
|
|
27
|
+
- `'runtime.rejection'`
|
|
28
|
+
|
|
29
|
+
Поэтому такой код работает сразу:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import type { ViolationCode } from '@modulify/validator'
|
|
33
|
+
|
|
34
|
+
const code: ViolationCode = 'type.string'
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Точные коды из `describe(...)`
|
|
38
|
+
|
|
39
|
+
Built-in assertions теперь сохраняют точные literal-коды в интроспекции.
|
|
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
|
+
С точки зрения TypeScript это значит:
|
|
53
|
+
|
|
54
|
+
- `stringDescriptor.code` имеет тип `'type.string'`;
|
|
55
|
+
- `stringDescriptor.args` имеет тип `[]`;
|
|
56
|
+
- `lengthDescriptor.code` имеет тип `'length.unsupported-type'`;
|
|
57
|
+
- `lengthDescriptor.constraints[number].code` имеет конкретный union length-кодов вместо обычного `string`.
|
|
58
|
+
|
|
59
|
+
Это удобно для адаптеров и tooling-кода, который читает descriptors и хочет ветвиться по коду без ручных cast.
|
|
60
|
+
|
|
61
|
+
## Зачем нужен глобальный реестр
|
|
62
|
+
|
|
63
|
+
Точные literals на отдельных значениях полезны для локальной интроспекции.
|
|
64
|
+
|
|
65
|
+
Глобальный реестр решает другую задачу: позволяет получить один переиспользуемый union для всего приложения.
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import type { ViolationCode } from '@modulify/validator'
|
|
69
|
+
|
|
70
|
+
type AppViolationCode = ViolationCode
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Такой union удобно использовать в:
|
|
74
|
+
|
|
75
|
+
- словарях сообщений;
|
|
76
|
+
- контрактах аналитики;
|
|
77
|
+
- API envelopes с ошибками;
|
|
78
|
+
- UI-мапперах состояния ошибок;
|
|
79
|
+
- общих helper utilities.
|
|
80
|
+
|
|
81
|
+
## Расширение `ViolationCodeRegistry`
|
|
82
|
+
|
|
83
|
+
Реестр рассчитан на module augmentation и теперь хранит небольшие контрактные записи по коду.
|
|
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
|
+
После этого:
|
|
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
|
+
Так можно один раз объявить project-specific коды и потом использовать извлечённый union во всех остальных слоях.
|
|
107
|
+
|
|
108
|
+
Если в проекте ещё остались старые augmentation-записи с `never`, они по-прежнему будут попадать в `ViolationCode`, но для `kind` / `name` / `args` останется generic fallback, пока вы не переведёте их на `ViolationCodeEntry`.
|
|
109
|
+
|
|
110
|
+
## Производные типы от кода
|
|
111
|
+
|
|
112
|
+
После регистрации кода с контрактной записью он становится ключом к связанным типам.
|
|
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
|
+
То есть:
|
|
129
|
+
|
|
130
|
+
- `PasswordArgs` становится `readonly []`;
|
|
131
|
+
- `PasswordKind` становится `'validator'`;
|
|
132
|
+
- `PasswordName` становится `'shape'`;
|
|
133
|
+
- `PasswordSubject` автоматически получает согласованные `kind`, `name`, `code` и `args`.
|
|
134
|
+
|
|
135
|
+
## Использование расширенных кодов в custom assertions
|
|
136
|
+
|
|
137
|
+
Custom assertions могут хранить свои собственные явные literal-коды.
|
|
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
|
+
Тогда `describe(isAvailableEmail).code` будет иметь тип `'user.email.taken'`.
|
|
153
|
+
|
|
154
|
+
Эта часть не зависит от глобального union. Literal сохраняется прямо из определения assertion.
|
|
155
|
+
|
|
156
|
+
## Использование расширенных кодов в shape refinements
|
|
157
|
+
|
|
158
|
+
Та же идея работает и для 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
|
+
Так код refinement остаётся согласованным с тем же реестром, из которого вы строите общий union.
|
|
188
|
+
|
|
189
|
+
## Практический паттерн для app-level мапперов
|
|
190
|
+
|
|
191
|
+
Часто поверх codes хочется сделать небольшой слой, который отвечает уже за рендеринг или транспорт.
|
|
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
|
+
Необязательно превращать все возможные коды в один огромный исчерпывающий словарь. На практике `Partial<Record<ViolationCode, ...>>` часто самый удобный вариант.
|
|
211
|
+
|
|
212
|
+
## Built-In union и сохранение явных literals
|
|
213
|
+
|
|
214
|
+
Эти два механизма дополняют друг друга:
|
|
215
|
+
|
|
216
|
+
- built-in и augmented коды попадают в переиспользуемый union `ViolationCode`;
|
|
217
|
+
- явные custom literals сохраняются прямо в местах создания значения, например в `assert(...)` или typed refinement issues.
|
|
218
|
+
|
|
219
|
+
Это важное различие.
|
|
220
|
+
|
|
221
|
+
Если вы определили custom literal, но ещё не аугментировали `ViolationCodeRegistry`:
|
|
222
|
+
|
|
223
|
+
- локальные descriptor и violation значения всё равно могут нести точный literal;
|
|
224
|
+
- глобальный union `ViolationCode` пока не будет его содержать.
|
|
225
|
+
|
|
226
|
+
Если вы аугментировали `ViolationCodeRegistry` через `never`, а не через `ViolationCodeEntry`:
|
|
227
|
+
|
|
228
|
+
- код попадёт в глобальный union `ViolationCode`;
|
|
229
|
+
- для него всё ещё будет использоваться generic fallback по `kind`, `name` и `args`.
|
|
230
|
+
|
|
231
|
+
Обычно удобно делать так:
|
|
232
|
+
|
|
233
|
+
1. объявить custom code там, где он создаётся;
|
|
234
|
+
2. добавить его в `ViolationCodeRegistry`;
|
|
235
|
+
3. использовать `ViolationCode` в адаптерах и app-level helper types.
|
|
236
|
+
|
|
237
|
+
## Связанные разделы
|
|
238
|
+
|
|
239
|
+
- [Метаданные и интроспекция](./02-metadata-and-introspection.md)
|
|
240
|
+
- [Нарушения](./03-violations.md)
|
|
241
|
+
- [Публичный API](./05-public-api.md)
|