@jasonbelmonti/markdown-engine 1.0.0 → 2.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 +24 -1
- package/README.md +75 -26
- 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 +63 -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 +131 -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/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 +22 -0
- package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/diagnostics.js +71 -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 +46 -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/id-targets.d.ts +29 -0
- package/dist/declarative-validation/assertions/id-targets.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/id-targets.js +428 -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 +42 -0
- package/dist/declarative-validation/assertions/ids.js.map +1 -0
- package/dist/declarative-validation/assertions/index.d.ts +3 -0
- package/dist/declarative-validation/assertions/index.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/index.js +3 -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-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/assertion-builders.d.ts +6 -0
- package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/assertion-builders.js +199 -0
- package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -0
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts +18 -0
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/assertion-shapes.js +129 -0
- package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -0
- package/dist/declarative-validation/compiler/assertions.d.ts +5 -0
- package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/assertions.js +25 -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 +28 -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/index.d.ts +5 -0
- package/dist/declarative-validation/compiler/index.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/index.js +164 -0
- package/dist/declarative-validation/compiler/index.js.map +1 -0
- package/dist/declarative-validation/compiler/plan.d.ts +58 -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/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 +11 -0
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts.map +1 -0
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js +45 -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/assertion-schema.d.ts +4 -0
- package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/assertion-schema.js +285 -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 +5 -0
- package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts.map +1 -0
- package/dist/declarative-validation/profile/direct-profile-diagnostics.js +73 -0
- package/dist/declarative-validation/profile/direct-profile-diagnostics.js.map +1 -0
- package/dist/declarative-validation/profile/index.d.ts +113 -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 +109 -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 +98 -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/results/index.d.ts +26 -0
- package/dist/declarative-validation/results/index.d.ts.map +1 -0
- package/dist/declarative-validation/results/index.js +2 -0
- package/dist/declarative-validation/results/index.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 +13 -0
- package/dist/declarative-validation/selectors/table-targets.d.ts.map +1 -0
- package/dist/declarative-validation/selectors/table-targets.js +106 -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/docs/contracts/api.md +661 -0
- package/docs/contracts/declarative-validation.md +559 -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 +21 -6
- 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
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Operational Spec Example
|
|
3
|
+
status: ready
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Objective
|
|
7
|
+
|
|
8
|
+
Mission control.
|
|
9
|
+
|
|
10
|
+
# Context / Constraints
|
|
11
|
+
|
|
12
|
+
The example stays generic. It validates Markdown headings, tables, IDs, list
|
|
13
|
+
content, literal text, and links without attaching domain meaning to the core
|
|
14
|
+
engine.
|
|
15
|
+
|
|
16
|
+
# Execution Plan
|
|
17
|
+
|
|
18
|
+
- MUST Validate profile fixtures locally.
|
|
19
|
+
- Record evidence before requesting review.
|
|
20
|
+
- Keep the checks deterministic and local-only.
|
|
21
|
+
|
|
22
|
+
# Risk Register
|
|
23
|
+
|
|
24
|
+
| ID | Mitigation | Status |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| OPS-RISK-1 | Keep examples structural. | tracked |
|
|
27
|
+
| OPS-RISK-2 | Keep commands local. | closed |
|
|
28
|
+
|
|
29
|
+
# Handoff Links
|
|
30
|
+
|
|
31
|
+
The [handoff packet](./handoff-packet.md) records follow-up review notes for the
|
|
32
|
+
next operator.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Operational Spec Example
|
|
3
|
+
owner: platform-team
|
|
4
|
+
status: ready
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Objective
|
|
8
|
+
|
|
9
|
+
Mission control uses this structural profile to confirm a small operating spec
|
|
10
|
+
has the required sections, handoff links, and risk tracking details.
|
|
11
|
+
|
|
12
|
+
# Context / Constraints
|
|
13
|
+
|
|
14
|
+
The example stays generic. It validates Markdown headings, tables, IDs, list
|
|
15
|
+
content, literal text, and links without attaching domain meaning to the core
|
|
16
|
+
engine.
|
|
17
|
+
|
|
18
|
+
# Execution Plan
|
|
19
|
+
|
|
20
|
+
- MUST Validate profile fixtures locally.
|
|
21
|
+
- MUST Record evidence before requesting review.
|
|
22
|
+
- Keep the checks deterministic and local-only.
|
|
23
|
+
|
|
24
|
+
# Risk Register
|
|
25
|
+
|
|
26
|
+
| ID | Mitigation | Status |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| OPS-RISK-1 | Keep examples structural. | tracked |
|
|
29
|
+
| OPS-RISK-2 | Keep commands local. | closed |
|
|
30
|
+
|
|
31
|
+
# Handoff Links
|
|
32
|
+
|
|
33
|
+
The [handoff packet](./handoff-packet.md) records follow-up review notes for the
|
|
34
|
+
next operator.
|
|
@@ -0,0 +1,131 @@
|
|
|
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.heading.text
|
|
45
|
+
select:
|
|
46
|
+
target: heading
|
|
47
|
+
text: Risk Register
|
|
48
|
+
assert:
|
|
49
|
+
text:
|
|
50
|
+
contains: "Risk Register"
|
|
51
|
+
|
|
52
|
+
- id: risk.table.columns
|
|
53
|
+
select:
|
|
54
|
+
target: table
|
|
55
|
+
section: Risk Register
|
|
56
|
+
header:
|
|
57
|
+
- ID
|
|
58
|
+
- Mitigation
|
|
59
|
+
- Status
|
|
60
|
+
assert:
|
|
61
|
+
tableColumnsRequired:
|
|
62
|
+
columns:
|
|
63
|
+
- ID
|
|
64
|
+
- Mitigation
|
|
65
|
+
- Status
|
|
66
|
+
|
|
67
|
+
- id: risk.ids.unique
|
|
68
|
+
select:
|
|
69
|
+
target: tableCell
|
|
70
|
+
section: Risk Register
|
|
71
|
+
tableHeader:
|
|
72
|
+
- ID
|
|
73
|
+
- Mitigation
|
|
74
|
+
- Status
|
|
75
|
+
column: ID
|
|
76
|
+
assert:
|
|
77
|
+
ids:
|
|
78
|
+
prefix: OPS-RISK
|
|
79
|
+
unique: true
|
|
80
|
+
|
|
81
|
+
- id: tracked.risk.row
|
|
82
|
+
select:
|
|
83
|
+
target: tableRow
|
|
84
|
+
section: Risk Register
|
|
85
|
+
tableHeader:
|
|
86
|
+
- ID
|
|
87
|
+
- Mitigation
|
|
88
|
+
- Status
|
|
89
|
+
where:
|
|
90
|
+
column: Status
|
|
91
|
+
equals: tracked
|
|
92
|
+
assert:
|
|
93
|
+
text:
|
|
94
|
+
contains: OPS-RISK-1
|
|
95
|
+
|
|
96
|
+
- id: execution.must.count
|
|
97
|
+
select:
|
|
98
|
+
target: section
|
|
99
|
+
title: Execution Plan
|
|
100
|
+
assert:
|
|
101
|
+
textOccurrenceCount:
|
|
102
|
+
text: MUST
|
|
103
|
+
count: 2
|
|
104
|
+
|
|
105
|
+
- id: execution.list
|
|
106
|
+
select:
|
|
107
|
+
target: list
|
|
108
|
+
section: Execution Plan
|
|
109
|
+
ordered: false
|
|
110
|
+
assert:
|
|
111
|
+
text:
|
|
112
|
+
contains: "Validate profile"
|
|
113
|
+
|
|
114
|
+
- id: handoff.paragraph
|
|
115
|
+
select:
|
|
116
|
+
target: textSpan
|
|
117
|
+
section: Handoff Links
|
|
118
|
+
nodeType: paragraph
|
|
119
|
+
textIncludes: "handoff packet"
|
|
120
|
+
assert:
|
|
121
|
+
text:
|
|
122
|
+
contains: "follow-up"
|
|
123
|
+
|
|
124
|
+
- id: handoff.link
|
|
125
|
+
select:
|
|
126
|
+
target: link
|
|
127
|
+
section: Handoff Links
|
|
128
|
+
text: "handoff packet"
|
|
129
|
+
url: "./handoff-packet.md"
|
|
130
|
+
assert:
|
|
131
|
+
exists: true
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Release Checklist Example
|
|
3
|
+
release: 1.0.0
|
|
4
|
+
owner: release-team
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Release Checklist
|
|
8
|
+
|
|
9
|
+
- Verify package metadata.
|
|
10
|
+
- Use manual bypass for the dry run.
|
|
11
|
+
- Record release evidence.
|
|
12
|
+
|
|
13
|
+
# Gate Table
|
|
14
|
+
|
|
15
|
+
| ID | Gate | Status |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| REL-GATE-1 | Contract docs | blocked |
|
|
18
|
+
| REL-GATE-1 | Boundary audit | ready |
|
|
19
|
+
|
|
20
|
+
# Links
|
|
21
|
+
|
|
22
|
+
Publish review uses the [release notes](./release-notes.md) after all gates pass.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Release Checklist Example
|
|
3
|
+
release: 1.0.0
|
|
4
|
+
owner: release-team
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Release Checklist
|
|
8
|
+
|
|
9
|
+
- Verify package metadata.
|
|
10
|
+
- Verify package dry run.
|
|
11
|
+
- Record release evidence.
|
|
12
|
+
|
|
13
|
+
# Gate Table
|
|
14
|
+
|
|
15
|
+
| ID | Gate | Status |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| REL-GATE-1 | Contract docs | ready |
|
|
18
|
+
| REL-GATE-2 | Boundary audit | ready |
|
|
19
|
+
|
|
20
|
+
# Links
|
|
21
|
+
|
|
22
|
+
Publish review uses the [release notes](./release-notes.md) after all gates pass.
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
- release
|
|
12
|
+
- owner
|
|
13
|
+
|
|
14
|
+
- id: sections.required
|
|
15
|
+
select:
|
|
16
|
+
target: document
|
|
17
|
+
assert:
|
|
18
|
+
sectionsRequired:
|
|
19
|
+
order: strict
|
|
20
|
+
headings:
|
|
21
|
+
- Release Checklist
|
|
22
|
+
- Gate Table
|
|
23
|
+
- Links
|
|
24
|
+
|
|
25
|
+
- id: checklist.list
|
|
26
|
+
select:
|
|
27
|
+
target: list
|
|
28
|
+
section: Release Checklist
|
|
29
|
+
ordered: false
|
|
30
|
+
assert:
|
|
31
|
+
text:
|
|
32
|
+
contains: "Verify package"
|
|
33
|
+
excludes:
|
|
34
|
+
- "manual bypass"
|
|
35
|
+
|
|
36
|
+
- id: gate.table.columns
|
|
37
|
+
select:
|
|
38
|
+
target: table
|
|
39
|
+
section: Gate Table
|
|
40
|
+
header:
|
|
41
|
+
- ID
|
|
42
|
+
- Gate
|
|
43
|
+
- Status
|
|
44
|
+
assert:
|
|
45
|
+
tableColumnsRequired:
|
|
46
|
+
columns:
|
|
47
|
+
- ID
|
|
48
|
+
- Gate
|
|
49
|
+
- Status
|
|
50
|
+
|
|
51
|
+
- id: gate.ids.unique
|
|
52
|
+
select:
|
|
53
|
+
target: tableCell
|
|
54
|
+
section: Gate Table
|
|
55
|
+
column: ID
|
|
56
|
+
assert:
|
|
57
|
+
ids:
|
|
58
|
+
prefix: REL-GATE
|
|
59
|
+
unique: true
|
|
60
|
+
|
|
61
|
+
- id: ready.gate.row
|
|
62
|
+
select:
|
|
63
|
+
target: tableRow
|
|
64
|
+
section: Gate Table
|
|
65
|
+
tableHeader:
|
|
66
|
+
- ID
|
|
67
|
+
- Gate
|
|
68
|
+
- Status
|
|
69
|
+
where:
|
|
70
|
+
column: Gate
|
|
71
|
+
equals: "Contract docs"
|
|
72
|
+
assert:
|
|
73
|
+
text:
|
|
74
|
+
contains: ready
|
|
75
|
+
|
|
76
|
+
- id: status.ready.count
|
|
77
|
+
select:
|
|
78
|
+
target: tableCell
|
|
79
|
+
section: Gate Table
|
|
80
|
+
column: Status
|
|
81
|
+
rowWhere:
|
|
82
|
+
column: ID
|
|
83
|
+
equals: REL-GATE-1
|
|
84
|
+
assert:
|
|
85
|
+
textOccurrenceCount:
|
|
86
|
+
text: ready
|
|
87
|
+
count: 1
|
|
88
|
+
|
|
89
|
+
- id: release.link
|
|
90
|
+
select:
|
|
91
|
+
target: link
|
|
92
|
+
section: Links
|
|
93
|
+
text: "release notes"
|
|
94
|
+
url: "./release-notes.md"
|
|
95
|
+
assert:
|
|
96
|
+
exists: true
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Requirements Traceability Example
|
|
3
|
+
owner: quality-team
|
|
4
|
+
status: ready
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Requirements
|
|
8
|
+
|
|
9
|
+
| ID | Requirement statement | Source |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| REQ-1 | The package shall parse one Markdown file. | CLI |
|
|
12
|
+
| REQ-2 | The package shall validate a configured profile. | API |
|
|
13
|
+
| REQ-3 | The package shall emit deterministic diagnostics. | Evidence |
|
|
14
|
+
|
|
15
|
+
# Evidence Matrix
|
|
16
|
+
|
|
17
|
+
| ID | Requirement | Note |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| EVD-1 | REQ-1 | CLI parse fixture |
|
|
20
|
+
| EVD-2 | REQ-2 | Profile validation fixture |
|
|
21
|
+
| EVD-3 | REQ-3 | Diagnostic assertion fixture |
|
|
22
|
+
|
|
23
|
+
# Traceability
|
|
24
|
+
|
|
25
|
+
REQ-1 is covered by EVD-1.
|
|
26
|
+
REQ-2 is covered by EVD-2.
|
|
27
|
+
EVD-3 has evidence, but the final requirement reference is missing.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Requirements Traceability Example
|
|
3
|
+
owner: quality-team
|
|
4
|
+
status: ready
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Requirements
|
|
8
|
+
|
|
9
|
+
| ID | Requirement statement | Source |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| REQ-1 | The package shall parse one Markdown file. | CLI |
|
|
12
|
+
| REQ-2 | The package shall validate a configured profile. | API |
|
|
13
|
+
| REQ-3 | The package shall emit deterministic diagnostics. | Evidence |
|
|
14
|
+
|
|
15
|
+
# Evidence Matrix
|
|
16
|
+
|
|
17
|
+
| ID | Requirement | Evidence |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| EVD-1 | REQ-1 | CLI parse fixture |
|
|
20
|
+
| EVD-2 | REQ-2 | Profile validation fixture |
|
|
21
|
+
| EVD-3 | REQ-3 | Diagnostic assertion fixture |
|
|
22
|
+
|
|
23
|
+
# Traceability
|
|
24
|
+
|
|
25
|
+
REQ-1 is covered by EVD-1.
|
|
26
|
+
REQ-2 is covered by EVD-2.
|
|
27
|
+
REQ-3 is covered by EVD-3.
|
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
- Requirements
|
|
22
|
+
- Evidence Matrix
|
|
23
|
+
- Traceability
|
|
24
|
+
|
|
25
|
+
- id: requirements.table.columns
|
|
26
|
+
select:
|
|
27
|
+
target: table
|
|
28
|
+
section: Requirements
|
|
29
|
+
header:
|
|
30
|
+
- ID
|
|
31
|
+
- Requirement statement
|
|
32
|
+
- Source
|
|
33
|
+
assert:
|
|
34
|
+
tableColumnsRequired:
|
|
35
|
+
columns:
|
|
36
|
+
- ID
|
|
37
|
+
- Requirement statement
|
|
38
|
+
- Source
|
|
39
|
+
|
|
40
|
+
- id: evidence.table.columns
|
|
41
|
+
select:
|
|
42
|
+
target: table
|
|
43
|
+
section: Evidence Matrix
|
|
44
|
+
header:
|
|
45
|
+
- ID
|
|
46
|
+
- Requirement
|
|
47
|
+
assert:
|
|
48
|
+
tableColumnsRequired:
|
|
49
|
+
columns:
|
|
50
|
+
- ID
|
|
51
|
+
- Requirement
|
|
52
|
+
- Evidence
|
|
53
|
+
|
|
54
|
+
- id: requirement.ids.unique
|
|
55
|
+
select:
|
|
56
|
+
target: tableCell
|
|
57
|
+
section: Requirements
|
|
58
|
+
column: ID
|
|
59
|
+
assert:
|
|
60
|
+
ids:
|
|
61
|
+
prefix: REQ
|
|
62
|
+
unique: true
|
|
63
|
+
|
|
64
|
+
- id: evidence.ids.unique
|
|
65
|
+
select:
|
|
66
|
+
target: tableCell
|
|
67
|
+
section: Evidence Matrix
|
|
68
|
+
column: ID
|
|
69
|
+
assert:
|
|
70
|
+
ids:
|
|
71
|
+
prefix: EVD
|
|
72
|
+
unique: true
|
|
73
|
+
|
|
74
|
+
- id: requirement.text
|
|
75
|
+
select:
|
|
76
|
+
target: tableCell
|
|
77
|
+
section: Requirements
|
|
78
|
+
column: Requirement statement
|
|
79
|
+
rowWhere:
|
|
80
|
+
column: ID
|
|
81
|
+
equals: REQ-2
|
|
82
|
+
assert:
|
|
83
|
+
text:
|
|
84
|
+
contains: shall
|
|
85
|
+
excludes:
|
|
86
|
+
- TBD
|
|
87
|
+
|
|
88
|
+
- id: requirements.shall.count
|
|
89
|
+
select:
|
|
90
|
+
target: section
|
|
91
|
+
title: Requirements
|
|
92
|
+
assert:
|
|
93
|
+
textOccurrenceCount:
|
|
94
|
+
text: shall
|
|
95
|
+
count: 3
|
|
96
|
+
|
|
97
|
+
- id: traceability.requirements
|
|
98
|
+
select:
|
|
99
|
+
target: document
|
|
100
|
+
assert:
|
|
101
|
+
references:
|
|
102
|
+
idsFrom:
|
|
103
|
+
section: Requirements
|
|
104
|
+
column: ID
|
|
105
|
+
prefix: REQ
|
|
106
|
+
mustAppearIn:
|
|
107
|
+
- Traceability
|
|
108
|
+
|
|
109
|
+
- id: traceability.evidence
|
|
110
|
+
select:
|
|
111
|
+
target: document
|
|
112
|
+
assert:
|
|
113
|
+
references:
|
|
114
|
+
idsFrom:
|
|
115
|
+
section: Evidence Matrix
|
|
116
|
+
column: ID
|
|
117
|
+
prefix: EVD
|
|
118
|
+
mustAppearIn:
|
|
119
|
+
- Traceability
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jasonbelmonti/markdown-engine",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.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,8 @@
|
|
|
31
31
|
"types": "./dist/index.d.ts",
|
|
32
32
|
"files": [
|
|
33
33
|
"dist",
|
|
34
|
+
"docs/contracts",
|
|
35
|
+
"fixtures/declarative-validation/examples",
|
|
34
36
|
"CHANGELOG.md",
|
|
35
37
|
"SECURITY.md"
|
|
36
38
|
],
|
|
@@ -42,25 +44,38 @@
|
|
|
42
44
|
"build": "npm run clean && tsc -p tsconfig.json",
|
|
43
45
|
"prepack": "npm run release:verify",
|
|
44
46
|
"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",
|
|
47
|
+
"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 && node scripts/prove-repeatability.mjs --runs 10 && npm run release:check-clean",
|
|
46
48
|
"release:check-clean": "git diff --check HEAD -- && git diff --exit-code HEAD --",
|
|
47
49
|
"snapshots:update:parser": "npm run build && vitest run tests/parser-fixtures.test.ts -u \"--exclude=.worktrees/**\"",
|
|
48
50
|
"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/**\"",
|
|
51
|
+
"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
52
|
"snapshots:update:serialization": "npm run build && vitest run tests/serialization-repeatability.test.ts tests/boundary-inspection.test.ts -u \"--exclude=.worktrees/**\"",
|
|
51
53
|
"test:rich-ir:proving": "npm run build && vitest run tests/rich-ir-proving.test.ts \"--exclude=.worktrees/**\"",
|
|
52
54
|
"test:rich-ir:contract": "npm run build && tsc -p tsconfig.document-contract.json && vitest run tests/document-contract.test.ts \"--exclude=.worktrees/**\"",
|
|
53
55
|
"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/**\"",
|
|
56
|
+
"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
57
|
"test:rich-ir:annotations": "npm run build && vitest run tests/rich-ir-annotations.test.ts \"--exclude=.worktrees/**\"",
|
|
56
58
|
"test:rich-ir:compat": "npm run build && vitest run tests/rich-ir-compat.test.ts \"--exclude=.worktrees/**\"",
|
|
57
59
|
"test:rich-ir:repeatability": "npm run build && vitest run tests/rich-ir-repeatability.test.ts \"--exclude=.worktrees/**\"",
|
|
58
60
|
"test:rich-ir:downstream": "npm run build && vitest run tests/rich-ir-downstream.test.ts \"--exclude=.worktrees/**\"",
|
|
59
61
|
"audit:rich-ir-boundary": "node scripts/check-boundaries.mjs",
|
|
60
62
|
"docs:rich-ir-contract": "node scripts/check-rich-ir-contract-docs.mjs",
|
|
63
|
+
"test:validation:proving": "npm run build && vitest run tests/declarative-validation-proving.test.ts \"--exclude=.worktrees/**\"",
|
|
64
|
+
"test:validation:contract": "npm run build && tsc -p tsconfig.declarative-validation-contract.json && vitest run tests/declarative-validation-contract.test.ts \"--exclude=.worktrees/**\"",
|
|
65
|
+
"test:validation:profile": "npm run build && vitest run tests/declarative-validation-profile.test.ts \"--exclude=.worktrees/**\"",
|
|
66
|
+
"test:validation:compiler": "npm run build && vitest run tests/declarative-validation-compiler.test.ts \"--exclude=.worktrees/**\"",
|
|
67
|
+
"test:validation:selectors": "npm run build && vitest run tests/declarative-validation-selectors.test.ts \"--exclude=.worktrees/**\"",
|
|
68
|
+
"test:validation:assertions": "npm run build && vitest run tests/declarative-validation-assertions.test.ts \"--exclude=.worktrees/**\"",
|
|
69
|
+
"test:validation:diagnostics": "npm run build && vitest run tests/declarative-validation-diagnostics.test.ts \"--exclude=.worktrees/**\"",
|
|
70
|
+
"test:validation:cli": "npm run build && vitest run tests/declarative-validation-cli.test.ts \"--exclude=.worktrees/**\"",
|
|
71
|
+
"test:validation:examples": "npm run build && vitest run tests/declarative-validation-examples.test.ts \"--exclude=.worktrees/**\"",
|
|
72
|
+
"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",
|
|
73
|
+
"test:validation:downstream": "npm run build && vitest run tests/declarative-validation-downstream.test.ts \"--exclude=.worktrees/**\"",
|
|
74
|
+
"audit:declarative-validation-boundary": "node scripts/check-declarative-validation-boundary.mjs",
|
|
75
|
+
"docs:declarative-validation-contract": "node scripts/check-declarative-validation-contract-docs.mjs",
|
|
61
76
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
62
77
|
"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/**\""
|
|
78
|
+
"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
79
|
},
|
|
65
80
|
"engines": {
|
|
66
81
|
"node": "^20.19.0 || >=22.12.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-node-walk.d.ts","sourceRoot":"","sources":["../../src/ir/document-node-walk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,SAAS,CAAC,EAAE,GAC3C,CAAC,EAAE,CAKL;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAEvE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAMjD"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function flatMapNodes(nodes, callback) {
|
|
2
|
-
return nodes.flatMap((node) => [
|
|
3
|
-
...callback(node),
|
|
4
|
-
...flatMapNodes(node.children ?? [], callback),
|
|
5
|
-
]);
|
|
6
|
-
}
|
|
7
|
-
export function flattenNodes(nodes) {
|
|
8
|
-
return flatMapNodes(nodes, (node) => [node]);
|
|
9
|
-
}
|
|
10
|
-
export function nodeText(node) {
|
|
11
|
-
if (node.text !== undefined) {
|
|
12
|
-
return node.text;
|
|
13
|
-
}
|
|
14
|
-
return (node.children ?? []).map((child) => nodeText(child)).join("");
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=document-node-walk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-node-walk.js","sourceRoot":"","sources":["../../src/ir/document-node-walk.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAC1B,KAA4B,EAC5B,QAA4C;IAE5C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjB,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,QAAQ,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAA4B;IACvD,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAgB;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC"}
|