@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,371 @@
|
|
|
1
|
+
# <img src="../../logo.png" alt="Logo" width="36" /> `@modulify/validator`
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@modulify/validator)
|
|
4
|
+
[](https://codecov.io/gh/modulify/validator)
|
|
5
|
+
[](https://github.com/modulify/validator/actions)
|
|
6
|
+
|
|
7
|
+
[README на английском](../../README.md)
|
|
8
|
+
[Индекс русской документации](./00-index.md)
|
|
9
|
+
|
|
10
|
+
`@modulify/validator` — небольшая TypeScript-библиотека для валидации, построенная вокруг трёх отдельных слоёв:
|
|
11
|
+
|
|
12
|
+
- predicates для проверок во время выполнения и сужения типов;
|
|
13
|
+
- assertions для машиночитаемых результатов валидации с ошибкой;
|
|
14
|
+
- combinators для композиции схем, включая структурную рекурсию по массивам и объектам.
|
|
15
|
+
|
|
16
|
+
Проект сознательно строится вокруг структурированных метаданных, а не вокруг встроенных человекочитаемых сообщений об ошибках.
|
|
17
|
+
|
|
18
|
+
## Что это за проект
|
|
19
|
+
|
|
20
|
+
Эта библиотека рассчитана на случаи, когда вам нужно:
|
|
21
|
+
|
|
22
|
+
- сохранить простые type guards полезными сами по себе;
|
|
23
|
+
- валидировать вложенные данные рекурсивно;
|
|
24
|
+
- получать структурированные violations вместо текстовых сообщений;
|
|
25
|
+
- позже самостоятельно решать, как эти violations показывать или преобразовывать.
|
|
26
|
+
|
|
27
|
+
Типичные результаты слоя валидации можно преобразовать в:
|
|
28
|
+
|
|
29
|
+
- локализованные сообщения об ошибках;
|
|
30
|
+
- состояние ошибок полей формы;
|
|
31
|
+
- API payloads с ошибками;
|
|
32
|
+
- данные для аналитики или отладки;
|
|
33
|
+
- собственный UI или узлы virtual DOM.
|
|
34
|
+
|
|
35
|
+
## Идея
|
|
36
|
+
|
|
37
|
+
Проект разделяет две задачи, которые часто смешиваются в одной абстракции.
|
|
38
|
+
|
|
39
|
+
### Предикаты
|
|
40
|
+
|
|
41
|
+
Predicates — это небольшие проверки во время выполнения, которые одновременно работают как TypeScript type guards.
|
|
42
|
+
|
|
43
|
+
Они отвечают на вопросы вроде:
|
|
44
|
+
|
|
45
|
+
- является ли это значение строкой?
|
|
46
|
+
- является ли это значение объектом с определённой формой?
|
|
47
|
+
- выполняет ли это значение базовое логическое условие?
|
|
48
|
+
|
|
49
|
+
Этот слой должен оставаться простым и полезным сам по себе даже вне контура валидации.
|
|
50
|
+
|
|
51
|
+
### Валидаторы и assertions
|
|
52
|
+
|
|
53
|
+
Assertions — это проверки, которые могут вернуть violation со структурированными метаданными.
|
|
54
|
+
|
|
55
|
+
Вместо генерации текстового сообщения assertion возвращает данные, которые описывают:
|
|
56
|
+
|
|
57
|
+
- что именно сломалось;
|
|
58
|
+
- где это произошло;
|
|
59
|
+
- какой семантический код сработал;
|
|
60
|
+
- какие аргументы или границы были задействованы.
|
|
61
|
+
|
|
62
|
+
Так представление результата остаётся за пределами библиотеки.
|
|
63
|
+
|
|
64
|
+
### Почему это существует рядом с `zod`-подобными библиотеками
|
|
65
|
+
|
|
66
|
+
Библиотеки вроде `zod`, `yup` и других schema-oriented инструментов хорошо известны и отлично решают большой класс задач.
|
|
67
|
+
|
|
68
|
+
Задача этого проекта в другом.
|
|
69
|
+
|
|
70
|
+
Он в первую очередь не пытается быть:
|
|
71
|
+
|
|
72
|
+
- schema-definition DSL;
|
|
73
|
+
- form library со встроенной семантикой сообщений;
|
|
74
|
+
- all-in-one parsing и слой представления.
|
|
75
|
+
|
|
76
|
+
Вместо этого проект фокусируется на:
|
|
77
|
+
|
|
78
|
+
- маленьких predicates для narrowing;
|
|
79
|
+
- отдельном слое assertions для diagnostics;
|
|
80
|
+
- composable schema combinators;
|
|
81
|
+
- machine-readable violations, которые потребитель может преобразовывать как угодно.
|
|
82
|
+
|
|
83
|
+
Короткое описание направления проекта:
|
|
84
|
+
|
|
85
|
+
> Type-safe predicates for narrowing, and validators for machine-readable diagnostics.
|
|
86
|
+
|
|
87
|
+
Или ещё короче:
|
|
88
|
+
|
|
89
|
+
> No messages, only meaning.
|
|
90
|
+
|
|
91
|
+
## Установка
|
|
92
|
+
|
|
93
|
+
Через `yarn`:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
yarn add @modulify/validator
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Через `npm`:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npm install @modulify/validator --save
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Быстрый пример
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
import {
|
|
109
|
+
each,
|
|
110
|
+
shape,
|
|
111
|
+
exact,
|
|
112
|
+
hasLength,
|
|
113
|
+
isDefined,
|
|
114
|
+
isString,
|
|
115
|
+
nullable,
|
|
116
|
+
optional,
|
|
117
|
+
validate,
|
|
118
|
+
} from '@modulify/validator'
|
|
119
|
+
|
|
120
|
+
const [ok, validated, violations] = await validate({
|
|
121
|
+
form: {
|
|
122
|
+
nickname: undefined,
|
|
123
|
+
title: null,
|
|
124
|
+
password: '',
|
|
125
|
+
role: 'admin',
|
|
126
|
+
},
|
|
127
|
+
}, shape({
|
|
128
|
+
form: [
|
|
129
|
+
isDefined,
|
|
130
|
+
shape({
|
|
131
|
+
nickname: optional([isString, hasLength({ min: 4 })]),
|
|
132
|
+
title: nullable(isString),
|
|
133
|
+
password: [isString, hasLength({ min: 6 })],
|
|
134
|
+
role: exact('admin'),
|
|
135
|
+
}),
|
|
136
|
+
],
|
|
137
|
+
}))
|
|
138
|
+
|
|
139
|
+
if (ok) {
|
|
140
|
+
validated.form.nickname.toUpperCase()
|
|
141
|
+
} else {
|
|
142
|
+
console.log(violations)
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Синхронная валидация:
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
const [ok, validated, violations] = validate.sync({
|
|
150
|
+
form: {
|
|
151
|
+
nickname: '',
|
|
152
|
+
password: '',
|
|
153
|
+
},
|
|
154
|
+
}, shape({
|
|
155
|
+
form: [
|
|
156
|
+
isDefined,
|
|
157
|
+
shape({
|
|
158
|
+
nickname: [isString, hasLength({ min: 4 })],
|
|
159
|
+
password: [isString, hasLength({ min: 6 })],
|
|
160
|
+
}),
|
|
161
|
+
],
|
|
162
|
+
}))
|
|
163
|
+
|
|
164
|
+
if (ok) {
|
|
165
|
+
validated.form.password.toUpperCase()
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Сужение исходной переменной в sync-коде:
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
import {
|
|
173
|
+
isDefined,
|
|
174
|
+
isString,
|
|
175
|
+
matches,
|
|
176
|
+
} from '@modulify/validator'
|
|
177
|
+
|
|
178
|
+
const value: unknown = 'nickname'
|
|
179
|
+
|
|
180
|
+
if (matches.sync(value, [isDefined, isString])) {
|
|
181
|
+
value.toUpperCase()
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Сильная типизация успешной ветки прямо из `validate`:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
import {
|
|
189
|
+
shape,
|
|
190
|
+
isDefined,
|
|
191
|
+
isString,
|
|
192
|
+
validate,
|
|
193
|
+
} from '@modulify/validator'
|
|
194
|
+
|
|
195
|
+
const schema = shape({
|
|
196
|
+
name: [isDefined, isString],
|
|
197
|
+
})
|
|
198
|
+
|
|
199
|
+
const [ok, validated, violations] = await validate({ name: 'Kirill' }, schema)
|
|
200
|
+
|
|
201
|
+
if (ok) {
|
|
202
|
+
validated.name.toUpperCase()
|
|
203
|
+
} else {
|
|
204
|
+
console.log(violations)
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## API объектных схем
|
|
209
|
+
|
|
210
|
+
`shape(...)` — это переиспользуемый API объектных схем. Он валидирует вложенные record-like objects и предоставляет небольшой неизменяемый API вроде `strict()`, `pick()`, `omit()`, `partial()`, `extend()`, `merge()`, `refine()` и `fieldsMatch(...)`.
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
import {
|
|
214
|
+
isString,
|
|
215
|
+
optional,
|
|
216
|
+
shape,
|
|
217
|
+
validate,
|
|
218
|
+
} from '@modulify/validator'
|
|
219
|
+
|
|
220
|
+
const profile = shape({
|
|
221
|
+
id: isString,
|
|
222
|
+
nickname: optional(isString),
|
|
223
|
+
})
|
|
224
|
+
|
|
225
|
+
const [ok] = validate.sync({
|
|
226
|
+
id: 'u1',
|
|
227
|
+
nickname: 'neo',
|
|
228
|
+
}, profile)
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Подробные руководства:
|
|
232
|
+
|
|
233
|
+
- [Руководство по API объектных схем](./01-shape-api.md)
|
|
234
|
+
|
|
235
|
+
## Метаданные и интроспекция
|
|
236
|
+
|
|
237
|
+
`meta(...)` добавляет машиночитаемые метаданные к любому constraint, а `describe(...)` возвращает стабильное рекурсивное дерево descriptors для built-in constraints и совместимых custom validators.
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
import {
|
|
241
|
+
describe,
|
|
242
|
+
isString,
|
|
243
|
+
meta,
|
|
244
|
+
optional,
|
|
245
|
+
shape,
|
|
246
|
+
} from '@modulify/validator'
|
|
247
|
+
|
|
248
|
+
const registration = meta(shape({
|
|
249
|
+
email: meta(isString, {
|
|
250
|
+
title: 'Email',
|
|
251
|
+
placeholder: 'name@example.com',
|
|
252
|
+
}),
|
|
253
|
+
nickname: optional(isString),
|
|
254
|
+
}).strict(), {
|
|
255
|
+
title: 'Registration form',
|
|
256
|
+
})
|
|
257
|
+
|
|
258
|
+
const node = describe(registration)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Подробные руководства:
|
|
262
|
+
|
|
263
|
+
- [Руководство по метаданным и интроспекции](./02-metadata-and-introspection.md)
|
|
264
|
+
- [Руководство по типам кодов нарушений](./08-violation-code-types.md)
|
|
265
|
+
|
|
266
|
+
## Ментальная модель
|
|
267
|
+
|
|
268
|
+
Практически про библиотеку удобно думать так:
|
|
269
|
+
|
|
270
|
+
- predicates отвечают: удовлетворяет ли значение условию `X`?
|
|
271
|
+
- assertions отвечают: если нет, то что именно сломалось?
|
|
272
|
+
- combinators отвечают: как объединять constraints в более крупную схему, включая рекурсивный обход объектов и массивов?
|
|
273
|
+
|
|
274
|
+
В текущем API это обычно выглядит так:
|
|
275
|
+
|
|
276
|
+
- leaf checks через assertions вроде `isString`, `isDefined`, `hasLength`, `oneOf`;
|
|
277
|
+
- композиция схем через combinators вроде `exact`, `optional`, `nullable`, `nullish`, `shape(...)`, `each(...)`;
|
|
278
|
+
- типизированная валидация через `validate(...)` или `validate.sync(...)`;
|
|
279
|
+
- narrowing исходной переменной в sync-коде через `matches.sync(...)`.
|
|
280
|
+
|
|
281
|
+
## Нарушения
|
|
282
|
+
|
|
283
|
+
`validate(...)` возвращает машиночитаемый список `Violation[]`, а `collection(...)` может обернуть его в небольшой helper API для точного поиска по path и обхода дерева.
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
import {
|
|
287
|
+
collection,
|
|
288
|
+
isString,
|
|
289
|
+
shape,
|
|
290
|
+
validate,
|
|
291
|
+
} from '@modulify/validator'
|
|
292
|
+
|
|
293
|
+
const [ok, validated, violations] = validate.sync({
|
|
294
|
+
profile: {
|
|
295
|
+
email: '',
|
|
296
|
+
},
|
|
297
|
+
}, shape({
|
|
298
|
+
profile: shape({
|
|
299
|
+
email: isString,
|
|
300
|
+
}),
|
|
301
|
+
}))
|
|
302
|
+
|
|
303
|
+
const errors = collection(violations)
|
|
304
|
+
|
|
305
|
+
const rootErrors = errors.at([])
|
|
306
|
+
const emailErrors = errors.at(['profile', 'email'])
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Подробные руководства:
|
|
310
|
+
|
|
311
|
+
- [Руководство по нарушениям](./03-violations.md)
|
|
312
|
+
- [Руководство по типам кодов нарушений](./08-violation-code-types.md)
|
|
313
|
+
|
|
314
|
+
## Экспорт JSON Schema
|
|
315
|
+
|
|
316
|
+
`toJsonSchema(...)` строит представление JSON Schema поверх того же публичного дерева descriptors, которое возвращает `describe(...)`.
|
|
317
|
+
|
|
318
|
+
```typescript
|
|
319
|
+
import {
|
|
320
|
+
isNumber,
|
|
321
|
+
isString,
|
|
322
|
+
meta,
|
|
323
|
+
optional,
|
|
324
|
+
shape,
|
|
325
|
+
} from '@modulify/validator'
|
|
326
|
+
import { toJsonSchema } from '@modulify/validator/json-schema'
|
|
327
|
+
|
|
328
|
+
const profile = meta(shape({
|
|
329
|
+
email: meta(isString, {
|
|
330
|
+
title: 'Email',
|
|
331
|
+
format: 'email',
|
|
332
|
+
}),
|
|
333
|
+
age: optional(isNumber),
|
|
334
|
+
}).strict(), {
|
|
335
|
+
title: 'Profile',
|
|
336
|
+
})
|
|
337
|
+
|
|
338
|
+
const jsonSchema = toJsonSchema(profile)
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Подробные руководства:
|
|
342
|
+
|
|
343
|
+
- [Руководство по экспорту JSON Schema](./04-json-schema-export.md)
|
|
344
|
+
|
|
345
|
+
## Публичный API
|
|
346
|
+
|
|
347
|
+
Подробное руководство по public API описывает root exports, специализированные subpath exports, validation result tuple и то, как package surface разделён между validation, predicates, violations, metadata и экспортом JSON Schema.
|
|
348
|
+
|
|
349
|
+
Подробные руководства:
|
|
350
|
+
|
|
351
|
+
- [Руководство по публичному API](./05-public-api.md)
|
|
352
|
+
|
|
353
|
+
## Практические рецепты и справка для AI
|
|
354
|
+
|
|
355
|
+
Есть ещё два руководства, которые полезны, когда нужен более быстрый практический вход вместо последовательного чтения всей концептуальной документации.
|
|
356
|
+
|
|
357
|
+
- [Практические рецепты](./06-common-recipes.md) - практические примеры для валидации payload, выбора wrappers, переиспользуемых shape, сопоставления ошибок формы и экспорта JSON Schema.
|
|
358
|
+
- [Справка для AI](./07-ai-reference.md) - компактное описание контракта для agents, инструментов и быстрого поиска семантики библиотеки.
|
|
359
|
+
|
|
360
|
+
## Заметки
|
|
361
|
+
|
|
362
|
+
- Assertions возвращают структурированные метаданные вместо сообщений.
|
|
363
|
+
- Combinators — это тонкие вспомогательные средства для построения схем поверх assertions и validators; `each` и `shape` в этой модели являются structural combinators.
|
|
364
|
+
- Predicates должны оставаться полезными независимо от слоя валидации.
|
|
365
|
+
- Библиотекой проще пользоваться, когда во всём проекте сохраняется один стабильный violation format.
|
|
366
|
+
- `validate(...)` сужает тип `validated` в tuple, а не исходную входную переменную.
|
|
367
|
+
- Чтобы сузить исходную переменную в sync-коде, используйте `matches.sync(...)`.
|
|
368
|
+
|
|
369
|
+
## Переводы
|
|
370
|
+
|
|
371
|
+
- [English](../../README.md)
|
package/logo.png
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,48 +1,102 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modulify/validator",
|
|
3
|
+
"type": "module",
|
|
3
4
|
"description": "Declarative validation util for JavaScript",
|
|
4
5
|
"license": "MIT",
|
|
5
|
-
"version": "0.0
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
"version": "0.2.0",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.mjs",
|
|
11
|
+
"require": "./dist/index.cjs",
|
|
12
|
+
"default": "./dist/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"./assertions": {
|
|
15
|
+
"types": "./dist/assertions.d.ts",
|
|
16
|
+
"import": "./dist/assertions.mjs",
|
|
17
|
+
"require": "./dist/assertions.cjs",
|
|
18
|
+
"default": "./dist/assertions.mjs"
|
|
19
|
+
},
|
|
20
|
+
"./combinators": {
|
|
21
|
+
"types": "./dist/combinators.d.ts",
|
|
22
|
+
"import": "./dist/combinators.mjs",
|
|
23
|
+
"require": "./dist/combinators.cjs",
|
|
24
|
+
"default": "./dist/combinators.mjs"
|
|
25
|
+
},
|
|
26
|
+
"./json-schema": {
|
|
27
|
+
"types": "./dist/json-schema.d.ts",
|
|
28
|
+
"import": "./dist/json-schema.mjs",
|
|
29
|
+
"require": "./dist/json-schema.cjs",
|
|
30
|
+
"default": "./dist/json-schema.mjs"
|
|
31
|
+
},
|
|
32
|
+
"./predicates": {
|
|
33
|
+
"types": "./dist/predicates.d.ts",
|
|
34
|
+
"import": "./dist/predicates.mjs",
|
|
35
|
+
"require": "./dist/predicates.cjs",
|
|
36
|
+
"default": "./dist/predicates.mjs"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"types": "dist/index.d.ts",
|
|
40
|
+
"typesVersions": {
|
|
41
|
+
"*": {
|
|
42
|
+
"assertions": [
|
|
43
|
+
"./dist/assertions.d.ts"
|
|
44
|
+
],
|
|
45
|
+
"combinators": [
|
|
46
|
+
"./dist/combinators.d.ts"
|
|
47
|
+
],
|
|
48
|
+
"json-schema": [
|
|
49
|
+
"./dist/json-schema.d.ts"
|
|
50
|
+
],
|
|
51
|
+
"predicates": [
|
|
52
|
+
"./dist/predicates.d.ts"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
},
|
|
9
56
|
"scripts": {
|
|
10
|
-
"build": "
|
|
11
|
-
"lint": "eslint
|
|
57
|
+
"build": "vite build",
|
|
58
|
+
"lint": "eslint src tests types",
|
|
12
59
|
"prepare": "husky",
|
|
13
|
-
"release": "standard-version",
|
|
14
|
-
"release:minor": "standard-version --release-as minor",
|
|
15
|
-
"release:patch": "standard-version --release-as patch",
|
|
16
|
-
"release:major": "standard-version --release-as major",
|
|
17
|
-
"
|
|
18
|
-
"test
|
|
60
|
+
"release": "npx --yes standard-version",
|
|
61
|
+
"release:minor": "npx --yes standard-version --release-as minor",
|
|
62
|
+
"release:patch": "npx --yes standard-version --release-as patch",
|
|
63
|
+
"release:major": "npx --yes standard-version --release-as major",
|
|
64
|
+
"stats": "gzip -c ./dist/index.mjs | wc -c",
|
|
65
|
+
"test": "vitest run",
|
|
66
|
+
"test:d": "vitest run --typecheck.only",
|
|
67
|
+
"test:coverage": "vitest run --coverage",
|
|
68
|
+
"test:coverage:html": "vitest run --coverage --reporter=html --outputFile.html=./reports/html/report.html",
|
|
69
|
+
"typecheck": "tsc --noEmit"
|
|
19
70
|
},
|
|
20
71
|
"devDependencies": {
|
|
21
|
-
"@commitlint/cli": "^
|
|
22
|
-
"@commitlint/config-conventional": "^
|
|
23
|
-
"@
|
|
24
|
-
"@
|
|
25
|
-
"@
|
|
26
|
-
"@
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"husky": "^9.0.10",
|
|
31
|
-
"jest": "^29.7.0",
|
|
32
|
-
"rollup": "^4.9.6",
|
|
33
|
-
"rollup-plugin-delete": "^2.0.0",
|
|
34
|
-
"standard-version": "^9.5.0",
|
|
35
|
-
"ts-jest": "^29.1.2",
|
|
72
|
+
"@commitlint/cli": "^20.4.3",
|
|
73
|
+
"@commitlint/config-conventional": "^20.4.3",
|
|
74
|
+
"@eslint/js": "^10.0.1",
|
|
75
|
+
"@types/node": "^25.3.5",
|
|
76
|
+
"@vitest/coverage-v8": "4.0.18",
|
|
77
|
+
"@vitest/ui": "4.0.18",
|
|
78
|
+
"eslint": "^10.0.3",
|
|
79
|
+
"globals": "^17.4.0",
|
|
80
|
+
"husky": "^9.1.7",
|
|
36
81
|
"ts-node": "^10.9.2",
|
|
37
|
-
"tslib": "^2.
|
|
38
|
-
"typescript": "^5.
|
|
82
|
+
"tslib": "^2.8.1",
|
|
83
|
+
"typescript": "^5.5.4",
|
|
84
|
+
"typescript-eslint": "^8.56.1",
|
|
85
|
+
"vite": "^7.3.1",
|
|
86
|
+
"vite-plugin-dts": "^4.5.4",
|
|
87
|
+
"vitest": "^4.0.18"
|
|
88
|
+
},
|
|
89
|
+
"resolutions": {
|
|
90
|
+
"minimatch@npm:10.2.1": "npm:10.2.4",
|
|
91
|
+
"minimatch@npm:^9.0.3": "npm:9.0.7"
|
|
39
92
|
},
|
|
40
93
|
"publishConfig": {
|
|
41
94
|
"access": "public"
|
|
42
95
|
},
|
|
43
96
|
"keywords": [
|
|
44
97
|
"validate",
|
|
45
|
-
"validator"
|
|
98
|
+
"validator",
|
|
99
|
+
"ES2017"
|
|
46
100
|
],
|
|
47
101
|
"contributors": [
|
|
48
102
|
"Zaitsev Kirill <zaytsev.cmath10@gmail.com>"
|
|
@@ -52,9 +106,5 @@
|
|
|
52
106
|
"type": "git",
|
|
53
107
|
"url": "https://github.com/modulify/validator.git"
|
|
54
108
|
},
|
|
55
|
-
"
|
|
56
|
-
"hooks": {
|
|
57
|
-
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
109
|
+
"packageManager": "yarn@4.12.0"
|
|
60
110
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit-workflow
|
|
3
|
+
description: Use this skill when creating git commits in this repository. It standardizes commit splitting, Conventional Commit type selection, optional subsystem scopes, changelog-friendly phrasing, and commitlint constraints.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Commit Workflow
|
|
7
|
+
|
|
8
|
+
## When To Use
|
|
9
|
+
Use this skill when the user asks to:
|
|
10
|
+
- create one or more commits;
|
|
11
|
+
- split changes into separate commits;
|
|
12
|
+
- choose commit messages, types, or scopes;
|
|
13
|
+
- validate commit formatting before committing.
|
|
14
|
+
|
|
15
|
+
## Mandatory First Step
|
|
16
|
+
Before creating any commit in this repository, reread this skill from the top and treat it as the current source of truth for commit wording, scopes, splitting, and lockfile policy.
|
|
17
|
+
|
|
18
|
+
## Source Of Truth
|
|
19
|
+
- `AGENTS.md`
|
|
20
|
+
- `.commitlintrc.json`
|
|
21
|
+
|
|
22
|
+
## Required Rules
|
|
23
|
+
- Commit format: Conventional Commits.
|
|
24
|
+
- Message language: English by default.
|
|
25
|
+
- Subject style: describe a completed historical change, not an intention.
|
|
26
|
+
- Start commit subject description with an uppercase letter.
|
|
27
|
+
- Keep commit subject description concise.
|
|
28
|
+
- Put long details into the commit body; lists in body are allowed.
|
|
29
|
+
- Use past/perfective wording; prefer passive voice when it reads naturally for changelogs.
|
|
30
|
+
Examples: `Added ...`, `Removed ...`, `Refactored ...`, `Fixed ...`, `Updated ...`.
|
|
31
|
+
- Allowed types: `feat`, `fix`, `build`, `ci`, `perf`, `docs`, `refactor`, `style`, `test`, `chore`.
|
|
32
|
+
- This repository is a single package, so scope is optional.
|
|
33
|
+
- If scope improves clarity, use a real subsystem scope such as:
|
|
34
|
+
`assertions`, `predicates`, `runners`, `types`, `build`, `tests`.
|
|
35
|
+
- Do not invent synthetic scopes just to imitate release automation.
|
|
36
|
+
- Breaking changes: use `!` in header or a `BREAKING CHANGE` footer.
|
|
37
|
+
- Do not mix unrelated changes in one commit.
|
|
38
|
+
- Always commit `yarn.lock` changes in a dedicated commit with no other files.
|
|
39
|
+
- For a `yarn.lock`-only commit, use the exact header: `chore: Updated yarn.lock`.
|
|
40
|
+
- Do not amend or rewrite history unless explicitly requested.
|
|
41
|
+
|
|
42
|
+
## Commitlint Constraints
|
|
43
|
+
- Header max length: `200`
|
|
44
|
+
- Body line max length: `200`
|
|
45
|
+
- Footer line max length: `200`
|
|
46
|
+
- `subject-case: never`
|
|
47
|
+
|
|
48
|
+
## Workflow
|
|
49
|
+
1. Inspect pending changes:
|
|
50
|
+
```bash
|
|
51
|
+
git status --short
|
|
52
|
+
git diff
|
|
53
|
+
```
|
|
54
|
+
2. Group files by logical intent.
|
|
55
|
+
Keep code, docs, lockfile, and generated artifacts separated when they represent different changes.
|
|
56
|
+
3. If `yarn.lock` changed, split it into a dedicated commit.
|
|
57
|
+
4. Choose commit type and optional scope.
|
|
58
|
+
5. Compose the header:
|
|
59
|
+
```text
|
|
60
|
+
<type>(<scope>): <Short description>
|
|
61
|
+
```
|
|
62
|
+
If scope is not useful, omit it:
|
|
63
|
+
```text
|
|
64
|
+
<type>: <Short description>
|
|
65
|
+
```
|
|
66
|
+
6. Stage only the target files:
|
|
67
|
+
```bash
|
|
68
|
+
git add <files>
|
|
69
|
+
```
|
|
70
|
+
7. Create the commit non-interactively:
|
|
71
|
+
```bash
|
|
72
|
+
git commit -m "<type>(<scope>): <Description>"
|
|
73
|
+
```
|
|
74
|
+
8. Verify the result:
|
|
75
|
+
```bash
|
|
76
|
+
git show --name-status --oneline -n 1
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Practical Patterns
|
|
80
|
+
- Public API redesign:
|
|
81
|
+
`feat!: Assertion API was redesigned around structured violations`
|
|
82
|
+
- Assertion internals cleanup:
|
|
83
|
+
`refactor(assertions): Assertion helpers were simplified`
|
|
84
|
+
- Type-only adjustment:
|
|
85
|
+
`refactor(types): Public assertion types were updated`
|
|
86
|
+
- Test coverage update:
|
|
87
|
+
`test: Assertion coverage was expanded`
|
|
88
|
+
- Build/config change:
|
|
89
|
+
`build: Vite entrypoints were updated`
|
|
90
|
+
- Documentation update:
|
|
91
|
+
`docs: README was updated`
|
|
92
|
+
- Lockfile refresh:
|
|
93
|
+
`chore: Updated yarn.lock`
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coverage-recovery
|
|
3
|
+
description: Use this skill when coverage is below target or when uncovered validator, predicate, runner, or build-related paths must be analyzed and resolved with minimal artificial tests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Coverage Recovery
|
|
7
|
+
|
|
8
|
+
## When To Use
|
|
9
|
+
Use this skill when the user asks to:
|
|
10
|
+
- increase test coverage;
|
|
11
|
+
- analyze uncovered lines or branches;
|
|
12
|
+
- explain why specific uncovered paths remain;
|
|
13
|
+
- improve confidence around assertions, predicates, runners, or validation edge cases.
|
|
14
|
+
|
|
15
|
+
## Source Of Truth
|
|
16
|
+
- `AGENTS.md`
|
|
17
|
+
- `vitest.config.ts`
|
|
18
|
+
- `package.json`
|
|
19
|
+
- `coverage/` HTML reports
|
|
20
|
+
|
|
21
|
+
## Principles
|
|
22
|
+
- Coverage is a quality signal, not a vanity metric.
|
|
23
|
+
- Start from real public API behavior.
|
|
24
|
+
- Prefer fixing architecture or removing dead code over adding synthetic tests for impossible paths.
|
|
25
|
+
- Defensive branches should be tested with controlled failure scenarios.
|
|
26
|
+
- Keep type-level and runtime behavior aligned; run `yarn typecheck` together with coverage work when typings are touched.
|
|
27
|
+
|
|
28
|
+
## Workflow
|
|
29
|
+
1. Collect facts:
|
|
30
|
+
```bash
|
|
31
|
+
yarn test:coverage
|
|
32
|
+
```
|
|
33
|
+
2. Read uncovered details, not only percentages.
|
|
34
|
+
Use:
|
|
35
|
+
- `coverage/index.html`
|
|
36
|
+
- `coverage/lcov-report/index.html` if present
|
|
37
|
+
3. Classify uncovered paths:
|
|
38
|
+
- `real usage gap` - missed public scenario,
|
|
39
|
+
- `defensive path` - malformed input or runtime failure,
|
|
40
|
+
- `dead/redundant path` - likely removable,
|
|
41
|
+
- `architecture smell` - design makes real testing awkward.
|
|
42
|
+
4. Resolve in this order:
|
|
43
|
+
- add or adjust tests for real public API scenarios,
|
|
44
|
+
- add controlled break/failure tests for defensive branches,
|
|
45
|
+
- simplify or remove dead branches,
|
|
46
|
+
- propose architecture refactor for smell cases.
|
|
47
|
+
5. Re-run checks:
|
|
48
|
+
```bash
|
|
49
|
+
yarn lint
|
|
50
|
+
yarn typecheck
|
|
51
|
+
yarn test:coverage
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Controlled Failure Patterns
|
|
55
|
+
- Invalid values passed into assertions or runners.
|
|
56
|
+
- Rejected async assertions.
|
|
57
|
+
- Unsupported object/array shapes for recursive validators.
|
|
58
|
+
- Type guard mismatches between runtime checks and declared narrowing.
|
|
59
|
+
- Export or build-path regressions surfaced only after refactors.
|
|
60
|
+
|
|
61
|
+
## Stop Condition
|
|
62
|
+
If progress stalls after reasonable attempts:
|
|
63
|
+
1. Stop brute-force test additions.
|
|
64
|
+
2. Report exact uncovered locations and why they are hard or non-natural.
|
|
65
|
+
3. Offer concrete options:
|
|
66
|
+
- accept remaining defensive uncovered paths,
|
|
67
|
+
- refactor the implementation to make behavior testable,
|
|
68
|
+
- remove redundant branches if behavior is impossible by construction.
|