@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.
Files changed (196) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/README.md +132 -57
  3. package/dist/api/contracts.d.ts +2 -1
  4. package/dist/api/contracts.d.ts.map +1 -1
  5. package/dist/api/contracts.js +1 -0
  6. package/dist/api/contracts.js.map +1 -1
  7. package/dist/api/declarative-validation.d.ts +2 -2
  8. package/dist/api/declarative-validation.d.ts.map +1 -1
  9. package/dist/api/declarative-validation.js +53 -31
  10. package/dist/api/declarative-validation.js.map +1 -1
  11. package/dist/api/document-set-validation-types.d.ts +32 -0
  12. package/dist/api/document-set-validation-types.d.ts.map +1 -0
  13. package/dist/api/document-set-validation-types.js +2 -0
  14. package/dist/api/document-set-validation-types.js.map +1 -0
  15. package/dist/api/document-set-validation.d.ts +4 -0
  16. package/dist/api/document-set-validation.d.ts.map +1 -0
  17. package/dist/api/document-set-validation.js +60 -0
  18. package/dist/api/document-set-validation.js.map +1 -0
  19. package/dist/api/serialize.d.ts +2 -1
  20. package/dist/api/serialize.d.ts.map +1 -1
  21. package/dist/api/serialize.js.map +1 -1
  22. package/dist/cli/declarative-validation.d.ts.map +1 -1
  23. package/dist/cli/declarative-validation.js +7 -12
  24. package/dist/cli/declarative-validation.js.map +1 -1
  25. package/dist/declarative-validation/applicability/classifier.d.ts +18 -0
  26. package/dist/declarative-validation/applicability/classifier.d.ts.map +1 -0
  27. package/dist/declarative-validation/applicability/classifier.js +37 -0
  28. package/dist/declarative-validation/applicability/classifier.js.map +1 -0
  29. package/dist/declarative-validation/applicability/index.d.ts +2 -0
  30. package/dist/declarative-validation/applicability/index.d.ts.map +1 -0
  31. package/dist/declarative-validation/applicability/index.js +2 -0
  32. package/dist/declarative-validation/applicability/index.js.map +1 -0
  33. package/dist/declarative-validation/assertions/context.d.ts +2 -2
  34. package/dist/declarative-validation/assertions/context.d.ts.map +1 -1
  35. package/dist/declarative-validation/assertions/diagnostics.d.ts +7 -4
  36. package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -1
  37. package/dist/declarative-validation/assertions/diagnostics.js +26 -1
  38. package/dist/declarative-validation/assertions/diagnostics.js.map +1 -1
  39. package/dist/declarative-validation/assertions/evaluator.d.ts +2 -2
  40. package/dist/declarative-validation/assertions/evaluator.d.ts.map +1 -1
  41. package/dist/declarative-validation/assertions/evaluator.js +9 -0
  42. package/dist/declarative-validation/assertions/evaluator.js.map +1 -1
  43. package/dist/declarative-validation/assertions/frontmatter-shape.d.ts +9 -0
  44. package/dist/declarative-validation/assertions/frontmatter-shape.d.ts.map +1 -0
  45. package/dist/declarative-validation/assertions/frontmatter-shape.js +105 -0
  46. package/dist/declarative-validation/assertions/frontmatter-shape.js.map +1 -0
  47. package/dist/declarative-validation/assertions/group-evaluator.d.ts +6 -0
  48. package/dist/declarative-validation/assertions/group-evaluator.d.ts.map +1 -0
  49. package/dist/declarative-validation/assertions/group-evaluator.js +57 -0
  50. package/dist/declarative-validation/assertions/group-evaluator.js.map +1 -0
  51. package/dist/declarative-validation/assertions/id-targets.d.ts +15 -0
  52. package/dist/declarative-validation/assertions/id-targets.d.ts.map +1 -1
  53. package/dist/declarative-validation/assertions/id-targets.js +18 -55
  54. package/dist/declarative-validation/assertions/id-targets.js.map +1 -1
  55. package/dist/declarative-validation/assertions/ids.d.ts.map +1 -1
  56. package/dist/declarative-validation/assertions/ids.js +100 -14
  57. package/dist/declarative-validation/assertions/ids.js.map +1 -1
  58. package/dist/declarative-validation/assertions/index.d.ts +1 -0
  59. package/dist/declarative-validation/assertions/index.d.ts.map +1 -1
  60. package/dist/declarative-validation/assertions/index.js +1 -0
  61. package/dist/declarative-validation/assertions/index.js.map +1 -1
  62. package/dist/declarative-validation/assertions/table-column-coverage.d.ts +9 -0
  63. package/dist/declarative-validation/assertions/table-column-coverage.d.ts.map +1 -0
  64. package/dist/declarative-validation/assertions/table-column-coverage.js +108 -0
  65. package/dist/declarative-validation/assertions/table-column-coverage.js.map +1 -0
  66. package/dist/declarative-validation/assertions/text-format.d.ts +9 -0
  67. package/dist/declarative-validation/assertions/text-format.d.ts.map +1 -0
  68. package/dist/declarative-validation/assertions/text-format.js +75 -0
  69. package/dist/declarative-validation/assertions/text-format.js.map +1 -0
  70. package/dist/declarative-validation/compiler/applicability-plan.d.ts +5 -0
  71. package/dist/declarative-validation/compiler/applicability-plan.d.ts.map +1 -0
  72. package/dist/declarative-validation/compiler/applicability-plan.js +22 -0
  73. package/dist/declarative-validation/compiler/applicability-plan.js.map +1 -0
  74. package/dist/declarative-validation/compiler/assertion-builders.d.ts +2 -1
  75. package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -1
  76. package/dist/declarative-validation/compiler/assertion-builders.js +88 -13
  77. package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -1
  78. package/dist/declarative-validation/compiler/assertion-shapes.d.ts +5 -1
  79. package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -1
  80. package/dist/declarative-validation/compiler/assertion-shapes.js +120 -0
  81. package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -1
  82. package/dist/declarative-validation/compiler/assertions.d.ts +2 -1
  83. package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -1
  84. package/dist/declarative-validation/compiler/assertions.js +16 -4
  85. package/dist/declarative-validation/compiler/assertions.js.map +1 -1
  86. package/dist/declarative-validation/compiler/compatibility.d.ts.map +1 -1
  87. package/dist/declarative-validation/compiler/compatibility.js +3 -0
  88. package/dist/declarative-validation/compiler/compatibility.js.map +1 -1
  89. package/dist/declarative-validation/compiler/group-plans.d.ts +6 -0
  90. package/dist/declarative-validation/compiler/group-plans.d.ts.map +1 -0
  91. package/dist/declarative-validation/compiler/group-plans.js +67 -0
  92. package/dist/declarative-validation/compiler/group-plans.js.map +1 -0
  93. package/dist/declarative-validation/compiler/index.d.ts +1 -1
  94. package/dist/declarative-validation/compiler/index.d.ts.map +1 -1
  95. package/dist/declarative-validation/compiler/index.js +70 -35
  96. package/dist/declarative-validation/compiler/index.js.map +1 -1
  97. package/dist/declarative-validation/compiler/plan.d.ts +80 -5
  98. package/dist/declarative-validation/compiler/plan.d.ts.map +1 -1
  99. package/dist/declarative-validation/compiler/rule-fields.d.ts +6 -0
  100. package/dist/declarative-validation/compiler/rule-fields.d.ts.map +1 -0
  101. package/dist/declarative-validation/compiler/rule-fields.js +40 -0
  102. package/dist/declarative-validation/compiler/rule-fields.js.map +1 -0
  103. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts +0 -1
  104. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts.map +1 -1
  105. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js +8 -2
  106. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js.map +1 -1
  107. package/dist/declarative-validation/evidence/index.d.ts +3 -3
  108. package/dist/declarative-validation/evidence/index.d.ts.map +1 -1
  109. package/dist/declarative-validation/evidence/index.js +6 -6
  110. package/dist/declarative-validation/evidence/index.js.map +1 -1
  111. package/dist/declarative-validation/profile/applicability-schema.d.ts +4 -0
  112. package/dist/declarative-validation/profile/applicability-schema.d.ts.map +1 -0
  113. package/dist/declarative-validation/profile/applicability-schema.js +24 -0
  114. package/dist/declarative-validation/profile/applicability-schema.js.map +1 -0
  115. package/dist/declarative-validation/profile/assertion-schema.d.ts +2 -1
  116. package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -1
  117. package/dist/declarative-validation/profile/assertion-schema.js +194 -14
  118. package/dist/declarative-validation/profile/assertion-schema.js.map +1 -1
  119. package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts +3 -1
  120. package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts.map +1 -1
  121. package/dist/declarative-validation/profile/direct-profile-diagnostics.js +10 -2
  122. package/dist/declarative-validation/profile/direct-profile-diagnostics.js.map +1 -1
  123. package/dist/declarative-validation/profile/frontmatter-shape-schema.d.ts +8 -0
  124. package/dist/declarative-validation/profile/frontmatter-shape-schema.d.ts.map +1 -0
  125. package/dist/declarative-validation/profile/frontmatter-shape-schema.js +178 -0
  126. package/dist/declarative-validation/profile/frontmatter-shape-schema.js.map +1 -0
  127. package/dist/declarative-validation/profile/group-schema.d.ts +5 -0
  128. package/dist/declarative-validation/profile/group-schema.d.ts.map +1 -0
  129. package/dist/declarative-validation/profile/group-schema.js +55 -0
  130. package/dist/declarative-validation/profile/group-schema.js.map +1 -0
  131. package/dist/declarative-validation/profile/ids-assertion-contract.d.ts +12 -0
  132. package/dist/declarative-validation/profile/ids-assertion-contract.d.ts.map +1 -0
  133. package/dist/declarative-validation/profile/ids-assertion-contract.js +32 -0
  134. package/dist/declarative-validation/profile/ids-assertion-contract.js.map +1 -0
  135. package/dist/declarative-validation/profile/index.d.ts +63 -2
  136. package/dist/declarative-validation/profile/index.d.ts.map +1 -1
  137. package/dist/declarative-validation/profile/index.js.map +1 -1
  138. package/dist/declarative-validation/profile/materialization.d.ts.map +1 -1
  139. package/dist/declarative-validation/profile/materialization.js +13 -10
  140. package/dist/declarative-validation/profile/materialization.js.map +1 -1
  141. package/dist/declarative-validation/profile/schema.d.ts.map +1 -1
  142. package/dist/declarative-validation/profile/schema.js +73 -12
  143. package/dist/declarative-validation/profile/schema.js.map +1 -1
  144. package/dist/declarative-validation/profile/syntax-version.d.ts +7 -0
  145. package/dist/declarative-validation/profile/syntax-version.d.ts.map +1 -0
  146. package/dist/declarative-validation/profile/syntax-version.js +11 -0
  147. package/dist/declarative-validation/profile/syntax-version.js.map +1 -0
  148. package/dist/declarative-validation/profile/text-format-contract.d.ts +4 -0
  149. package/dist/declarative-validation/profile/text-format-contract.d.ts.map +1 -0
  150. package/dist/declarative-validation/profile/text-format-contract.js +6 -0
  151. package/dist/declarative-validation/profile/text-format-contract.js.map +1 -0
  152. package/dist/declarative-validation/results/clone-rule-result.d.ts +6 -0
  153. package/dist/declarative-validation/results/clone-rule-result.d.ts.map +1 -0
  154. package/dist/declarative-validation/results/clone-rule-result.js +125 -0
  155. package/dist/declarative-validation/results/clone-rule-result.js.map +1 -0
  156. package/dist/declarative-validation/results/create-result.d.ts +15 -0
  157. package/dist/declarative-validation/results/create-result.d.ts.map +1 -0
  158. package/dist/declarative-validation/results/create-result.js +58 -0
  159. package/dist/declarative-validation/results/create-result.js.map +1 -0
  160. package/dist/declarative-validation/results/index.d.ts +3 -25
  161. package/dist/declarative-validation/results/index.d.ts.map +1 -1
  162. package/dist/declarative-validation/results/index.js +2 -1
  163. package/dist/declarative-validation/results/index.js.map +1 -1
  164. package/dist/declarative-validation/results/skipped-rule-result.d.ts +10 -0
  165. package/dist/declarative-validation/results/skipped-rule-result.d.ts.map +1 -0
  166. package/dist/declarative-validation/results/skipped-rule-result.js +18 -0
  167. package/dist/declarative-validation/results/skipped-rule-result.js.map +1 -0
  168. package/dist/declarative-validation/results/types.d.ts +77 -0
  169. package/dist/declarative-validation/results/types.d.ts.map +1 -0
  170. package/dist/declarative-validation/results/types.js +2 -0
  171. package/dist/declarative-validation/results/types.js.map +1 -0
  172. package/dist/declarative-validation/selectors/table-targets.d.ts +23 -0
  173. package/dist/declarative-validation/selectors/table-targets.d.ts.map +1 -1
  174. package/dist/declarative-validation/selectors/table-targets.js +52 -9
  175. package/dist/declarative-validation/selectors/table-targets.js.map +1 -1
  176. package/dist-bundled/markdown-engine-cli.mjs +27373 -0
  177. package/docs/contracts/api.md +79 -15
  178. package/docs/contracts/declarative-validation.md +462 -40
  179. package/fixtures/declarative-validation/examples/okf-v0.1/fail/invalid-log-date/log.md +5 -0
  180. package/fixtures/declarative-validation/examples/okf-v0.1/fail/missing-concept-type/concepts/customer-metric.md +8 -0
  181. package/fixtures/declarative-validation/examples/okf-v0.1/fail/non-root-index-frontmatter/datasets/index.md +7 -0
  182. package/fixtures/declarative-validation/examples/okf-v0.1/pass/datasets/index.md +3 -0
  183. package/fixtures/declarative-validation/examples/okf-v0.1/pass/datasets/sales.md +16 -0
  184. package/fixtures/declarative-validation/examples/okf-v0.1/pass/index.md +8 -0
  185. package/fixtures/declarative-validation/examples/okf-v0.1/pass/log.md +9 -0
  186. package/fixtures/declarative-validation/examples/okf-v0.1/pass/playbooks/incident-response.md +17 -0
  187. package/fixtures/declarative-validation/examples/okf-v0.1/profiles/concept.yaml +14 -0
  188. package/fixtures/declarative-validation/examples/okf-v0.1/profiles/log.yaml +10 -0
  189. package/fixtures/declarative-validation/examples/okf-v0.1/profiles/non-root-index.yaml +9 -0
  190. package/fixtures/declarative-validation/examples/okf-v0.1/profiles/root-index.yaml +12 -0
  191. package/package.json +9 -3
  192. package/scripts/install-markdown-engine-cli.sh +113 -0
  193. package/skills/profile-backed-markdown/SKILL.md +54 -0
  194. package/skills/profile-backed-markdown/assets/profiles/operational-spec.yaml +98 -0
  195. package/skills/profile-backed-markdown/references/repair-brief.md +14 -0
  196. 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
