@jasonbelmonti/markdown-engine 0.1.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 +53 -4
- package/README.md +138 -10
- 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-runtime.d.ts +30 -0
- package/dist/api/annotation-target-runtime.d.ts.map +1 -0
- package/dist/api/annotation-target-runtime.js +161 -0
- package/dist/api/annotation-target-runtime.js.map +1 -0
- package/dist/api/annotation-target-validation.d.ts +4 -0
- package/dist/api/annotation-target-validation.d.ts.map +1 -0
- package/dist/api/annotation-target-validation.js +147 -0
- package/dist/api/annotation-target-validation.js.map +1 -0
- package/dist/api/annotations.d.ts +4 -0
- package/dist/api/annotations.d.ts.map +1 -0
- package/dist/api/annotations.js +16 -0
- package/dist/api/annotations.js.map +1 -0
- package/dist/api/compatibility.d.ts +15 -0
- package/dist/api/compatibility.d.ts.map +1 -0
- package/dist/api/compatibility.js +57 -0
- package/dist/api/compatibility.js.map +1 -0
- package/dist/api/contracts.d.ts +4 -1
- package/dist/api/contracts.d.ts.map +1 -1
- package/dist/api/contracts.js +3 -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 +3 -0
- package/dist/api/document-queries.d.ts.map +1 -0
- package/dist/api/document-queries.js +160 -0
- package/dist/api/document-queries.js.map +1 -0
- package/dist/api/document.d.ts +179 -2
- 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 +2 -1
- 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.d.ts +5 -1
- package/dist/api/serialize.d.ts.map +1 -1
- package/dist/api/serialize.js +7 -14
- package/dist/api/serialize.js.map +1 -1
- package/dist/cli/args.d.ts +18 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +109 -0
- package/dist/cli/args.js.map +1 -0
- 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/document-version.d.ts +14 -0
- package/dist/cli/document-version.d.ts.map +1 -0
- package/dist/cli/document-version.js +32 -0
- package/dist/cli/document-version.js.map +1 -0
- package/dist/cli/files.d.ts +6 -0
- package/dist/cli/files.d.ts.map +1 -0
- package/dist/cli/files.js +33 -0
- package/dist/cli/files.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/normalize-markdown.d.ts +8 -0
- package/dist/cli/normalize-markdown.d.ts.map +1 -0
- package/dist/cli/normalize-markdown.js +10 -0
- package/dist/cli/normalize-markdown.js.map +1 -0
- package/dist/cli/run.d.ts +11 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +52 -0
- package/dist/cli/run.js.map +1 -0
- 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/internal/document-node-walk.d.ts +10 -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 +4 -0
- package/dist/ir/document-derived-views.d.ts.map +1 -0
- package/dist/ir/document-derived-views.js +27 -0
- package/dist/ir/document-derived-views.js.map +1 -0
- 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 +3 -0
- package/dist/ir/document-link-views.d.ts.map +1 -0
- package/dist/ir/document-link-views.js +23 -0
- package/dist/ir/document-link-views.js.map +1 -0
- package/dist/ir/document-list-views.d.ts +3 -0
- package/dist/ir/document-list-views.d.ts.map +1 -0
- package/dist/ir/document-list-views.js +39 -0
- package/dist/ir/document-list-views.js.map +1 -0
- package/dist/ir/document-sections.d.ts +3 -0
- package/dist/ir/document-sections.d.ts.map +1 -0
- package/dist/ir/document-sections.js +55 -0
- package/dist/ir/document-sections.js.map +1 -0
- package/dist/ir/document-table-views.d.ts +3 -0
- package/dist/ir/document-table-views.d.ts.map +1 -0
- package/dist/ir/document-table-views.js +31 -0
- package/dist/ir/document-table-views.js.map +1 -0
- package/dist/ir/document-targets.d.ts +10 -0
- package/dist/ir/document-targets.d.ts.map +1 -0
- package/dist/ir/document-targets.js +44 -0
- package/dist/ir/document-targets.js.map +1 -0
- package/dist/ir/document-text-spans.d.ts +3 -0
- package/dist/ir/document-text-spans.d.ts.map +1 -0
- package/dist/ir/document-text-spans.js +18 -0
- package/dist/ir/document-text-spans.js.map +1 -0
- package/dist/ir/document.d.ts +2 -3
- package/dist/ir/document.d.ts.map +1 -1
- package/dist/ir/document.js +12 -8
- 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/ir/source-ranges.d.ts +8 -0
- package/dist/ir/source-ranges.d.ts.map +1 -0
- package/dist/ir/source-ranges.js +21 -0
- package/dist/ir/source-ranges.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 +37 -4
package/dist/cli/args.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { cliDocumentVersionUsageValues, defaultCliDocumentVersion, missingCliDocumentVersionMessage, parseCliDocumentVersion, } from "./document-version.js";
|
|
2
|
+
import { parseValidateCliArgs, validateCliUsage, } from "./validate-args.js";
|
|
3
|
+
const documentVersionFlag = "--document-version";
|
|
4
|
+
const documentVersionAssignmentPrefix = `${documentVersionFlag}=`;
|
|
5
|
+
const duplicateDocumentVersionMessage = "Expected at most one --document-version selector.";
|
|
6
|
+
const validateCommand = "validate";
|
|
7
|
+
const fileFlag = "--file";
|
|
8
|
+
const fileAssignmentPrefix = `${fileFlag}=`;
|
|
9
|
+
const pathFlag = "--path";
|
|
10
|
+
const pathAssignmentPrefix = `${pathFlag}=`;
|
|
11
|
+
export const normalizeCliUsage = `Usage: markdown-engine [--document-version <version>] (--file <markdown-file> | --path <markdown-file>)
|
|
12
|
+
|
|
13
|
+
Runs parse and normalization for one Markdown file and writes normalized JSON.
|
|
14
|
+
Defaults to documentVersion "1.0.0"; use "0.0.0" for legacy output.
|
|
15
|
+
|
|
16
|
+
Options:
|
|
17
|
+
--file <markdown-file> Markdown file to process.
|
|
18
|
+
--path <markdown-file> Markdown file to process. Directories are not traversed.
|
|
19
|
+
--document-version <version> Output document version (${cliDocumentVersionUsageValues()}).
|
|
20
|
+
-h, --help Show this help message.
|
|
21
|
+
`;
|
|
22
|
+
export const cliUsage = `${normalizeCliUsage}
|
|
23
|
+
${validateCliUsage}`;
|
|
24
|
+
export function parseCliArgs(args) {
|
|
25
|
+
if (args[0] === validateCommand) {
|
|
26
|
+
return parseValidateCliArgs(args.slice(1));
|
|
27
|
+
}
|
|
28
|
+
return parseNormalizeCliArgs(args);
|
|
29
|
+
}
|
|
30
|
+
function parseNormalizeCliArgs(args) {
|
|
31
|
+
const targets = [];
|
|
32
|
+
let documentVersion;
|
|
33
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
34
|
+
const arg = args[index];
|
|
35
|
+
if (arg === "-h" || arg === "--help") {
|
|
36
|
+
return { kind: "help", usage: cliUsage };
|
|
37
|
+
}
|
|
38
|
+
if (arg === fileFlag || arg === pathFlag) {
|
|
39
|
+
const value = args[index + 1];
|
|
40
|
+
if (value === undefined || value.startsWith("-")) {
|
|
41
|
+
return normalizeError(`Missing value for ${arg}.`);
|
|
42
|
+
}
|
|
43
|
+
targets.push(value);
|
|
44
|
+
index += 1;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (arg === documentVersionFlag ||
|
|
48
|
+
arg?.startsWith(documentVersionAssignmentPrefix) === true) {
|
|
49
|
+
if (documentVersion !== undefined) {
|
|
50
|
+
return normalizeError(duplicateDocumentVersionMessage);
|
|
51
|
+
}
|
|
52
|
+
const selectorValue = readDocumentVersionSelectorValue(arg, args, index);
|
|
53
|
+
if (selectorValue.kind === "error") {
|
|
54
|
+
return normalizeError(selectorValue.message);
|
|
55
|
+
}
|
|
56
|
+
const parsedDocumentVersion = parseCliDocumentVersion(selectorValue.value);
|
|
57
|
+
if (parsedDocumentVersion.kind === "error") {
|
|
58
|
+
return normalizeError(parsedDocumentVersion.message);
|
|
59
|
+
}
|
|
60
|
+
documentVersion = parsedDocumentVersion.documentVersion;
|
|
61
|
+
if (selectorValue.consumesNextArg) {
|
|
62
|
+
index += 1;
|
|
63
|
+
}
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (arg?.startsWith(fileAssignmentPrefix) === true) {
|
|
67
|
+
targets.push(arg.slice(fileAssignmentPrefix.length));
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (arg?.startsWith(pathAssignmentPrefix) === true) {
|
|
71
|
+
targets.push(arg.slice(pathAssignmentPrefix.length));
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
return normalizeError(`Unknown argument: ${arg ?? ""}`);
|
|
75
|
+
}
|
|
76
|
+
if (targets.length === 0) {
|
|
77
|
+
return normalizeError("Expected exactly one of --file or --path.");
|
|
78
|
+
}
|
|
79
|
+
if (targets.length > 1) {
|
|
80
|
+
return normalizeError("Expected one Markdown file target, received multiple.");
|
|
81
|
+
}
|
|
82
|
+
const [targetPath] = targets;
|
|
83
|
+
if (targetPath === undefined || targetPath.trim() === "") {
|
|
84
|
+
return normalizeError("Target path cannot be empty.");
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
kind: "normalize",
|
|
88
|
+
documentVersion: documentVersion ?? defaultCliDocumentVersion,
|
|
89
|
+
targetPath,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function readDocumentVersionSelectorValue(arg, args, index) {
|
|
93
|
+
if (arg.startsWith(documentVersionAssignmentPrefix)) {
|
|
94
|
+
return {
|
|
95
|
+
kind: "ok",
|
|
96
|
+
value: arg.slice(documentVersionAssignmentPrefix.length),
|
|
97
|
+
consumesNextArg: false,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const value = args[index + 1];
|
|
101
|
+
if (value === undefined || value.startsWith("-")) {
|
|
102
|
+
return { kind: "error", message: missingCliDocumentVersionMessage };
|
|
103
|
+
}
|
|
104
|
+
return { kind: "ok", value, consumesNextArg: true };
|
|
105
|
+
}
|
|
106
|
+
function normalizeError(message) {
|
|
107
|
+
return { kind: "error", message, usage: normalizeCliUsage };
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DeclarativeOutputFormat } from "../declarative-validation/profile/index.js";
|
|
2
|
+
/** @internal Declarative validation CLI behavior is not part of the package API. */
|
|
3
|
+
export interface DeclarativeValidationCliAdapterOptions {
|
|
4
|
+
cwd: string;
|
|
5
|
+
filePath: string;
|
|
6
|
+
profilePath: string;
|
|
7
|
+
format: DeclarativeOutputFormat;
|
|
8
|
+
}
|
|
9
|
+
export type DeclarativeValidationCliAdapterResult = {
|
|
10
|
+
kind: "output";
|
|
11
|
+
exitCode: 0 | 1;
|
|
12
|
+
output: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: "fileError";
|
|
15
|
+
message: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function runDeclarativeValidationCli(input: DeclarativeValidationCliAdapterOptions): Promise<DeclarativeValidationCliAdapterResult>;
|
|
18
|
+
//# sourceMappingURL=declarative-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declarative-validation.d.ts","sourceRoot":"","sources":["../../src/cli/declarative-validation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,4CAA4C,CAAC;AAWpD,oFAAoF;AACpF,MAAM,WAAW,sCAAsC;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,MAAM,MAAM,qCAAqC,GAC7C;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,qCAAqC,CAAC,CA0EhD"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { validateWithProfile } from "../api/declarative-validation.js";
|
|
2
|
+
import { compileValidationProfile } from "../declarative-validation/compiler/index.js";
|
|
3
|
+
import { createDeclarativeValidationEvidence } from "../declarative-validation/evidence/index.js";
|
|
4
|
+
import { parseValidationProfileInput } from "../declarative-validation/profile/index.js";
|
|
5
|
+
import { cloneDiagnostics, hasErrorDiagnostic } from "../diagnostics/index.js";
|
|
6
|
+
import { normalizeStableJsonValue } from "../internal/stable-json.js";
|
|
7
|
+
import { readCliFile } from "./files.js";
|
|
8
|
+
import { normalizeMarkdown } from "./normalize-markdown.js";
|
|
9
|
+
export async function runDeclarativeValidationCli(input) {
|
|
10
|
+
const profileText = await readValidationFile(input.profilePath, input.cwd);
|
|
11
|
+
if (profileText.kind === "fileError") {
|
|
12
|
+
return profileText;
|
|
13
|
+
}
|
|
14
|
+
const profileResult = parseValidationProfileInput(profileText.content, {
|
|
15
|
+
path: input.profilePath,
|
|
16
|
+
});
|
|
17
|
+
if (profileResult.profile === undefined ||
|
|
18
|
+
hasErrorDiagnostic(profileResult.diagnostics)) {
|
|
19
|
+
return outputResult(profileStageResult(profileResult.diagnostics), 1);
|
|
20
|
+
}
|
|
21
|
+
const compileDiagnostics = compileProfileForCli(profileResult.profile);
|
|
22
|
+
if (hasErrorDiagnostic(compileDiagnostics)) {
|
|
23
|
+
return outputResult(profileStageResult([...profileResult.diagnostics, ...compileDiagnostics]), 1);
|
|
24
|
+
}
|
|
25
|
+
const markdown = await readValidationFile(input.filePath, input.cwd);
|
|
26
|
+
if (markdown.kind === "fileError") {
|
|
27
|
+
return markdown;
|
|
28
|
+
}
|
|
29
|
+
const normalizeResult = normalizeMarkdown({
|
|
30
|
+
documentVersion: "1.0.0",
|
|
31
|
+
markdown: markdown.content,
|
|
32
|
+
path: input.filePath,
|
|
33
|
+
});
|
|
34
|
+
const documentDiagnostics = [
|
|
35
|
+
...profileResult.diagnostics,
|
|
36
|
+
...normalizeResult.diagnostics,
|
|
37
|
+
];
|
|
38
|
+
if (hasErrorDiagnostic(normalizeResult.diagnostics)) {
|
|
39
|
+
return outputResult(documentDiagnosticsResult(normalizeResult.document, profileResult.profile, [
|
|
40
|
+
...documentDiagnostics,
|
|
41
|
+
...documentVersionDiagnostics(profileResult.profile, normalizeResult.document.version),
|
|
42
|
+
]), 1);
|
|
43
|
+
}
|
|
44
|
+
const validationResult = validateWithProfile(normalizeResult.document, profileResult.profile, { includeEvidence: true });
|
|
45
|
+
const result = mergeDocumentDiagnostics(validationResult, documentDiagnostics);
|
|
46
|
+
return outputResult(result, hasErrorDiagnostic(result.diagnostics) ? 1 : 0);
|
|
47
|
+
}
|
|
48
|
+
function compileProfileForCli(profile) {
|
|
49
|
+
return compileValidationProfile(profile).diagnostics;
|
|
50
|
+
}
|
|
51
|
+
function documentVersionDiagnostics(profile, documentVersion) {
|
|
52
|
+
const profileDocumentVersion = profile.documentVersion ?? documentVersion;
|
|
53
|
+
return profileDocumentVersion === documentVersion
|
|
54
|
+
? []
|
|
55
|
+
: [
|
|
56
|
+
{
|
|
57
|
+
code: "profile.config.documentVersionMismatch",
|
|
58
|
+
message: `Profile documentVersion "${profileDocumentVersion}" does not match document version "${documentVersion}".`,
|
|
59
|
+
severity: "error",
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
}
|
|
63
|
+
function profileStageResult(diagnostics) {
|
|
64
|
+
return {
|
|
65
|
+
valid: false,
|
|
66
|
+
stage: "profile",
|
|
67
|
+
diagnostics,
|
|
68
|
+
ruleResults: [],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function documentDiagnosticsResult(document, profile, diagnostics) {
|
|
72
|
+
const clonedDiagnostics = cloneDiagnostics(diagnostics);
|
|
73
|
+
return {
|
|
74
|
+
valid: !hasErrorDiagnostic(clonedDiagnostics),
|
|
75
|
+
diagnostics: clonedDiagnostics,
|
|
76
|
+
ruleResults: [],
|
|
77
|
+
profile: {
|
|
78
|
+
syntaxVersion: profile.syntaxVersion,
|
|
79
|
+
documentVersion: profile.documentVersion ?? document.version,
|
|
80
|
+
ruleCount: profile.rules.length,
|
|
81
|
+
},
|
|
82
|
+
evidence: createDeclarativeValidationEvidence(document, profile, [], clonedDiagnostics),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function mergeDocumentDiagnostics(validationResult, documentDiagnostics) {
|
|
86
|
+
if (documentDiagnostics.length === 0) {
|
|
87
|
+
return validationResult;
|
|
88
|
+
}
|
|
89
|
+
const diagnostics = cloneDiagnostics([
|
|
90
|
+
...documentDiagnostics,
|
|
91
|
+
...validationResult.diagnostics,
|
|
92
|
+
]);
|
|
93
|
+
return {
|
|
94
|
+
...validationResult,
|
|
95
|
+
valid: !hasErrorDiagnostic(diagnostics),
|
|
96
|
+
diagnostics,
|
|
97
|
+
...(validationResult.evidence !== undefined
|
|
98
|
+
? {
|
|
99
|
+
evidence: {
|
|
100
|
+
...validationResult.evidence,
|
|
101
|
+
diagnostics: cloneDiagnostics(diagnostics),
|
|
102
|
+
},
|
|
103
|
+
}
|
|
104
|
+
: {}),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function outputResult(result, exitCode) {
|
|
108
|
+
return {
|
|
109
|
+
kind: "output",
|
|
110
|
+
exitCode,
|
|
111
|
+
output: serializeDeclarativeValidationCliJsonResult(result),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function serializeDeclarativeValidationCliJsonResult(result) {
|
|
115
|
+
return JSON.stringify(normalizeStableJsonValue(result), null, 2) ?? "null";
|
|
116
|
+
}
|
|
117
|
+
async function readValidationFile(path, cwd) {
|
|
118
|
+
try {
|
|
119
|
+
return {
|
|
120
|
+
kind: "ok",
|
|
121
|
+
content: await readCliFile(path, cwd),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
return {
|
|
126
|
+
kind: "fileError",
|
|
127
|
+
message: error instanceof Error ? error.message : String(error),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=declarative-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declarative-validation.js","sourceRoot":"","sources":["../../src/cli/declarative-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EngineCompatibilityMode, EngineDocumentVersion } from "../api/contracts.js";
|
|
2
|
+
export declare const defaultCliDocumentVersion = "1.0.0";
|
|
3
|
+
export declare const missingCliDocumentVersionMessage = "Missing value for --document-version.";
|
|
4
|
+
export declare function isCliDocumentVersion(value: string): value is EngineDocumentVersion;
|
|
5
|
+
export declare function cliDocumentVersionUsageValues(): string;
|
|
6
|
+
export declare function parseCliDocumentVersion(value: string): {
|
|
7
|
+
kind: "ok";
|
|
8
|
+
documentVersion: EngineDocumentVersion;
|
|
9
|
+
} | {
|
|
10
|
+
kind: "error";
|
|
11
|
+
message: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function compatibilityModeForDocumentVersion(documentVersion: EngineDocumentVersion): EngineCompatibilityMode;
|
|
14
|
+
//# sourceMappingURL=document-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-version.d.ts","sourceRoot":"","sources":["../../src/cli/document-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,yBAAyB,UACG,CAAC;AAE1C,eAAO,MAAM,gCAAgC,0CACJ,CAAC;AAY1C,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,qBAAqB,CAEhC;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,GAEX;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,qBAAqB,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAarC;AAED,wBAAgB,mCAAmC,CACjD,eAAe,EAAE,qBAAqB,GACrC,uBAAuB,CAEzB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const defaultCliDocumentVersion = "1.0.0";
|
|
2
|
+
export const missingCliDocumentVersionMessage = "Missing value for --document-version.";
|
|
3
|
+
const supportedCliDocumentVersions = [
|
|
4
|
+
"0.0.0",
|
|
5
|
+
"1.0.0",
|
|
6
|
+
];
|
|
7
|
+
const compatibilityModeByDocumentVersion = {
|
|
8
|
+
"0.0.0": "legacy-0.1",
|
|
9
|
+
"1.0.0": "default",
|
|
10
|
+
};
|
|
11
|
+
export function isCliDocumentVersion(value) {
|
|
12
|
+
return supportedCliDocumentVersions.includes(value);
|
|
13
|
+
}
|
|
14
|
+
export function cliDocumentVersionUsageValues() {
|
|
15
|
+
return supportedCliDocumentVersions.join(" | ");
|
|
16
|
+
}
|
|
17
|
+
export function parseCliDocumentVersion(value) {
|
|
18
|
+
if (value.trim() === "") {
|
|
19
|
+
return { kind: "error", message: missingCliDocumentVersionMessage };
|
|
20
|
+
}
|
|
21
|
+
if (!isCliDocumentVersion(value)) {
|
|
22
|
+
return {
|
|
23
|
+
kind: "error",
|
|
24
|
+
message: `Invalid document version: ${value}. Expected one of: ${cliDocumentVersionUsageValues()}.`,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return { kind: "ok", documentVersion: value };
|
|
28
|
+
}
|
|
29
|
+
export function compatibilityModeForDocumentVersion(documentVersion) {
|
|
30
|
+
return compatibilityModeByDocumentVersion[documentVersion];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=document-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-version.js","sourceRoot":"","sources":["../../src/cli/document-version.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,yBAAyB,GACpC,OAAuC,CAAC;AAE1C,MAAM,CAAC,MAAM,gCAAgC,GAC3C,uCAAuC,CAAC;AAE1C,MAAM,4BAA4B,GAAG;IACnC,OAAO;IACP,OAAO;CAC4C,CAAC;AAEtD,MAAM,kCAAkC,GAAG;IACzC,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,SAAS;CAC8C,CAAC;AAEnE,MAAM,UAAU,oBAAoB,CAClC,KAAa;IAEb,OAAO,4BAA4B,CAAC,QAAQ,CAAC,KAA8B,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAa;IAIb,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,6BAA6B,KAAK,sBAAsB,6BAA6B,EAAE,GAAG;SACpG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,eAAsC;IAEtC,OAAO,kCAAkC,CAAC,eAAe,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare class CliFileError extends Error {
|
|
2
|
+
readonly name = "CliFileError";
|
|
3
|
+
}
|
|
4
|
+
export declare function readMarkdownFile(targetPath: string, cwd: string): Promise<string>;
|
|
5
|
+
export declare function readCliFile(targetPath: string, cwd: string): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAkB,IAAI,kBAAkB;CACzC;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAejB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { readFile, stat } from "node:fs/promises";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
export class CliFileError extends Error {
|
|
4
|
+
name = "CliFileError";
|
|
5
|
+
}
|
|
6
|
+
export async function readMarkdownFile(targetPath, cwd) {
|
|
7
|
+
return readCliFile(targetPath, cwd);
|
|
8
|
+
}
|
|
9
|
+
export async function readCliFile(targetPath, cwd) {
|
|
10
|
+
const absolutePath = resolve(cwd, targetPath);
|
|
11
|
+
const targetStat = await readTargetStat(absolutePath, targetPath);
|
|
12
|
+
if (!targetStat.isFile()) {
|
|
13
|
+
throw new CliFileError(`Expected a file path for "${targetPath}". Directories are not supported.`);
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
return await readFile(absolutePath, "utf8");
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw new CliFileError(`Unable to read "${targetPath}": ${errorMessage(error)}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async function readTargetStat(absolutePath, targetPath) {
|
|
23
|
+
try {
|
|
24
|
+
return await stat(absolutePath);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
throw new CliFileError(`Unable to read "${targetPath}": ${errorMessage(error)}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function errorMessage(error) {
|
|
31
|
+
return error instanceof Error ? error.message : String(error);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,YAAa,SAAQ,KAAK;IACnB,IAAI,GAAG,cAAc,CAAC;CACzC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,GAAW;IAEX,OAAO,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAkB,EAClB,GAAW;IAEX,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,YAAY,CACpB,6BAA6B,UAAU,mCAAmC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC,mBAAmB,UAAU,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,YAAoB,EAAE,UAAkB;IACpE,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC,mBAAmB,UAAU,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,MAAM,EAAE,OAAO,CAAC,MAAM;CACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type EngineDocumentVersion, type NormalizeResult } from "../api/contracts.js";
|
|
2
|
+
export interface NormalizeMarkdownInput {
|
|
3
|
+
documentVersion: EngineDocumentVersion;
|
|
4
|
+
markdown: string;
|
|
5
|
+
path: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function normalizeMarkdown(input: NormalizeMarkdownInput): NormalizeResult;
|
|
8
|
+
//# sourceMappingURL=normalize-markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-markdown.d.ts","sourceRoot":"","sources":["../../src/cli/normalize-markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,qBAAqB,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,GAC5B,eAAe,CAQjB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { normalize, parse, } from "../api/contracts.js";
|
|
2
|
+
export function normalizeMarkdown(input) {
|
|
3
|
+
const parseResult = parse(input.markdown, {
|
|
4
|
+
path: input.path,
|
|
5
|
+
});
|
|
6
|
+
return normalize(parseResult.parsed, {
|
|
7
|
+
documentVersion: input.documentVersion,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=normalize-markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-markdown.js","sourceRoot":"","sources":["../../src/cli/normalize-markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,GAGN,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,UAAU,iBAAiB,CAC/B,KAA6B;IAE7B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE;QACnC,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface TextOutput {
|
|
2
|
+
write(chunk: string): void | boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface RunCliInput {
|
|
5
|
+
args: string[];
|
|
6
|
+
cwd: string;
|
|
7
|
+
stderr: TextOutput;
|
|
8
|
+
stdout: TextOutput;
|
|
9
|
+
}
|
|
10
|
+
export declare function runCli(input: RunCliInput): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAmDhE"}
|
package/dist/cli/run.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { serialize } from "../api/contracts.js";
|
|
2
|
+
import { parseCliArgs } from "./args.js";
|
|
3
|
+
import { runDeclarativeValidationCli } from "./declarative-validation.js";
|
|
4
|
+
import { compatibilityModeForDocumentVersion } from "./document-version.js";
|
|
5
|
+
import { readMarkdownFile } from "./files.js";
|
|
6
|
+
import { normalizeMarkdown } from "./normalize-markdown.js";
|
|
7
|
+
export async function runCli(input) {
|
|
8
|
+
const argsResult = parseCliArgs(input.args);
|
|
9
|
+
if (argsResult.kind === "help") {
|
|
10
|
+
input.stdout.write(argsResult.usage);
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
if (argsResult.kind === "error") {
|
|
14
|
+
input.stderr.write(`${argsResult.message}\n\n${argsResult.usage}`);
|
|
15
|
+
return 2;
|
|
16
|
+
}
|
|
17
|
+
if (argsResult.kind === "validate") {
|
|
18
|
+
const validationResult = await runDeclarativeValidationCli({
|
|
19
|
+
cwd: input.cwd,
|
|
20
|
+
filePath: argsResult.filePath,
|
|
21
|
+
format: argsResult.format,
|
|
22
|
+
profilePath: argsResult.profilePath,
|
|
23
|
+
});
|
|
24
|
+
if (validationResult.kind === "fileError") {
|
|
25
|
+
input.stderr.write(`${validationResult.message}\n`);
|
|
26
|
+
return 2;
|
|
27
|
+
}
|
|
28
|
+
input.stdout.write(`${validationResult.output}\n`);
|
|
29
|
+
return validationResult.exitCode;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const markdown = await readMarkdownFile(argsResult.targetPath, input.cwd);
|
|
33
|
+
const normalizeResult = normalizeMarkdown({
|
|
34
|
+
documentVersion: argsResult.documentVersion,
|
|
35
|
+
markdown,
|
|
36
|
+
path: argsResult.targetPath,
|
|
37
|
+
});
|
|
38
|
+
input.stdout.write(`${serialize(normalizeResult, {
|
|
39
|
+
compatibilityMode: compatibilityModeForDocumentVersion(argsResult.documentVersion),
|
|
40
|
+
pretty: true,
|
|
41
|
+
})}\n`);
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
input.stderr.write(`${errorMessage(error)}\n`);
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function errorMessage(error) {
|
|
50
|
+
return error instanceof Error ? error.message : String(error);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAa5D,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAkB;IAC7C,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,OAAO,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACnC,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CAAC;YACzD,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC,CAAC;QAEH,IAAI,gBAAgB,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,OAAO,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,MAAM,IAAI,CAAC,CAAC;QACnD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,iBAAiB,CAAC;YACxC,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,QAAQ;YACR,IAAI,EAAE,UAAU,CAAC,UAAU;SAC5B,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,KAAK,CAChB,GAAG,SAAS,CAAC,eAAe,EAAE;YAC5B,iBAAiB,EAAE,mCAAmC,CACpD,UAAU,CAAC,eAAe,CAC3B;YACD,MAAM,EAAE,IAAI;SACb,CAAC,IAAI,CACP,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DeclarativeOutputFormat } from "../declarative-validation/profile/index.js";
|
|
2
|
+
export interface ValidateCliArgs {
|
|
3
|
+
kind: "validate";
|
|
4
|
+
filePath: string;
|
|
5
|
+
format: DeclarativeOutputFormat;
|
|
6
|
+
profilePath: string;
|
|
7
|
+
}
|
|
8
|
+
export type ValidateCliArgsResult = ValidateCliArgs | {
|
|
9
|
+
kind: "help";
|
|
10
|
+
usage: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "error";
|
|
13
|
+
message: string;
|
|
14
|
+
usage: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const validateCliUsage = "Usage: markdown-engine validate --file <markdown-file> --profile <profile-file> [--format json]\n\nRuns declarative validation for one Markdown file and one validation profile.\n\nOptions:\n --file <markdown-file> Markdown file to validate.\n --profile <profile-file> Declarative validation profile to apply.\n --format json Output JSON. This is the default and only supported format.\n -h, --help Show this help message.\n\nExit status:\n 0 Validation completed with no error diagnostics.\n 1 Profile/config/compile or validation diagnostics failed.\n 2 Usage, unsupported format, unknown args, or file read error.\n";
|
|
17
|
+
export declare function parseValidateCliArgs(args: string[]): ValidateCliArgsResult;
|
|
18
|
+
//# sourceMappingURL=validate-args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-args.d.ts","sourceRoot":"","sources":["../../src/cli/validate-args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAS1F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,uBAAuB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,gBAAgB,+vBAc5B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAyH1E"}
|