@modulify/validator 0.2.0 → 0.3.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/CHANGELOG.md +29 -1
- package/README.md +12 -2
- package/dist/assert-BDOtHdLx.cjs +289 -0
- package/dist/assert-CzMg5aO7.mjs +206 -0
- package/dist/assert.cjs +7 -65
- package/dist/assert.d.cts +37 -0
- package/dist/assert.d.mts +37 -0
- package/dist/assert.d.ts +24 -3
- package/dist/assert.mjs +2 -66
- package/dist/assertions-DPYCHREw.mjs +297 -0
- package/dist/assertions-nfOKqcjs.cjs +476 -0
- package/dist/assertions.cjs +34 -206
- package/dist/assertions.d.cts +56 -0
- package/dist/assertions.d.mts +56 -0
- package/dist/assertions.d.ts +43 -45
- package/dist/assertions.mjs +3 -207
- package/dist/checkers.d.cts +8 -0
- package/dist/checkers.d.mts +8 -0
- package/dist/checkers.d.ts +1 -1
- package/dist/combinators.cjs +303 -304
- package/dist/combinators.d.cts +16 -0
- package/dist/combinators.d.mts +16 -0
- package/dist/combinators.d.ts +15 -16
- package/dist/combinators.mjs +304 -315
- package/dist/constraints.d.cts +4 -0
- package/dist/constraints.d.mts +4 -0
- package/dist/constraints.d.ts +2 -2
- package/dist/extractors.d.cts +2 -0
- package/dist/extractors.d.mts +2 -0
- package/dist/index.cjs +210 -213
- package/dist/index.d.cts +12 -0
- package/dist/index.d.mts +12 -0
- package/dist/index.d.ts +9 -9
- package/dist/index.mjs +165 -218
- package/dist/json-schema.cjs +364 -489
- package/dist/json-schema.d.cts +14 -0
- package/dist/json-schema.d.mts +14 -0
- package/dist/json-schema.d.ts +3 -3
- package/dist/json-schema.mjs +365 -492
- package/dist/metadata.cjs +6 -7
- package/dist/metadata.d.cts +8 -0
- package/dist/metadata.d.mts +8 -0
- package/dist/metadata.d.ts +2 -2
- package/dist/metadata.mjs +2 -8
- package/dist/predicates.cjs +98 -41
- package/dist/predicates.d.cts +77 -0
- package/dist/predicates.d.mts +77 -0
- package/dist/predicates.d.ts +25 -4
- package/dist/predicates.mjs +92 -66
- package/dist/types/index.d.cts +984 -0
- package/dist/types/index.d.mts +984 -0
- package/dist/types/index.d.ts +984 -0
- package/dist/types/json-schema.d.cts +75 -0
- package/dist/types/json-schema.d.mts +75 -0
- package/dist/types/json-schema.d.ts +75 -0
- package/dist/violations.d.cts +29 -0
- package/dist/violations.d.mts +29 -0
- package/dist/violations.d.ts +1 -1
- package/docs/RELEASING.md +66 -0
- package/docs/en/00-index.md +2 -0
- package/docs/en/01-shape-api.md +35 -10
- package/docs/en/02-metadata-and-introspection.md +2 -1
- package/docs/en/03-violations.md +1 -1
- package/docs/en/04-json-schema-export.md +5 -0
- package/docs/en/05-public-api.md +35 -3
- package/docs/en/06-common-recipes.md +2 -1
- package/docs/en/07-ai-reference.md +5 -2
- package/docs/en/08-violation-code-types.md +28 -2
- package/docs/en/09-migration.md +75 -0
- package/docs/ru/00-index.md +2 -0
- package/docs/ru/01-shape-api.md +35 -10
- package/docs/ru/02-metadata-and-introspection.md +2 -1
- package/docs/ru/03-violations.md +1 -1
- package/docs/ru/04-json-schema-export.md +5 -0
- package/docs/ru/05-public-api.md +35 -3
- package/docs/ru/06-common-recipes.md +2 -1
- package/docs/ru/07-ai-reference.md +5 -2
- package/docs/ru/08-violation-code-types.md +28 -2
- package/docs/ru/09-migration.md +76 -0
- package/docs/ru/README.md +10 -2
- package/package.json +71 -37
- package/types/index.d.ts +275 -115
- 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 +0 -942
- package/.yarnrc.yml +0 -5
- package/AGENTS.md +0 -82
- package/CODE_OF_CONDUCT.md +0 -128
- package/dist/metadata.cjs.js +0 -130
- package/dist/metadata.es.js +0 -131
- package/docker/services/node/Dockerfile +0 -9
- package/drafts/.gitignore +0 -2
- package/skills/commit-workflow/SKILL.md +0 -93
- package/skills/coverage-recovery/SKILL.md +0 -68
- package/skills/yarn-lock-conflict-resolution/SKILL.md +0 -69
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Constraint,
|
|
3
|
+
ConstraintDescriptor,
|
|
4
|
+
MaybeMany,
|
|
5
|
+
} from './index.cjs'
|
|
6
|
+
|
|
7
|
+
/** JSON Schema primitive `type` values used by `toJsonSchema(...)`. */
|
|
8
|
+
export type JsonSchemaTypeName =
|
|
9
|
+
| 'string'
|
|
10
|
+
| 'number'
|
|
11
|
+
| 'integer'
|
|
12
|
+
| 'boolean'
|
|
13
|
+
| 'object'
|
|
14
|
+
| 'array'
|
|
15
|
+
| 'null'
|
|
16
|
+
|
|
17
|
+
/** Minimal JSON Schema object shape emitted by the built-in exporter. */
|
|
18
|
+
export interface JsonSchema {
|
|
19
|
+
readonly $schema?: string;
|
|
20
|
+
readonly $id?: string;
|
|
21
|
+
readonly $comment?: string;
|
|
22
|
+
readonly title?: string;
|
|
23
|
+
readonly description?: string;
|
|
24
|
+
readonly format?: string;
|
|
25
|
+
readonly default?: unknown;
|
|
26
|
+
readonly examples?: readonly unknown[];
|
|
27
|
+
readonly deprecated?: boolean;
|
|
28
|
+
readonly readOnly?: boolean;
|
|
29
|
+
readonly writeOnly?: boolean;
|
|
30
|
+
readonly type?: JsonSchemaTypeName | readonly JsonSchemaTypeName[];
|
|
31
|
+
readonly const?: unknown;
|
|
32
|
+
readonly enum?: readonly unknown[];
|
|
33
|
+
readonly allOf?: readonly JsonSchema[];
|
|
34
|
+
readonly anyOf?: readonly JsonSchema[];
|
|
35
|
+
readonly oneOf?: readonly JsonSchema[];
|
|
36
|
+
readonly properties?: Readonly<Record<string, JsonSchema>>;
|
|
37
|
+
readonly required?: readonly string[];
|
|
38
|
+
readonly additionalProperties?: boolean | JsonSchema;
|
|
39
|
+
readonly items?: JsonSchema;
|
|
40
|
+
readonly prefixItems?: readonly JsonSchema[];
|
|
41
|
+
readonly minItems?: number;
|
|
42
|
+
readonly maxItems?: number;
|
|
43
|
+
readonly minLength?: number;
|
|
44
|
+
readonly maxLength?: number;
|
|
45
|
+
readonly pattern?: string;
|
|
46
|
+
readonly minimum?: number;
|
|
47
|
+
readonly maximum?: number;
|
|
48
|
+
readonly multipleOf?: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Controls how `toJsonSchema(...)` handles constraints that cannot be represented faithfully. */
|
|
52
|
+
export type JsonSchemaExportMode = 'bestEffort' | 'strict'
|
|
53
|
+
|
|
54
|
+
/** Options for the JSON Schema exporter. */
|
|
55
|
+
export interface ToJsonSchemaOptions {
|
|
56
|
+
readonly mode?: JsonSchemaExportMode
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Error thrown by `toJsonSchema(...)` in strict mode when a node cannot be exported faithfully. */
|
|
60
|
+
export declare class JsonSchemaExportError extends Error {
|
|
61
|
+
constructor(message: string, options: {
|
|
62
|
+
descriptor: ConstraintDescriptor
|
|
63
|
+
reason: string
|
|
64
|
+
path?: readonly PropertyKey[]
|
|
65
|
+
})
|
|
66
|
+
readonly descriptor: ConstraintDescriptor
|
|
67
|
+
readonly reason: string
|
|
68
|
+
readonly path: readonly PropertyKey[]
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Derives a JSON Schema object from one or many public constraint descriptors. */
|
|
72
|
+
export declare const toJsonSchema: <const C extends MaybeMany<Constraint>>(
|
|
73
|
+
constraints: C,
|
|
74
|
+
options?: ToJsonSchemaOptions
|
|
75
|
+
) => JsonSchema
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Constraint,
|
|
3
|
+
ConstraintDescriptor,
|
|
4
|
+
MaybeMany,
|
|
5
|
+
} from './index.mjs'
|
|
6
|
+
|
|
7
|
+
/** JSON Schema primitive `type` values used by `toJsonSchema(...)`. */
|
|
8
|
+
export type JsonSchemaTypeName =
|
|
9
|
+
| 'string'
|
|
10
|
+
| 'number'
|
|
11
|
+
| 'integer'
|
|
12
|
+
| 'boolean'
|
|
13
|
+
| 'object'
|
|
14
|
+
| 'array'
|
|
15
|
+
| 'null'
|
|
16
|
+
|
|
17
|
+
/** Minimal JSON Schema object shape emitted by the built-in exporter. */
|
|
18
|
+
export interface JsonSchema {
|
|
19
|
+
readonly $schema?: string;
|
|
20
|
+
readonly $id?: string;
|
|
21
|
+
readonly $comment?: string;
|
|
22
|
+
readonly title?: string;
|
|
23
|
+
readonly description?: string;
|
|
24
|
+
readonly format?: string;
|
|
25
|
+
readonly default?: unknown;
|
|
26
|
+
readonly examples?: readonly unknown[];
|
|
27
|
+
readonly deprecated?: boolean;
|
|
28
|
+
readonly readOnly?: boolean;
|
|
29
|
+
readonly writeOnly?: boolean;
|
|
30
|
+
readonly type?: JsonSchemaTypeName | readonly JsonSchemaTypeName[];
|
|
31
|
+
readonly const?: unknown;
|
|
32
|
+
readonly enum?: readonly unknown[];
|
|
33
|
+
readonly allOf?: readonly JsonSchema[];
|
|
34
|
+
readonly anyOf?: readonly JsonSchema[];
|
|
35
|
+
readonly oneOf?: readonly JsonSchema[];
|
|
36
|
+
readonly properties?: Readonly<Record<string, JsonSchema>>;
|
|
37
|
+
readonly required?: readonly string[];
|
|
38
|
+
readonly additionalProperties?: boolean | JsonSchema;
|
|
39
|
+
readonly items?: JsonSchema;
|
|
40
|
+
readonly prefixItems?: readonly JsonSchema[];
|
|
41
|
+
readonly minItems?: number;
|
|
42
|
+
readonly maxItems?: number;
|
|
43
|
+
readonly minLength?: number;
|
|
44
|
+
readonly maxLength?: number;
|
|
45
|
+
readonly pattern?: string;
|
|
46
|
+
readonly minimum?: number;
|
|
47
|
+
readonly maximum?: number;
|
|
48
|
+
readonly multipleOf?: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Controls how `toJsonSchema(...)` handles constraints that cannot be represented faithfully. */
|
|
52
|
+
export type JsonSchemaExportMode = 'bestEffort' | 'strict'
|
|
53
|
+
|
|
54
|
+
/** Options for the JSON Schema exporter. */
|
|
55
|
+
export interface ToJsonSchemaOptions {
|
|
56
|
+
readonly mode?: JsonSchemaExportMode
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Error thrown by `toJsonSchema(...)` in strict mode when a node cannot be exported faithfully. */
|
|
60
|
+
export declare class JsonSchemaExportError extends Error {
|
|
61
|
+
constructor(message: string, options: {
|
|
62
|
+
descriptor: ConstraintDescriptor
|
|
63
|
+
reason: string
|
|
64
|
+
path?: readonly PropertyKey[]
|
|
65
|
+
})
|
|
66
|
+
readonly descriptor: ConstraintDescriptor
|
|
67
|
+
readonly reason: string
|
|
68
|
+
readonly path: readonly PropertyKey[]
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Derives a JSON Schema object from one or many public constraint descriptors. */
|
|
72
|
+
export declare const toJsonSchema: <const C extends MaybeMany<Constraint>>(
|
|
73
|
+
constraints: C,
|
|
74
|
+
options?: ToJsonSchemaOptions
|
|
75
|
+
) => JsonSchema
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Constraint,
|
|
3
|
+
ConstraintDescriptor,
|
|
4
|
+
MaybeMany,
|
|
5
|
+
} from './index.js'
|
|
6
|
+
|
|
7
|
+
/** JSON Schema primitive `type` values used by `toJsonSchema(...)`. */
|
|
8
|
+
export type JsonSchemaTypeName =
|
|
9
|
+
| 'string'
|
|
10
|
+
| 'number'
|
|
11
|
+
| 'integer'
|
|
12
|
+
| 'boolean'
|
|
13
|
+
| 'object'
|
|
14
|
+
| 'array'
|
|
15
|
+
| 'null'
|
|
16
|
+
|
|
17
|
+
/** Minimal JSON Schema object shape emitted by the built-in exporter. */
|
|
18
|
+
export interface JsonSchema {
|
|
19
|
+
readonly $schema?: string;
|
|
20
|
+
readonly $id?: string;
|
|
21
|
+
readonly $comment?: string;
|
|
22
|
+
readonly title?: string;
|
|
23
|
+
readonly description?: string;
|
|
24
|
+
readonly format?: string;
|
|
25
|
+
readonly default?: unknown;
|
|
26
|
+
readonly examples?: readonly unknown[];
|
|
27
|
+
readonly deprecated?: boolean;
|
|
28
|
+
readonly readOnly?: boolean;
|
|
29
|
+
readonly writeOnly?: boolean;
|
|
30
|
+
readonly type?: JsonSchemaTypeName | readonly JsonSchemaTypeName[];
|
|
31
|
+
readonly const?: unknown;
|
|
32
|
+
readonly enum?: readonly unknown[];
|
|
33
|
+
readonly allOf?: readonly JsonSchema[];
|
|
34
|
+
readonly anyOf?: readonly JsonSchema[];
|
|
35
|
+
readonly oneOf?: readonly JsonSchema[];
|
|
36
|
+
readonly properties?: Readonly<Record<string, JsonSchema>>;
|
|
37
|
+
readonly required?: readonly string[];
|
|
38
|
+
readonly additionalProperties?: boolean | JsonSchema;
|
|
39
|
+
readonly items?: JsonSchema;
|
|
40
|
+
readonly prefixItems?: readonly JsonSchema[];
|
|
41
|
+
readonly minItems?: number;
|
|
42
|
+
readonly maxItems?: number;
|
|
43
|
+
readonly minLength?: number;
|
|
44
|
+
readonly maxLength?: number;
|
|
45
|
+
readonly pattern?: string;
|
|
46
|
+
readonly minimum?: number;
|
|
47
|
+
readonly maximum?: number;
|
|
48
|
+
readonly multipleOf?: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Controls how `toJsonSchema(...)` handles constraints that cannot be represented faithfully. */
|
|
52
|
+
export type JsonSchemaExportMode = 'bestEffort' | 'strict'
|
|
53
|
+
|
|
54
|
+
/** Options for the JSON Schema exporter. */
|
|
55
|
+
export interface ToJsonSchemaOptions {
|
|
56
|
+
readonly mode?: JsonSchemaExportMode
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Error thrown by `toJsonSchema(...)` in strict mode when a node cannot be exported faithfully. */
|
|
60
|
+
export declare class JsonSchemaExportError extends Error {
|
|
61
|
+
constructor(message: string, options: {
|
|
62
|
+
descriptor: ConstraintDescriptor
|
|
63
|
+
reason: string
|
|
64
|
+
path?: readonly PropertyKey[]
|
|
65
|
+
})
|
|
66
|
+
readonly descriptor: ConstraintDescriptor
|
|
67
|
+
readonly reason: string
|
|
68
|
+
readonly path: readonly PropertyKey[]
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Derives a JSON Schema object from one or many public constraint descriptors. */
|
|
72
|
+
export declare const toJsonSchema: <const C extends MaybeMany<Constraint>>(
|
|
73
|
+
constraints: C,
|
|
74
|
+
options?: ToJsonSchemaOptions
|
|
75
|
+
) => JsonSchema
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Violation } from './types/index.cjs';
|
|
2
|
+
type ViolationPath = readonly PropertyKey[];
|
|
3
|
+
type ViolationTreeState<V extends Violation = Violation> = {
|
|
4
|
+
readonly path: ViolationPath;
|
|
5
|
+
readonly self: V[];
|
|
6
|
+
readonly subtree: V[];
|
|
7
|
+
readonly children: Map<PropertyKey, ViolationTreeState<V>>;
|
|
8
|
+
};
|
|
9
|
+
declare class TreeNode<V extends Violation = Violation> {
|
|
10
|
+
readonly path: readonly PropertyKey[];
|
|
11
|
+
readonly self: ViolationCollection<V>;
|
|
12
|
+
readonly subtree: ViolationCollection<V>;
|
|
13
|
+
readonly children: ReadonlyMap<PropertyKey, TreeNode<V>>;
|
|
14
|
+
constructor(state: ViolationTreeState<V>);
|
|
15
|
+
at(path: readonly PropertyKey[]): TreeNode<V> | undefined;
|
|
16
|
+
}
|
|
17
|
+
export declare class ViolationCollection<V extends Violation = Violation> implements Iterable<V> {
|
|
18
|
+
readonly size: number;
|
|
19
|
+
private readonly violations;
|
|
20
|
+
constructor(violations: readonly V[]);
|
|
21
|
+
[Symbol.iterator](): Iterator<V>;
|
|
22
|
+
forEach(callback: (violation: V, index: number, collection: ViolationCollection<V>) => void): void;
|
|
23
|
+
map<T>(callback: (violation: V, index: number, collection: ViolationCollection<V>) => T): T[];
|
|
24
|
+
at(path: readonly PropertyKey[]): ViolationCollection<V>;
|
|
25
|
+
tree(): TreeNode<V>;
|
|
26
|
+
}
|
|
27
|
+
export type ViolationTreeNode<V extends Violation = Violation> = TreeNode<V>;
|
|
28
|
+
export declare const collection: <V extends Violation>(violations: readonly V[]) => ViolationCollection<V>;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Violation } from './types/index.mjs';
|
|
2
|
+
type ViolationPath = readonly PropertyKey[];
|
|
3
|
+
type ViolationTreeState<V extends Violation = Violation> = {
|
|
4
|
+
readonly path: ViolationPath;
|
|
5
|
+
readonly self: V[];
|
|
6
|
+
readonly subtree: V[];
|
|
7
|
+
readonly children: Map<PropertyKey, ViolationTreeState<V>>;
|
|
8
|
+
};
|
|
9
|
+
declare class TreeNode<V extends Violation = Violation> {
|
|
10
|
+
readonly path: readonly PropertyKey[];
|
|
11
|
+
readonly self: ViolationCollection<V>;
|
|
12
|
+
readonly subtree: ViolationCollection<V>;
|
|
13
|
+
readonly children: ReadonlyMap<PropertyKey, TreeNode<V>>;
|
|
14
|
+
constructor(state: ViolationTreeState<V>);
|
|
15
|
+
at(path: readonly PropertyKey[]): TreeNode<V> | undefined;
|
|
16
|
+
}
|
|
17
|
+
export declare class ViolationCollection<V extends Violation = Violation> implements Iterable<V> {
|
|
18
|
+
readonly size: number;
|
|
19
|
+
private readonly violations;
|
|
20
|
+
constructor(violations: readonly V[]);
|
|
21
|
+
[Symbol.iterator](): Iterator<V>;
|
|
22
|
+
forEach(callback: (violation: V, index: number, collection: ViolationCollection<V>) => void): void;
|
|
23
|
+
map<T>(callback: (violation: V, index: number, collection: ViolationCollection<V>) => T): T[];
|
|
24
|
+
at(path: readonly PropertyKey[]): ViolationCollection<V>;
|
|
25
|
+
tree(): TreeNode<V>;
|
|
26
|
+
}
|
|
27
|
+
export type ViolationTreeNode<V extends Violation = Violation> = TreeNode<V>;
|
|
28
|
+
export declare const collection: <V extends Violation>(violations: readonly V[]) => ViolationCollection<V>;
|
|
29
|
+
export {};
|
package/dist/violations.d.ts
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Releasing @modulify/validator
|
|
2
|
+
|
|
3
|
+
Use Node.js 22.14+ or 24+ and the Yarn version pinned in `package.json`.
|
|
4
|
+
Install dependencies with `yarn install --immutable`.
|
|
5
|
+
|
|
6
|
+
The repository uses `@modulify/conventional-release` to calculate the version,
|
|
7
|
+
update `package.json` and `CHANGELOG.md`, and create a release commit with an
|
|
8
|
+
annotated `v<version>` tag. npm publication and GitHub Releases belong to CI.
|
|
9
|
+
|
|
10
|
+
Preview a release without changing files, commits, or tags:
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
yarn release:dry
|
|
14
|
+
yarn release:dry --prerelease rc
|
|
15
|
+
yarn release:dry --release-as minor
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Automatic version recommendations below 1.0 follow pre-major semantics:
|
|
19
|
+
breaking changes advance the minor version; features and fixes advance the patch.
|
|
20
|
+
Explicit `--release-as major` produces 1.0.0. Release configuration lives in
|
|
21
|
+
`release.config.mjs`; dependencies are installed before releasing, so the version
|
|
22
|
+
bump does not rerun installation or update the lockfile.
|
|
23
|
+
|
|
24
|
+
## GitHub Actions
|
|
25
|
+
|
|
26
|
+
Start the `Release` workflow manually:
|
|
27
|
+
|
|
28
|
+
- `release`: `auto`, `patch`, `minor`, or `major`;
|
|
29
|
+
- `prerelease`: `none`, `alpha`, `beta`, or `rc`;
|
|
30
|
+
- `npm_tag`: `auto` selects `latest` for stable releases and the prerelease channel
|
|
31
|
+
otherwise; an explicit dist-tag can override it.
|
|
32
|
+
|
|
33
|
+
Stable releases run only from `main`. Prereleases may run from other branches,
|
|
34
|
+
but cannot publish to `latest`. Releases are serialized across branches.
|
|
35
|
+
|
|
36
|
+
CI runs lint, strict type checks, runtime and type tests, and packed consumer
|
|
37
|
+
checks before creating the release. It atomically pushes the release commit and
|
|
38
|
+
its tag. A separate job checks out that exact tag, repeats the checks, builds the
|
|
39
|
+
package, and publishes through npm OIDC. A GitHub Release is created after npm
|
|
40
|
+
publication succeeds; prereleases are marked accordingly.
|
|
41
|
+
|
|
42
|
+
If publication or GitHub Release creation fails after the tag was pushed, use
|
|
43
|
+
GitHub Actions **Re-run failed jobs** on the original run. Publication checks the
|
|
44
|
+
registry for the exact version and skips a version already published. Registry
|
|
45
|
+
lookup errors stop the job. Starting a new workflow run prepares another release.
|
|
46
|
+
|
|
47
|
+
## npm Trusted Publisher
|
|
48
|
+
|
|
49
|
+
The package already has this trusted publisher configured (verified 2026-09-26):
|
|
50
|
+
|
|
51
|
+
| Field | Value |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| Provider | GitHub Actions |
|
|
54
|
+
| Organization | `modulify` |
|
|
55
|
+
| Repository | `validator` |
|
|
56
|
+
| Workflow filename | `release.yml` |
|
|
57
|
+
| Allowed actions | `npm publish`, `npm stage publish` |
|
|
58
|
+
|
|
59
|
+
Keep the workflow filename aligned with this package-level configuration.
|
|
60
|
+
The publishing job uses a GitHub-hosted runner, Node.js 24, npm 11.5.1 or newer,
|
|
61
|
+
and `id-token: write`. No `NPM_TOKEN` or `NODE_AUTH_TOKEN` secret is used for
|
|
62
|
+
publication. npm generates provenance automatically for this public package
|
|
63
|
+
and repository. See [npm Trusted Publishing](https://docs.npmjs.com/trusted-publishers/).
|
|
64
|
+
|
|
65
|
+
A local authenticated npm session is separate from CI OIDC. Release previews
|
|
66
|
+
and repository-local versioning do not require npm authentication.
|
package/docs/en/00-index.md
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
- [AI Reference](./07-ai-reference.md) - Compact contract summary for AI agents, tooling, and quick lookup of stable library semantics.
|
|
10
10
|
- [Violation Code Types](./08-violation-code-types.md) - Detailed guide to `ViolationCodeRegistry`, `ViolationCode`, literal code preservation in descriptors, and external registry augmentation.
|
|
11
11
|
|
|
12
|
+
- [Migration From 0.2.1](./09-migration.md) - Breaking changes, renamed types, and updated validation contracts.
|
|
13
|
+
|
|
12
14
|
## Translations
|
|
13
15
|
|
|
14
16
|
- [Russian](../ru/00-index.md)
|
package/docs/en/01-shape-api.md
CHANGED
|
@@ -49,6 +49,8 @@ Each field in the descriptor may contain:
|
|
|
49
49
|
- an array of constraints that run sequentially;
|
|
50
50
|
- another structural validator such as `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`, `union(...)`, or `discriminatedUnion(...)`.
|
|
51
51
|
|
|
52
|
+
For assertion arrays, sequencing is stage-aware: guard assertions establish the field domain first, and refinement assertions must be compatible with that domain.
|
|
53
|
+
|
|
52
54
|
That means object validation stays aligned with the rest of the library:
|
|
53
55
|
|
|
54
56
|
- field-level checks reuse the same assertions and combinators;
|
|
@@ -79,6 +81,11 @@ Runtime behavior:
|
|
|
79
81
|
- nested violations are reported on the field path;
|
|
80
82
|
- unknown keys are allowed by default.
|
|
81
83
|
|
|
84
|
+
Type-level behavior:
|
|
85
|
+
|
|
86
|
+
- `[isString, hasLength({ min: 8 })]` is valid;
|
|
87
|
+
- `[isNumber, hasLength({ min: 8 })]` is rejected by TypeScript before runtime.
|
|
88
|
+
|
|
82
89
|
## Unknown Keys
|
|
83
90
|
|
|
84
91
|
Shapes have two unknown-key modes:
|
|
@@ -190,13 +197,36 @@ Shapes can express cross-field invariants without introducing a second schema la
|
|
|
190
197
|
|
|
191
198
|
### `refine(...)`
|
|
192
199
|
|
|
193
|
-
`refine(...)` adds
|
|
200
|
+
`refine(...)` adds an async-first object-level rule that runs only after the base shape has already validated successfully as an object.
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
const registration = shape({
|
|
204
|
+
email: isString,
|
|
205
|
+
}).refine(async value => {
|
|
206
|
+
const taken = await users.has(value.email)
|
|
207
|
+
|
|
208
|
+
return taken
|
|
209
|
+
? [{ path: ['email'], code: 'user.email.taken' }]
|
|
210
|
+
: []
|
|
211
|
+
})
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
`refine(...)` is intentionally thin:
|
|
215
|
+
|
|
216
|
+
- it accepts sync or async callbacks;
|
|
217
|
+
- it returns `[]`, `null`, or `undefined` when the rule passes;
|
|
218
|
+
- it returns one issue or an array of issues when it fails;
|
|
219
|
+
- `path` is relative to the current shape and defaults to `[]`;
|
|
220
|
+
- `value` is optional and defaults to the object value at that relative path;
|
|
221
|
+
- `code` stays machine-readable.
|
|
222
|
+
|
|
223
|
+
If you need an explicitly sync-safe object rule for `validate.sync(...)`, use `refine.sync(...)`:
|
|
194
224
|
|
|
195
225
|
```typescript
|
|
196
226
|
const registration = shape({
|
|
197
227
|
password: isString,
|
|
198
228
|
confirmPassword: isString,
|
|
199
|
-
}).refine(value => {
|
|
229
|
+
}).refine.sync(value => {
|
|
200
230
|
return value.password === value.confirmPassword
|
|
201
231
|
? []
|
|
202
232
|
: [{
|
|
@@ -207,14 +237,7 @@ const registration = shape({
|
|
|
207
237
|
})
|
|
208
238
|
```
|
|
209
239
|
|
|
210
|
-
`
|
|
211
|
-
|
|
212
|
-
- it is sync-only;
|
|
213
|
-
- it returns `[]`, `null`, or `undefined` when the rule passes;
|
|
214
|
-
- it returns one issue or an array of issues when it fails;
|
|
215
|
-
- `path` is relative to the current shape and defaults to `[]`;
|
|
216
|
-
- `value` is optional and defaults to the object value at that relative path;
|
|
217
|
-
- `code` stays machine-readable.
|
|
240
|
+
`validate.sync(...)`, `matches.sync(...)`, and `shape.check(...)` throw explicitly if they encounter an async `refine(...)` callback.
|
|
218
241
|
|
|
219
242
|
Produced violations use:
|
|
220
243
|
|
|
@@ -243,6 +266,8 @@ const registration = shape({
|
|
|
243
266
|
|
|
244
267
|
This shows up later in `describe(...)` under the shape `rules` array.
|
|
245
268
|
|
|
269
|
+
Rules registered through async-first `refine(...)` are marked with `async: true` in that descriptor array.
|
|
270
|
+
|
|
246
271
|
### `fieldsMatch(...)`
|
|
247
272
|
|
|
248
273
|
`fieldsMatch(...)` is a small helper for the common confirmation-field case.
|
|
@@ -182,7 +182,8 @@ Instead, shapes keep lightweight rule descriptors in `rules`.
|
|
|
182
182
|
Built-in examples:
|
|
183
183
|
|
|
184
184
|
- `fieldsMatch(...)` produces a compact `fieldsMatch` rule descriptor;
|
|
185
|
-
- `refine(...)` can accept a custom compact rule descriptor object
|
|
185
|
+
- `refine(...)` can accept a custom compact rule descriptor object;
|
|
186
|
+
- async-first `refine(...)` rules are marked with `async: true`.
|
|
186
187
|
|
|
187
188
|
This keeps the public descriptor tree stable and serializable enough for tooling, while avoiding the impossible task of serializing arbitrary callbacks.
|
|
188
189
|
|
package/docs/en/03-violations.md
CHANGED
|
@@ -120,7 +120,7 @@ This is one of the reasons the library can stay adapter-friendly without stringi
|
|
|
120
120
|
`validate(...)` and `validate.sync(...)` return:
|
|
121
121
|
|
|
122
122
|
```typescript
|
|
123
|
-
type
|
|
123
|
+
type ValidationResult<T> =
|
|
124
124
|
| [ok: true, validated: T, violations: []]
|
|
125
125
|
| [ok: false, validated: unknown, violations: Violation[]]
|
|
126
126
|
```
|
|
@@ -69,6 +69,9 @@ Supported practical mappings include:
|
|
|
69
69
|
|
|
70
70
|
- `isString` -> `type: 'string'`
|
|
71
71
|
- `isNumber` -> `type: 'number'`
|
|
72
|
+
- `isFiniteNumber` -> `type: 'number'`
|
|
73
|
+
- `isInteger` -> `type: 'integer'`
|
|
74
|
+
- `isSafeInteger` -> `type: 'integer'`, `minimum: Number.MIN_SAFE_INTEGER`, `maximum: Number.MAX_SAFE_INTEGER`
|
|
72
75
|
- `isBoolean` -> `type: 'boolean'`
|
|
73
76
|
- `isNull` -> `type: 'null'`
|
|
74
77
|
- `isEmail` -> `type: 'string'` plus `format: 'email'`
|
|
@@ -202,6 +205,8 @@ Important examples:
|
|
|
202
205
|
|
|
203
206
|
The exporter keeps these boundaries explicit instead of guessing.
|
|
204
207
|
|
|
208
|
+
`isValidDate`, `isError`, `isRegExp`, and `isPromiseLike` describe runtime values without a faithful JSON Schema representation. Strict mode throws `JsonSchemaExportError`; best-effort mode emits an unconstrained node. JSON numeric values are finite, so `isFiniteNumber` needs no additional schema keyword.
|
|
209
|
+
|
|
205
210
|
## Relationship To `describe(...)`
|
|
206
211
|
|
|
207
212
|
`toJsonSchema(...)` is downstream from `describe(...)`.
|
package/docs/en/05-public-api.md
CHANGED
|
@@ -19,6 +19,8 @@ The root package exports:
|
|
|
19
19
|
- `validate`
|
|
20
20
|
- `validate.sync`
|
|
21
21
|
- `matches.sync`
|
|
22
|
+
- `Guard`
|
|
23
|
+
- `Refinement`
|
|
22
24
|
- `meta`
|
|
23
25
|
- `describe`
|
|
24
26
|
- `custom`
|
|
@@ -33,8 +35,9 @@ Use the root package when you need the main validation API, composed validators,
|
|
|
33
35
|
|
|
34
36
|
The root package includes:
|
|
35
37
|
|
|
36
|
-
- low-level assertion construction through `assert(...)`
|
|
37
|
-
- built-in assertions such as `isString`, `isNumber`, `isBoolean`, `isNull`, `isEmail`, `
|
|
38
|
+
- low-level assertion construction through `assert(...)` and `refine(...)`
|
|
39
|
+
- built-in guard assertions such as `isString`, `isNumber`, `isBoolean`, `isNull`, `isEmail`, `oneOf(...)`
|
|
40
|
+
- built-in refinement assertions such as `hasLength(...)`, `hasSize(...)`, `hasPattern(...)`, `startsWith(...)`, `hasValue(...)`, `multipleOf(...)`
|
|
38
41
|
- structural combinators such as `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`
|
|
39
42
|
- wrapper combinators such as `optional(...)`, `nullable(...)`, `nullish(...)`
|
|
40
43
|
- branching combinators such as `union(...)` and `discriminatedUnion(...)`
|
|
@@ -42,6 +45,27 @@ The root package includes:
|
|
|
42
45
|
|
|
43
46
|
This is the main runtime-facing API surface of the library.
|
|
44
47
|
|
|
48
|
+
Sequential assertion arrays are stage-aware: a compatible tuple such as `[isString, hasLength({ min: 3 })]` is supported directly, while incompatible combinations are rejected by the type system.
|
|
49
|
+
Refinement assertions are staged helpers, so `validate(...)` and `matches.sync(...)` expect them to appear after a compatible guard instead of being passed on their own.
|
|
50
|
+
|
|
51
|
+
Structural validators such as `each(...)` reset the assertion stage. Use a new compatible guard before subsequent refinements, for example `[each(isString), isDefined, hasLength({ min: 2 })]`.
|
|
52
|
+
|
|
53
|
+
### Built-in value guards
|
|
54
|
+
|
|
55
|
+
These checks are available as assertions from the root and `./assertions`, and as boolean type guards from `./predicates`.
|
|
56
|
+
|
|
57
|
+
| Check | Accepted values | Violation code |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| `isFiniteNumber` | Numbers excluding `NaN` and infinities | `number.finite` |
|
|
60
|
+
| `isInteger` | Integer numbers | `number.integer` |
|
|
61
|
+
| `isSafeInteger` | Integers within JavaScript's safe integer bounds | `number.safe-integer` |
|
|
62
|
+
| `isValidDate` | `Date` instances with a valid timestamp | `date.valid` |
|
|
63
|
+
| `isError` | `Error` instances, including subclasses | `type.error` |
|
|
64
|
+
| `isRegExp` | `RegExp` instances | `type.regexp` |
|
|
65
|
+
| `isPromiseLike` | Objects or functions with a callable `then` property | `type.promise-like` |
|
|
66
|
+
|
|
67
|
+
`isNumber` still accepts infinities; `isDate` still accepts invalid `Date` instances. Use the stricter checks when those values must be rejected. `isPromiseLike` checks the presence of a callable `then`, without executing it or inspecting the resolved value.
|
|
68
|
+
|
|
45
69
|
## Metadata And Introspection
|
|
46
70
|
|
|
47
71
|
The same root package also includes:
|
|
@@ -67,7 +91,7 @@ These are the main utilities for post-processing machine-readable validation fai
|
|
|
67
91
|
`validate(...)` and `validate.sync(...)` return:
|
|
68
92
|
|
|
69
93
|
```typescript
|
|
70
|
-
type
|
|
94
|
+
type ValidationResult<T> =
|
|
71
95
|
| [ok: true, validated: T, violations: []]
|
|
72
96
|
| [ok: false, validated: unknown, violations: Violation[]]
|
|
73
97
|
```
|
|
@@ -77,6 +101,8 @@ Practical meaning:
|
|
|
77
101
|
- `ok` tells whether validation succeeded;
|
|
78
102
|
- `validated` becomes strongly typed only in the success branch;
|
|
79
103
|
- `violations` is empty on success and contains structured failures on error.
|
|
104
|
+
- `validate(...)` is the default async-first entrypoint;
|
|
105
|
+
- `validate.sync(...)` throws explicitly when it encounters async validators or async object-level `shape(...).refine(...)` rules.
|
|
80
106
|
|
|
81
107
|
## Predicates Subpath
|
|
82
108
|
|
|
@@ -97,6 +123,12 @@ This subpath contains reusable runtime/type-guard helpers and predicate combinat
|
|
|
97
123
|
|
|
98
124
|
Use this subpath when you want guard-style runtime checks without pulling in the higher-level validation layer.
|
|
99
125
|
|
|
126
|
+
In `isShape({ name: [isString, false] })`, an optional field may be absent,
|
|
127
|
+
but a present value is always checked by its predicate. This includes explicit
|
|
128
|
+
`undefined`: use `Or(isString, isUndefined)` to allow it.
|
|
129
|
+
The shorthand `name: isString` and the tuple `[isString, true]` define required fields.
|
|
130
|
+
Field presence is checked with `in`, including properties in the prototype chain.
|
|
131
|
+
|
|
100
132
|
## JSON Schema Export Subpath
|
|
101
133
|
|
|
102
134
|
JSON Schema export is available from:
|
|
@@ -14,7 +14,7 @@ It is intentionally recipe-oriented. Use it when you already understand the proj
|
|
|
14
14
|
Use this quick rule of thumb:
|
|
15
15
|
|
|
16
16
|
- use `@modulify/validator/predicates` when you only need runtime checks and type guards;
|
|
17
|
-
- use built-in assertions such as `isString`, `isDefined`, `hasLength(...)`, `oneOf(...)` when you want machine-readable failures;
|
|
17
|
+
- use built-in guard/refinement assertions such as `isString`, `isDefined`, `hasLength(...)`, `oneOf(...)` when you want machine-readable failures;
|
|
18
18
|
- use combinators such as `shape(...)`, `each(...)`, `tuple(...)`, `record(...)`, `union(...)`, `discriminatedUnion(...)` when validation becomes structural;
|
|
19
19
|
- use `meta(...)` and `describe(...)` when another layer needs stable machine-readable descriptors;
|
|
20
20
|
- use `toJsonSchema(...)` only when you need an interoperability/export view, not as the source of runtime truth.
|
|
@@ -44,6 +44,7 @@ Practical pattern:
|
|
|
44
44
|
|
|
45
45
|
- use `.strict()` for request payloads when unknown keys should be rejected;
|
|
46
46
|
- keep leaf checks small and composable;
|
|
47
|
+
- when you use an assertion array, start with a compatible guard such as `isString` before string refinements like `hasLength(...)`;
|
|
47
48
|
- use the `validated` tuple item inside the success branch;
|
|
48
49
|
- use `violations` as structured data for API responses, logs, or UI mapping.
|
|
49
50
|
|
|
@@ -43,7 +43,7 @@ Use `@modulify/validator/json-schema` for:
|
|
|
43
43
|
## Validation Result Contract
|
|
44
44
|
|
|
45
45
|
```typescript
|
|
46
|
-
type
|
|
46
|
+
type ValidationResult<T> =
|
|
47
47
|
| [ok: true, validated: T, violations: []]
|
|
48
48
|
| [ok: false, validated: unknown, violations: Violation[]]
|
|
49
49
|
```
|
|
@@ -53,7 +53,8 @@ Important consequences:
|
|
|
53
53
|
- `validate(...)` narrows the `validated` tuple item in the success branch;
|
|
54
54
|
- `validate(...)` does not narrow the original input variable;
|
|
55
55
|
- `matches.sync(...)` is the API that narrows the original variable;
|
|
56
|
-
- `violations` is always empty on success
|
|
56
|
+
- `violations` is always empty on success;
|
|
57
|
+
- `validate(...)` is async-first, while `validate.sync(...)` and `matches.sync(...)` are specialized sync APIs.
|
|
57
58
|
|
|
58
59
|
## Wrapper Semantics
|
|
59
60
|
|
|
@@ -90,6 +91,8 @@ Important rule:
|
|
|
90
91
|
|
|
91
92
|
- structural derivations intentionally drop object-level rules;
|
|
92
93
|
- mode switches intentionally keep object-level rules.
|
|
94
|
+
- `.refine(...)` is async-first and may return a promise;
|
|
95
|
+
- `.refine.sync(...)` is the explicitly sync-safe object-level rule API.
|
|
93
96
|
|
|
94
97
|
## Violations Contract
|
|
95
98
|
|
|
@@ -58,6 +58,32 @@ In TypeScript this means:
|
|
|
58
58
|
|
|
59
59
|
This is useful when adapters inspect descriptors and want code-aware branching without hand-written casts.
|
|
60
60
|
|
|
61
|
+
The same precision now flows into `validate(...)` for parameterized built-ins.
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
import {
|
|
65
|
+
collection,
|
|
66
|
+
hasLength,
|
|
67
|
+
isString,
|
|
68
|
+
validate,
|
|
69
|
+
} from '@modulify/validator'
|
|
70
|
+
|
|
71
|
+
const [ok, , violations] = validate.sync('ab', [isString, hasLength({ min: 3 })])
|
|
72
|
+
|
|
73
|
+
if (!ok) {
|
|
74
|
+
collection(violations).map(violation => {
|
|
75
|
+
switch (violation.violates.code) {
|
|
76
|
+
case 'type.string':
|
|
77
|
+
return violation.violates.name
|
|
78
|
+
case 'length.min':
|
|
79
|
+
return violation.violates.args[0]
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
For staged calls like `[isString, hasLength({ min: 3 })]`, impossible branches such as `'length.max'` or `'length.range'` are no longer carried into the violation union, and the unsupported-type branch stays on the descriptor side instead of leaking into staged validation.
|
|
86
|
+
|
|
61
87
|
## What The Global Registry Solves
|
|
62
88
|
|
|
63
89
|
Exact literals on individual values are good for local introspection.
|
|
@@ -158,7 +184,7 @@ This part does not depend on the global union extraction. The literal is preserv
|
|
|
158
184
|
The same idea applies to object-level refinement issues.
|
|
159
185
|
|
|
160
186
|
```typescript
|
|
161
|
-
import type {
|
|
187
|
+
import type { ShapeRefinementViolationInput } from '@modulify/validator'
|
|
162
188
|
import {
|
|
163
189
|
isEmail,
|
|
164
190
|
isString,
|
|
@@ -180,7 +206,7 @@ const signUpForm = shape({
|
|
|
180
206
|
path: ['confirmation', 'password'],
|
|
181
207
|
code: 'profile.password.mismatch',
|
|
182
208
|
args: [],
|
|
183
|
-
}] satisfies
|
|
209
|
+
}] satisfies ShapeRefinementViolationInput<'profile.password.mismatch'>
|
|
184
210
|
})
|
|
185
211
|
```
|
|
186
212
|
|