- return extractIdTokensForSegments(tableColumnSegments(document, source), options);
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;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,KAAK,YAAY,GAAG,OAAO,CAAC,4BAA4B,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAM3E,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,EAAE,CAkDvB"}
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 seenIds = new Map();
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 diagnostics = [];
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 firstSeen = seenIds.get(token.comparisonValue);
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
- seenIds.set(token.comparisonValue, { value: token.value });
37
+ seenByComparisonValue.set(token.comparisonValue, currentOccurrence);
38
+ uniqueOccurrences.push(currentOccurrence);
23
39
  continue;
24
40
  }
25
- diagnostics.push(validationDiagnostic("profile.validation.duplicateId", `ID "${token.value}" duplicates earlier ID "${firstSeen.value}".`, context.rule, {
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":"AAGA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAQxD,MAAM,UAAU,WAAW,CACzB,SAAuB,EACvB,OAAmC;IAEnC,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,WAAW,GAA0B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;YACvE,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7C,SAAS;YACX,CAAC;YAED,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAErD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3D,SAAS;YACX,CAAC;YAED,WAAW,CAAC,IAAI,CACd,oBAAoB,CAClB,gCAAgC,EAChC,OAAO,KAAK,CAAC,KAAK,4BAA4B,SAAS,CAAC,KAAK,IAAI,EACjE,OAAO,CAAC,IAAI,EACZ;gBACE,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,MAAM;gBACN,WAAW;gBACX,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC;gBACjE,eAAe,EAAE,UAAU;gBAC3B,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;oBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;aACR,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,eAAuB,EAAE,WAAmB;IACtE,OAAO,MAAM,eAAe,IAAI,WAAW,EAAE,CAAC;AAChD,CAAC"}
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"}