@jasonbelmonti/markdown-engine 2.0.0 → 3.1.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 +45 -1
- package/README.md +132 -57
- 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 +2 -2
- package/dist/api/declarative-validation.d.ts.map +1 -1
- package/dist/api/declarative-validation.js +53 -31
- package/dist/api/declarative-validation.js.map +1 -1
- package/dist/api/document-set-validation-types.d.ts +32 -0
- package/dist/api/document-set-validation-types.d.ts.map +1 -0
- package/dist/api/document-set-validation-types.js +2 -0
- package/dist/api/document-set-validation-types.js.map +1 -0
- package/dist/api/document-set-validation.d.ts +4 -0
- package/dist/api/document-set-validation.d.ts.map +1 -0
- package/dist/api/document-set-validation.js +60 -0
- package/dist/api/document-set-validation.js.map +1 -0
- package/dist/api/serialize.d.ts +2 -1
- package/dist/api/serialize.d.ts.map +1 -1
- package/dist/api/serialize.js.map +1 -1
- package/dist/cli/declarative-validation.d.ts.map +1 -1
- package/dist/cli/declarative-validation.js +7 -12
- package/dist/cli/declarative-validation.js.map +1 -1
- package/dist/declarative-validation/applicability/classifier.d.ts +18 -0
- package/dist/declarative-validation/applicability/classifier.d.ts.map +1 -0
- package/dist/declarative-validation/applicability/classifier.js +37 -0
- package/dist/declarative-validation/applicability/classifier.js.map +1 -0
- package/dist/declarative-validation/applicability/index.d.ts +2 -0
- package/dist/declarative-validation/applicability/index.d.ts.map +1 -0
- package/dist/declarative-validation/applicability/index.js +2 -0
- package/dist/declarative-validation/applicability/index.js.map +1 -0
- package/dist/declarative-validation/assertions/context.d.ts +2 -2
- package/dist/declarative-validation/assertions/context.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/diagnostics.d.ts +7 -4
- package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/diagnostics.js +26 -1
- package/dist/declarative-validation/assertions/diagnostics.js.map +1 -1
- package/dist/declarative-validation/assertions/evaluator.d.ts +2 -2
- package/dist/declarative-validation/assertions/evaluator.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/evaluator.js +9 -0
- package/dist/declarative-validation/assertions/evaluator.js.map +1 -1
- package/dist/declarative-validation/assertions/frontmatter-shape.d.ts +9 -0
- package/dist/declarative-validation/assertions/frontmatter-shape.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/frontmatter-shape.js +105 -0
- package/dist/declarative-validation/assertions/frontmatter-shape.js.map +1 -0
- package/dist/declarative-validation/assertions/group-evaluator.d.ts +6 -0
- package/dist/declarative-validation/assertions/group-evaluator.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/group-evaluator.js +57 -0
- package/dist/declarative-validation/assertions/group-evaluator.js.map +1 -0
- package/dist/declarative-validation/assertions/id-targets.d.ts +15 -0
- package/dist/declarative-validation/assertions/id-targets.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/id-targets.js +18 -55
- package/dist/declarative-validation/assertions/id-targets.js.map +1 -1
- package/dist/declarative-validation/assertions/ids.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/ids.js +100 -14
- package/dist/declarative-validation/assertions/ids.js.map +1 -1
- package/dist/declarative-validation/assertions/index.d.ts +1 -0
- package/dist/declarative-validation/assertions/index.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/index.js +1 -0
- package/dist/declarative-validation/assertions/index.js.map +1 -1
- package/dist/declarative-validation/assertions/table-column-coverage.d.ts +9 -0
- package/dist/declarative-validation/assertions/table-column-coverage.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/table-column-coverage.js +108 -0
- package/dist/declarative-validation/assertions/table-column-coverage.js.map +1 -0
- package/dist/declarative-validation/assertions/text-format.d.ts +9 -0
- package/dist/declarative-validation/assertions/text-format.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/text-format.js +75 -0
- package/dist/declarative-validation/assertions/text-format.js.map +1 -0
- package/dist/declarative-validation/compiler/applicability-plan.d.ts +5 -0
- package/dist/declarative-validation/compiler/applicability-plan.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/applicability-plan.js +22 -0
- package/dist/declarative-validation/compiler/applicability-plan.js.map +1 -0
- package/dist/declarative-validation/compiler/assertion-builders.d.ts +2 -1
- package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/assertion-builders.js +88 -13
- package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -1
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts +5 -1
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/assertion-shapes.js +120 -0
- package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -1
- package/dist/declarative-validation/compiler/assertions.d.ts +2 -1
- package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/assertions.js +16 -4
- package/dist/declarative-validation/compiler/assertions.js.map +1 -1
- package/dist/declarative-validation/compiler/compatibility.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/compatibility.js +3 -0
- package/dist/declarative-validation/compiler/compatibility.js.map +1 -1
- package/dist/declarative-validation/compiler/group-plans.d.ts +6 -0
- package/dist/declarative-validation/compiler/group-plans.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/group-plans.js +67 -0
- package/dist/declarative-validation/compiler/group-plans.js.map +1 -0
- package/dist/declarative-validation/compiler/index.d.ts +1 -1
- package/dist/declarative-validation/compiler/index.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/index.js +70 -35
- package/dist/declarative-validation/compiler/index.js.map +1 -1
- package/dist/declarative-validation/compiler/plan.d.ts +80 -5
- package/dist/declarative-validation/compiler/plan.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/rule-fields.d.ts +6 -0
- package/dist/declarative-validation/compiler/rule-fields.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/rule-fields.js +40 -0
- package/dist/declarative-validation/compiler/rule-fields.js.map +1 -0
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts +0 -1
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts.map +1 -1
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js +8 -2
- package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js.map +1 -1
- package/dist/declarative-validation/evidence/index.d.ts +3 -3
- package/dist/declarative-validation/evidence/index.d.ts.map +1 -1
- package/dist/declarative-validation/evidence/index.js +6 -6
- package/dist/declarative-validation/evidence/index.js.map +1 -1
- package/dist/declarative-validation/profile/applicability-schema.d.ts +4 -0
- package/dist/declarative-validation/profile/applicability-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/applicability-schema.js +24 -0
- package/dist/declarative-validation/profile/applicability-schema.js.map +1 -0
- package/dist/declarative-validation/profile/assertion-schema.d.ts +2 -1
- package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -1
- package/dist/declarative-validation/profile/assertion-schema.js +194 -14
- package/dist/declarative-validation/profile/assertion-schema.js.map +1 -1
- package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts +3 -1
- package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts.map +1 -1
- package/dist/declarative-validation/profile/direct-profile-diagnostics.js +10 -2
- package/dist/declarative-validation/profile/direct-profile-diagnostics.js.map +1 -1
- package/dist/declarative-validation/profile/frontmatter-shape-schema.d.ts +8 -0
- package/dist/declarative-validation/profile/frontmatter-shape-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/frontmatter-shape-schema.js +178 -0
- package/dist/declarative-validation/profile/frontmatter-shape-schema.js.map +1 -0
- package/dist/declarative-validation/profile/group-schema.d.ts +5 -0
- package/dist/declarative-validation/profile/group-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/group-schema.js +55 -0
- package/dist/declarative-validation/profile/group-schema.js.map +1 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.d.ts +12 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.d.ts.map +1 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.js +32 -0
- package/dist/declarative-validation/profile/ids-assertion-contract.js.map +1 -0
- package/dist/declarative-validation/profile/index.d.ts +63 -2
- package/dist/declarative-validation/profile/index.d.ts.map +1 -1
- package/dist/declarative-validation/profile/index.js.map +1 -1
- package/dist/declarative-validation/profile/materialization.d.ts.map +1 -1
- package/dist/declarative-validation/profile/materialization.js +13 -10
- package/dist/declarative-validation/profile/materialization.js.map +1 -1
- package/dist/declarative-validation/profile/schema.d.ts.map +1 -1
- package/dist/declarative-validation/profile/schema.js +73 -12
- package/dist/declarative-validation/profile/schema.js.map +1 -1
- package/dist/declarative-validation/profile/syntax-version.d.ts +7 -0
- package/dist/declarative-validation/profile/syntax-version.d.ts.map +1 -0
- package/dist/declarative-validation/profile/syntax-version.js +11 -0
- package/dist/declarative-validation/profile/syntax-version.js.map +1 -0
- package/dist/declarative-validation/profile/text-format-contract.d.ts +4 -0
- package/dist/declarative-validation/profile/text-format-contract.d.ts.map +1 -0
- package/dist/declarative-validation/profile/text-format-contract.js +6 -0
- package/dist/declarative-validation/profile/text-format-contract.js.map +1 -0
- package/dist/declarative-validation/results/clone-rule-result.d.ts +6 -0
- package/dist/declarative-validation/results/clone-rule-result.d.ts.map +1 -0
- package/dist/declarative-validation/results/clone-rule-result.js +125 -0
- package/dist/declarative-validation/results/clone-rule-result.js.map +1 -0
- package/dist/declarative-validation/results/create-result.d.ts +15 -0
- package/dist/declarative-validation/results/create-result.d.ts.map +1 -0
- package/dist/declarative-validation/results/create-result.js +58 -0
- package/dist/declarative-validation/results/create-result.js.map +1 -0
- package/dist/declarative-validation/results/index.d.ts +3 -25
- package/dist/declarative-validation/results/index.d.ts.map +1 -1
- package/dist/declarative-validation/results/index.js +2 -1
- package/dist/declarative-validation/results/index.js.map +1 -1
- package/dist/declarative-validation/results/skipped-rule-result.d.ts +10 -0
- package/dist/declarative-validation/results/skipped-rule-result.d.ts.map +1 -0
- package/dist/declarative-validation/results/skipped-rule-result.js +18 -0
- package/dist/declarative-validation/results/skipped-rule-result.js.map +1 -0
- package/dist/declarative-validation/results/types.d.ts +77 -0
- package/dist/declarative-validation/results/types.d.ts.map +1 -0
- package/dist/declarative-validation/results/types.js +2 -0
- package/dist/declarative-validation/results/types.js.map +1 -0
- package/dist/declarative-validation/selectors/table-targets.d.ts +23 -0
- package/dist/declarative-validation/selectors/table-targets.d.ts.map +1 -1
- package/dist/declarative-validation/selectors/table-targets.js +52 -9
- package/dist/declarative-validation/selectors/table-targets.js.map +1 -1
- package/dist-bundled/markdown-engine-cli.mjs +27373 -0
- package/docs/contracts/api.md +79 -15
- package/docs/contracts/declarative-validation.md +462 -40
- package/fixtures/declarative-validation/examples/okf-v0.1/fail/invalid-log-date/log.md +5 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/fail/missing-concept-type/concepts/customer-metric.md +8 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/fail/non-root-index-frontmatter/datasets/index.md +7 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/pass/datasets/index.md +3 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/pass/datasets/sales.md +16 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/pass/index.md +8 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/pass/log.md +9 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/pass/playbooks/incident-response.md +17 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/profiles/concept.yaml +14 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/profiles/log.yaml +10 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/profiles/non-root-index.yaml +9 -0
- package/fixtures/declarative-validation/examples/okf-v0.1/profiles/root-index.yaml +12 -0
- package/package.json +9 -3
- package/scripts/install-markdown-engine-cli.sh +113 -0
- package/skills/profile-backed-markdown/SKILL.md +54 -0
- package/skills/profile-backed-markdown/assets/profiles/operational-spec.yaml +98 -0
- package/skills/profile-backed-markdown/references/repair-brief.md +14 -0
- package/skills/profile-backed-markdown/scripts/validate-profile-backed-markdown.mjs +590 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { documentQueries } from "../../api/document-queries.js";
|
|
2
|
+
import { tableColumnTargets } from "../selectors/table-targets.js";
|
|
2
3
|
import { documentTextOffsetForTarget } from "./document-text-offsets.js";
|
|
3
4
|
import { extractIdTokens } from "./id-tokens.js";
|
|
4
5
|
import { sourceRangeForNormalizedText } from "./normalized-source-ranges.js";
|
|
@@ -15,7 +16,23 @@ export function extractSectionIdTokens(document, section, options = {}) {
|
|
|
15
16
|
}), options);
|
|
16
17
|
}
|
|
17
18
|
export function extractTableColumnIdTokens(document, source, options = {}) {
|
|
18
|
-
|
|
19
|
+
const resolution = resolveTableColumnIdTokens(document, source, options);
|
|
20
|
+
return [...resolution.tokens];
|
|
21
|
+
}
|
|
22
|
+
export function resolveTableColumnIdTokens(document, source, options = {}) {
|
|
23
|
+
const resolution = tableColumnTargets(document, source);
|
|
24
|
+
if (resolution.status !== "resolved") {
|
|
25
|
+
return {
|
|
26
|
+
status: resolution.status,
|
|
27
|
+
source,
|
|
28
|
+
tokens: [],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
status: "resolved",
|
|
33
|
+
source,
|
|
34
|
+
tokens: extractIdTokensForSegments(resolution.targets.flatMap((target) => idTextSegmentsForSelectionTarget(document, target)), options),
|
|
35
|
+
};
|
|
19
36
|
}
|
|
20
37
|
function extractIdTokensForSegments(segments, options) {
|
|
21
38
|
return segments.flatMap((segment) => extractIdTokens(segment.text, options).map((token) => ({
|
|
@@ -172,60 +189,6 @@ function tableCellSegment(table, cell, section) {
|
|
|
172
189
|
definitionTableKey: table.target.id,
|
|
173
190
|
});
|
|
174
191
|
}
|
|
175
|
-
function tableColumnSegments(document, source) {
|
|
176
|
-
if (source.section !== undefined) {
|
|
177
|
-
return documentQueries
|
|
178
|
-
.sections(document, { title: source.section })
|
|
179
|
-
.flatMap((section) => sectionTableColumnSegments(document, section, source.column));
|
|
180
|
-
}
|
|
181
|
-
return documentQueries
|
|
182
|
-
.tables(document)
|
|
183
|
-
.flatMap((table) => tableDataColumnSegments(table, source.column, sectionForTable(document, table)));
|
|
184
|
-
}
|
|
185
|
-
function sectionTableColumnSegments(document, section, column) {
|
|
186
|
-
return [
|
|
187
|
-
...directSectionTableColumnSegments(document, section, column),
|
|
188
|
-
...section.childSections.flatMap((childTarget) => {
|
|
189
|
-
const childSection = documentQueries.sections(document, {
|
|
190
|
-
targetId: childTarget.id,
|
|
191
|
-
})[0];
|
|
192
|
-
return childSection === undefined
|
|
193
|
-
? []
|
|
194
|
-
: sectionTableColumnSegments(document, childSection, column);
|
|
195
|
-
}),
|
|
196
|
-
];
|
|
197
|
-
}
|
|
198
|
-
function directSectionTableColumnSegments(document, section, column) {
|
|
199
|
-
return section.bodyTargets.flatMap((bodyTarget) => nodeTableColumnSegments(document, documentQueries.nodes(document, { targetId: bodyTarget.id })[0], column, section));
|
|
200
|
-
}
|
|
201
|
-
function nodeTableColumnSegments(document, node, column, section) {
|
|
202
|
-
if (node === undefined) {
|
|
203
|
-
return [];
|
|
204
|
-
}
|
|
205
|
-
if (node.type === "table" && node.target !== undefined) {
|
|
206
|
-
const table = documentQueries.tables(document, { targetId: node.target.id })[0];
|
|
207
|
-
return table === undefined
|
|
208
|
-
? []
|
|
209
|
-
: tableDataColumnSegments(table, column, section);
|
|
210
|
-
}
|
|
211
|
-
return (node.children ?? []).flatMap((child) => nodeTableColumnSegments(document, child, column, section));
|
|
212
|
-
}
|
|
213
|
-
function tableDataColumnSegments(table, column, section) {
|
|
214
|
-
const columnIndex = columnIndexForHeader(table, column);
|
|
215
|
-
if (columnIndex === undefined) {
|
|
216
|
-
return [];
|
|
217
|
-
}
|
|
218
|
-
return table.cells
|
|
219
|
-
.filter((cell) => !cell.header && cell.columnIndex === columnIndex)
|
|
220
|
-
.sort(compareCells)
|
|
221
|
-
.map((cell) => tableCellSegment(table, cell, section));
|
|
222
|
-
}
|
|
223
|
-
function columnIndexForHeader(table, column) {
|
|
224
|
-
return table.cells
|
|
225
|
-
.filter((cell) => cell.header)
|
|
226
|
-
.sort(compareCells)
|
|
227
|
-
.find((cell) => cell.text === column)?.columnIndex;
|
|
228
|
-
}
|
|
229
192
|
function sectionHeadingSegment(document, section) {
|
|
230
193
|
const headingSource = documentQueries.sourceSlice(document, section.headingTarget);
|
|
231
194
|
return sourceBackedTextSegment({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-targets.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/id-targets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"id-targets.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/id-targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,KAAK,YAAY,GAAG,OAAO,CAAC,4BAA4B,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AA0B3E,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,EAAE,CAcvB"}
|
|
@@ -4,9 +4,18 @@ export function evaluateIds(assertion, context) {
|
|
|
4
4
|
if (context.selection.targets.length === 0) {
|
|
5
5
|
return [emptySelectionDiagnostic(context.rule, context.assertionIndex)];
|
|
6
6
|
}
|
|
7
|
-
const
|
|
7
|
+
const collectedIds = collectIds(assertion, context);
|
|
8
|
+
const diagnostics = assertion.unique === true
|
|
9
|
+
? duplicateIdDiagnostics(collectedIds, context)
|
|
10
|
+
: [];
|
|
11
|
+
diagnostics.push(...idCountDiagnostics(assertion, collectedIds, context));
|
|
12
|
+
return diagnostics;
|
|
13
|
+
}
|
|
14
|
+
function collectIds(assertion, context) {
|
|
15
|
+
const seenByComparisonValue = new Map();
|
|
16
|
+
const uniqueOccurrences = [];
|
|
8
17
|
const seenOccurrences = new Set();
|
|
9
|
-
const
|
|
18
|
+
const duplicates = [];
|
|
10
19
|
for (const [targetOrder, target] of context.selection.targets.entries()) {
|
|
11
20
|
const tokens = extractTargetIdTokens(context.selection.document, target, {
|
|
12
21
|
caseSensitive: assertion.caseSensitive,
|
|
@@ -17,25 +26,102 @@ export function evaluateIds(assertion, context) {
|
|
|
17
26
|
continue;
|
|
18
27
|
}
|
|
19
28
|
seenOccurrences.add(token.occurrenceKey);
|
|
20
|
-
const
|
|
29
|
+
const currentOccurrence = {
|
|
30
|
+
token,
|
|
31
|
+
target,
|
|
32
|
+
targetOrder,
|
|
33
|
+
tokenOrder,
|
|
34
|
+
};
|
|
35
|
+
const firstSeen = seenByComparisonValue.get(token.comparisonValue);
|
|
21
36
|
if (firstSeen === undefined) {
|
|
22
|
-
|
|
37
|
+
seenByComparisonValue.set(token.comparisonValue, currentOccurrence);
|
|
38
|
+
uniqueOccurrences.push(currentOccurrence);
|
|
23
39
|
continue;
|
|
24
40
|
}
|
|
25
|
-
|
|
26
|
-
assertionIndex: context.assertionIndex,
|
|
27
|
-
target,
|
|
28
|
-
targetOrder,
|
|
29
|
-
targetKey: duplicateIdSortKey(token.comparisonValue, targetOrder),
|
|
30
|
-
diagnosticOrder: tokenOrder,
|
|
31
|
-
...(token.sourceRange !== undefined
|
|
32
|
-
? { sourceRange: token.sourceRange }
|
|
33
|
-
: {}),
|
|
34
|
-
}));
|
|
41
|
+
duplicates.push({ firstSeen, repeated: currentOccurrence });
|
|
35
42
|
}
|
|
36
43
|
}
|
|
44
|
+
return { duplicates, uniqueOccurrences };
|
|
45
|
+
}
|
|
46
|
+
function duplicateIdDiagnostics(collectedIds, context) {
|
|
47
|
+
return collectedIds.duplicates.map(({ firstSeen, repeated }) => validationDiagnostic("profile.validation.duplicateId", `ID "${repeated.token.value}" duplicates earlier ID "${firstSeen.token.value}".`, context.rule, {
|
|
48
|
+
assertionIndex: context.assertionIndex,
|
|
49
|
+
target: repeated.target,
|
|
50
|
+
targetOrder: repeated.targetOrder,
|
|
51
|
+
targetKey: duplicateIdSortKey(repeated.token.comparisonValue, repeated.targetOrder),
|
|
52
|
+
diagnosticOrder: repeated.tokenOrder,
|
|
53
|
+
...(repeated.token.sourceRange !== undefined
|
|
54
|
+
? { sourceRange: repeated.token.sourceRange }
|
|
55
|
+
: {}),
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
function idCountDiagnostics(assertion, collectedIds, context) {
|
|
59
|
+
const diagnostics = [];
|
|
60
|
+
const actualCount = collectedIds.uniqueOccurrences.length;
|
|
61
|
+
if (assertion.minCount !== undefined && actualCount < assertion.minCount) {
|
|
62
|
+
diagnostics.push(idCountDiagnostic("profile.validation.idCountTooLow", minCountMessage(assertion, assertion.minCount, actualCount), "min", minCountAnchor(collectedIds, context), context));
|
|
63
|
+
}
|
|
64
|
+
if (assertion.maxCount !== undefined && actualCount > assertion.maxCount) {
|
|
65
|
+
diagnostics.push(idCountDiagnostic("profile.validation.idCountTooHigh", maxCountMessage(assertion, assertion.maxCount, actualCount), "max", maxCountAnchor(assertion, collectedIds, context), context));
|
|
66
|
+
}
|
|
37
67
|
return diagnostics;
|
|
38
68
|
}
|
|
69
|
+
function idCountDiagnostic(code, message, boundName, anchor, context) {
|
|
70
|
+
return validationDiagnostic(code, message, context.rule, {
|
|
71
|
+
assertionIndex: context.assertionIndex,
|
|
72
|
+
targetOrder: anchor.targetOrder,
|
|
73
|
+
targetKey: idCountSortKey(boundName),
|
|
74
|
+
diagnosticOrder: anchor.diagnosticOrder,
|
|
75
|
+
...(anchor.target !== undefined ? { target: anchor.target } : {}),
|
|
76
|
+
...(anchor.sourceRange !== undefined ? { sourceRange: anchor.sourceRange } : {}),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function minCountAnchor(collectedIds, context) {
|
|
80
|
+
const firstKnownId = collectedIds.uniqueOccurrences[0];
|
|
81
|
+
return firstKnownId === undefined
|
|
82
|
+
? firstSelectionTargetAnchor(context)
|
|
83
|
+
: occurrenceAnchor(firstKnownId);
|
|
84
|
+
}
|
|
85
|
+
function maxCountAnchor(assertion, collectedIds, context) {
|
|
86
|
+
const firstExcessId = assertion.maxCount === undefined
|
|
87
|
+
? undefined
|
|
88
|
+
: collectedIds.uniqueOccurrences[assertion.maxCount];
|
|
89
|
+
return firstExcessId === undefined
|
|
90
|
+
? firstSelectionTargetAnchor(context)
|
|
91
|
+
: occurrenceAnchor(firstExcessId);
|
|
92
|
+
}
|
|
93
|
+
function occurrenceAnchor(occurrence) {
|
|
94
|
+
return {
|
|
95
|
+
target: occurrence.target,
|
|
96
|
+
targetOrder: occurrence.targetOrder,
|
|
97
|
+
diagnosticOrder: occurrence.tokenOrder,
|
|
98
|
+
...(occurrence.token.sourceRange !== undefined
|
|
99
|
+
? { sourceRange: occurrence.token.sourceRange }
|
|
100
|
+
: {}),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function firstSelectionTargetAnchor(context) {
|
|
104
|
+
const firstTarget = context.selection.targets[0];
|
|
105
|
+
return {
|
|
106
|
+
targetOrder: 0,
|
|
107
|
+
diagnosticOrder: 0,
|
|
108
|
+
...(firstTarget !== undefined ? { target: firstTarget } : {}),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function minCountMessage(assertion, expected, actual) {
|
|
112
|
+
return `Expected at least ${expected} ${uniqueIdDescription(assertion)} but found ${actual}.`;
|
|
113
|
+
}
|
|
114
|
+
function maxCountMessage(assertion, expected, actual) {
|
|
115
|
+
return `Expected at most ${expected} ${uniqueIdDescription(assertion)} but found ${actual}.`;
|
|
116
|
+
}
|
|
117
|
+
function uniqueIdDescription(assertion) {
|
|
118
|
+
return assertion.prefix === undefined
|
|
119
|
+
? "unique IDs"
|
|
120
|
+
: `unique IDs matching prefix "${assertion.prefix}"`;
|
|
121
|
+
}
|
|
122
|
+
function idCountSortKey(boundName) {
|
|
123
|
+
return `id-count:${boundName}`;
|
|
124
|
+
}
|
|
39
125
|
function duplicateIdSortKey(comparisonValue, targetOrder) {
|
|
40
126
|
return `id:${comparisonValue}:${targetOrder}`;
|
|
41
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/ids.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { evaluateCompiledDeclarativeAllOfRule, evaluateCompiledDeclarativeAnyOfRule, } from "./group-evaluator.js";
|
|
1
2
|
export { evaluateCompiledDeclarativeRule } from "./evaluator.js";
|
|
2
3
|
export { sortValidationRuleResults } from "./ordering.js";
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { evaluateCompiledDeclarativeAllOfRule, evaluateCompiledDeclarativeAnyOfRule, } from "./group-evaluator.js";
|
|
1
2
|
export { evaluateCompiledDeclarativeRule } from "./evaluator.js";
|
|
2
3
|
export { sortValidationRuleResults } from "./ordering.js";
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CompiledDeclarativeAssertion } from "../compiler/plan.js";
|
|
2
|
+
import type { AssertionEvaluationContext } from "./context.js";
|
|
3
|
+
import type { AssertionDiagnostic } from "./diagnostics.js";
|
|
4
|
+
type TableColumnCoverageAssertion = Extract<CompiledDeclarativeAssertion, {
|
|
5
|
+
kind: "tableColumnCoverage";
|
|
6
|
+
}>;
|
|
7
|
+
export declare function evaluateTableColumnCoverage(assertion: TableColumnCoverageAssertion, context: AssertionEvaluationContext): AssertionDiagnostic[];
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=table-column-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-column-coverage.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/table-column-coverage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAW5D,KAAK,4BAA4B,GAAG,OAAO,CACzC,4BAA4B,EAC5B;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAChC,CAAC;AAaF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,EAAE,CA+CvB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { emptySelectionDiagnostic, validationDiagnostic, } from "./diagnostics.js";
|
|
2
|
+
import { resolveTableColumnIdTokens, } from "./id-targets.js";
|
|
3
|
+
export function evaluateTableColumnCoverage(assertion, context) {
|
|
4
|
+
const options = idTokenOptions(assertion);
|
|
5
|
+
const sourceIds = sourceIdsForCoverage(assertion, context, options);
|
|
6
|
+
if (sourceIds.length === 0) {
|
|
7
|
+
return [emptySelectionDiagnostic(context.rule, context.assertionIndex)];
|
|
8
|
+
}
|
|
9
|
+
const targetResolution = resolveTableColumnIdTokens(context.selection.document, targetColumnSource(assertion), options);
|
|
10
|
+
if (targetResolution.status === "missingSection") {
|
|
11
|
+
return sourceIds.map((sourceId, sourceIdOrder) => missingTargetSectionDiagnostic(assertion, context, sourceId, sourceIdOrder));
|
|
12
|
+
}
|
|
13
|
+
if (targetResolution.status === "missingColumn") {
|
|
14
|
+
return sourceIds.map((sourceId, sourceIdOrder) => missingTargetColumnDiagnostic(assertion, context, sourceId, sourceIdOrder));
|
|
15
|
+
}
|
|
16
|
+
const targetComparisonValues = new Set(targetResolution.tokens.map((token) => token.comparisonValue));
|
|
17
|
+
const diagnostics = [];
|
|
18
|
+
for (const [sourceIdOrder, sourceId] of sourceIds.entries()) {
|
|
19
|
+
if (targetComparisonValues.has(sourceId.comparisonValue)) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
diagnostics.push(missingTargetColumnIdDiagnostic(assertion, context, sourceId, sourceIdOrder));
|
|
23
|
+
}
|
|
24
|
+
return diagnostics;
|
|
25
|
+
}
|
|
26
|
+
function sourceIdsForCoverage(assertion, context, options) {
|
|
27
|
+
const sourceResolution = resolveTableColumnIdTokens(context.selection.document, {
|
|
28
|
+
section: assertion.source.section,
|
|
29
|
+
column: assertion.source.column,
|
|
30
|
+
}, options);
|
|
31
|
+
return sourceResolution.status === "resolved"
|
|
32
|
+
? uniqueSourceIds(sourceResolution.tokens)
|
|
33
|
+
: [];
|
|
34
|
+
}
|
|
35
|
+
function uniqueSourceIds(tokens) {
|
|
36
|
+
const sourceIdsByComparisonValue = new Map();
|
|
37
|
+
for (const token of tokens) {
|
|
38
|
+
const existingSourceId = sourceIdsByComparisonValue.get(token.comparisonValue);
|
|
39
|
+
if (existingSourceId !== undefined) {
|
|
40
|
+
if (existingSourceId.sourceRange === undefined &&
|
|
41
|
+
token.sourceRange !== undefined) {
|
|
42
|
+
sourceIdsByComparisonValue.set(token.comparisonValue, {
|
|
43
|
+
...existingSourceId,
|
|
44
|
+
sourceRange: token.sourceRange,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
sourceIdsByComparisonValue.set(token.comparisonValue, {
|
|
50
|
+
value: token.value,
|
|
51
|
+
comparisonValue: token.comparisonValue,
|
|
52
|
+
...(token.sourceRange !== undefined ? { sourceRange: token.sourceRange } : {}),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return [...sourceIdsByComparisonValue.values()];
|
|
56
|
+
}
|
|
57
|
+
function missingTargetSectionDiagnostic(assertion, context, sourceId, sourceIdOrder) {
|
|
58
|
+
return coverageDiagnostic("profile.validation.tableColumnCoverageTargetSectionMissing", `ID "${sourceId.value}" requires target section "${assertion.target.section}" for tableColumnCoverage.`, "missingTargetSection", assertion, context, sourceId, sourceIdOrder);
|
|
59
|
+
}
|
|
60
|
+
function missingTargetColumnDiagnostic(assertion, context, sourceId, sourceIdOrder) {
|
|
61
|
+
return coverageDiagnostic("profile.validation.tableColumnCoverageTargetColumnMissing", `ID "${sourceId.value}" requires target table column "${assertion.target.column}" in section "${assertion.target.section}".`, "missingTargetColumn", assertion, context, sourceId, sourceIdOrder);
|
|
62
|
+
}
|
|
63
|
+
function missingTargetColumnIdDiagnostic(assertion, context, sourceId, sourceIdOrder) {
|
|
64
|
+
return coverageDiagnostic("profile.validation.tableColumnCoverageIdMissing", `ID "${sourceId.value}" must appear in target table column "${assertion.target.column}" of section "${assertion.target.section}".`, "missingTargetColumnId", assertion, context, sourceId, sourceIdOrder);
|
|
65
|
+
}
|
|
66
|
+
function coverageDiagnostic(code, message, kind, assertion, context, sourceId, sourceIdOrder) {
|
|
67
|
+
return validationDiagnostic(code, message, context.rule, {
|
|
68
|
+
assertionIndex: context.assertionIndex,
|
|
69
|
+
targetKey: coverageTargetKey(assertion, sourceId, kind),
|
|
70
|
+
diagnosticOrder: sourceIdOrder,
|
|
71
|
+
...(sourceId.sourceRange !== undefined
|
|
72
|
+
? { sourceRange: sourceId.sourceRange }
|
|
73
|
+
: {}),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function coverageTargetKey(assertion, sourceId, kind) {
|
|
77
|
+
return [
|
|
78
|
+
"tableColumnCoverage",
|
|
79
|
+
kind,
|
|
80
|
+
sourceId.comparisonValue,
|
|
81
|
+
assertion.target.section,
|
|
82
|
+
tableHeaderKey(assertion),
|
|
83
|
+
assertion.target.column,
|
|
84
|
+
].join(":");
|
|
85
|
+
}
|
|
86
|
+
function tableHeaderKey(assertion) {
|
|
87
|
+
return assertion.target.tableHeader === undefined
|
|
88
|
+
? "anyTable"
|
|
89
|
+
: assertion.target.tableHeader.join("|");
|
|
90
|
+
}
|
|
91
|
+
function idTokenOptions(assertion) {
|
|
92
|
+
return {
|
|
93
|
+
caseSensitive: assertion.source.caseSensitive,
|
|
94
|
+
...(assertion.source.prefix !== undefined
|
|
95
|
+
? { prefix: assertion.source.prefix }
|
|
96
|
+
: {}),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function targetColumnSource(assertion) {
|
|
100
|
+
return {
|
|
101
|
+
section: assertion.target.section,
|
|
102
|
+
...(assertion.target.tableHeader !== undefined
|
|
103
|
+
? { tableHeader: assertion.target.tableHeader }
|
|
104
|
+
: {}),
|
|
105
|
+
column: assertion.target.column,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=table-column-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-column-coverage.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/table-column-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CompiledDeclarativeAssertion } from "../compiler/plan.js";
|
|
2
|
+
import type { AssertionEvaluationContext } from "./context.js";
|
|
3
|
+
import type { AssertionDiagnostic } from "./diagnostics.js";
|
|
4
|
+
type TextFormatAssertion = Extract<CompiledDeclarativeAssertion, {
|
|
5
|
+
kind: "textFormat";
|
|
6
|
+
}>;
|
|
7
|
+
export declare function evaluateTextFormat(assertion: TextFormatAssertion, context: AssertionEvaluationContext): AssertionDiagnostic[];
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=text-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-format.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/text-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAM5D,KAAK,mBAAmB,GAAG,OAAO,CAChC,4BAA4B,EAC5B;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CACvB,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,EAAE,CAWvB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { emptySelectionDiagnostic, validationDiagnostic, } from "./diagnostics.js";
|
|
2
|
+
export function evaluateTextFormat(assertion, context) {
|
|
3
|
+
if (context.selection.targets.length === 0) {
|
|
4
|
+
return [emptySelectionDiagnostic(context.rule, context.assertionIndex)];
|
|
5
|
+
}
|
|
6
|
+
switch (assertion.format) {
|
|
7
|
+
case "isoDate":
|
|
8
|
+
return context.selection.targets.flatMap((target, targetOrder) => evaluateIsoDateTarget(context, target, targetOrder));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function evaluateIsoDateTarget(context, target, targetOrder) {
|
|
12
|
+
if (isIsoDateText(target.text)) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
return [
|
|
16
|
+
validationDiagnostic("profile.validation.assertionFailed", `Selected ${target.kind} text must be an exact ISO date in YYYY-MM-DD form.`, context.rule, {
|
|
17
|
+
assertionIndex: context.assertionIndex,
|
|
18
|
+
target,
|
|
19
|
+
targetOrder,
|
|
20
|
+
}),
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
function isIsoDateText(text) {
|
|
24
|
+
if (text.length !== 10 ||
|
|
25
|
+
text[4] !== "-" ||
|
|
26
|
+
text[7] !== "-") {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const year = decimalValue(text, 0, 4);
|
|
30
|
+
const month = decimalValue(text, 5, 7);
|
|
31
|
+
const day = decimalValue(text, 8, 10);
|
|
32
|
+
if (year === undefined || month === undefined || day === undefined) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const maximumDay = daysInMonth(year, month);
|
|
36
|
+
return maximumDay !== undefined && day >= 1 && day <= maximumDay;
|
|
37
|
+
}
|
|
38
|
+
function decimalValue(text, start, end) {
|
|
39
|
+
const zeroCode = 48;
|
|
40
|
+
const nineCode = 57;
|
|
41
|
+
let value = 0;
|
|
42
|
+
for (let index = start; index < end; index += 1) {
|
|
43
|
+
const charCode = text.charCodeAt(index);
|
|
44
|
+
if (charCode < zeroCode || charCode > nineCode) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
value = value * 10 + (charCode - zeroCode);
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
function daysInMonth(year, month) {
|
|
52
|
+
switch (month) {
|
|
53
|
+
case 1:
|
|
54
|
+
case 3:
|
|
55
|
+
case 5:
|
|
56
|
+
case 7:
|
|
57
|
+
case 8:
|
|
58
|
+
case 10:
|
|
59
|
+
case 12:
|
|
60
|
+
return 31;
|
|
61
|
+
case 4:
|
|
62
|
+
case 6:
|
|
63
|
+
case 9:
|
|
64
|
+
case 11:
|
|
65
|
+
return 30;
|
|
66
|
+
case 2:
|
|
67
|
+
return isLeapYear(year) ? 29 : 28;
|
|
68
|
+
default:
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function isLeapYear(year) {
|
|
73
|
+
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=text-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-format.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/text-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MarkdownDiagnostic } from "../../api/diagnostics.js";
|
|
2
|
+
import type { DeclarativeValidationSeverity } from "../profile/index.js";
|
|
3
|
+
import type { CompiledDeclarativeValidationApplicabilityPlan } from "./plan.js";
|
|
4
|
+
export declare function compiledApplicabilityPlanFromValue(value: unknown, ruleId: string, severity: DeclarativeValidationSeverity, diagnostics: MarkdownDiagnostic[]): CompiledDeclarativeValidationApplicabilityPlan | undefined;
|
|
5
|
+
//# sourceMappingURL=applicability-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applicability-plan.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/compiler/applicability-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAIzE,OAAO,KAAK,EAAE,8CAA8C,EAAE,MAAM,WAAW,CAAC;AAKhF,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,6BAA6B,EACvC,WAAW,EAAE,kBAAkB,EAAE,GAChC,8CAA8C,GAAG,SAAS,CA+B5D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { isPlainRecord } from "../../internal/plain-record.js";
|
|
2
|
+
import { PROFILE_SYNTAX_VERSION_V2 } from "../profile/syntax-version.js";
|
|
3
|
+
import { pushUnsupportedKeyDiagnostics } from "./assertion-shapes.js";
|
|
4
|
+
import { compileDiagnostic } from "./diagnostics.js";
|
|
5
|
+
import { compiledRuleFieldsFromValue } from "./rule-fields.js";
|
|
6
|
+
const APPLICABILITY_KEYS = ["select", "assert"];
|
|
7
|
+
export function compiledApplicabilityPlanFromValue(value, ruleId, severity, diagnostics) {
|
|
8
|
+
if (!isPlainRecord(value)) {
|
|
9
|
+
diagnostics.push(compileDiagnostic("profile.config.invalidShape", "Rule when must be an object.", ruleId));
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const diagnosticCountBefore = diagnostics.length;
|
|
13
|
+
pushUnsupportedKeyDiagnostics(value, APPLICABILITY_KEYS, diagnostics);
|
|
14
|
+
const fields = compiledRuleFieldsFromValue(value.select, value.assert, ruleId, severity, PROFILE_SYNTAX_VERSION_V2, diagnostics);
|
|
15
|
+
return fields !== undefined && diagnostics.length === diagnosticCountBefore
|
|
16
|
+
? {
|
|
17
|
+
selector: fields.selector,
|
|
18
|
+
assertions: fields.assertions,
|
|
19
|
+
}
|
|
20
|
+
: undefined;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=applicability-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applicability-plan.js","sourceRoot":"","sources":["../../../src/declarative-validation/compiler/applicability-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAEzD,MAAM,UAAU,kCAAkC,CAChD,KAAc,EACd,MAAc,EACd,QAAuC,EACvC,WAAiC;IAEjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,WAAW,CAAC,IAAI,CACd,iBAAiB,CACf,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,CACP,CACF,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC;IACjD,6BAA6B,CAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,2BAA2B,CACxC,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,QAAQ,EACR,yBAAyB,EACzB,WAAW,CACZ,CAAC;IAEF,OAAO,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,qBAAqB;QACzE,CAAC,CAAC;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
|