@zxyycom/vibe-check 0.0.1
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/LICENSE +21 -0
- package/README.md +154 -0
- package/dist/esm/check/check.mjs +5 -0
- package/dist/esm/check/check.mjs.map +1 -0
- package/dist/esm/check/descriptor-validation.mjs +37 -0
- package/dist/esm/check/descriptor-validation.mjs.map +1 -0
- package/dist/esm/check/descriptor.mjs +2 -0
- package/dist/esm/check/descriptor.mjs.map +1 -0
- package/dist/esm/check/inherited-collection.mjs +62 -0
- package/dist/esm/check/inherited-collection.mjs.map +1 -0
- package/dist/esm/check/options-snapshot.mjs +75 -0
- package/dist/esm/check/options-snapshot.mjs.map +1 -0
- package/dist/esm/check-settlement/fact-validation.mjs +216 -0
- package/dist/esm/check-settlement/fact-validation.mjs.map +1 -0
- package/dist/esm/check-settlement/facts.mjs +2 -0
- package/dist/esm/check-settlement/facts.mjs.map +1 -0
- package/dist/esm/check-settlement/outcome-normalization.mjs +80 -0
- package/dist/esm/check-settlement/outcome-normalization.mjs.map +1 -0
- package/dist/esm/check-settlement/record-store.mjs +59 -0
- package/dist/esm/check-settlement/record-store.mjs.map +1 -0
- package/dist/esm/check-settlement/session.mjs +179 -0
- package/dist/esm/check-settlement/session.mjs.map +1 -0
- package/dist/esm/data-boundary/canonical-data.mjs +159 -0
- package/dist/esm/data-boundary/canonical-data.mjs.map +1 -0
- package/dist/esm/data-boundary/canonical-json.mjs +2 -0
- package/dist/esm/data-boundary/canonical-json.mjs.map +1 -0
- package/dist/esm/data-boundary/closed-values.mjs +98 -0
- package/dist/esm/data-boundary/closed-values.mjs.map +1 -0
- package/dist/esm/data-boundary/value-shapes.mjs +13 -0
- package/dist/esm/data-boundary/value-shapes.mjs.map +1 -0
- package/dist/esm/finding-waivers/reconciliation.mjs +84 -0
- package/dist/esm/finding-waivers/reconciliation.mjs.map +1 -0
- package/dist/esm/index.mjs +26 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/machine-output/v4/atomic-publication.mjs +102 -0
- package/dist/esm/machine-output/v4/atomic-publication.mjs.map +1 -0
- package/dist/esm/machine-output/v4/freeze-publication-value.mjs +14 -0
- package/dist/esm/machine-output/v4/freeze-publication-value.mjs.map +1 -0
- package/dist/esm/machine-output/v4/projection.mjs +23 -0
- package/dist/esm/machine-output/v4/projection.mjs.map +1 -0
- package/dist/esm/machine-output/v4/publication-invariants.mjs +59 -0
- package/dist/esm/machine-output/v4/publication-invariants.mjs.map +1 -0
- package/dist/esm/machine-output/v4/publication-model.mjs +19 -0
- package/dist/esm/machine-output/v4/publication-model.mjs.map +1 -0
- package/dist/esm/machine-output/v4/publish.mjs +20 -0
- package/dist/esm/machine-output/v4/publish.mjs.map +1 -0
- package/dist/esm/machine-output/v4/records-fingerprint.mjs +9 -0
- package/dist/esm/machine-output/v4/records-fingerprint.mjs.map +1 -0
- package/dist/esm/machine-output/v4/schema-identities.mjs +8 -0
- package/dist/esm/machine-output/v4/schema-identities.mjs.map +1 -0
- package/dist/esm/machine-output/v4/schema.mjs +50 -0
- package/dist/esm/machine-output/v4/schema.mjs.map +1 -0
- package/dist/esm/machine-output/v4/serializers.mjs +9 -0
- package/dist/esm/machine-output/v4/serializers.mjs.map +1 -0
- package/dist/esm/machine-output/v4/validation-result.mjs +16 -0
- package/dist/esm/machine-output/v4/validation-result.mjs.map +1 -0
- package/dist/esm/machine-output/v4/validation.mjs +131 -0
- package/dist/esm/machine-output/v4/validation.mjs.map +1 -0
- package/dist/esm/package-checks/code-quality-findings/policy.mjs +49 -0
- package/dist/esm/package-checks/code-quality-findings/policy.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/area-policy.mjs +71 -0
- package/dist/esm/package-checks/duplicate-detection/area-policy.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/cache-contract.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/cache/cache-contract.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs +37 -0
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/key.mjs +38 -0
- package/dist/esm/package-checks/duplicate-detection/cache/key.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/payload.mjs +47 -0
- package/dist/esm/package-checks/duplicate-detection/cache/payload.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/cache/store.mjs +44 -0
- package/dist/esm/package-checks/duplicate-detection/cache/store.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs +39 -0
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/execution.mjs +124 -0
- package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/final-data.mjs +6 -0
- package/dist/esm/package-checks/duplicate-detection/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +77 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-path.mjs +6 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-path.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs +87 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs +94 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner-contract.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner-contract.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs +180 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scoped-fragments.mjs +10 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/scoped-fragments.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/measurement-model.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/measurement-model.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/measurement.mjs +151 -0
- package/dist/esm/package-checks/duplicate-detection/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs +126 -0
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/options-validation.mjs +60 -0
- package/dist/esm/package-checks/duplicate-detection/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/options.mjs +2 -0
- package/dist/esm/package-checks/duplicate-detection/options.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/project-revision.mjs +5 -0
- package/dist/esm/package-checks/duplicate-detection/project-revision.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/records.mjs +119 -0
- package/dist/esm/package-checks/duplicate-detection/records.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/constructor.mjs +39 -0
- package/dist/esm/package-checks/file-metrics/constructor.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/execution.mjs +170 -0
- package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/final-data.mjs +6 -0
- package/dist/esm/package-checks/file-metrics/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/measurement-model.mjs +2 -0
- package/dist/esm/package-checks/file-metrics/measurement-model.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/measurement.mjs +33 -0
- package/dist/esm/package-checks/file-metrics/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs +171 -0
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options-validation.mjs +82 -0
- package/dist/esm/package-checks/file-metrics/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options.mjs +2 -0
- package/dist/esm/package-checks/file-metrics/options.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/records.mjs +109 -0
- package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs +59 -0
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/csv.mjs +17 -0
- package/dist/esm/package-checks/file-metrics/scc/csv.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/parser.mjs +145 -0
- package/dist/esm/package-checks/file-metrics/scc/parser.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +54 -0
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -0
- package/dist/esm/package-checks/final-data-parsing.mjs +35 -0
- package/dist/esm/package-checks/final-data-parsing.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analysis.mjs +96 -0
- package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/constructor.mjs +43 -0
- package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/execution.mjs +178 -0
- package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/final-data.mjs +6 -0
- package/dist/esm/package-checks/function-metrics/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs +64 -0
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/csv.mjs +17 -0
- package/dist/esm/package-checks/function-metrics/lizard/csv.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs +138 -0
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs +35 -0
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/measurement-model.mjs +2 -0
- package/dist/esm/package-checks/function-metrics/measurement-model.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/measurement.mjs +35 -0
- package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs +171 -0
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/options-validation.mjs +71 -0
- package/dist/esm/package-checks/function-metrics/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/options.mjs +2 -0
- package/dist/esm/package-checks/function-metrics/options.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/records.mjs +133 -0
- package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/target-files.mjs +75 -0
- package/dist/esm/package-checks/function-metrics/target-files.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/error-message.mjs +4 -0
- package/dist/esm/package-checks/host-environment/error-message.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/filesystem.mjs +81 -0
- package/dist/esm/package-checks/host-environment/filesystem.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/git.mjs +51 -0
- package/dist/esm/package-checks/host-environment/git.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/path.mjs +18 -0
- package/dist/esm/package-checks/host-environment/path.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/command.mjs +13 -0
- package/dist/esm/package-checks/host-environment/process/command.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/contract.mjs +2 -0
- package/dist/esm/package-checks/host-environment/process/contract.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/env.mjs +19 -0
- package/dist/esm/package-checks/host-environment/process/env.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/failure.mjs +34 -0
- package/dist/esm/package-checks/host-environment/process/failure.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/result.mjs +33 -0
- package/dist/esm/package-checks/host-environment/process/result.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/process/runner.mjs +30 -0
- package/dist/esm/package-checks/host-environment/process/runner.mjs.map +1 -0
- package/dist/esm/package-checks/json-document/strict-document.mjs +163 -0
- package/dist/esm/package-checks/json-document/strict-document.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/default-check.mjs +39 -0
- package/dist/esm/package-checks/json-schema-validation/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/execution-stages.mjs +141 -0
- package/dist/esm/package-checks/json-schema-validation/execution-stages.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/final-data.mjs +64 -0
- package/dist/esm/package-checks/json-schema-validation/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/issue-collector.mjs +35 -0
- package/dist/esm/package-checks/json-schema-validation/issue-collector.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/json-schema-validation.mjs +118 -0
- package/dist/esm/package-checks/json-schema-validation/json-schema-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/options-resolution.mjs +45 -0
- package/dist/esm/package-checks/json-schema-validation/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/options-validation.mjs +212 -0
- package/dist/esm/package-checks/json-schema-validation/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/options.mjs +2 -0
- package/dist/esm/package-checks/json-schema-validation/options.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs +128 -0
- package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/remote-response.mjs +71 -0
- package/dist/esm/package-checks/json-schema-validation/remote-response.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/schema-engine.mjs +190 -0
- package/dist/esm/package-checks/json-schema-validation/schema-engine.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs +234 -0
- package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/default-check.mjs +39 -0
- package/dist/esm/package-checks/json-validation/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/final-data.mjs +27 -0
- package/dist/esm/package-checks/json-validation/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/json-validation.mjs +138 -0
- package/dist/esm/package-checks/json-validation/json-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/options-resolution.mjs +33 -0
- package/dist/esm/package-checks/json-validation/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/options-validation.mjs +16 -0
- package/dist/esm/package-checks/json-validation/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/json-validation/options.mjs +2 -0
- package/dist/esm/package-checks/json-validation/options.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/assessment-results.mjs +73 -0
- package/dist/esm/package-checks/maintenance-reminders/assessment-results.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/final-data.mjs +153 -0
- package/dist/esm/package-checks/maintenance-reminders/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs +155 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs +58 -0
- package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/measurement.mjs +125 -0
- package/dist/esm/package-checks/maintenance-reminders/measurement.mjs.map +1 -0
- package/dist/esm/package-checks/maintenance-reminders/options-validation.mjs +72 -0
- package/dist/esm/package-checks/maintenance-reminders/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs +55 -0
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs +199 -0
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs +109 -0
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/final-data.mjs +28 -0
- package/dist/esm/package-checks/markdown-link-validation/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolution.mjs +158 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs +17 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs +191 -0
- package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs +83 -0
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs +50 -0
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/options.mjs +2 -0
- package/dist/esm/package-checks/markdown-link-validation/options.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/records.mjs +32 -0
- package/dist/esm/package-checks/markdown-link-validation/records.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs +196 -0
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/target-descriptor.mjs +23 -0
- package/dist/esm/package-checks/markdown-link-validation/target-descriptor.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/traversal-result.mjs +41 -0
- package/dist/esm/package-checks/markdown-link-validation/traversal-result.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/collection.mjs +142 -0
- package/dist/esm/package-checks/project-files/collection.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/config-glob.mjs +11 -0
- package/dist/esm/package-checks/project-files/config-glob.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/configuration.mjs +104 -0
- package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/exact-input-measurement.mjs +24 -0
- package/dist/esm/package-checks/project-files/exact-input-measurement.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/file-fingerprint.mjs +36 -0
- package/dist/esm/package-checks/project-files/file-fingerprint.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs +57 -0
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +72 -0
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/input-eligibility.mjs +13 -0
- package/dist/esm/package-checks/project-files/input-eligibility.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/reported-path.mjs +30 -0
- package/dist/esm/package-checks/project-files/reported-path.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/revision-paths.mjs +19 -0
- package/dist/esm/package-checks/project-files/revision-paths.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs +102 -0
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/authoring.mjs +242 -0
- package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/materialization.mjs +50 -0
- package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/resolution.mjs +60 -0
- package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -0
- package/dist/esm/project-definition/output-defaults.mjs +7 -0
- package/dist/esm/project-definition/output-defaults.mjs.map +1 -0
- package/dist/esm/project-definition/output-validation.mjs +44 -0
- package/dist/esm/project-definition/output-validation.mjs.map +1 -0
- package/dist/esm/project-definition/project-definition-validation.mjs +95 -0
- package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -0
- package/dist/esm/project-definition/project-definition.mjs +92 -0
- package/dist/esm/project-definition/project-definition.mjs.map +1 -0
- package/dist/esm/project-run/aggregation.mjs +66 -0
- package/dist/esm/project-run/aggregation.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/callback.mjs +70 -0
- package/dist/esm/project-run/check-execution/callback.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/dependencies.mjs +50 -0
- package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/execution-finalization.mjs +103 -0
- package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/execution-settlement.mjs +90 -0
- package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/messages.mjs +38 -0
- package/dist/esm/project-run/check-execution/messages.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/plan.mjs +35 -0
- package/dist/esm/project-run/check-execution/plan.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/preflight-result.mjs +83 -0
- package/dist/esm/project-run/check-execution/preflight-result.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/preflight.mjs +186 -0
- package/dist/esm/project-run/check-execution/preflight.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/resolved-checks.mjs +168 -0
- package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/terminal-result.mjs +49 -0
- package/dist/esm/project-run/check-execution/terminal-result.mjs.map +1 -0
- package/dist/esm/project-run/completion.mjs +173 -0
- package/dist/esm/project-run/completion.mjs.map +1 -0
- package/dist/esm/project-run/controls/contract.mjs +2 -0
- package/dist/esm/project-run/controls/contract.mjs.map +1 -0
- package/dist/esm/project-run/controls/outputs-override-validation.mjs +61 -0
- package/dist/esm/project-run/controls/outputs-override-validation.mjs.map +1 -0
- package/dist/esm/project-run/controls/validation-result.mjs +2 -0
- package/dist/esm/project-run/controls/validation-result.mjs.map +1 -0
- package/dist/esm/project-run/controls/validation.mjs +156 -0
- package/dist/esm/project-run/controls/validation.mjs.map +1 -0
- package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs +182 -0
- package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs.map +1 -0
- package/dist/esm/project-run/diagnostic-logging/logger.mjs +242 -0
- package/dist/esm/project-run/diagnostic-logging/logger.mjs.map +1 -0
- package/dist/esm/project-run/invocation-creation.mjs +111 -0
- package/dist/esm/project-run/invocation-creation.mjs.map +1 -0
- package/dist/esm/project-run/invocation.mjs +195 -0
- package/dist/esm/project-run/invocation.mjs.map +1 -0
- package/dist/esm/project-run/machine-publication.mjs +16 -0
- package/dist/esm/project-run/machine-publication.mjs.map +1 -0
- package/dist/esm/project-run/output-configuration.mjs +17 -0
- package/dist/esm/project-run/output-configuration.mjs.map +1 -0
- package/dist/esm/project-run/output-status.mjs +43 -0
- package/dist/esm/project-run/output-status.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/presentation.mjs +135 -0
- package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +100 -0
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +123 -0
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/renderer.mjs +12 -0
- package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -0
- package/dist/esm/project-run/project-context.mjs +8 -0
- package/dist/esm/project-run/project-context.mjs.map +1 -0
- package/dist/esm/project-run/result.mjs +54 -0
- package/dist/esm/project-run/result.mjs.map +1 -0
- package/dist/esm/project-run/run.mjs +23 -0
- package/dist/esm/project-run/run.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/execution-state.mjs +66 -0
- package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs +119 -0
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/graph.mjs +116 -0
- package/dist/esm/project-run/task-scheduler/graph.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs +82 -0
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs +27 -0
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs +125 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs +45 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs +74 -0
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler.mjs +147 -0
- package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -0
- package/docs/api-mechanics.md +205 -0
- package/docs/checks/duplicate-detection.md +195 -0
- package/docs/checks/file-metrics.md +229 -0
- package/docs/checks/function-metrics.md +222 -0
- package/docs/checks/json-schema-validation.md +190 -0
- package/docs/checks/json-validation.md +133 -0
- package/docs/checks/maintenance-reminders.md +158 -0
- package/docs/checks/markdown-link-validation.md +192 -0
- package/docs/examples/artifacts/mixed-outcomes/definition.ts +195 -0
- package/docs/examples/artifacts/mixed-outcomes/records.ndjson +2 -0
- package/docs/examples/artifacts/mixed-outcomes/run.json +70 -0
- package/docs/output.md +97 -0
- package/docs/schemas/vibe-check-record.schema.json +33 -0
- package/docs/schemas/vibe-check-run.schema.json +173 -0
- package/index.mjs +1 -0
- package/package.json +49 -0
- package/src/check/check.ts +497 -0
- package/src/check/descriptor-validation.ts +60 -0
- package/src/check/descriptor.ts +5 -0
- package/src/check/inherited-collection.ts +101 -0
- package/src/check/options-snapshot.ts +80 -0
- package/src/check-settlement/fact-validation.ts +289 -0
- package/src/check-settlement/facts.ts +27 -0
- package/src/check-settlement/outcome-normalization.ts +118 -0
- package/src/check-settlement/record-store.ts +73 -0
- package/src/check-settlement/session.ts +257 -0
- package/src/data-boundary/canonical-data.ts +188 -0
- package/src/data-boundary/canonical-json.ts +11 -0
- package/src/data-boundary/closed-values.ts +126 -0
- package/src/data-boundary/value-shapes.ts +15 -0
- package/src/finding-waivers/reconciliation.ts +176 -0
- package/src/index.ts +123 -0
- package/src/machine-output/v4/atomic-publication.ts +123 -0
- package/src/machine-output/v4/freeze-publication-value.ts +12 -0
- package/src/machine-output/v4/projection.ts +36 -0
- package/src/machine-output/v4/publication-invariants.ts +89 -0
- package/src/machine-output/v4/publication-model.ts +38 -0
- package/src/machine-output/v4/publish.ts +23 -0
- package/src/machine-output/v4/records-fingerprint.ts +12 -0
- package/src/machine-output/v4/schema-identities.ts +8 -0
- package/src/machine-output/v4/schema.ts +97 -0
- package/src/machine-output/v4/serializers.ts +18 -0
- package/src/machine-output/v4/validation-result.ts +59 -0
- package/src/machine-output/v4/validation.ts +166 -0
- package/src/package-checks/code-quality-findings/policy.ts +85 -0
- package/src/package-checks/duplicate-detection/area-policy.ts +103 -0
- package/src/package-checks/duplicate-detection/cache/cache-contract.ts +49 -0
- package/src/package-checks/duplicate-detection/cache/identity.ts +61 -0
- package/src/package-checks/duplicate-detection/cache/key.ts +46 -0
- package/src/package-checks/duplicate-detection/cache/payload.ts +78 -0
- package/src/package-checks/duplicate-detection/cache/store.ts +77 -0
- package/src/package-checks/duplicate-detection/default-check.ts +50 -0
- package/src/package-checks/duplicate-detection/execution.ts +168 -0
- package/src/package-checks/duplicate-detection/final-data.ts +10 -0
- package/src/package-checks/duplicate-detection/jscpd/availability.ts +137 -0
- package/src/package-checks/duplicate-detection/jscpd/command-path.ts +8 -0
- package/src/package-checks/duplicate-detection/jscpd/command-resolution.ts +112 -0
- package/src/package-checks/duplicate-detection/jscpd/json-report.ts +137 -0
- package/src/package-checks/duplicate-detection/jscpd/scanner-contract.ts +18 -0
- package/src/package-checks/duplicate-detection/jscpd/scanner.ts +257 -0
- package/src/package-checks/duplicate-detection/jscpd/scoped-fragments.ts +17 -0
- package/src/package-checks/duplicate-detection/measurement-model.ts +44 -0
- package/src/package-checks/duplicate-detection/measurement.ts +223 -0
- package/src/package-checks/duplicate-detection/options-resolution.ts +162 -0
- package/src/package-checks/duplicate-detection/options-validation.ts +75 -0
- package/src/package-checks/duplicate-detection/options.ts +72 -0
- package/src/package-checks/duplicate-detection/project-revision.ts +5 -0
- package/src/package-checks/duplicate-detection/records.ts +171 -0
- package/src/package-checks/file-metrics/constructor.ts +46 -0
- package/src/package-checks/file-metrics/execution.ts +233 -0
- package/src/package-checks/file-metrics/final-data.ts +10 -0
- package/src/package-checks/file-metrics/measurement-model.ts +10 -0
- package/src/package-checks/file-metrics/measurement.ts +52 -0
- package/src/package-checks/file-metrics/options-resolution.ts +213 -0
- package/src/package-checks/file-metrics/options-validation.ts +104 -0
- package/src/package-checks/file-metrics/options.ts +91 -0
- package/src/package-checks/file-metrics/records.ts +182 -0
- package/src/package-checks/file-metrics/scc/availability.ts +100 -0
- package/src/package-checks/file-metrics/scc/csv.ts +20 -0
- package/src/package-checks/file-metrics/scc/parser.ts +223 -0
- package/src/package-checks/file-metrics/scc/scanner.ts +68 -0
- package/src/package-checks/final-data-parsing.ts +49 -0
- package/src/package-checks/function-metrics/analysis.ts +138 -0
- package/src/package-checks/function-metrics/constructor.ts +55 -0
- package/src/package-checks/function-metrics/execution.ts +263 -0
- package/src/package-checks/function-metrics/final-data.ts +10 -0
- package/src/package-checks/function-metrics/lizard/availability.ts +90 -0
- package/src/package-checks/function-metrics/lizard/csv.ts +20 -0
- package/src/package-checks/function-metrics/lizard/parser.ts +179 -0
- package/src/package-checks/function-metrics/lizard/scanner.ts +62 -0
- package/src/package-checks/function-metrics/measurement-model.ts +30 -0
- package/src/package-checks/function-metrics/measurement.ts +57 -0
- package/src/package-checks/function-metrics/options-resolution.ts +215 -0
- package/src/package-checks/function-metrics/options-validation.ts +89 -0
- package/src/package-checks/function-metrics/options.ts +84 -0
- package/src/package-checks/function-metrics/records.ts +254 -0
- package/src/package-checks/function-metrics/target-files.ts +85 -0
- package/src/package-checks/host-environment/error-message.ts +3 -0
- package/src/package-checks/host-environment/filesystem.ts +110 -0
- package/src/package-checks/host-environment/git.ts +68 -0
- package/src/package-checks/host-environment/path.ts +20 -0
- package/src/package-checks/host-environment/process/command.ts +21 -0
- package/src/package-checks/host-environment/process/contract.ts +56 -0
- package/src/package-checks/host-environment/process/env.ts +25 -0
- package/src/package-checks/host-environment/process/failure.ts +40 -0
- package/src/package-checks/host-environment/process/result.ts +39 -0
- package/src/package-checks/host-environment/process/runner.ts +47 -0
- package/src/package-checks/json-document/strict-document.ts +209 -0
- package/src/package-checks/json-schema-validation/default-check.ts +54 -0
- package/src/package-checks/json-schema-validation/execution-stages.ts +230 -0
- package/src/package-checks/json-schema-validation/final-data.ts +115 -0
- package/src/package-checks/json-schema-validation/issue-collector.ts +43 -0
- package/src/package-checks/json-schema-validation/json-schema-validation.ts +191 -0
- package/src/package-checks/json-schema-validation/options-resolution.ts +61 -0
- package/src/package-checks/json-schema-validation/options-validation.ts +256 -0
- package/src/package-checks/json-schema-validation/options.ts +66 -0
- package/src/package-checks/json-schema-validation/reference-resolver.ts +165 -0
- package/src/package-checks/json-schema-validation/remote-response.ts +84 -0
- package/src/package-checks/json-schema-validation/schema-engine.ts +263 -0
- package/src/package-checks/json-schema-validation/schema-policy.ts +275 -0
- package/src/package-checks/json-validation/default-check.ts +48 -0
- package/src/package-checks/json-validation/final-data.ts +46 -0
- package/src/package-checks/json-validation/json-validation.ts +212 -0
- package/src/package-checks/json-validation/options-resolution.ts +50 -0
- package/src/package-checks/json-validation/options-validation.ts +27 -0
- package/src/package-checks/json-validation/options.ts +18 -0
- package/src/package-checks/maintenance-reminders/assessment-results.ts +117 -0
- package/src/package-checks/maintenance-reminders/final-data.ts +239 -0
- package/src/package-checks/maintenance-reminders/maintenance-reminders.ts +264 -0
- package/src/package-checks/maintenance-reminders/maintenance-support.ts +67 -0
- package/src/package-checks/maintenance-reminders/measurement.ts +183 -0
- package/src/package-checks/maintenance-reminders/options-validation.ts +88 -0
- package/src/package-checks/markdown-link-validation/default-check.ts +70 -0
- package/src/package-checks/markdown-link-validation/execution.ts +325 -0
- package/src/package-checks/markdown-link-validation/filesystem-probes.ts +127 -0
- package/src/package-checks/markdown-link-validation/final-data.ts +47 -0
- package/src/package-checks/markdown-link-validation/local-resolution.ts +306 -0
- package/src/package-checks/markdown-link-validation/local-resolver.ts +51 -0
- package/src/package-checks/markdown-link-validation/markdown-parser.ts +302 -0
- package/src/package-checks/markdown-link-validation/options-resolution.ts +114 -0
- package/src/package-checks/markdown-link-validation/options-validation.ts +72 -0
- package/src/package-checks/markdown-link-validation/options.ts +50 -0
- package/src/package-checks/markdown-link-validation/records.ts +77 -0
- package/src/package-checks/markdown-link-validation/resolver-engine.ts +276 -0
- package/src/package-checks/markdown-link-validation/target-descriptor.ts +34 -0
- package/src/package-checks/markdown-link-validation/traversal-result.ts +58 -0
- package/src/package-checks/project-files/collection.ts +199 -0
- package/src/package-checks/project-files/config-glob.ts +17 -0
- package/src/package-checks/project-files/configuration.ts +152 -0
- package/src/package-checks/project-files/exact-input-measurement.ts +38 -0
- package/src/package-checks/project-files/file-fingerprint.ts +46 -0
- package/src/package-checks/project-files/gitlink-revision.ts +82 -0
- package/src/package-checks/project-files/gitlink-worktree.ts +106 -0
- package/src/package-checks/project-files/input-eligibility.ts +21 -0
- package/src/package-checks/project-files/reported-path.ts +35 -0
- package/src/package-checks/project-files/revision-paths.ts +34 -0
- package/src/package-checks/project-files/revision-worktree-files.ts +148 -0
- package/src/project-definition/check-tree/authoring.ts +332 -0
- package/src/project-definition/check-tree/materialization.ts +56 -0
- package/src/project-definition/check-tree/resolution.ts +108 -0
- package/src/project-definition/output-defaults.ts +6 -0
- package/src/project-definition/output-validation.ts +54 -0
- package/src/project-definition/project-definition-validation.ts +123 -0
- package/src/project-definition/project-definition.ts +184 -0
- package/src/project-run/aggregation.ts +90 -0
- package/src/project-run/check-execution/callback.ts +106 -0
- package/src/project-run/check-execution/dependencies.ts +70 -0
- package/src/project-run/check-execution/execution-finalization.ts +177 -0
- package/src/project-run/check-execution/execution-settlement.ts +147 -0
- package/src/project-run/check-execution/messages.ts +46 -0
- package/src/project-run/check-execution/plan.ts +46 -0
- package/src/project-run/check-execution/preflight-result.ts +131 -0
- package/src/project-run/check-execution/preflight.ts +321 -0
- package/src/project-run/check-execution/resolved-checks.ts +285 -0
- package/src/project-run/check-execution/terminal-result.ts +74 -0
- package/src/project-run/completion.ts +263 -0
- package/src/project-run/controls/contract.ts +24 -0
- package/src/project-run/controls/outputs-override-validation.ts +86 -0
- package/src/project-run/controls/validation-result.ts +12 -0
- package/src/project-run/controls/validation.ts +176 -0
- package/src/project-run/diagnostic-logging/diagnostic-detail-rendering.ts +223 -0
- package/src/project-run/diagnostic-logging/logger.ts +325 -0
- package/src/project-run/invocation-creation.ts +160 -0
- package/src/project-run/invocation.ts +303 -0
- package/src/project-run/machine-publication.ts +23 -0
- package/src/project-run/output-configuration.ts +24 -0
- package/src/project-run/output-status.ts +69 -0
- package/src/project-run/progress-rendering/presentation.ts +189 -0
- package/src/project-run/progress-rendering/renderer-formatting.ts +141 -0
- package/src/project-run/progress-rendering/renderer-lifecycle.ts +152 -0
- package/src/project-run/progress-rendering/renderer.ts +68 -0
- package/src/project-run/project-context.ts +11 -0
- package/src/project-run/result.ts +175 -0
- package/src/project-run/run.ts +50 -0
- package/src/project-run/task-scheduler/execution-state.ts +153 -0
- package/src/project-run/task-scheduler/graph-validation.ts +176 -0
- package/src/project-run/task-scheduler/graph.ts +185 -0
- package/src/project-run/task-scheduler/scheduler-admission-decision.ts +177 -0
- package/src/project-run/task-scheduler/scheduler-blocker-summary.ts +42 -0
- package/src/project-run/task-scheduler/scheduler-decision-inspection.ts +199 -0
- package/src/project-run/task-scheduler/scheduler-decision-model.ts +158 -0
- package/src/project-run/task-scheduler/scheduler-decision.ts +103 -0
- package/src/project-run/task-scheduler/scheduler.ts +228 -0
- package/third-party-licenses/momoa-3.3.12-LICENSE +201 -0
- package/types/check/check.d.ts +350 -0
- package/types/check/descriptor-validation.d.ts +18 -0
- package/types/check/descriptor.d.ts +5 -0
- package/types/check/inherited-collection.d.ts +35 -0
- package/types/check/options-snapshot.d.ts +2 -0
- package/types/check-settlement/fact-validation.d.ts +14 -0
- package/types/check-settlement/facts.d.ts +19 -0
- package/types/check-settlement/outcome-normalization.d.ts +9 -0
- package/types/check-settlement/record-store.d.ts +14 -0
- package/types/check-settlement/session.d.ts +41 -0
- package/types/data-boundary/canonical-data.d.ts +13 -0
- package/types/data-boundary/canonical-json.d.ts +6 -0
- package/types/data-boundary/closed-values.d.ts +8 -0
- package/types/data-boundary/value-shapes.d.ts +4 -0
- package/types/finding-waivers/reconciliation.d.ts +66 -0
- package/types/index.d.ts +57 -0
- package/types/machine-output/v4/atomic-publication.d.ts +9 -0
- package/types/machine-output/v4/freeze-publication-value.d.ts +6 -0
- package/types/machine-output/v4/projection.d.ts +7 -0
- package/types/machine-output/v4/publication-invariants.d.ts +3 -0
- package/types/machine-output/v4/publication-model.d.ts +15 -0
- package/types/machine-output/v4/publish.d.ts +7 -0
- package/types/machine-output/v4/records-fingerprint.d.ts +4 -0
- package/types/machine-output/v4/schema-identities.d.ts +7 -0
- package/types/machine-output/v4/schema.d.ts +44 -0
- package/types/machine-output/v4/serializers.d.ts +6 -0
- package/types/machine-output/v4/validation-result.d.ts +26 -0
- package/types/machine-output/v4/validation.d.ts +6 -0
- package/types/package-checks/code-quality-findings/policy.d.ts +20 -0
- package/types/package-checks/duplicate-detection/area-policy.d.ts +3 -0
- package/types/package-checks/duplicate-detection/cache/cache-contract.d.ts +48 -0
- package/types/package-checks/duplicate-detection/cache/identity.d.ts +17 -0
- package/types/package-checks/duplicate-detection/cache/key.d.ts +4 -0
- package/types/package-checks/duplicate-detection/cache/payload.d.ts +4 -0
- package/types/package-checks/duplicate-detection/cache/store.d.ts +18 -0
- package/types/package-checks/duplicate-detection/default-check.d.ts +11 -0
- package/types/package-checks/duplicate-detection/execution.d.ts +11 -0
- package/types/package-checks/duplicate-detection/final-data.d.ts +5 -0
- package/types/package-checks/duplicate-detection/jscpd/availability.d.ts +19 -0
- package/types/package-checks/duplicate-detection/jscpd/command-path.d.ts +1 -0
- package/types/package-checks/duplicate-detection/jscpd/command-resolution.d.ts +23 -0
- package/types/package-checks/duplicate-detection/jscpd/json-report.d.ts +2 -0
- package/types/package-checks/duplicate-detection/jscpd/scanner-contract.d.ts +11 -0
- package/types/package-checks/duplicate-detection/jscpd/scanner.d.ts +21 -0
- package/types/package-checks/duplicate-detection/jscpd/scoped-fragments.d.ts +4 -0
- package/types/package-checks/duplicate-detection/measurement-model.d.ts +36 -0
- package/types/package-checks/duplicate-detection/measurement.d.ts +14 -0
- package/types/package-checks/duplicate-detection/options-resolution.d.ts +3 -0
- package/types/package-checks/duplicate-detection/options-validation.d.ts +1 -0
- package/types/package-checks/duplicate-detection/options.d.ts +65 -0
- package/types/package-checks/duplicate-detection/project-revision.d.ts +1 -0
- package/types/package-checks/duplicate-detection/records.d.ts +22 -0
- package/types/package-checks/file-metrics/constructor.d.ts +11 -0
- package/types/package-checks/file-metrics/execution.d.ts +11 -0
- package/types/package-checks/file-metrics/final-data.d.ts +5 -0
- package/types/package-checks/file-metrics/measurement-model.d.ts +12 -0
- package/types/package-checks/file-metrics/measurement.d.ts +13 -0
- package/types/package-checks/file-metrics/options-resolution.d.ts +3 -0
- package/types/package-checks/file-metrics/options-validation.d.ts +3 -0
- package/types/package-checks/file-metrics/options.d.ts +75 -0
- package/types/package-checks/file-metrics/records.d.ts +43 -0
- package/types/package-checks/file-metrics/scc/availability.d.ts +18 -0
- package/types/package-checks/file-metrics/scc/csv.d.ts +1 -0
- package/types/package-checks/file-metrics/scc/parser.d.ts +25 -0
- package/types/package-checks/file-metrics/scc/scanner.d.ts +14 -0
- package/types/package-checks/final-data-parsing.d.ts +9 -0
- package/types/package-checks/function-metrics/analysis.d.ts +10 -0
- package/types/package-checks/function-metrics/constructor.d.ts +11 -0
- package/types/package-checks/function-metrics/execution.d.ts +7 -0
- package/types/package-checks/function-metrics/final-data.d.ts +5 -0
- package/types/package-checks/function-metrics/lizard/availability.d.ts +11 -0
- package/types/package-checks/function-metrics/lizard/csv.d.ts +1 -0
- package/types/package-checks/function-metrics/lizard/parser.d.ts +17 -0
- package/types/package-checks/function-metrics/lizard/scanner.d.ts +15 -0
- package/types/package-checks/function-metrics/measurement-model.d.ts +26 -0
- package/types/package-checks/function-metrics/measurement.d.ts +21 -0
- package/types/package-checks/function-metrics/options-resolution.d.ts +3 -0
- package/types/package-checks/function-metrics/options-validation.d.ts +3 -0
- package/types/package-checks/function-metrics/options.d.ts +76 -0
- package/types/package-checks/function-metrics/records.d.ts +37 -0
- package/types/package-checks/function-metrics/target-files.d.ts +3 -0
- package/types/package-checks/host-environment/error-message.d.ts +1 -0
- package/types/package-checks/host-environment/filesystem.d.ts +19 -0
- package/types/package-checks/host-environment/git.d.ts +13 -0
- package/types/package-checks/host-environment/path.d.ts +3 -0
- package/types/package-checks/host-environment/process/command.d.ts +7 -0
- package/types/package-checks/host-environment/process/contract.d.ts +50 -0
- package/types/package-checks/host-environment/process/env.d.ts +16 -0
- package/types/package-checks/host-environment/process/failure.d.ts +4 -0
- package/types/package-checks/host-environment/process/result.d.ts +2 -0
- package/types/package-checks/host-environment/process/runner.d.ts +3 -0
- package/types/package-checks/json-document/strict-document.d.ts +35 -0
- package/types/package-checks/json-schema-validation/default-check.d.ts +11 -0
- package/types/package-checks/json-schema-validation/execution-stages.d.ts +27 -0
- package/types/package-checks/json-schema-validation/final-data.d.ts +15 -0
- package/types/package-checks/json-schema-validation/issue-collector.d.ts +12 -0
- package/types/package-checks/json-schema-validation/json-schema-validation.d.ts +42 -0
- package/types/package-checks/json-schema-validation/options-resolution.d.ts +3 -0
- package/types/package-checks/json-schema-validation/options-validation.d.ts +2 -0
- package/types/package-checks/json-schema-validation/options.d.ts +53 -0
- package/types/package-checks/json-schema-validation/reference-resolver.d.ts +23 -0
- package/types/package-checks/json-schema-validation/remote-response.d.ts +2 -0
- package/types/package-checks/json-schema-validation/schema-engine.d.ts +33 -0
- package/types/package-checks/json-schema-validation/schema-policy.d.ts +17 -0
- package/types/package-checks/json-validation/default-check.d.ts +11 -0
- package/types/package-checks/json-validation/final-data.d.ts +10 -0
- package/types/package-checks/json-validation/json-validation.d.ts +28 -0
- package/types/package-checks/json-validation/options-resolution.d.ts +3 -0
- package/types/package-checks/json-validation/options-validation.d.ts +2 -0
- package/types/package-checks/json-validation/options.d.ts +13 -0
- package/types/package-checks/maintenance-reminders/assessment-results.d.ts +10 -0
- package/types/package-checks/maintenance-reminders/final-data.d.ts +47 -0
- package/types/package-checks/maintenance-reminders/maintenance-reminders.d.ts +111 -0
- package/types/package-checks/maintenance-reminders/maintenance-support.d.ts +7 -0
- package/types/package-checks/maintenance-reminders/measurement.d.ts +10 -0
- package/types/package-checks/maintenance-reminders/options-validation.d.ts +3 -0
- package/types/package-checks/markdown-link-validation/default-check.d.ts +27 -0
- package/types/package-checks/markdown-link-validation/execution.d.ts +12 -0
- package/types/package-checks/markdown-link-validation/filesystem-probes.d.ts +10 -0
- package/types/package-checks/markdown-link-validation/final-data.d.ts +10 -0
- package/types/package-checks/markdown-link-validation/local-resolution.d.ts +92 -0
- package/types/package-checks/markdown-link-validation/local-resolver.d.ts +5 -0
- package/types/package-checks/markdown-link-validation/markdown-parser.d.ts +37 -0
- package/types/package-checks/markdown-link-validation/options-resolution.d.ts +3 -0
- package/types/package-checks/markdown-link-validation/options-validation.d.ts +2 -0
- package/types/package-checks/markdown-link-validation/options.d.ts +43 -0
- package/types/package-checks/markdown-link-validation/records.d.ts +37 -0
- package/types/package-checks/markdown-link-validation/resolver-engine.d.ts +15 -0
- package/types/package-checks/markdown-link-validation/target-descriptor.d.ts +5 -0
- package/types/package-checks/markdown-link-validation/traversal-result.d.ts +12 -0
- package/types/package-checks/project-files/collection.d.ts +9 -0
- package/types/package-checks/project-files/config-glob.d.ts +5 -0
- package/types/package-checks/project-files/configuration.d.ts +31 -0
- package/types/package-checks/project-files/exact-input-measurement.d.ts +12 -0
- package/types/package-checks/project-files/file-fingerprint.d.ts +7 -0
- package/types/package-checks/project-files/gitlink-revision.d.ts +9 -0
- package/types/package-checks/project-files/gitlink-worktree.d.ts +26 -0
- package/types/package-checks/project-files/input-eligibility.d.ts +7 -0
- package/types/package-checks/project-files/reported-path.d.ts +1 -0
- package/types/package-checks/project-files/revision-paths.d.ts +12 -0
- package/types/package-checks/project-files/revision-worktree-files.d.ts +5 -0
- package/types/project-definition/check-tree/authoring.d.ts +41 -0
- package/types/project-definition/check-tree/materialization.d.ts +4 -0
- package/types/project-definition/check-tree/resolution.d.ts +25 -0
- package/types/project-definition/output-defaults.d.ts +14 -0
- package/types/project-definition/output-validation.d.ts +3 -0
- package/types/project-definition/project-definition-validation.d.ts +6 -0
- package/types/project-definition/project-definition.d.ts +88 -0
- package/types/project-run/aggregation.d.ts +7 -0
- package/types/project-run/check-execution/callback.d.ts +24 -0
- package/types/project-run/check-execution/dependencies.d.ts +9 -0
- package/types/project-run/check-execution/execution-finalization.d.ts +18 -0
- package/types/project-run/check-execution/execution-settlement.d.ts +41 -0
- package/types/project-run/check-execution/messages.d.ts +3 -0
- package/types/project-run/check-execution/plan.d.ts +10 -0
- package/types/project-run/check-execution/preflight-result.d.ts +23 -0
- package/types/project-run/check-execution/preflight.d.ts +27 -0
- package/types/project-run/check-execution/resolved-checks.d.ts +51 -0
- package/types/project-run/check-execution/terminal-result.d.ts +27 -0
- package/types/project-run/completion.d.ts +14 -0
- package/types/project-run/controls/contract.d.ts +24 -0
- package/types/project-run/controls/outputs-override-validation.d.ts +3 -0
- package/types/project-run/controls/validation-result.d.ts +14 -0
- package/types/project-run/controls/validation.d.ts +3 -0
- package/types/project-run/diagnostic-logging/diagnostic-detail-rendering.d.ts +11 -0
- package/types/project-run/diagnostic-logging/logger.d.ts +33 -0
- package/types/project-run/invocation-creation.d.ts +12 -0
- package/types/project-run/invocation.d.ts +34 -0
- package/types/project-run/machine-publication.d.ts +10 -0
- package/types/project-run/output-configuration.d.ts +3 -0
- package/types/project-run/output-status.d.ts +21 -0
- package/types/project-run/progress-rendering/presentation.d.ts +28 -0
- package/types/project-run/progress-rendering/renderer-formatting.d.ts +23 -0
- package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +24 -0
- package/types/project-run/progress-rendering/renderer.d.ts +44 -0
- package/types/project-run/project-context.d.ts +7 -0
- package/types/project-run/result.d.ts +99 -0
- package/types/project-run/run.d.ts +18 -0
- package/types/project-run/task-scheduler/execution-state.d.ts +67 -0
- package/types/project-run/task-scheduler/graph-validation.d.ts +11 -0
- package/types/project-run/task-scheduler/graph.d.ts +40 -0
- package/types/project-run/task-scheduler/scheduler-admission-decision.d.ts +8 -0
- package/types/project-run/task-scheduler/scheduler-blocker-summary.d.ts +4 -0
- package/types/project-run/task-scheduler/scheduler-decision-inspection.d.ts +24 -0
- package/types/project-run/task-scheduler/scheduler-decision-model.d.ts +94 -0
- package/types/project-run/task-scheduler/scheduler-decision.d.ts +8 -0
- package/types/project-run/task-scheduler/scheduler.d.ts +3 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# `jsonSchemaValidation`
|
|
2
|
+
|
|
3
|
+
返回 [README 的随包 Check 概览](../../README.md#随包提供的-check)。
|
|
4
|
+
|
|
5
|
+
## 用途
|
|
6
|
+
|
|
7
|
+
本页说明 `jsonSchemaValidation` 的 options、terminal effects 与安全边界。该 Check 使用显式 schema registry 与
|
|
8
|
+
instance bindings 验证选定的 JSON instances。`jsonSchemaValidation(options?)` 补齐默认值并返回可直接放入 Project
|
|
9
|
+
Definition `checks` 的普通 Check。
|
|
10
|
+
|
|
11
|
+
## 参数与默认配置
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
{
|
|
15
|
+
files: defaultProjectFileSelection,
|
|
16
|
+
maximumBytes: 1_048_576,
|
|
17
|
+
schemaIdentity: { mode: "require-match" },
|
|
18
|
+
referenceResolution: { mode: "offline" },
|
|
19
|
+
schemas: [],
|
|
20
|
+
bindings: []
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
上面的代码块是无参调用物化后的完整 resolved options;`defaultProjectFileSelection` 是 package root 公开的同值深冻结
|
|
25
|
+
基线;完整默认 glob 可直接从该 public value 读取。六个顶层 authoring fields 都可省略;`files` 内的三个字段也可分别省略。显式 `schemas`、`bindings` 与
|
|
26
|
+
`referenceResolution.sources` 数组是完整替换值。`schemaIdentity` 与
|
|
27
|
+
`referenceResolution` 的显式 discriminated branch 必须自身完整。无参调用不会发现 schema;由于 `bindings: []`,它结算为
|
|
28
|
+
`not-applicable / no-bindings`。constructor 返回后若通过普通对象组合替换 `check.options`,replacement 才必须保留完整
|
|
29
|
+
resolved shape。
|
|
30
|
+
|
|
31
|
+
- `files` 完整定义本 Check 可读取的 local paths;source 可选 `filesystem` 或 `git-worktree`,selected path 必须命中
|
|
32
|
+
`include` 且不能命中 `exclude`。filesystem 不解释 `.gitignore`;git-worktree 使用已跟踪文件和未被 Git 标准忽略
|
|
33
|
+
规则排除的未跟踪文件。schema 与 instance 的读取 scope 是 selected set;来源不可用时 Check 结算为
|
|
34
|
+
`unavailable`,不会切换到另一来源。
|
|
35
|
+
- `maximumBytes` 是每个 schema 或 instance document 的 raw byte 上限,必须是正安全整数。
|
|
36
|
+
- `schemas` 每项为 `{ id, path }`;schema `id` 是 1–256 字符且没有 credentials、query 或 fragment 的绝对
|
|
37
|
+
`https:` / `urn:` identity,`path` 是 1–512 字符的 normalized project-relative 小写 `.json` path。schema ID 与 path
|
|
38
|
+
分别唯一。
|
|
39
|
+
- `bindings` 每项为 `{ id, instancePath, schemaId }`;binding `id` 匹配 `[A-Za-z0-9][A-Za-z0-9_.-]{0,127}`,
|
|
40
|
+
`instancePath` 使用同一小写 `.json` path 规则,`schemaId` 必须引用已声明 schema。binding ID 与
|
|
41
|
+
`(instancePath, schemaId)` 分别唯一。
|
|
42
|
+
- `schemaIdentity.mode` 为 `require-match`、`configuration-authoritative` 或 `document-authoritative`,决定 root `$id`
|
|
43
|
+
与 engine identity 的关系。
|
|
44
|
+
- `referenceResolution` 默认 `{ mode: "offline" }`。`allowlisted` branch 可包含 package-fixed
|
|
45
|
+
`{ kind: "bundled", catalog: "json-schema-2020-12" }` 或显式
|
|
46
|
+
`{ kind: "https", id, origin, pathPrefix }` sources。
|
|
47
|
+
|
|
48
|
+
### `schemaIdentity` 根身份规则
|
|
49
|
+
|
|
50
|
+
`schemaIdentity` 是整个 Check 共用的 policy,不按 schema 分别选择:
|
|
51
|
+
|
|
52
|
+
| `mode` | root `$id` 与 engine identity |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| `require-match`(默认) | root `$id` 必须等于 `schemas[].id`,该 configured ID 同时作为 engine identity。 |
|
|
55
|
+
| `configuration-authoritative` | configured ID 是 engine identity;object schema 的 invocation-local compile copy 把 root `$id` 设为该 ID,已读取文档与发布 facts 不被改写;boolean schema 直接使用 configured identity。 |
|
|
56
|
+
| `document-authoritative` | root `$id` 必须是安全 identity,并成为 engine identity;configured ID 继续作为 binding 与 Record 使用的 public label。 |
|
|
57
|
+
|
|
58
|
+
### `referenceResolution` 引用解析规则
|
|
59
|
+
|
|
60
|
+
默认 `offline` 仍允许 package-fixed JSON Schema 2020-12 catalog,但不发起网络请求。只有以下显式 branch 才允许读取
|
|
61
|
+
额外 HTTPS schema:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
{
|
|
65
|
+
mode: "allowlisted",
|
|
66
|
+
sources: [
|
|
67
|
+
{ kind: "bundled", catalog: "json-schema-2020-12" },
|
|
68
|
+
{
|
|
69
|
+
kind: "https",
|
|
70
|
+
id: "urn:example:schema-source",
|
|
71
|
+
origin: "https://schemas.example.test",
|
|
72
|
+
pathPrefix: "/catalog/"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`sources` 必须非空,最多包含一个 bundled catalog;HTTPS source 的 `id` 与 `(origin, pathPrefix)` 分别唯一。HTTPS source
|
|
79
|
+
`id` 使用与 schema ID 相同的 1–256 字符安全 identity;`origin` 是最长 200 字符且不含 path、credentials、query 或
|
|
80
|
+
fragment 的精确 HTTPS origin;`pathPrefix` 最长 256 字符,从 `/` 开始,非 root prefix 以 `/` 结束,并排除 `\\`、`//`、
|
|
81
|
+
`.` / `..` path segments、query 与 fragment。它不接受 headers、redirect、environment registry 或 callback loader。
|
|
82
|
+
|
|
83
|
+
## 工作原理
|
|
84
|
+
|
|
85
|
+
constructor 先关闭 authoring shape、补齐并冻结 resolved options。Run 的全局 preflight barrier 验证完整 options 后,zero
|
|
86
|
+
bindings 结算为 `not-applicable`;其它调用从 `files`
|
|
87
|
+
selection 建立可读 path set,加载 registered schemas,按 identity policy 编译,再验证每个 binding。selected set
|
|
88
|
+
之外的声明 path 形成 `out-of-scope` domain issue,读取 scope 保持为 selected set。schema document、compile 与
|
|
89
|
+
instance issues 形成 Records。
|
|
90
|
+
|
|
91
|
+
## 效果与结果
|
|
92
|
+
|
|
93
|
+
`issueCount === 0` 时 outcome 为 `passed`;`issueCount > 0` 时 outcome 为 `failed`。正常 final data 恰为:
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
{
|
|
97
|
+
schemaCount: number,
|
|
98
|
+
bindingCount: number,
|
|
99
|
+
validBindingCount: number,
|
|
100
|
+
invalidBindingCount: number,
|
|
101
|
+
blockedBindingCount: number,
|
|
102
|
+
issueCount: number,
|
|
103
|
+
reportedIssueCount: number,
|
|
104
|
+
issuesTruncated: boolean
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`validBindingCount + invalidBindingCount + blockedBindingCount = bindingCount`。Check 验证全部可处理 bindings,但只发布
|
|
109
|
+
前 100 条 issue Records;`issueCount` 保留真实总数,`reportedIssueCount` 是已发布数量,`issuesTruncated` 表示是否省略
|
|
110
|
+
后续 Records。
|
|
111
|
+
|
|
112
|
+
| Record `kind` | Record data 的领域字段 |
|
|
113
|
+
| --- | --- |
|
|
114
|
+
| `schema-document` | `schemaId`、`path`、document `reason` |
|
|
115
|
+
| `schema-compile` | `schemaId`、`path`、closed compile `reason` |
|
|
116
|
+
| `instance-document` | `bindingId`、`schemaId`、`path`、document `reason` |
|
|
117
|
+
| `keyword-violation` | `bindingId`、`schemaId`、`path`、sanitized `pointer` 与 known `keyword` / `"other"` |
|
|
118
|
+
|
|
119
|
+
document `reason` 是 `too-large | bom | invalid-utf8 | invalid-json | duplicate-key | out-of-scope`。compile issue、未授权或
|
|
120
|
+
不受支持的 reference 都是可信 domain issue;compile `reason` 使用以下 closed set:
|
|
121
|
+
|
|
122
|
+
```text
|
|
123
|
+
duplicate-engine-id
|
|
124
|
+
invalid-document-id
|
|
125
|
+
invalid-schema
|
|
126
|
+
missing-schema-id
|
|
127
|
+
schema-id-mismatch
|
|
128
|
+
unapproved-reference
|
|
129
|
+
unsupported-reference
|
|
130
|
+
remote-document-invalid
|
|
131
|
+
remote-schema-id-mismatch
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
这些 issue 会让正常 outcome 为 `failed`,不同于 engine 或 transport `unavailable`。Records 不包含 source/response
|
|
135
|
+
bytes、raw reference、credentials、engine message 或 stack。
|
|
136
|
+
|
|
137
|
+
`failed` outcome 携带 `schema-validation-issues` error message;当 Records 因 100 条上限被截断时,message 会直接说明。
|
|
138
|
+
由本 Check 结算的 `unavailable` 使用对应 `reason.code` 提供可操作 error message;`passed` 与 `not-applicable` 不合成人为
|
|
139
|
+
提示。
|
|
140
|
+
|
|
141
|
+
用返回 Check 的 `check.parseData(value)` 或 package root 的 `parseJsonSchemaValidationData(value)` 验证 final data。两者返回
|
|
142
|
+
`JsonSchemaValidationFinalData`;Records 与原因可用 `JsonSchemaValidationRecordData`、
|
|
143
|
+
`JsonSchemaValidationRecordReason`、`JsonSchemaDocumentReason` 和 `JsonSchemaValidationUnavailableCode` 标注,authoring /
|
|
144
|
+
resolved options types 是 `JsonSchemaValidationOptions` 与 `ResolvedJsonSchemaValidationOptions`。parser 验证字段、计数等式、
|
|
145
|
+
100 条 reported issue 上限与 truncation 不变量,不匹配时抛出 `TypeError`。
|
|
146
|
+
|
|
147
|
+
## `not-applicable` 与 `unavailable`
|
|
148
|
+
|
|
149
|
+
binding 数量为零时结算为 `not-applicable / no-bindings`。`unavailable.reason.code` 只使用以下值:
|
|
150
|
+
|
|
151
|
+
| `reason.code` | 触发边界 | 调用方检查项 |
|
|
152
|
+
| --- | --- | --- |
|
|
153
|
+
| `invalid-options` | constructor 返回后形成的 replacement options 不是完整 closed resolved shape | 重新调用 `jsonSchemaValidation(options)`,或检查所有 branches、ID、path、唯一性与 binding 引用 |
|
|
154
|
+
| `scan-input-unavailable` | configured file source 无法形成 selected set | 检查 project root、目录权限或 Git worktree 状态 |
|
|
155
|
+
| `document-unavailable` | 某个 selected local schema 或 instance 无法完成受限读取 | 检查文件是否仍存在、是否可读,以及运行期间是否被替换 |
|
|
156
|
+
| `reference-transport-unavailable` | 已授权 HTTPS reference 的 transport 无法完成 | 检查 allowlist、网络与远端可用性;不要把它解释为 schema violation |
|
|
157
|
+
| `engine-unavailable` | schema engine 或内部 settlement 无法形成可信完整结果 | 检查 package/runtime 状态,并保留已接受的 Records 供诊断 |
|
|
158
|
+
| `execution-cancelled` | invocation signal 在可观察工作边界取消本 Check | 检查调用方取消原因,不把结果解释为 clean validation |
|
|
159
|
+
|
|
160
|
+
任一 `unavailable` 分支都不提供 final data;此前已经接受的 issue Records 继续保留。
|
|
161
|
+
|
|
162
|
+
通用 preflight 语法见 [options preflight 与 execution](../api-mechanics.md#options-preflight-与-execution)。
|
|
163
|
+
|
|
164
|
+
## I/O 与安全边界
|
|
165
|
+
|
|
166
|
+
默认 `offline` mode 的 network request 数为零。`allowlisted` HTTPS source 以精确 origin 与 path prefix 定义
|
|
167
|
+
remote scope;每次 response 最多读取 1,048,576 bytes,单次请求 timeout 为 5 秒。request 不携带 credentials 或 custom
|
|
168
|
+
headers,也不跟随 redirect。remote reference authorization 保持 local file selection 不变。
|
|
169
|
+
|
|
170
|
+
## 最小用法
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
import { defineConfig, jsonSchemaValidation, run } from "@zxyycom/vibe-check";
|
|
174
|
+
|
|
175
|
+
const configured = {
|
|
176
|
+
schemas: [{ id: "urn:example:config", path: "schema/config.json" }],
|
|
177
|
+
bindings: [
|
|
178
|
+
{ id: "config", instancePath: "config.json", schemaId: "urn:example:config" }
|
|
179
|
+
]
|
|
180
|
+
};
|
|
181
|
+
const schemaCheck = jsonSchemaValidation(configured);
|
|
182
|
+
const result = await run(defineConfig({ checks: [schemaCheck] }));
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 适用边界
|
|
186
|
+
|
|
187
|
+
该 Check 适用于显式 schema registry 与 bindings。JSON Schema `format` 使用 2020-12 annotation 语义,不加载 format
|
|
188
|
+
assertion plugin;`$async`、`$dynamicRef` 与 `$recursiveRef` 在 schema 位置形成 compile issue。JSON instance 中同名的普通
|
|
189
|
+
property 不受该限制。需要独立检查 JSON document integrity 时,可以另外运行
|
|
190
|
+
[`jsonValidation`](json-validation.md);它不是本 Check 的隐式 prerequisite。
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# `jsonValidation`
|
|
2
|
+
|
|
3
|
+
返回 [README 的随包 Check 概览](../../README.md#随包提供的-check)。
|
|
4
|
+
|
|
5
|
+
## 用途
|
|
6
|
+
|
|
7
|
+
本页说明 `jsonValidation` 的 options、terminal effects 与安全边界。该 Check 严格验证自己选择且以小写
|
|
8
|
+
`.json` 结尾的文档,并报告 syntax error、duplicate key 与 incomplete document。`jsonValidation(options?)` 补齐默认值并
|
|
9
|
+
返回可直接放入 Project Definition `checks` 的普通 Check。
|
|
10
|
+
|
|
11
|
+
## 参数与默认配置
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
{
|
|
15
|
+
files: {
|
|
16
|
+
source: "filesystem",
|
|
17
|
+
include: ["**/*.json"],
|
|
18
|
+
exclude: defaultProjectFileSelection.exclude
|
|
19
|
+
},
|
|
20
|
+
maximumBytes: 1_048_576
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
上面的代码块是无参调用物化后的完整 resolved options;`exclude` 表示 constructor detached-copy 了 package root 公开
|
|
25
|
+
`defaultProjectFileSelection.exclude` 的全部条目,不是调用方必须复制的输入。authoring options 的 `files` 与
|
|
26
|
+
`maximumBytes` 都可以省略;`files.source`、`files.include` 与 `files.exclude` 也可分别省略。source 可选 `filesystem` 或
|
|
27
|
+
`git-worktree`,selected path 必须命中
|
|
28
|
+
`include` 且不能命中 `exclude`。只有其中 case-sensitive `path.endsWith(".json")` 的 paths 成为输入。
|
|
29
|
+
filesystem 不解释 `.gitignore`;git-worktree 使用已跟踪文件和未被 Git 标准忽略规则排除的未跟踪文件。两种来源都使用
|
|
30
|
+
本页 `files` branch 的 `include` / `exclude` glob;来源不可用时 Check 结算为 `unavailable`,不会切换到另一来源。
|
|
31
|
+
`maximumBytes` 是每个 raw JSON document 的 byte 上限,必须是正安全整数。显式 `include` / `exclude` 数组是完整替换值;
|
|
32
|
+
例如显式 `include: ["**/*"]` 会选择其它类型,Check 将为每个不受支持的 path 发布拒绝 Finding,而不会静默过滤。
|
|
33
|
+
constructor 返回后若通过普通对象组合替换 `check.options`,该 replacement 才必须提供完整 resolved shape。
|
|
34
|
+
|
|
35
|
+
### 定制 authoring options
|
|
36
|
+
|
|
37
|
+
下面只把输入限制到 `config/**`;constructor 保留默认 source、exclude 与 `maximumBytes`:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { jsonValidation } from "@zxyycom/vibe-check";
|
|
41
|
+
|
|
42
|
+
const configJsonValidation = jsonValidation({
|
|
43
|
+
files: { include: ["config/**/*.json"] }
|
|
44
|
+
});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 工作原理
|
|
48
|
+
|
|
49
|
+
constructor 先关闭 authoring shape、补齐并冻结 resolved options。Run 的全局 preflight barrier 再验证该完整 options;
|
|
50
|
+
execution 收集 selected paths,按小写 `.json` suffix 完整分成 accepted/rejected。每个 rejected path 先产生 supplemental
|
|
51
|
+
Record,accepted path 才通过 strict-document boundary 读取和解析;无效文档产生另一种 supplemental Record。
|
|
52
|
+
|
|
53
|
+
## 效果与结果
|
|
54
|
+
|
|
55
|
+
`invalidFileCount === 0` 时 outcome 为 `passed`;`invalidFileCount > 0` 时 outcome 为 `failed`。正常 final data 恰为:
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
{
|
|
59
|
+
scannedFileCount: number,
|
|
60
|
+
validFileCount: number,
|
|
61
|
+
invalidFileCount: number,
|
|
62
|
+
issueCount: number,
|
|
63
|
+
rejectedInputCount: number
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
其中 `scannedFileCount = validFileCount + invalidFileCount`,
|
|
68
|
+
`issueCount = invalidFileCount + rejectedInputCount`。只有 `invalidFileCount > 0` 使 Check failed;仅有 rejected input 时
|
|
69
|
+
outcome 是带 warning 的 `passed`。每个 invalid file 最多形成一条 Record;Record ID 是 project-root-relative path,data
|
|
70
|
+
恰为:
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
{
|
|
74
|
+
path: string,
|
|
75
|
+
reason: "too-large" | "bom" | "invalid-utf8" | "invalid-json" | "duplicate-key"
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`reason` 表示 strict-document boundary 观察到的第一项文档问题;Record 不包含 JSON 内容、key、pointer、parser message
|
|
80
|
+
或 stack。
|
|
81
|
+
|
|
82
|
+
每个 rejected selected path 产生一条 ID 为 `/input-rejected/<path>` 的 Record:
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
{
|
|
86
|
+
blocking: false,
|
|
87
|
+
kind: "input-rejected",
|
|
88
|
+
path: string,
|
|
89
|
+
reason: "unsupported-file-type"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`failed` outcome 携带 `invalid-json-documents` error message,并引导调用方按 path / reason 检查 Records。由本 Check 结算的
|
|
94
|
+
`unavailable` 使用对应 `reason.code` 提供可操作 error message;存在 rejected input 时另附一条汇总数量的
|
|
95
|
+
`input-rejected` warning,逐路径事实仍只在 Records 中。无 Finding 的 `passed` 与 `not-applicable` 不合成人为提示。
|
|
96
|
+
|
|
97
|
+
用返回 Check 的 `check.parseData(value)` 或 package root 的 `parseJsonValidationData(value)` 验证 final data。两者返回
|
|
98
|
+
`JsonValidationFinalData`;Record 与原因可分别用 `JsonValidationRecordData`、`JsonValidationRecordReason` 和
|
|
99
|
+
`JsonValidationUnavailableCode` 标注,authoring / resolved options types 是 `JsonValidationOptions` 与
|
|
100
|
+
`ResolvedJsonValidationOptions`。parser 验证字段、非负安全整数以及计数等式,不匹配时抛出 `TypeError`。
|
|
101
|
+
|
|
102
|
+
## `not-applicable` 与 `unavailable`
|
|
103
|
+
|
|
104
|
+
selected path 数量为零时结算为 `not-applicable / no-eligible-input`。selected 非空但全部 rejected 时,以带 final data、
|
|
105
|
+
Records 与 warning 的 `passed` 结算。`unavailable.reason.code` 只使用以下值:
|
|
106
|
+
|
|
107
|
+
| `reason.code` | 触发边界 | 调用方检查项 |
|
|
108
|
+
| --- | --- | --- |
|
|
109
|
+
| `invalid-options` | constructor 返回后形成的 replacement options 不是完整 closed resolved shape | 重新调用 `jsonValidation(options)`,或恢复完整 `files` 与 `maximumBytes` |
|
|
110
|
+
| `scan-input-unavailable` | 所选 filesystem 或 git-worktree 无法形成候选集合 | 检查 project root、目录权限或 Git worktree 状态 |
|
|
111
|
+
| `document-unavailable` | 某个已选 JSON 文件无法完成受限读取 | 检查文件是否仍存在、是否可读,以及运行期间是否被替换 |
|
|
112
|
+
| `execution-cancelled` | invocation signal 在可观察工作边界取消本 Check | 检查调用方取消原因,不把结果解释为 clean validation |
|
|
113
|
+
|
|
114
|
+
后续文件导致 `unavailable` 时,分类阶段的 rejected-input Records 与先前已接受的 invalid-file Records 均保留,但本 Check
|
|
115
|
+
不提供 final data;对应 rejection warning 也随 terminal error message 一起保留。通用 preflight 语法见
|
|
116
|
+
[options preflight 与 execution](../api-mechanics.md#options-preflight-与-execution)。
|
|
117
|
+
|
|
118
|
+
## I/O 与安全边界
|
|
119
|
+
|
|
120
|
+
I/O scope 是 `files` 选中且通过小写 `.json` eligibility 的本地文件;rejected path 只形成事实,不读取内容。external
|
|
121
|
+
command 和 network request 数均为零。
|
|
122
|
+
|
|
123
|
+
## 最小用法
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
import { defineConfig, jsonValidation, run } from "@zxyycom/vibe-check";
|
|
127
|
+
const result = await run(defineConfig({ checks: [jsonValidation()] }));
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## 适用边界
|
|
131
|
+
|
|
132
|
+
该 Check 适用于 JSON document integrity;需要按 schema 评估字段与结构时使用
|
|
133
|
+
[`jsonSchemaValidation`](json-schema-validation.md)。
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# `maintenanceReminders`
|
|
2
|
+
|
|
3
|
+
返回 [README 的随包 Check 概览](../../README.md#随包提供的-check)。
|
|
4
|
+
|
|
5
|
+
## 用途
|
|
6
|
+
|
|
7
|
+
本页说明 `maintenanceReminders` 的输入、terminal effects 与安全边界。`maintenanceReminders(entries)` 创建一个固定
|
|
8
|
+
ID 为 `maintenance-reminders` 的 Check,用 Git first-parent history 提醒定期复核维护事项。
|
|
9
|
+
|
|
10
|
+
## 参数与默认配置
|
|
11
|
+
|
|
12
|
+
构造函数接收以下 `entries`;它不接受 Git executable override:
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
ReadonlyArray<{
|
|
16
|
+
id: string,
|
|
17
|
+
baseCommit: string,
|
|
18
|
+
limits: {
|
|
19
|
+
commits?: number,
|
|
20
|
+
changedLines?: number
|
|
21
|
+
},
|
|
22
|
+
message: string,
|
|
23
|
+
mode?: "advisory" | "enforcing"
|
|
24
|
+
}>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- `id` 在本次构造中唯一,并使用小写短横线命名,例如 `documentation-review`。
|
|
28
|
+
- `baseCommit` 是最近一次真实复核对应的完整 40 或 64 位十六进制 commit ID。Product 不会自动推进它。
|
|
29
|
+
- `limits` 至少提供一个字段;`commits` 与 `changedLines` 都必须是正安全整数,实际值**严格超过**上限时才到期。
|
|
30
|
+
- `message` 是到期或不可测量时展示的非空人读正文。
|
|
31
|
+
- `mode` 省略时为 `advisory`;`enforcing` 使到期或不可测量的条目令所属 Check 失败。
|
|
32
|
+
|
|
33
|
+
constructor 把输入固定为完整 options `{ entries, git: { executable: "git" } }`。所属 Check 的 preflight 在任何 Check
|
|
34
|
+
execution 开始前验证 unknown、sparse、duplicate 或 malformed entries;失败时当前 Check 以
|
|
35
|
+
`unavailable / invalid-options` 结算。
|
|
36
|
+
|
|
37
|
+
## 工作原理
|
|
38
|
+
|
|
39
|
+
measurement source 是从 `baseCommit` 到 `HEAD` 的 committed first-parent history 与 Git `numstat`。commit count 不包含
|
|
40
|
+
基线自身;changed lines 是每个后续 commit 相对其 first parent 的 additions + deletions,binary 行数按零计。workspace 与
|
|
41
|
+
staging area 不参与。维护者完成真实复核后,把 `baseCommit` 推进到新的复核基线。
|
|
42
|
+
|
|
43
|
+
## 效果与结果
|
|
44
|
+
|
|
45
|
+
该 Check 正常完成时返回 `{ entries }`,并按作者顺序保存以下 discriminated entry assessments。package root 导出的
|
|
46
|
+
`MaintenanceReminderAssessment` 与 `MaintenanceRemindersFinalData` 对应以下 shape:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
type EntryAssessment =
|
|
50
|
+
| Readonly<{
|
|
51
|
+
id: string;
|
|
52
|
+
mode: "advisory" | "enforcing";
|
|
53
|
+
assessment: "clear" | "due";
|
|
54
|
+
baseCommit: string;
|
|
55
|
+
headCommit: string;
|
|
56
|
+
commitCount: number;
|
|
57
|
+
changedLines: number;
|
|
58
|
+
exceeded: readonly ("commits" | "changed-lines")[];
|
|
59
|
+
}>
|
|
60
|
+
| Readonly<{
|
|
61
|
+
id: string;
|
|
62
|
+
mode: "advisory" | "enforcing";
|
|
63
|
+
assessment: "unavailable";
|
|
64
|
+
baseCommit: string;
|
|
65
|
+
headCommit: string | null;
|
|
66
|
+
commitCount: null;
|
|
67
|
+
changedLines: null;
|
|
68
|
+
exceeded: readonly [];
|
|
69
|
+
reason:
|
|
70
|
+
| "head-unavailable"
|
|
71
|
+
| "head-invalid"
|
|
72
|
+
| "first-parent-history-unavailable"
|
|
73
|
+
| "first-parent-history-invalid"
|
|
74
|
+
| "base-commit-unavailable"
|
|
75
|
+
| "base-not-first-parent-ancestor"
|
|
76
|
+
| "numstat-unavailable"
|
|
77
|
+
| "numstat-invalid";
|
|
78
|
+
}>;
|
|
79
|
+
|
|
80
|
+
type FinalData = Readonly<{ entries: readonly EntryAssessment[] }>;
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
| 条目评估 | `advisory`(默认) | `enforcing` |
|
|
84
|
+
| --- | --- | --- |
|
|
85
|
+
| `clear` | 无 message,不贡献失败。 | 无 message,不贡献失败。 |
|
|
86
|
+
| `due` | 附加 warning,不贡献失败。 | 附加 error,并令所属 Check 失败。 |
|
|
87
|
+
| `unavailable` | 附加 warning,不贡献失败。 | 附加 error,并令所属 Check 失败。 |
|
|
88
|
+
|
|
89
|
+
`due` message code 是 `maintenance-reminder-due`,`unavailable` message code 是
|
|
90
|
+
`maintenance-reminder-unavailable`。任一 `enforcing` entry 为 `due` 或 `unavailable` 时 Check outcome 为 `failed`;否则为
|
|
91
|
+
`passed`。`due` message 正文是 `<id>: <message>`;`unavailable` 还在末尾追加 ` (<reason>)`。该 Check 不发布
|
|
92
|
+
supplemental Records;条目也不会成为独立 Check、aggregation target 或 progress row。
|
|
93
|
+
|
|
94
|
+
启用 machine publication 时,entries 只作为一项普通 `maintenance-reminders` Check 的 final data;entry 不形成独立
|
|
95
|
+
machine row,terminal messages 也不进入 machine files。
|
|
96
|
+
|
|
97
|
+
用返回 Check 的 `check.parseData(value)` 或 package root 的 `parseMaintenanceRemindersData(value)` 验证 final data。parser
|
|
98
|
+
验证每个 discriminated assessment、commit ID、唯一 reminder ID、计数、`exceeded` 与 reason 不变量,并返回
|
|
99
|
+
`MaintenanceRemindersFinalData`;不匹配时抛出 `TypeError`。输入与不可用分支还可分别使用 `MaintenanceReminder`、
|
|
100
|
+
`MaintenanceReminderOptions`、`MaintenanceReminderUnavailableReason` 与 `MaintenanceRemindersUnavailableCode` 标注。
|
|
101
|
+
|
|
102
|
+
## `not-applicable` 与 `unavailable`
|
|
103
|
+
|
|
104
|
+
该 Check 没有 `not-applicable` 分支;空 entries 返回 `passed` 与 `{ entries: [] }`,不产生 messages 或 Records。
|
|
105
|
+
|
|
106
|
+
Git/历史测量的普通失败会保留完整 final data,并把受影响条目标记为 `assessment: "unavailable"`;后续条目仍继续评估:
|
|
107
|
+
|
|
108
|
+
| entry `reason` | 含义与处理方式 |
|
|
109
|
+
| --- | --- |
|
|
110
|
+
| `head-unavailable` | 无法执行或读取 `HEAD`;检查 Git command 与 repository 状态。 |
|
|
111
|
+
| `head-invalid` | `HEAD` output 不是完整 commit ID;检查 Git wrapper 或 repository object。 |
|
|
112
|
+
| `first-parent-history-unavailable` | 无法读取 `HEAD` 的 first-parent history;检查 Git command 与 history。 |
|
|
113
|
+
| `first-parent-history-invalid` | history 为空、包含非法 ID 或没有从 `HEAD` 开始;检查 Git wrapper 或 repository object。 |
|
|
114
|
+
| `base-commit-unavailable` | 本 entry 的 `baseCommit` 无法解析;换成 repository 中存在的完整 commit ID。 |
|
|
115
|
+
| `base-not-first-parent-ancestor` | 基线不在 `HEAD` 的 first-parent 链上;选择该链中的真实复核 commit。 |
|
|
116
|
+
| `numstat-unavailable` | 无法读取某个 commit 的 `numstat`;检查 Git command 与 repository object。 |
|
|
117
|
+
| `numstat-invalid` | `numstat` 无法安全解析或累计;检查 Git wrapper output。 |
|
|
118
|
+
|
|
119
|
+
只有以下 whole-Check 边界结算为 `unavailable` 且不提供 final data:
|
|
120
|
+
|
|
121
|
+
| `reason.code` | 触发边界 |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| `invalid-options` | constructor 接收的 entries,或之后通过普通对象组合形成的完整 options,未通过 closed policy 校验。 |
|
|
124
|
+
| `execution-cancelled` | invocation signal 在可观察工作边界取消本 Check。 |
|
|
125
|
+
| `maintenance-reminders-internal-failure` | Product 无法形成完整、有序的评估数组。 |
|
|
126
|
+
|
|
127
|
+
每个 whole-Check `unavailable` 都携带与 `reason.code` 相同 code 的 error message,并指出应恢复 options、检查取消原因或
|
|
128
|
+
检查 package/runtime integrity。entry-level `unavailable` 仍按上一节保留 final data 与项目编写的提醒正文。
|
|
129
|
+
|
|
130
|
+
通用 preflight 语法见 [options preflight 与 execution](../api-mechanics.md#options-preflight-与-execution)。
|
|
131
|
+
|
|
132
|
+
## I/O 与安全边界
|
|
133
|
+
|
|
134
|
+
I/O boundary 是本机 Git 对 committed first-parent history 的 read-only 查询。workspace、staging area 与 network
|
|
135
|
+
request 数为零,baseline 更新由维护者提交。
|
|
136
|
+
|
|
137
|
+
## 最小用法
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
import { defineConfig, maintenanceReminders, run } from "@zxyycom/vibe-check";
|
|
141
|
+
const check = maintenanceReminders([
|
|
142
|
+
{
|
|
143
|
+
id: "docs",
|
|
144
|
+
baseCommit: "0123456789abcdef0123456789abcdef01234567",
|
|
145
|
+
limits: { commits: 40 },
|
|
146
|
+
message: "Review docs."
|
|
147
|
+
}
|
|
148
|
+
]);
|
|
149
|
+
const result = await run(defineConfig({ checks: [check] }));
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
示例 commit ID 只是 shape 占位值,必须替换为当前项目 first-parent history 中的真实复核 commit。若直接使用不存在的
|
|
153
|
+
占位值,条目会得到 `assessment: "unavailable"`;这不是一次成功的维护基线配置。
|
|
154
|
+
|
|
155
|
+
## 适用边界
|
|
156
|
+
|
|
157
|
+
该 Check 适用于按 commit count 或 changed-line count 提醒维护复核。是否把 `enforcing` failure 转为调用级阻断,
|
|
158
|
+
由 `RunControls.checkAggregation` policy 决定。
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# `markdownLinkValidation`
|
|
2
|
+
|
|
3
|
+
返回 [README 的随包 Check 概览](../../README.md#随包提供的-check)。
|
|
4
|
+
|
|
5
|
+
## 用途
|
|
6
|
+
|
|
7
|
+
本页说明 `markdownLinkValidation` 的 options、terminal effects 与安全边界。该 Check 离线验证 selected Markdown
|
|
8
|
+
sources 中的本机链接、图片目标与标题锚点。`markdownLinkValidation(options?)` 补齐默认值并返回可直接放入 Project
|
|
9
|
+
Definition `checks` 的普通 Check。
|
|
10
|
+
|
|
11
|
+
## 参数与默认配置
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
{
|
|
15
|
+
files: {
|
|
16
|
+
source: "filesystem",
|
|
17
|
+
include: ["**/*.[mM][dD]", "**/*.[mM][aA][rR][kK][dD][oO][wW][nN]"],
|
|
18
|
+
exclude: defaultProjectFileSelection.exclude
|
|
19
|
+
},
|
|
20
|
+
findingPolicy: "non-blocking",
|
|
21
|
+
requireExistingTargets: true,
|
|
22
|
+
validateSameDocumentAnchors: true,
|
|
23
|
+
validateCrossDocumentAnchors: true,
|
|
24
|
+
rootExternalTargetMode: "report",
|
|
25
|
+
requireNonEmptyDirectories: false,
|
|
26
|
+
limits: {
|
|
27
|
+
maxMarkdownBytes: 1_048_576,
|
|
28
|
+
maxOccurrences: 10_000,
|
|
29
|
+
maxTargetReads: 1_000
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
上面的代码块是无参调用物化后的完整 resolved options;`exclude` 表示 constructor detached-copy 了 package root 公开
|
|
35
|
+
`defaultProjectFileSelection.exclude` 的全部条目,不是调用方必须复制的输入。所有顶层 authoring fields 都可省略,
|
|
36
|
+
`files` 与 `limits` 内的字段也可分别省略。显式 `include` / `exclude` 数组是完整替换值;显式宽泛 include 选中的非 Markdown
|
|
37
|
+
path 会产生拒绝 Finding,而不是被静默过滤。
|
|
38
|
+
|
|
39
|
+
- `files` 定义 Markdown source selection;source 可选 `filesystem` 或 `git-worktree`,selected path 必须命中
|
|
40
|
+
`include` 且不能命中 `exclude`。filesystem 不解释 `.gitignore`;git-worktree 使用已跟踪文件和未被 Git 标准忽略
|
|
41
|
+
规则排除的未跟踪文件。其中 extension 大小写不敏感的 `.md` / `.markdown` 成为 sources,direct targets 仅用于
|
|
42
|
+
resolution;来源不可用时 Check 结算为 `unavailable`,不会切换到另一来源。
|
|
43
|
+
- `findingPolicy` 为 `blocking | non-blocking`,默认 `non-blocking`。它只结算本 Check 的 normal local-reference
|
|
44
|
+
findings:`blocking` 使 finding outcome 为 `failed`,`non-blocking` 保留相同的 Records、计数与 final data,但以
|
|
45
|
+
`passed` outcome 和 warning message 提示;它不会改写 Project Run、aggregation 或 Gate outcome。
|
|
46
|
+
- `requireExistingTargets` 控制缺失 direct local target 是否是 finding。
|
|
47
|
+
- `validateSameDocumentAnchors` / `validateCrossDocumentAnchors` 分别控制当前文档与直接 Markdown target 的 heading
|
|
48
|
+
lookup。
|
|
49
|
+
- `rootExternalTargetMode` 为 `ignore | report | validate`;只有显式 `validate` 才授权 bounded root-external target I/O。
|
|
50
|
+
- `requireNonEmptyDirectories` 启用时最多读取 direct directory 的一个 entry,不递归遍历。
|
|
51
|
+
- `limits` 限制单文档 bytes、全部 semantic occurrences 与 direct target reads;constructor 会补齐该 branch 中省略的
|
|
52
|
+
fields。`maxMarkdownBytes` 不得超过 `16_777_216`,`maxOccurrences` 不得超过 `100_000`,
|
|
53
|
+
`maxTargetReads` 不得超过 `10_000`。
|
|
54
|
+
|
|
55
|
+
### 定制 authoring options
|
|
56
|
+
|
|
57
|
+
下面只扫描 `docs/**`、排除 `docs/fixtures/**`、忽略 project root 外目标,并保留其它 defaults:
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { defaultProjectFileSelection, markdownLinkValidation } from "@zxyycom/vibe-check";
|
|
61
|
+
|
|
62
|
+
const documentationLinks = markdownLinkValidation({
|
|
63
|
+
files: {
|
|
64
|
+
...defaultProjectFileSelection,
|
|
65
|
+
exclude: [...defaultProjectFileSelection.exclude, "docs/fixtures/**"],
|
|
66
|
+
include: ["docs/**/*.md", "docs/**/*.markdown"]
|
|
67
|
+
},
|
|
68
|
+
rootExternalTargetMode: "ignore"
|
|
69
|
+
});
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 工作原理
|
|
73
|
+
|
|
74
|
+
Check 验证 options,收集 Markdown source paths,每份 source decode / parse 一次,再处理 supported inline、
|
|
75
|
+
reference 与 autolink occurrences。完整 selected paths 先按 `.md` / `.markdown` suffix 分为 accepted/rejected,每个
|
|
76
|
+
rejected path 产生 supplemental Record,只有 accepted path 成为 source。target file、directory 与 GitHub-priority heading
|
|
77
|
+
anchor 按上面 policy 做 bounded validation;每个 link finding 产生另一种 supplemental Record。direct target 可以参与当前
|
|
78
|
+
occurrence validation,source discovery 始终由 `files` selection 决定。
|
|
79
|
+
|
|
80
|
+
受支持 occurrence 包含 inline link/image、已定义的 full/collapsed/shortcut reference、explicit autolink 和选定的 GFM
|
|
81
|
+
autolink literal。YAML front matter、code/fenced code、HTML attribute、普通 prose URL 与 undefined reference 不进入本
|
|
82
|
+
Check 的 occurrence 集合。HTTP(S)、`mailto:` 与其它非本地 target 只分类后停止,不产生 remote reachability 结论。
|
|
83
|
+
|
|
84
|
+
## 效果与结果
|
|
85
|
+
|
|
86
|
+
没有 normal link finding 时 outcome 为 `passed`;有 normal link finding 时,`findingPolicy: "blocking"` 为 `failed`,
|
|
87
|
+
`findingPolicy: "non-blocking"` 为 `passed`。input rejection 固定 non-blocking,不受该 policy 影响。两种 finding policy 都
|
|
88
|
+
保留相同的 final data 与每 finding 一条 Record;blocking link finding 附带 `invalid-local-links` error message,
|
|
89
|
+
non-blocking link finding 附带同 code 的 warning message。正常 final data 恰为:
|
|
90
|
+
|
|
91
|
+
```ts
|
|
92
|
+
{
|
|
93
|
+
sourceFileCount: number,
|
|
94
|
+
occurrenceCount: number,
|
|
95
|
+
targetReadCount: number,
|
|
96
|
+
findingCount: number,
|
|
97
|
+
rejectedInputCount: number
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
`occurrenceCount` 包含所有 parser-semantic occurrences,包括没有进入 local target validation 的项;
|
|
102
|
+
`targetReadCount` 统计进入 direct endpoint validation 的 occurrence;`findingCount - rejectedInputCount` 是 normal link
|
|
103
|
+
finding 数量并且不超过 `occurrenceCount`。每个 normal link finding 恰好形成一条 Record,data 恰为:
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
{
|
|
107
|
+
occurrenceKind: "link" | "image",
|
|
108
|
+
range: {
|
|
109
|
+
start: { line: number, column: number },
|
|
110
|
+
end: { line: number, column: number }
|
|
111
|
+
},
|
|
112
|
+
reason:
|
|
113
|
+
| "missing-target"
|
|
114
|
+
| "target-outside-project-root"
|
|
115
|
+
| "empty-directory"
|
|
116
|
+
| "anchor-on-directory"
|
|
117
|
+
| "anchor-target-not-markdown"
|
|
118
|
+
| "missing-anchor"
|
|
119
|
+
| "unsupported-target-type",
|
|
120
|
+
sourcePath: string,
|
|
121
|
+
target:
|
|
122
|
+
| { kind: "same-document" | "project-file" | "project-directory" | "project-path", path: string, fragment: string | null }
|
|
123
|
+
| { kind: "outside-project-root" }
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
`range` 使用 one-based、end-exclusive 的 decoded UTF-16 line/column。`outside-project-root` descriptor 不携带 target
|
|
128
|
+
path 或 fragment。
|
|
129
|
+
|
|
130
|
+
每个 rejected selected path 产生一条 ID 为 `/input-rejected/<path>` 的 Record:
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
{
|
|
134
|
+
blocking: false,
|
|
135
|
+
kind: "input-rejected",
|
|
136
|
+
path: string,
|
|
137
|
+
reason: "unsupported-file-type"
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
blocking finding 的 `failed` outcome 携带 `invalid-local-links` error message;non-blocking finding 的 `passed` outcome
|
|
142
|
+
携带同 code 的 warning message;两者都引导调用方检查 Records 的 source range、target 与 reason。存在 rejected input 时
|
|
143
|
+
另附一条 `input-rejected` warning,只汇总数量而不省略逐路径 Record。由本 Check 结算的 `unavailable` 使用对应
|
|
144
|
+
`reason.code` 提供可操作 error message;无 Finding 的 `passed` 与 `not-applicable` 不合成人为提示。
|
|
145
|
+
|
|
146
|
+
用返回 Check 的 `check.parseData(value)` 或 package root 的 `parseMarkdownLinkValidationData(value)` 验证 final data。两者返回
|
|
147
|
+
`MarkdownLinkValidationFinalData`;Records 与原因可用 `MarkdownLinkValidationRecordData`、
|
|
148
|
+
`MarkdownLinkFindingReason` 和 `MarkdownLinkValidationUnavailableReason` 标注,authoring / resolved options types 是
|
|
149
|
+
`MarkdownLinkValidationOptions` 与 `ResolvedMarkdownLinkValidationOptions`。parser 验证字段与计数上界,不匹配时抛出
|
|
150
|
+
`TypeError`。
|
|
151
|
+
|
|
152
|
+
## `not-applicable` 与 `unavailable`
|
|
153
|
+
|
|
154
|
+
selected path 数量为零时结算为 `not-applicable / no-eligible-input`。selected 非空但全部 rejected 时,不解析 source,直接以
|
|
155
|
+
带 final data、Records 与 warning 的 `passed` 结算。`unavailable.reason.code` 使用以下受控值:
|
|
156
|
+
|
|
157
|
+
| `reason.code` | 触发边界与调用方检查项 |
|
|
158
|
+
| --- | --- |
|
|
159
|
+
| `invalid-options` | constructor 返回后形成的 replacement options 不是完整 closed resolved shape;重新调用 `markdownLinkValidation(options)` 或恢复完整字段。 |
|
|
160
|
+
| `project-root-unavailable` | project root 无法 canonicalize;检查路径存在性与访问权限。 |
|
|
161
|
+
| `source-unavailable` | source collection、读取、decode 或 containment 失败;检查 source 与 file-selection 来源。 |
|
|
162
|
+
| `source-too-large` | 某个 selected Markdown source 超过 `maxMarkdownBytes`。 |
|
|
163
|
+
| `markdown-parse-failed` | selected source 无法形成完整 parser facts。 |
|
|
164
|
+
| `invalid-local-destination` | local destination 无法按受支持的 path/URI grammar 安全解析。 |
|
|
165
|
+
| `target-unavailable` | target containment probe、I/O、decode、parse 或 directory read 失败;Markdown anchor target 超过 `maxMarkdownBytes` 也属于此分支。 |
|
|
166
|
+
| `occurrence-limit-exceeded` | semantic occurrence 总数超过 `maxOccurrences`。 |
|
|
167
|
+
| `target-read-limit-exceeded` | direct endpoint validation work 超过 `maxTargetReads`。 |
|
|
168
|
+
| `cancelled` | invocation signal 取消本 Check;不要把结果解释为 clean validation。 |
|
|
169
|
+
|
|
170
|
+
这些边界不发布 partial link-finding Records,也不提供 final data;若 selected classification 已完成,已发布的
|
|
171
|
+
rejected-input Records 与对应 warning 仍保留。通用 preflight 语法见
|
|
172
|
+
[options preflight 与 execution](../api-mechanics.md#options-preflight-与-execution)。
|
|
173
|
+
|
|
174
|
+
## I/O 与安全边界
|
|
175
|
+
|
|
176
|
+
source I/O scope 只包含通过 `.md` / `.markdown` eligibility 的 accepted paths;rejected path 不读取内容。resolver I/O scope
|
|
177
|
+
是本地 filesystem,HTTP、DNS、TLS 与 redirect request 数为零。默认 `report` mode 对 root-external
|
|
178
|
+
target 形成 finding,显式 `validate` mode 授权 bounded read。published facts 排除 raw external absolute path、target
|
|
179
|
+
bytes 与 remote credentials。
|
|
180
|
+
|
|
181
|
+
## 最小用法
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
import { defineConfig, markdownLinkValidation, run } from "@zxyycom/vibe-check";
|
|
185
|
+
const result = await run(defineConfig({ checks: [markdownLinkValidation()] }));
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 适用边界
|
|
189
|
+
|
|
190
|
+
该 Check 只评估本机 target 与 heading-anchor integrity,不评估 remote URL reachability 或 HTML attribute links。项目需要
|
|
191
|
+
这些能力时,应另外提供明确拥有网络或 HTML parsing policy 的 Check;当前 `markdownLinkValidation` 不会隐式扩展到这些
|
|
192
|
+
输入。
|