@jasonbelmonti/markdown-engine 1.0.0 → 3.0.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 +48 -0
- package/README.md +113 -56
- package/SECURITY.md +5 -3
- package/dist/api/annotation-source-range.d.ts +7 -0
- package/dist/api/annotation-source-range.d.ts.map +1 -0
- package/dist/api/annotation-source-range.js +103 -0
- package/dist/api/annotation-source-range.js.map +1 -0
- package/dist/api/annotation-target-candidate.d.ts +10 -0
- package/dist/api/annotation-target-candidate.d.ts.map +1 -0
- package/dist/api/annotation-target-candidate.js +14 -0
- package/dist/api/annotation-target-candidate.js.map +1 -0
- package/dist/api/annotation-target-cloning.d.ts +5 -0
- package/dist/api/annotation-target-cloning.d.ts.map +1 -0
- package/dist/api/annotation-target-cloning.js +122 -0
- package/dist/api/annotation-target-cloning.js.map +1 -0
- package/dist/api/annotation-target-diagnostics.d.ts +8 -0
- package/dist/api/annotation-target-diagnostics.d.ts.map +1 -0
- package/dist/api/annotation-target-diagnostics.js +57 -0
- package/dist/api/annotation-target-diagnostics.js.map +1 -0
- package/dist/api/annotation-target-validation.d.ts +2 -2
- package/dist/api/annotation-target-validation.d.ts.map +1 -1
- package/dist/api/annotation-target-validation.js +5 -272
- package/dist/api/annotation-target-validation.js.map +1 -1
- package/dist/api/contracts.d.ts +2 -1
- package/dist/api/contracts.d.ts.map +1 -1
- package/dist/api/contracts.js +1 -0
- package/dist/api/contracts.js.map +1 -1
- package/dist/api/declarative-validation.d.ts +13 -0
- package/dist/api/declarative-validation.d.ts.map +1 -0
- package/dist/api/declarative-validation.js +85 -0
- package/dist/api/declarative-validation.js.map +1 -0
- package/dist/api/document-queries.d.ts.map +1 -1
- package/dist/api/document-queries.js +74 -3
- package/dist/api/document-queries.js.map +1 -1
- package/dist/api/document.d.ts +44 -0
- package/dist/api/document.d.ts.map +1 -1
- package/dist/api/engine-node-attributes.d.ts +15 -0
- package/dist/api/engine-node-attributes.d.ts.map +1 -0
- package/dist/api/engine-node-attributes.js +99 -0
- package/dist/api/engine-node-attributes.js.map +1 -0
- package/dist/api/normalize.d.ts.map +1 -1
- package/dist/api/normalize.js +22 -1
- package/dist/api/normalize.js.map +1 -1
- package/dist/api/serialize.js +2 -14
- package/dist/api/serialize.js.map +1 -1
- package/dist/cli/args.d.ts +6 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +33 -25
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/declarative-validation.d.ts +18 -0
- package/dist/cli/declarative-validation.d.ts.map +1 -0
- package/dist/cli/declarative-validation.js +126 -0
- package/dist/cli/declarative-validation.js.map +1 -0
- package/dist/cli/files.d.ts +1 -0
- package/dist/cli/files.d.ts.map +1 -1
- package/dist/cli/files.js +3 -0
- package/dist/cli/files.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +18 -3
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/validate-args.d.ts +18 -0
- package/dist/cli/validate-args.d.ts.map +1 -0
- package/dist/cli/validate-args.js +131 -0
- package/dist/cli/validate-args.js.map +1 -0
- package/dist/declarative-validation/applicability/classifier.d.ts +18 -0
- package/dist/declarative-validation/applicability/classifier.d.ts.map +1 -0
- package/dist/declarative-validation/applicability/classifier.js +37 -0
- package/dist/declarative-validation/applicability/classifier.js.map +1 -0
- package/dist/declarative-validation/applicability/index.d.ts +2 -0
- package/dist/declarative-validation/applicability/index.d.ts.map +1 -0
- package/dist/declarative-validation/applicability/index.js +2 -0
- package/dist/declarative-validation/applicability/index.js.map +1 -0
- package/dist/declarative-validation/assertions/context.d.ts +8 -0
- package/dist/declarative-validation/assertions/context.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/context.js +2 -0
- package/dist/declarative-validation/assertions/context.js.map +1 -0
- package/dist/declarative-validation/assertions/diagnostics.d.ts +25 -0
- package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/diagnostics.js +96 -0
- package/dist/declarative-validation/assertions/diagnostics.js.map +1 -0
- package/dist/declarative-validation/assertions/document-text-offsets.d.ts +3 -0
- package/dist/declarative-validation/assertions/document-text-offsets.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/document-text-offsets.js +32 -0
- package/dist/declarative-validation/assertions/document-text-offsets.js.map +1 -0
- package/dist/declarative-validation/assertions/evaluator.d.ts +5 -0
- package/dist/declarative-validation/assertions/evaluator.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/evaluator.js +49 -0
- package/dist/declarative-validation/assertions/evaluator.js.map +1 -0
- package/dist/declarative-validation/assertions/exists.d.ts +4 -0
- package/dist/declarative-validation/assertions/exists.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/exists.js +8 -0
- package/dist/declarative-validation/assertions/exists.js.map +1 -0
- package/dist/declarative-validation/assertions/frontmatter-required.d.ts +9 -0
- package/dist/declarative-validation/assertions/frontmatter-required.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/frontmatter-required.js +15 -0
- package/dist/declarative-validation/assertions/frontmatter-required.js.map +1 -0
- package/dist/declarative-validation/assertions/group-evaluator.d.ts +6 -0
- package/dist/declarative-validation/assertions/group-evaluator.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/group-evaluator.js +57 -0
- package/dist/declarative-validation/assertions/group-evaluator.js.map +1 -0
- package/dist/declarative-validation/assertions/id-targets.d.ts +44 -0
- package/dist/declarative-validation/assertions/id-targets.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/id-targets.js +391 -0
- package/dist/declarative-validation/assertions/id-targets.js.map +1 -0
- package/dist/declarative-validation/assertions/id-tokens.d.ts +15 -0
- package/dist/declarative-validation/assertions/id-tokens.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/id-tokens.js +27 -0
- package/dist/declarative-validation/assertions/id-tokens.js.map +1 -0
- package/dist/declarative-validation/assertions/ids.d.ts +9 -0
- package/dist/declarative-validation/assertions/ids.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/ids.js +128 -0
- package/dist/declarative-validation/assertions/ids.js.map +1 -0
- package/dist/declarative-validation/assertions/index.d.ts +4 -0
- package/dist/declarative-validation/assertions/index.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/index.js +4 -0
- package/dist/declarative-validation/assertions/index.js.map +1 -0
- package/dist/declarative-validation/assertions/literal-text.d.ts +2 -0
- package/dist/declarative-validation/assertions/literal-text.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/literal-text.js +14 -0
- package/dist/declarative-validation/assertions/literal-text.js.map +1 -0
- package/dist/declarative-validation/assertions/normalized-source-ranges.d.ts +3 -0
- package/dist/declarative-validation/assertions/normalized-source-ranges.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/normalized-source-ranges.js +105 -0
- package/dist/declarative-validation/assertions/normalized-source-ranges.js.map +1 -0
- package/dist/declarative-validation/assertions/ordering.d.ts +6 -0
- package/dist/declarative-validation/assertions/ordering.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/ordering.js +71 -0
- package/dist/declarative-validation/assertions/ordering.js.map +1 -0
- package/dist/declarative-validation/assertions/references.d.ts +9 -0
- package/dist/declarative-validation/assertions/references.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/references.js +354 -0
- package/dist/declarative-validation/assertions/references.js.map +1 -0
- package/dist/declarative-validation/assertions/sections-required.d.ts +9 -0
- package/dist/declarative-validation/assertions/sections-required.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/sections-required.js +49 -0
- package/dist/declarative-validation/assertions/sections-required.js.map +1 -0
- package/dist/declarative-validation/assertions/table-column-coverage.d.ts +9 -0
- package/dist/declarative-validation/assertions/table-column-coverage.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/table-column-coverage.js +108 -0
- package/dist/declarative-validation/assertions/table-column-coverage.js.map +1 -0
- package/dist/declarative-validation/assertions/table-columns-required.d.ts +9 -0
- package/dist/declarative-validation/assertions/table-columns-required.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/table-columns-required.js +31 -0
- package/dist/declarative-validation/assertions/table-columns-required.js.map +1 -0
- package/dist/declarative-validation/assertions/text-length.d.ts +9 -0
- package/dist/declarative-validation/assertions/text-length.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/text-length.js +40 -0
- package/dist/declarative-validation/assertions/text-length.js.map +1 -0
- package/dist/declarative-validation/assertions/text-occurrence-count.d.ts +9 -0
- package/dist/declarative-validation/assertions/text-occurrence-count.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/text-occurrence-count.js +22 -0
- package/dist/declarative-validation/assertions/text-occurrence-count.js.map +1 -0
- package/dist/declarative-validation/assertions/text.d.ts +9 -0
- package/dist/declarative-validation/assertions/text.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/text.js +32 -0
- package/dist/declarative-validation/assertions/text.js.map +1 -0
- package/dist/declarative-validation/compiler/applicability-plan.d.ts +5 -0
- package/dist/declarative-validation/compiler/applicability-plan.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/applicability-plan.js +22 -0
- package/dist/declarative-validation/compiler/applicability-plan.js.map +1 -0
- package/dist/declarative-validation/compiler/assertion-builders.d.ts +7 -0
- package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/assertion-builders.js +237 -0
- package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -0
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts +20 -0
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/assertion-shapes.js +219 -0
- package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -0
- package/dist/declarative-validation/compiler/assertions.d.ts +6 -0
- package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/assertions.js +35 -0
- package/dist/declarative-validation/compiler/assertions.js.map +1 -0
- package/dist/declarative-validation/compiler/compatibility.d.ts +4 -0
- package/dist/declarative-validation/compiler/compatibility.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/compatibility.js +29 -0
- package/dist/declarative-validation/compiler/compatibility.js.map +1 -0
- package/dist/declarative-validation/compiler/diagnostics.d.ts +3 -0
- package/dist/declarative-validation/compiler/diagnostics.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/diagnostics.js +9 -0
- package/dist/declarative-validation/compiler/diagnostics.js.map +1 -0
- package/dist/declarative-validation/compiler/group-plans.d.ts +6 -0
- package/dist/declarative-validation/compiler/group-plans.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/group-plans.js +67 -0
- package/dist/declarative-validation/compiler/group-plans.js.map +1 -0
- package/dist/declarative-validation/compiler/index.d.ts +5 -0
- package/dist/declarative-validation/compiler/index.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/index.js +199 -0
- package/dist/declarative-validation/compiler/index.js.map +1 -0
- package/dist/declarative-validation/compiler/plan.d.ts +126 -0
- package/dist/declarative-validation/compiler/plan.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/plan.js +2 -0
- package/dist/declarative-validation/compiler/plan.js.map +1 -0
- package/dist/declarative-validation/compiler/rule-fields.d.ts +6 -0
- package/dist/declarative-validation/compiler/rule-fields.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/rule-fields.js +40 -0
- package/dist/declarative-validation/compiler/rule-fields.js.map +1 -0
- package/dist/declarative-validation/diagnostics/index.d.ts +7 -0
- package/dist/declarative-validation/diagnostics/index.d.ts.map +1 -0
- package/dist/declarative-validation/diagnostics/index.js +2 -0
- package/dist/declarative-validation/diagnostics/index.js.map +1 -0
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts +10 -0
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts.map +1 -0
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js +51 -0
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js.map +1 -0
- package/dist/declarative-validation/evidence/index.d.ts +14 -0
- package/dist/declarative-validation/evidence/index.d.ts.map +1 -0
- package/dist/declarative-validation/evidence/index.js +38 -0
- package/dist/declarative-validation/evidence/index.js.map +1 -0
- package/dist/declarative-validation/profile/applicability-schema.d.ts +4 -0
- package/dist/declarative-validation/profile/applicability-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/applicability-schema.js +24 -0
- package/dist/declarative-validation/profile/applicability-schema.js.map +1 -0
- package/dist/declarative-validation/profile/assertion-schema.d.ts +5 -0
- package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/assertion-schema.js +420 -0
- package/dist/declarative-validation/profile/assertion-schema.js.map +1 -0
- package/dist/declarative-validation/profile/data-closure.d.ts +6 -0
- package/dist/declarative-validation/profile/data-closure.d.ts.map +1 -0
- package/dist/declarative-validation/profile/data-closure.js +167 -0
- package/dist/declarative-validation/profile/data-closure.js.map +1 -0
- package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts +7 -0
- package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts.map +1 -0
- package/dist/declarative-validation/profile/direct-profile-diagnostics.js +81 -0
- package/dist/declarative-validation/profile/direct-profile-diagnostics.js.map +1 -0
- package/dist/declarative-validation/profile/group-schema.d.ts +5 -0
- package/dist/declarative-validation/profile/group-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/group-schema.js +55 -0
- package/dist/declarative-validation/profile/group-schema.js.map +1 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.d.ts +12 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.d.ts.map +1 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.js +32 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.js.map +1 -0
- package/dist/declarative-validation/profile/index.d.ts +153 -0
- package/dist/declarative-validation/profile/index.d.ts.map +1 -0
- package/dist/declarative-validation/profile/index.js +2 -0
- package/dist/declarative-validation/profile/index.js.map +1 -0
- package/dist/declarative-validation/profile/materialization.d.ts +9 -0
- package/dist/declarative-validation/profile/materialization.d.ts.map +1 -0
- package/dist/declarative-validation/profile/materialization.js +112 -0
- package/dist/declarative-validation/profile/materialization.js.map +1 -0
- package/dist/declarative-validation/profile/parse.d.ts +3 -0
- package/dist/declarative-validation/profile/parse.d.ts.map +1 -0
- package/dist/declarative-validation/profile/parse.js +89 -0
- package/dist/declarative-validation/profile/parse.js.map +1 -0
- package/dist/declarative-validation/profile/schema-values.d.ts +14 -0
- package/dist/declarative-validation/profile/schema-values.d.ts.map +1 -0
- package/dist/declarative-validation/profile/schema-values.js +81 -0
- package/dist/declarative-validation/profile/schema-values.js.map +1 -0
- package/dist/declarative-validation/profile/schema.d.ts +9 -0
- package/dist/declarative-validation/profile/schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/schema.js +159 -0
- package/dist/declarative-validation/profile/schema.js.map +1 -0
- package/dist/declarative-validation/profile/selector-schema.d.ts +4 -0
- package/dist/declarative-validation/profile/selector-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/selector-schema.js +145 -0
- package/dist/declarative-validation/profile/selector-schema.js.map +1 -0
- package/dist/declarative-validation/profile/syntax-version.d.ts +7 -0
- package/dist/declarative-validation/profile/syntax-version.d.ts.map +1 -0
- package/dist/declarative-validation/profile/syntax-version.js +11 -0
- package/dist/declarative-validation/profile/syntax-version.js.map +1 -0
- package/dist/declarative-validation/results/clone-rule-result.d.ts +6 -0
- package/dist/declarative-validation/results/clone-rule-result.d.ts.map +1 -0
- package/dist/declarative-validation/results/clone-rule-result.js +125 -0
- package/dist/declarative-validation/results/clone-rule-result.js.map +1 -0
- package/dist/declarative-validation/results/create-result.d.ts +15 -0
- package/dist/declarative-validation/results/create-result.d.ts.map +1 -0
- package/dist/declarative-validation/results/create-result.js +58 -0
- package/dist/declarative-validation/results/create-result.js.map +1 -0
- package/dist/declarative-validation/results/index.d.ts +4 -0
- package/dist/declarative-validation/results/index.d.ts.map +1 -0
- package/dist/declarative-validation/results/index.js +3 -0
- package/dist/declarative-validation/results/index.js.map +1 -0
- package/dist/declarative-validation/results/skipped-rule-result.d.ts +10 -0
- package/dist/declarative-validation/results/skipped-rule-result.d.ts.map +1 -0
- package/dist/declarative-validation/results/skipped-rule-result.js +18 -0
- package/dist/declarative-validation/results/skipped-rule-result.js.map +1 -0
- package/dist/declarative-validation/results/types.d.ts +77 -0
- package/dist/declarative-validation/results/types.d.ts.map +1 -0
- package/dist/declarative-validation/results/types.js +2 -0
- package/dist/declarative-validation/results/types.js.map +1 -0
- package/dist/declarative-validation/selectors/index.d.ts +57 -0
- package/dist/declarative-validation/selectors/index.d.ts.map +1 -0
- package/dist/declarative-validation/selectors/index.js +149 -0
- package/dist/declarative-validation/selectors/index.js.map +1 -0
- package/dist/declarative-validation/selectors/source.d.ts +8 -0
- package/dist/declarative-validation/selectors/source.d.ts.map +1 -0
- package/dist/declarative-validation/selectors/source.js +57 -0
- package/dist/declarative-validation/selectors/source.js.map +1 -0
- package/dist/declarative-validation/selectors/table-targets.d.ts +36 -0
- package/dist/declarative-validation/selectors/table-targets.d.ts.map +1 -0
- package/dist/declarative-validation/selectors/table-targets.js +149 -0
- package/dist/declarative-validation/selectors/table-targets.js.map +1 -0
- package/dist/declarative-validation/selectors/table-text.d.ts +4 -0
- package/dist/declarative-validation/selectors/table-text.d.ts.map +1 -0
- package/dist/declarative-validation/selectors/table-text.js +16 -0
- package/dist/declarative-validation/selectors/table-text.js.map +1 -0
- package/dist/{ir → internal}/document-node-walk.d.ts +5 -0
- package/dist/internal/document-node-walk.d.ts.map +1 -0
- package/dist/internal/document-node-walk.js +36 -0
- package/dist/internal/document-node-walk.js.map +1 -0
- package/dist/internal/stable-json.d.ts +3 -0
- package/dist/internal/stable-json.d.ts.map +1 -0
- package/dist/internal/stable-json.js +17 -0
- package/dist/internal/stable-json.js.map +1 -0
- package/dist/ir/document-derived-views.d.ts.map +1 -1
- package/dist/ir/document-derived-views.js +2 -0
- package/dist/ir/document-derived-views.js.map +1 -1
- package/dist/ir/document-link-reference-views.d.ts +3 -0
- package/dist/ir/document-link-reference-views.d.ts.map +1 -0
- package/dist/ir/document-link-reference-views.js +150 -0
- package/dist/ir/document-link-reference-views.js.map +1 -0
- package/dist/ir/document-link-views.d.ts.map +1 -1
- package/dist/ir/document-link-views.js +7 -8
- package/dist/ir/document-link-views.js.map +1 -1
- package/dist/ir/document-list-views.d.ts.map +1 -1
- package/dist/ir/document-list-views.js +14 -13
- package/dist/ir/document-list-views.js.map +1 -1
- package/dist/ir/document-sections.d.ts.map +1 -1
- package/dist/ir/document-sections.js +2 -4
- package/dist/ir/document-sections.js.map +1 -1
- package/dist/ir/document-table-views.js +1 -1
- package/dist/ir/document-table-views.js.map +1 -1
- package/dist/ir/document-text-spans.js +1 -1
- package/dist/ir/document-text-spans.js.map +1 -1
- package/dist/ir/document.d.ts +2 -3
- package/dist/ir/document.d.ts.map +1 -1
- package/dist/ir/document.js +1 -1
- package/dist/ir/document.js.map +1 -1
- package/dist/ir/index.d.ts +1 -0
- package/dist/ir/index.d.ts.map +1 -1
- package/dist/ir/normalization-input.d.ts +12 -0
- package/dist/ir/normalization-input.d.ts.map +1 -0
- package/dist/ir/normalization-input.js +2 -0
- package/dist/ir/normalization-input.js.map +1 -0
- package/dist/rules/code-fence-languages.d.ts.map +1 -1
- package/dist/rules/code-fence-languages.js +4 -6
- package/dist/rules/code-fence-languages.js.map +1 -1
- package/dist/rules/document-query.d.ts +0 -2
- package/dist/rules/document-query.d.ts.map +1 -1
- package/dist/rules/document-query.js +1 -17
- package/dist/rules/document-query.js.map +1 -1
- package/dist/rules/index.d.ts +2 -6
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +3 -37
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/links-allowed-schemes.d.ts.map +1 -1
- package/dist/rules/links-allowed-schemes.js +3 -2
- package/dist/rules/links-allowed-schemes.js.map +1 -1
- package/dist/rules/registry.d.ts +12 -0
- package/dist/rules/registry.d.ts.map +1 -0
- package/dist/rules/registry.js +61 -0
- package/dist/rules/registry.js.map +1 -0
- package/dist-bundled/markdown-engine-cli.mjs +26826 -0
- package/docs/contracts/api.md +665 -0
- package/docs/contracts/declarative-validation.md +842 -0
- package/docs/contracts/frontmatter.md +122 -0
- package/fixtures/declarative-validation/examples/operational-spec/fail.md +32 -0
- package/fixtures/declarative-validation/examples/operational-spec/pass.md +34 -0
- package/fixtures/declarative-validation/examples/operational-spec/profile.yaml +131 -0
- package/fixtures/declarative-validation/examples/release-checklist/fail.md +22 -0
- package/fixtures/declarative-validation/examples/release-checklist/pass.md +22 -0
- package/fixtures/declarative-validation/examples/release-checklist/profile.yaml +96 -0
- package/fixtures/declarative-validation/examples/requirements-traceability/fail.md +27 -0
- package/fixtures/declarative-validation/examples/requirements-traceability/pass.md +27 -0
- package/fixtures/declarative-validation/examples/requirements-traceability/profile.yaml +119 -0
- package/package.json +26 -6
- package/skills/profile-backed-markdown/SKILL.md +54 -0
- package/skills/profile-backed-markdown/assets/profiles/operational-spec.yaml +98 -0
- package/skills/profile-backed-markdown/references/repair-brief.md +14 -0
- package/skills/profile-backed-markdown/scripts/validate-profile-backed-markdown.mjs +590 -0
- package/dist/ir/document-node-walk.d.ts.map +0 -1
- package/dist/ir/document-node-walk.js +0 -16
- package/dist/ir/document-node-walk.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jasonbelmonti/markdown-engine",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Deterministic Markdown parsing and validation engine package.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"bugs": {
|
|
15
15
|
"url": "https://github.com/jasonbelmonti/markdown-engine/issues"
|
|
16
16
|
},
|
|
17
|
-
"homepage": "https://github.
|
|
17
|
+
"homepage": "https://jasonbelmonti.github.io/markdown-engine/",
|
|
18
18
|
"keywords": [
|
|
19
19
|
"markdown",
|
|
20
20
|
"gfm",
|
|
@@ -31,6 +31,10 @@
|
|
|
31
31
|
"types": "./dist/index.d.ts",
|
|
32
32
|
"files": [
|
|
33
33
|
"dist",
|
|
34
|
+
"dist-bundled",
|
|
35
|
+
"skills",
|
|
36
|
+
"docs/contracts",
|
|
37
|
+
"fixtures/declarative-validation/examples",
|
|
34
38
|
"CHANGELOG.md",
|
|
35
39
|
"SECURITY.md"
|
|
36
40
|
],
|
|
@@ -40,27 +44,42 @@
|
|
|
40
44
|
"scripts": {
|
|
41
45
|
"clean": "node scripts/clean-dist.mjs",
|
|
42
46
|
"build": "npm run clean && tsc -p tsconfig.json",
|
|
47
|
+
"build:cli:bundled": "node scripts/build-bundled-cli.mjs",
|
|
48
|
+
"build:cli-bundle": "node scripts/build-cli-bundle.mjs",
|
|
43
49
|
"prepack": "npm run release:verify",
|
|
44
50
|
"prepublishOnly": "npm run release:verify",
|
|
45
|
-
"release:verify": "npm run typecheck && npm test && node scripts/check-boundaries.mjs && npm run build && node scripts/prove-repeatability.mjs --runs 10 && npm run release:check-clean",
|
|
51
|
+
"release:verify": "npm run typecheck && npm test && node scripts/check-boundaries.mjs && npm run docs:rich-ir-contract && npm run docs:declarative-validation-contract && npm run audit:declarative-validation-boundary && npm run build && npm run build:cli:bundled && node scripts/prove-repeatability.mjs --runs 10 && npm run release:check-clean",
|
|
46
52
|
"release:check-clean": "git diff --check HEAD -- && git diff --exit-code HEAD --",
|
|
47
53
|
"snapshots:update:parser": "npm run build && vitest run tests/parser-fixtures.test.ts -u \"--exclude=.worktrees/**\"",
|
|
48
54
|
"snapshots:update:rules": "npm run build && vitest run tests/rules.test.ts -u \"--exclude=.worktrees/**\"",
|
|
49
|
-
"snapshots:update:rich-ir": "npm run build && vitest run tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts -u \"--exclude=.worktrees/**\"",
|
|
55
|
+
"snapshots:update:rich-ir": "npm run build && vitest run tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts tests/rich-ir-link-references.test.ts -u \"--exclude=.worktrees/**\"",
|
|
50
56
|
"snapshots:update:serialization": "npm run build && vitest run tests/serialization-repeatability.test.ts tests/boundary-inspection.test.ts -u \"--exclude=.worktrees/**\"",
|
|
51
57
|
"test:rich-ir:proving": "npm run build && vitest run tests/rich-ir-proving.test.ts \"--exclude=.worktrees/**\"",
|
|
52
58
|
"test:rich-ir:contract": "npm run build && tsc -p tsconfig.document-contract.json && vitest run tests/document-contract.test.ts \"--exclude=.worktrees/**\"",
|
|
53
59
|
"test:rich-ir:targets": "npm run build && vitest run tests/rich-ir-targets.test.ts \"--exclude=.worktrees/**\"",
|
|
54
|
-
"test:rich-ir:queries": "npm run build && vitest run tests/rich-ir-queries.test.ts \"--exclude=.worktrees/**\"",
|
|
60
|
+
"test:rich-ir:queries": "npm run build && vitest run tests/rich-ir-queries.test.ts tests/rich-ir-link-references.test.ts \"--exclude=.worktrees/**\"",
|
|
55
61
|
"test:rich-ir:annotations": "npm run build && vitest run tests/rich-ir-annotations.test.ts \"--exclude=.worktrees/**\"",
|
|
56
62
|
"test:rich-ir:compat": "npm run build && vitest run tests/rich-ir-compat.test.ts \"--exclude=.worktrees/**\"",
|
|
57
63
|
"test:rich-ir:repeatability": "npm run build && vitest run tests/rich-ir-repeatability.test.ts \"--exclude=.worktrees/**\"",
|
|
58
64
|
"test:rich-ir:downstream": "npm run build && vitest run tests/rich-ir-downstream.test.ts \"--exclude=.worktrees/**\"",
|
|
59
65
|
"audit:rich-ir-boundary": "node scripts/check-boundaries.mjs",
|
|
60
66
|
"docs:rich-ir-contract": "node scripts/check-rich-ir-contract-docs.mjs",
|
|
67
|
+
"test:validation:proving": "npm run build && vitest run tests/declarative-validation-proving.test.ts \"--exclude=.worktrees/**\"",
|
|
68
|
+
"test:validation:contract": "npm run build && tsc -p tsconfig.declarative-validation-contract.json && vitest run tests/declarative-validation-contract.test.ts \"--exclude=.worktrees/**\"",
|
|
69
|
+
"test:validation:profile": "npm run build && vitest run tests/declarative-validation-profile.test.ts \"--exclude=.worktrees/**\"",
|
|
70
|
+
"test:validation:compiler": "npm run build && vitest run tests/declarative-validation-compiler.test.ts \"--exclude=.worktrees/**\"",
|
|
71
|
+
"test:validation:selectors": "npm run build && vitest run tests/declarative-validation-selectors.test.ts \"--exclude=.worktrees/**\"",
|
|
72
|
+
"test:validation:assertions": "npm run build && vitest run tests/declarative-validation-assertions.test.ts tests/declarative-validation-table-column-coverage-fixtures.test.ts tests/declarative-validation-grouped-rules-fixtures.test.ts tests/declarative-validation-when-skipped-rules-fixtures.test.ts \"--exclude=.worktrees/**\"",
|
|
73
|
+
"test:validation:diagnostics": "npm run build && vitest run tests/declarative-validation-diagnostics.test.ts \"--exclude=.worktrees/**\"",
|
|
74
|
+
"test:validation:cli": "npm run build && vitest run tests/declarative-validation-cli.test.ts \"--exclude=.worktrees/**\"",
|
|
75
|
+
"test:validation:examples": "npm run build && vitest run tests/declarative-validation-examples.test.ts \"--exclude=.worktrees/**\"",
|
|
76
|
+
"test:validation:repeatability": "npm run build && vitest run tests/declarative-validation-repeatability.test.ts \"--exclude=.worktrees/**\" && node scripts/prove-declarative-validation-repeatability.mjs --runs 10",
|
|
77
|
+
"test:validation:downstream": "npm run build && vitest run tests/declarative-validation-downstream.test.ts \"--exclude=.worktrees/**\"",
|
|
78
|
+
"audit:declarative-validation-boundary": "node scripts/check-declarative-validation-boundary.mjs",
|
|
79
|
+
"docs:declarative-validation-contract": "node scripts/check-declarative-validation-contract-docs.mjs",
|
|
61
80
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
62
81
|
"test": "npm run build && vitest run \"--exclude=.worktrees/**\"",
|
|
63
|
-
"test:snapshots": "npm run build && vitest run tests/parser-fixtures.test.ts tests/rules.test.ts tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts tests/serialization-repeatability.test.ts \"--exclude=.worktrees/**\""
|
|
82
|
+
"test:snapshots": "npm run build && vitest run tests/parser-fixtures.test.ts tests/rules.test.ts tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts tests/rich-ir-link-references.test.ts tests/serialization-repeatability.test.ts \"--exclude=.worktrees/**\""
|
|
64
83
|
},
|
|
65
84
|
"engines": {
|
|
66
85
|
"node": "^20.19.0 || >=22.12.0"
|
|
@@ -68,6 +87,7 @@
|
|
|
68
87
|
"devDependencies": {
|
|
69
88
|
"@types/node": "^22.19.17",
|
|
70
89
|
"cmark-gfm": "^0.9.0",
|
|
90
|
+
"esbuild": "^0.27.7",
|
|
71
91
|
"typescript": "^5.8.3",
|
|
72
92
|
"vitest": "^3.1.3"
|
|
73
93
|
},
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: profile-backed-markdown
|
|
3
|
+
description: Validate Markdown files that declare a local markdown-engine validation profile in frontmatter.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Profile-Backed Markdown
|
|
7
|
+
|
|
8
|
+
Use this skill when a Markdown file contains frontmatter with `validationProfile`
|
|
9
|
+
and you need deterministic profile validation before editing or handing off the
|
|
10
|
+
file.
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
1. Run the bundled wrapper:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
node scripts/validate-profile-backed-markdown.mjs --file /path/to/file.md
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Treat stdout as the validator JSON source of truth. Do not infer pass/fail
|
|
21
|
+
from prose or repair notes.
|
|
22
|
+
3. If validation fails, rerun with `--repair-brief` to emit compact repair
|
|
23
|
+
guidance on stderr while preserving validator JSON on stdout.
|
|
24
|
+
4. Edit the Markdown file only when the user asked for repair. Do not edit
|
|
25
|
+
validation profiles unless explicitly requested.
|
|
26
|
+
5. Rerun the wrapper after edits and require exit code `0` before reporting the
|
|
27
|
+
document clean.
|
|
28
|
+
|
|
29
|
+
## Frontmatter Contract
|
|
30
|
+
|
|
31
|
+
The wrapper reads a top-level frontmatter scalar:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
validationProfile: operational-spec
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Profile names resolve to `assets/profiles/<validationProfile>.yaml` by default.
|
|
38
|
+
The wrapper rejects absolute paths and parent-directory traversal so validation
|
|
39
|
+
profiles stay within the local skill assets.
|
|
40
|
+
|
|
41
|
+
## Bundled CLI
|
|
42
|
+
|
|
43
|
+
The wrapper does not require a globally installed `markdown-engine` binary. It
|
|
44
|
+
uses `MARKDOWN_ENGINE_CLI` when set, then checks for a local
|
|
45
|
+
`scripts/markdown-engine-cli.mjs`, then falls back to the package-level
|
|
46
|
+
`dist-bundled/markdown-engine-cli.mjs`.
|
|
47
|
+
|
|
48
|
+
For a standalone skill folder, build and copy the bundled CLI artifact before
|
|
49
|
+
distribution:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm run build:cli:bundled
|
|
53
|
+
cp dist-bundled/markdown-engine-cli.mjs skills/profile-backed-markdown/scripts/
|
|
54
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
syntaxVersion: markdown-engine.validation@v1
|
|
2
|
+
documentVersion: 1.0.0
|
|
3
|
+
rules:
|
|
4
|
+
- id: frontmatter.required
|
|
5
|
+
select:
|
|
6
|
+
target: document
|
|
7
|
+
assert:
|
|
8
|
+
frontmatterRequired:
|
|
9
|
+
fields:
|
|
10
|
+
- title
|
|
11
|
+
- owner
|
|
12
|
+
- status
|
|
13
|
+
|
|
14
|
+
- id: sections.required
|
|
15
|
+
select:
|
|
16
|
+
target: document
|
|
17
|
+
assert:
|
|
18
|
+
sectionsRequired:
|
|
19
|
+
order: strict
|
|
20
|
+
headings:
|
|
21
|
+
- Objective
|
|
22
|
+
- Context / Constraints
|
|
23
|
+
- Execution Plan
|
|
24
|
+
- Risk Register
|
|
25
|
+
- Handoff Links
|
|
26
|
+
|
|
27
|
+
- id: objective.text
|
|
28
|
+
select:
|
|
29
|
+
target: section
|
|
30
|
+
title: Objective
|
|
31
|
+
assert:
|
|
32
|
+
text:
|
|
33
|
+
contains: "Mission control"
|
|
34
|
+
|
|
35
|
+
- id: objective.length
|
|
36
|
+
select:
|
|
37
|
+
target: section
|
|
38
|
+
title: Objective
|
|
39
|
+
assert:
|
|
40
|
+
textLength:
|
|
41
|
+
min: 80
|
|
42
|
+
max: 180
|
|
43
|
+
|
|
44
|
+
- id: risk.table.columns
|
|
45
|
+
select:
|
|
46
|
+
target: table
|
|
47
|
+
section: Risk Register
|
|
48
|
+
header:
|
|
49
|
+
- ID
|
|
50
|
+
- Mitigation
|
|
51
|
+
- Status
|
|
52
|
+
assert:
|
|
53
|
+
tableColumnsRequired:
|
|
54
|
+
columns:
|
|
55
|
+
- ID
|
|
56
|
+
- Mitigation
|
|
57
|
+
- Status
|
|
58
|
+
|
|
59
|
+
- id: risk.ids.unique
|
|
60
|
+
select:
|
|
61
|
+
target: tableCell
|
|
62
|
+
section: Risk Register
|
|
63
|
+
tableHeader:
|
|
64
|
+
- ID
|
|
65
|
+
- Mitigation
|
|
66
|
+
- Status
|
|
67
|
+
column: ID
|
|
68
|
+
assert:
|
|
69
|
+
ids:
|
|
70
|
+
prefix: OPS-RISK
|
|
71
|
+
unique: true
|
|
72
|
+
|
|
73
|
+
- id: execution.must.count
|
|
74
|
+
select:
|
|
75
|
+
target: section
|
|
76
|
+
title: Execution Plan
|
|
77
|
+
assert:
|
|
78
|
+
textOccurrenceCount:
|
|
79
|
+
text: MUST
|
|
80
|
+
count: 2
|
|
81
|
+
|
|
82
|
+
- id: execution.list
|
|
83
|
+
select:
|
|
84
|
+
target: list
|
|
85
|
+
section: Execution Plan
|
|
86
|
+
ordered: false
|
|
87
|
+
assert:
|
|
88
|
+
text:
|
|
89
|
+
contains: "Validate profile"
|
|
90
|
+
|
|
91
|
+
- id: handoff.link
|
|
92
|
+
select:
|
|
93
|
+
target: link
|
|
94
|
+
section: Handoff Links
|
|
95
|
+
text: "handoff packet"
|
|
96
|
+
url: "./handoff-packet.md"
|
|
97
|
+
assert:
|
|
98
|
+
exists: true
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Repair Brief Contract
|
|
2
|
+
|
|
3
|
+
`--repair-brief` emits a compact diagnostic summary on stderr and preserves the
|
|
4
|
+
validator JSON result on stdout.
|
|
5
|
+
|
|
6
|
+
Each diagnostic entry is derived from validator JSON only:
|
|
7
|
+
|
|
8
|
+
- `ruleId`: the failing profile rule when present, otherwise `(none)`.
|
|
9
|
+
- `message`: the validator diagnostic message.
|
|
10
|
+
- `sourceRange`: the validator diagnostic range when present, otherwise
|
|
11
|
+
`unavailable`.
|
|
12
|
+
|
|
13
|
+
The wrapper must not invent validation outcomes, synthesize missing diagnostics,
|
|
14
|
+
or edit local profile assets.
|