@jasonbelmonti/markdown-engine 3.1.0 → 3.2.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 (81) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +29 -10
  3. package/SECURITY.md +4 -4
  4. package/dist/api/declarative-validation.d.ts.map +1 -1
  5. package/dist/api/declarative-validation.js +31 -11
  6. package/dist/api/declarative-validation.js.map +1 -1
  7. package/dist/api/document-set-validation.js +1 -0
  8. package/dist/api/document-set-validation.js.map +1 -1
  9. package/dist/cli/declarative-validation.d.ts.map +1 -1
  10. package/dist/cli/declarative-validation.js +4 -4
  11. package/dist/cli/declarative-validation.js.map +1 -1
  12. package/dist/declarative-validation/applicability/classifier.d.ts +2 -1
  13. package/dist/declarative-validation/applicability/classifier.d.ts.map +1 -1
  14. package/dist/declarative-validation/applicability/classifier.js +2 -2
  15. package/dist/declarative-validation/applicability/classifier.js.map +1 -1
  16. package/dist/declarative-validation/assertions/context.d.ts +4 -0
  17. package/dist/declarative-validation/assertions/context.d.ts.map +1 -1
  18. package/dist/declarative-validation/assertions/diagnostics.d.ts +3 -0
  19. package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -1
  20. package/dist/declarative-validation/assertions/diagnostics.js +18 -0
  21. package/dist/declarative-validation/assertions/diagnostics.js.map +1 -1
  22. package/dist/declarative-validation/assertions/evaluator.d.ts +2 -1
  23. package/dist/declarative-validation/assertions/evaluator.d.ts.map +1 -1
  24. package/dist/declarative-validation/assertions/evaluator.js +7 -1
  25. package/dist/declarative-validation/assertions/evaluator.js.map +1 -1
  26. package/dist/declarative-validation/assertions/group-evaluator.d.ts +3 -2
  27. package/dist/declarative-validation/assertions/group-evaluator.d.ts.map +1 -1
  28. package/dist/declarative-validation/assertions/group-evaluator.js +32 -14
  29. package/dist/declarative-validation/assertions/group-evaluator.js.map +1 -1
  30. package/dist/declarative-validation/assertions/source-length.d.ts +9 -0
  31. package/dist/declarative-validation/assertions/source-length.d.ts.map +1 -0
  32. package/dist/declarative-validation/assertions/source-length.js +33 -0
  33. package/dist/declarative-validation/assertions/source-length.js.map +1 -0
  34. package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -1
  35. package/dist/declarative-validation/compiler/assertion-builders.js +4 -32
  36. package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -1
  37. package/dist/declarative-validation/compiler/assertion-shapes.d.ts +1 -2
  38. package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -1
  39. package/dist/declarative-validation/compiler/assertion-shapes.js +1 -25
  40. package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -1
  41. package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -1
  42. package/dist/declarative-validation/compiler/assertions.js +1 -0
  43. package/dist/declarative-validation/compiler/assertions.js.map +1 -1
  44. package/dist/declarative-validation/compiler/compatibility.d.ts +2 -0
  45. package/dist/declarative-validation/compiler/compatibility.d.ts.map +1 -1
  46. package/dist/declarative-validation/compiler/compatibility.js +10 -0
  47. package/dist/declarative-validation/compiler/compatibility.js.map +1 -1
  48. package/dist/declarative-validation/compiler/index.d.ts.map +1 -1
  49. package/dist/declarative-validation/compiler/index.js +10 -3
  50. package/dist/declarative-validation/compiler/index.js.map +1 -1
  51. package/dist/declarative-validation/compiler/length-assertion-builders.d.ts +7 -0
  52. package/dist/declarative-validation/compiler/length-assertion-builders.d.ts.map +1 -0
  53. package/dist/declarative-validation/compiler/length-assertion-builders.js +58 -0
  54. package/dist/declarative-validation/compiler/length-assertion-builders.js.map +1 -0
  55. package/dist/declarative-validation/compiler/plan.d.ts +4 -0
  56. package/dist/declarative-validation/compiler/plan.d.ts.map +1 -1
  57. package/dist/declarative-validation/evidence/index.d.ts +2 -1
  58. package/dist/declarative-validation/evidence/index.d.ts.map +1 -1
  59. package/dist/declarative-validation/evidence/index.js +27 -3
  60. package/dist/declarative-validation/evidence/index.js.map +1 -1
  61. package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -1
  62. package/dist/declarative-validation/profile/assertion-schema.js +11 -50
  63. package/dist/declarative-validation/profile/assertion-schema.js.map +1 -1
  64. package/dist/declarative-validation/profile/index.d.ts +4 -0
  65. package/dist/declarative-validation/profile/index.d.ts.map +1 -1
  66. package/dist/declarative-validation/profile/length-bound-schema.d.ts +7 -0
  67. package/dist/declarative-validation/profile/length-bound-schema.d.ts.map +1 -0
  68. package/dist/declarative-validation/profile/length-bound-schema.js +55 -0
  69. package/dist/declarative-validation/profile/length-bound-schema.js.map +1 -0
  70. package/dist/declarative-validation/results/create-result.js +1 -1
  71. package/dist/declarative-validation/results/create-result.js.map +1 -1
  72. package/dist/declarative-validation/results/types.d.ts +1 -0
  73. package/dist/declarative-validation/results/types.d.ts.map +1 -1
  74. package/dist/internal/package-version.d.ts +2 -0
  75. package/dist/internal/package-version.d.ts.map +1 -0
  76. package/dist/internal/package-version.js +2 -0
  77. package/dist/internal/package-version.js.map +1 -0
  78. package/dist-bundled/markdown-engine-cli.mjs +702 -525
  79. package/docs/contracts/declarative-validation.md +66 -10
  80. package/package.json +9 -5
  81. package/scripts/install-markdown-engine-cli.sh +2 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@
4
4
 
5
5
  No unreleased changes.
6
6
 
7
+ ## 3.2.0 - 2026-07-12
8
+
9
+ ### Added
10
+
11
+ - Added the v2-only, document-scoped `sourceLength` assertion for bounding the
12
+ complete original Markdown source with JavaScript UTF-16 string-length
13
+ semantics, including API/CLI source provenance, fail-closed missing-source
14
+ diagnostics, and measurement-aware evidence hashing.
15
+
16
+ ### Changed
17
+
18
+ - Moved exact bundled CLI installer version and hash alignment from ordinary
19
+ source tests into a dedicated release verification gate.
20
+
21
+ ## 3.1.1 - 2026-07-03
22
+
23
+ ### Fixed
24
+
25
+ - Corrected the constrained-harness installer pin to use the 3.1.1 bundled CLI
26
+ package version and artifact hash.
27
+ - Corrected declarative validation evidence so `engineVersion` records the
28
+ package version that produced the JSON.
29
+
7
30
  ## 3.1.0 - 2026-07-03
8
31
 
9
32
  ### Added
package/README.md CHANGED
@@ -6,13 +6,14 @@ profile and runtime work.
6
6
  Package release state:
7
7
 
8
8
  - package name: `@jasonbelmonti/markdown-engine`
9
- - package metadata version: `3.0.0`
10
- - published npm versions before this release: `0.1.0`, `1.0.0`, `2.0.0`
11
- - npm release target: `3.0.0` on `latest`
9
+ - package metadata version: `3.2.0`
10
+ - published npm versions before this release: `0.1.0`, `1.0.0`, `2.0.0`,
11
+ `3.0.0`, `3.1.0`, `3.1.1`
12
+ - npm release target: `3.2.0` on `latest`
12
13
  - website: <https://jasonbelmonti.github.io/markdown-engine/>
13
- - release focus: Conditional V2 explicit validation-profile syntax while
14
- retaining the existing `documentVersion: "1.0.0"` rich IR contract as the
15
- default API and CLI document shape
14
+ - release focus: V2 `sourceLength` assertions for document-scoped source
15
+ bounds, while retaining the existing `documentVersion: "1.0.0"` rich IR
16
+ contract as the default API and CLI document shape
16
17
  - maintainer documentation map: [docs/README.md](docs/README.md)
17
18
  - design reference:
18
19
  [Markdown Engine 1.0 Rich IR design](docs/design/markdown-engine-1.0-rich-ir-operational-design-spec.md)
@@ -84,7 +85,7 @@ console.log(validationResult.valid);
84
85
  console.log(serialize(validationResult, { pretty: true }));
85
86
  ```
86
87
 
87
- Package 3.0 keeps the serialized document contract at
88
+ Package 3.2 retains the serialized document contract at
88
89
  `documentVersion: "1.0.0"` and makes that rich IR path the default for
89
90
  `normalize(parsed)`. Callers may still pass
90
91
  `normalize(parsed, { documentVersion: "1.0.0" })` explicitly. That path adds
@@ -185,6 +186,24 @@ rules:
185
186
  exists: true
186
187
  ```
187
188
 
189
+ V2 profiles can bound the complete original Markdown source, including
190
+ frontmatter, syntax, whitespace, and line endings:
191
+
192
+ ```yaml
193
+ syntaxVersion: markdown-engine.validation@v2
194
+ rules:
195
+ - id: document.source-budget
196
+ select:
197
+ target: document
198
+ assert:
199
+ sourceLength:
200
+ max: 12000
201
+ ```
202
+
203
+ The CLI supplies the original file content automatically. API callers pass it
204
+ as `sourceText` in `DeclarativeValidationOptions`; missing source context fails
205
+ with `profile.validation.sourceUnavailable`.
206
+
188
207
  CLI validation output uses `profile.syntaxVersion` as the v1/v2 discriminator.
189
208
  V1 rule results keep the existing flat `ruleId`, `passed`, and `diagnostics`
190
209
  fields. V2 rule results add `status` and `evaluation`; v2 profile metadata adds
@@ -253,13 +272,13 @@ By default, the installer places the CLI under
253
272
  and writes the wrapper to
254
273
  `${MARKDOWN_ENGINE_BIN_DIR:-$HOME/.local/bin}/markdown-engine`. The installer
255
274
  uses a local bundled artifact only when it matches the pinned artifact hash.
256
- Otherwise it downloads `@jasonbelmonti/markdown-engine@3.0.0` with `npm pack
275
+ Otherwise it downloads `@jasonbelmonti/markdown-engine@3.2.0` with `npm pack
257
276
  --ignore-scripts` and extracts only
258
277
  `package/dist-bundled/markdown-engine-cli.mjs` from the tarball. It verifies the
259
278
  pinned artifact hash before installing:
260
279
 
261
280
  ```text
262
- f61ab59e28eb92cccf4fd8073c090102e67a9397a7f0d208661ded14b879053d
281
+ 5033d08160fcd3f44b11498dc29d01db73d7aff2a55eb3257fd9a1c14e29c3f6
263
282
  ```
264
283
 
265
284
  The installed wrapper is:
@@ -268,7 +287,7 @@ The installed wrapper is:
268
287
  "${MARKDOWN_ENGINE_BIN_DIR:-$HOME/.local/bin}/markdown-engine" validate --file <file.md> --profile <profile.yaml> --format json
269
288
  ```
270
289
 
271
- Package 3.0 keeps the 2.0 API normalization default: callers that invoke
290
+ Package 3.2 keeps the 2.0 API normalization default: callers that invoke
272
291
  `normalize(parsed)` receive the rich IR `1.0.0` document shape. Consumers that
273
292
  still need the legacy `0.0.0` shape should consume the rich IR fields
274
293
  (`target`, `sections`, `textSpans`, `tables`, `lists`, and `links`) or pin
package/SECURITY.md CHANGED
@@ -3,10 +3,10 @@
3
3
  ## Supported Versions
4
4
 
5
5
  Security fixes target the latest published major version of
6
- `@jasonbelmonti/markdown-engine`. As of the 2.0 release line, fixes are expected
7
- to land on the latest `2.x` package unless a release note states otherwise.
8
- Older `0.x` and `1.x` lines are not maintained unless an explicit backport is
9
- announced.
6
+ `@jasonbelmonti/markdown-engine`. As of the 3.0 release line, fixes are expected
7
+ to land on the latest `3.x` package unless a release note states otherwise.
8
+ Older `0.x`, `1.x`, and `2.x` lines are not maintained unless an explicit
9
+ backport is announced.
10
10
 
11
11
  ## Reporting A Vulnerability
12
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"declarative-validation.d.ts","sourceRoot":"","sources":["../../src/api/declarative-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAkBpD,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC7B,aAAa,EACb,iBAAiB,EAClB,MAAM,4CAA4C,CAAC;AAKpD,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,4CAA4C,CAAC;AAGpD,YAAY,EACV,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,mBAAmB,EACnB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,EACpC,oCAAoC,EACpC,yBAAyB,EACzB,6BAA6B,EAC7B,aAAa,EACb,iBAAiB,GAClB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AACjG,YAAY,EACV,0CAA0C,EAC1C,0CAA0C,EAC1C,wCAAwC,EACxC,+CAA+C,EAC/C,oCAAoC,EACpC,iCAAiC,EACjC,kCAAkC,EAClC,sCAAsC,EACtC,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,yCAAyC,EACzC,iCAAiC,EACjC,+BAA+B,EAC/B,4CAA4C,EAC5C,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,CACpB,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B,CAAC;IACjC,mBAAmB,CACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,4BAA4B,GACrC,2BAA2B,CAAC;CAChC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,OAAO,GAAE,8BAAmC,GAC3C,6BAA6B,CAE/B;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,4BAAiC,GACzC,2BAA2B,CAgD7B"}
1
+ {"version":3,"file":"declarative-validation.d.ts","sourceRoot":"","sources":["../../src/api/declarative-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAoBpD,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC7B,aAAa,EACb,iBAAiB,EAClB,MAAM,4CAA4C,CAAC;AAKpD,OAAO,KAAK,EAEV,4BAA4B,EAC5B,2BAA2B,EAE5B,MAAM,4CAA4C,CAAC;AAGpD,YAAY,EACV,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,mBAAmB,EACnB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,EACpC,oCAAoC,EACpC,yBAAyB,EACzB,6BAA6B,EAC7B,aAAa,EACb,iBAAiB,GAClB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AACjG,YAAY,EACV,0CAA0C,EAC1C,0CAA0C,EAC1C,wCAAwC,EACxC,+CAA+C,EAC/C,oCAAoC,EACpC,iCAAiC,EACjC,kCAAkC,EAClC,sCAAsC,EACtC,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,yCAAyC,EACzC,iCAAiC,EACjC,+BAA+B,EAC/B,4CAA4C,EAC5C,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,CACpB,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B,CAAC;IACjC,mBAAmB,CACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,4BAA4B,GACrC,2BAA2B,CAAC;CAChC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,OAAO,GAAE,8BAAmC,GAC3C,6BAA6B,CAE/B;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,4BAAiC,GACzC,2BAA2B,CAoD7B"}
@@ -1,4 +1,5 @@
1
1
  import { classifyCompiledDeclarativeRuleApplicability } from "../declarative-validation/applicability/index.js";
2
+ import { isSourceUnavailableDiagnostic } from "../declarative-validation/assertions/diagnostics.js";
2
3
  import { evaluateCompiledDeclarativeAllOfRule, evaluateCompiledDeclarativeAnyOfRule, evaluateCompiledDeclarativeRule, sortValidationRuleResults, } from "../declarative-validation/assertions/index.js";
3
4
  import { compileValidationProfile } from "../declarative-validation/compiler/index.js";
4
5
  import { parseValidationProfileInput } from "../declarative-validation/profile/index.js";
@@ -34,7 +35,8 @@ export function validateWithProfile(document, profile, options = {}) {
34
35
  }
35
36
  const compileResult = compileValidationProfile(materializedProfile.profile);
36
37
  const compiledRules = compileResult.plan?.rules ?? [];
37
- const ruleResults = sortValidationRuleResults(compiledRules.flatMap((rule) => evaluateApplicableCompiledRule(document, rule)));
38
+ const runtimeContext = options.sourceText === undefined ? {} : { sourceText: options.sourceText };
39
+ const ruleResults = sortValidationRuleResults(compiledRules.flatMap((rule) => evaluateApplicableCompiledRule(document, rule, runtimeContext)));
38
40
  const diagnostics = [
39
41
  ...compileResult.diagnostics,
40
42
  ...ruleResults.flatMap((result) => result.diagnostics),
@@ -47,28 +49,46 @@ export function validateWithProfile(document, profile, options = {}) {
47
49
  options,
48
50
  });
49
51
  }
50
- function evaluateApplicableCompiledRule(document, rule) {
51
- const applicability = classifyCompiledDeclarativeRuleApplicability(rule, document);
52
- return applicability.status === "notMatched"
53
- ? [
52
+ function evaluateApplicableCompiledRule(document, rule, runtimeContext) {
53
+ const applicability = classifyCompiledDeclarativeRuleApplicability(rule, document, runtimeContext);
54
+ if (applicability.status === "notMatched") {
55
+ if (applicability.result.diagnostics.some(isSourceUnavailableDiagnostic)) {
56
+ return [sourceUnavailableApplicabilityResult(rule, applicability.result)];
57
+ }
58
+ return [
54
59
  createSkippedDeclarativeValidationRuleResult({
55
60
  ruleId: rule.ruleId,
56
61
  when: applicability.result,
57
62
  }),
58
- ]
59
- : evaluateCompiledRule(document, rule);
63
+ ];
64
+ }
65
+ return evaluateCompiledRule(document, rule, runtimeContext);
60
66
  }
61
- function evaluateCompiledRule(document, rule) {
67
+ function evaluateCompiledRule(document, rule, runtimeContext) {
62
68
  if (isCompiledAnyOfRule(rule)) {
63
- return [evaluateCompiledDeclarativeAnyOfRule(rule, document)];
69
+ return [evaluateCompiledDeclarativeAnyOfRule(rule, document, runtimeContext)];
64
70
  }
65
71
  if (isCompiledAllOfRule(rule)) {
66
- return [evaluateCompiledDeclarativeAllOfRule(rule, document)];
72
+ return [evaluateCompiledDeclarativeAllOfRule(rule, document, runtimeContext)];
67
73
  }
68
74
  return [
69
- evaluateCompiledDeclarativeRule(rule, resolveDeclarativeSelector(document, rule.selector)),
75
+ evaluateCompiledDeclarativeRule(rule, resolveDeclarativeSelector(document, rule.selector), runtimeContext),
70
76
  ];
71
77
  }
78
+ function sourceUnavailableApplicabilityResult(rule, when) {
79
+ const diagnostics = when.diagnostics.filter(isSourceUnavailableDiagnostic);
80
+ return {
81
+ ruleId: rule.ruleId,
82
+ status: "failed",
83
+ passed: false,
84
+ diagnostics,
85
+ when,
86
+ evaluation: {
87
+ kind: "assertions",
88
+ diagnostics,
89
+ },
90
+ };
91
+ }
72
92
  function isCompiledAnyOfRule(rule) {
73
93
  return "kind" in rule && rule.kind === "anyOf";
74
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"declarative-validation.js","sourceRoot":"","sources":["../../src/api/declarative-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"declarative-validation.js","sourceRoot":"","sources":["../../src/api/declarative-validation.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ function validateDocumentSetEntry(entry, options) {
22
22
  !hasErrorDiagnostic(profileResult.diagnostics)) {
23
23
  validationResult = validateWithProfile(normalizeResult.document, profileResult.profile, {
24
24
  path: entry.path,
25
+ sourceText: entry.markdown,
25
26
  ...(options.includeEvidence !== undefined
26
27
  ? { includeEvidence: options.includeEvidence }
27
28
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"document-set-validation.js","sourceRoot":"","sources":["../../src/api/document-set-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-set-validation.js","sourceRoot":"","sources":["../../src/api/document-set-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"declarative-validation.d.ts","sourceRoot":"","sources":["../../src/cli/declarative-validation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,4CAA4C,CAAC;AAYpD,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"}
1
+ {"version":3,"file":"declarative-validation.d.ts","sourceRoot":"","sources":["../../src/cli/declarative-validation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,4CAA4C,CAAC;AAYpD,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,CA2EhD"}
@@ -36,12 +36,12 @@ export async function runDeclarativeValidationCli(input) {
36
36
  ...normalizeResult.diagnostics,
37
37
  ];
38
38
  if (hasErrorDiagnostic(normalizeResult.diagnostics)) {
39
- return outputResult(documentDiagnosticsResult(normalizeResult.document, profileResult.profile, [
39
+ return outputResult(documentDiagnosticsResult(normalizeResult.document, profileResult.profile, markdown.content, [
40
40
  ...documentDiagnostics,
41
41
  ...documentVersionDiagnostics(profileResult.profile, normalizeResult.document.version),
42
42
  ]), 1);
43
43
  }
44
- const validationResult = validateWithProfile(normalizeResult.document, profileResult.profile, { includeEvidence: true });
44
+ const validationResult = validateWithProfile(normalizeResult.document, profileResult.profile, { includeEvidence: true, sourceText: markdown.content });
45
45
  const result = mergeDocumentDiagnostics(validationResult, documentDiagnostics);
46
46
  return outputResult(result, hasErrorDiagnostic(result.diagnostics) ? 1 : 0);
47
47
  }
@@ -68,13 +68,13 @@ function profileStageResult(diagnostics) {
68
68
  ruleResults: [],
69
69
  };
70
70
  }
71
- function documentDiagnosticsResult(document, profile, diagnostics) {
71
+ function documentDiagnosticsResult(document, profile, sourceText, diagnostics) {
72
72
  return createDeclarativeValidationResult({
73
73
  document,
74
74
  profile,
75
75
  ruleResults: [],
76
76
  diagnostics,
77
- options: { includeEvidence: true },
77
+ options: { includeEvidence: true, sourceText },
78
78
  });
79
79
  }
80
80
  function mergeDocumentDiagnostics(validationResult, documentDiagnostics) {
@@ -1 +1 @@
1
- {"version":3,"file":"declarative-validation.js","sourceRoot":"","sources":["../../src/cli/declarative-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"declarative-validation.js","sourceRoot":"","sources":["../../src/cli/declarative-validation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { EngineDocument } from "../../api/document.js";
2
2
  import type { CompiledDeclarativeValidationRule } from "../compiler/plan.js";
3
3
  import type { DeclarativeValidationApplicabilityResult } from "../results/index.js";
4
+ import type { DeclarativeValidationRuntimeContext } from "../assertions/context.js";
4
5
  export type CompiledRuleApplicabilityClassification = {
5
6
  status: "notConfigured";
6
7
  } | {
@@ -14,5 +15,5 @@ export type CompiledRuleApplicabilityClassification = {
14
15
  status: "notMatched";
15
16
  };
16
17
  };
17
- export declare function classifyCompiledDeclarativeRuleApplicability(rule: CompiledDeclarativeValidationRule, document: EngineDocument): CompiledRuleApplicabilityClassification;
18
+ export declare function classifyCompiledDeclarativeRuleApplicability(rule: CompiledDeclarativeValidationRule, document: EngineDocument, runtimeContext?: DeclarativeValidationRuntimeContext): CompiledRuleApplicabilityClassification;
18
19
  //# sourceMappingURL=classifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/applicability/classifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAGV,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,qBAAqB,CAAC;AAIpF,MAAM,MAAM,uCAAuC,GAC/C;IACE,MAAM,EAAE,eAAe,CAAC;CACzB,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,wCAAwC,GAAG;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;CAC1E,GACD;IACE,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,wCAAwC,GAAG;QACjD,MAAM,EAAE,YAAY,CAAC;KACtB,CAAC;CACH,CAAC;AAEN,wBAAgB,4CAA4C,CAC1D,IAAI,EAAE,iCAAiC,EACvC,QAAQ,EAAE,cAAc,GACvB,uCAAuC,CA6BzC"}
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/applicability/classifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAGV,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAGpF,MAAM,MAAM,uCAAuC,GAC/C;IACE,MAAM,EAAE,eAAe,CAAC;CACzB,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,wCAAwC,GAAG;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;CAC1E,GACD;IACE,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,wCAAwC,GAAG;QACjD,MAAM,EAAE,YAAY,CAAC;KACtB,CAAC;CACH,CAAC;AAEN,wBAAgB,4CAA4C,CAC1D,IAAI,EAAE,iCAAiC,EACvC,QAAQ,EAAE,cAAc,EACxB,cAAc,GAAE,mCAAwC,GACvD,uCAAuC,CA8BzC"}
@@ -1,11 +1,11 @@
1
1
  import { evaluateCompiledDeclarativeRule } from "../assertions/evaluator.js";
2
2
  import { resolveDeclarativeSelector } from "../selectors/index.js";
3
- export function classifyCompiledDeclarativeRuleApplicability(rule, document) {
3
+ export function classifyCompiledDeclarativeRuleApplicability(rule, document, runtimeContext = {}) {
4
4
  const applicability = compiledApplicabilityFromRule(rule);
5
5
  if (applicability === undefined) {
6
6
  return { status: "notConfigured" };
7
7
  }
8
- const result = evaluateCompiledDeclarativeRule(applicabilityRuleFromPlan(rule, applicability), resolveDeclarativeSelector(document, applicability.selector));
8
+ const result = evaluateCompiledDeclarativeRule(applicabilityRuleFromPlan(rule, applicability), resolveDeclarativeSelector(document, applicability.selector), runtimeContext);
9
9
  if (result.diagnostics.length === 0) {
10
10
  return {
11
11
  status: "matched",
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/declarative-validation/applicability/classifier.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAiBnE,MAAM,UAAU,4CAA4C,CAC1D,IAAuC,EACvC,QAAwB;IAExB,MAAM,aAAa,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,+BAA+B,CAC5C,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,EAC9C,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAC7D,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,EAAE;aAChB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE;YACN,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAuC;IAEvC,OAAO,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAuC,EACvC,aAA6D;IAE7D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,UAAU,EAAE,aAAa,CAAC,UAAU;KACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/declarative-validation/applicability/classifier.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAiBnE,MAAM,UAAU,4CAA4C,CAC1D,IAAuC,EACvC,QAAwB,EACxB,iBAAsD,EAAE;IAExD,MAAM,aAAa,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,+BAA+B,CAC5C,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,EAC9C,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5D,cAAc,CACf,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,EAAE;aAChB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE;YACN,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAuC;IAEvC,OAAO,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAuC,EACvC,aAA6D;IAE7D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,UAAU,EAAE,aAAa,CAAC,UAAU;KACrC,CAAC;AACJ,CAAC"}
@@ -4,5 +4,9 @@ export interface AssertionEvaluationContext {
4
4
  rule: CompiledDeclarativeValidationExecutableRule;
5
5
  selection: DeclarativeSelection;
6
6
  assertionIndex: number;
7
+ sourceText?: string;
8
+ }
9
+ export interface DeclarativeValidationRuntimeContext {
10
+ sourceText?: string;
7
11
  }
8
12
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,2CAA2C,CAAC;IAClD,SAAS,EAAE,oBAAoB,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,2CAA2C,CAAC;IAClD,SAAS,EAAE,oBAAoB,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mCAAmC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -1,6 +1,7 @@
1
1
  import type { MarkdownDiagnostic, SourceRange } from "../../api/diagnostics.js";
2
2
  import type { CompiledDeclarativeAssertion, CompiledDeclarativeValidationAllOfRuleV2, CompiledDeclarativeValidationAnyOfRuleV2, CompiledDeclarativeValidationExecutableRule } from "../compiler/plan.js";
3
3
  import type { DeclarativeSelectionTarget } from "../selectors/index.js";
4
+ export declare const SOURCE_UNAVAILABLE_DIAGNOSTIC_CODE = "profile.validation.sourceUnavailable";
4
5
  export interface AssertionDiagnostic {
5
6
  diagnostic: MarkdownDiagnostic;
6
7
  assertionIndex: number;
@@ -19,6 +20,8 @@ export interface AssertionDiagnosticOptions {
19
20
  export declare function noAlternativeMatchedDiagnostic(rule: CompiledDeclarativeValidationAnyOfRuleV2): MarkdownDiagnostic;
20
21
  export declare function groupRequirementFailedDiagnostic(rule: CompiledDeclarativeValidationAllOfRuleV2): MarkdownDiagnostic;
21
22
  export declare function emptySelectionDiagnostic(rule: CompiledDeclarativeValidationExecutableRule, assertionIndex: number): AssertionDiagnostic;
23
+ export declare function sourceUnavailableDiagnostic(rule: CompiledDeclarativeValidationExecutableRule, assertionIndex: number): AssertionDiagnostic;
24
+ export declare function isSourceUnavailableDiagnostic(diagnostic: MarkdownDiagnostic): boolean;
22
25
  export declare function validationDiagnostic(code: string, message: string, rule: CompiledDeclarativeValidationExecutableRule, options: AssertionDiagnosticOptions): AssertionDiagnostic;
23
26
  export declare function unsupportedEvaluatorDiagnostic(assertion: CompiledDeclarativeAssertion, rule: CompiledDeclarativeValidationExecutableRule, assertionIndex: number): AssertionDiagnostic;
24
27
  export declare function unsupportedEvaluatorFeatureDiagnostic(assertionKind: CompiledDeclarativeAssertion["kind"], featureName: string, rule: CompiledDeclarativeValidationExecutableRule, assertionIndex: number): AssertionDiagnostic;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EACV,4BAA4B,EAC5B,wCAAwC,EACxC,wCAAwC,EACxC,2CAA2C,EAC5C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,wCAAwC,GAC7C,kBAAkB,CAOpB;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,wCAAwC,GAC7C,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,2CAA2C,EACjD,cAAc,EAAE,MAAM,GACrB,mBAAmB,CAWrB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,2CAA2C,EACjD,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,CAgBrB;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,4BAA4B,EACvC,IAAI,EAAE,2CAA2C,EACjD,cAAc,EAAE,MAAM,GACrB,mBAAmB,CAMrB;AAED,wBAAgB,qCAAqC,CACnD,aAAa,EAAE,4BAA4B,CAAC,MAAM,CAAC,EACnD,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,2CAA2C,EACjD,cAAc,EAAE,MAAM,GACrB,mBAAmB,CAMrB"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EACV,4BAA4B,EAC5B,wCAAwC,EACxC,wCAAwC,EACxC,2CAA2C,EAC5C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,eAAO,MAAM,kCAAkC,yCACP,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,wCAAwC,GAC7C,kBAAkB,CAOpB;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,wCAAwC,GAC7C,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,2CAA2C,EACjD,cAAc,EAAE,MAAM,GACrB,mBAAmB,CAWrB;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,2CAA2C,EACjD,cAAc,EAAE,MAAM,GACrB,mBAAmB,CAcrB;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAET;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,2CAA2C,EACjD,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,CAgBrB;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,4BAA4B,EACvC,IAAI,EAAE,2CAA2C,EACjD,cAAc,EAAE,MAAM,GACrB,mBAAmB,CAMrB;AAED,wBAAgB,qCAAqC,CACnD,aAAa,EAAE,4BAA4B,CAAC,MAAM,CAAC,EACnD,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,2CAA2C,EACjD,cAAc,EAAE,MAAM,GACrB,mBAAmB,CAMrB"}
@@ -1,3 +1,4 @@
1
+ export const SOURCE_UNAVAILABLE_DIAGNOSTIC_CODE = "profile.validation.sourceUnavailable";
1
2
  export function noAlternativeMatchedDiagnostic(rule) {
2
3
  return {
3
4
  code: "profile.validation.noAlternativeMatched",
@@ -21,6 +22,23 @@ export function emptySelectionDiagnostic(rule, assertionIndex) {
21
22
  targetKey: "selection:empty",
22
23
  });
23
24
  }
25
+ export function sourceUnavailableDiagnostic(rule, assertionIndex) {
26
+ return {
27
+ diagnostic: {
28
+ code: SOURCE_UNAVAILABLE_DIAGNOSTIC_CODE,
29
+ ruleId: rule.ruleId,
30
+ message: "Complete Markdown source is required to evaluate sourceLength.",
31
+ severity: "error",
32
+ },
33
+ assertionIndex,
34
+ targetOrder: 0,
35
+ targetKey: "document:source",
36
+ diagnosticOrder: 0,
37
+ };
38
+ }
39
+ export function isSourceUnavailableDiagnostic(diagnostic) {
40
+ return diagnostic.code === SOURCE_UNAVAILABLE_DIAGNOSTIC_CODE;
41
+ }
24
42
  export function validationDiagnostic(code, message, rule, options) {
25
43
  const sourceRange = options.sourceRange ?? targetSourceRange(options.target);
26
44
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ValidationRuleResult } from "../../api/validate.js";
2
2
  import type { CompiledDeclarativeValidationExecutableRule } from "../compiler/plan.js";
3
3
  import type { DeclarativeSelection } from "../selectors/index.js";
4
- export declare function evaluateCompiledDeclarativeRule(rule: CompiledDeclarativeValidationExecutableRule, selection: DeclarativeSelection): ValidationRuleResult;
4
+ import type { DeclarativeValidationRuntimeContext } from "./context.js";
5
+ export declare function evaluateCompiledDeclarativeRule(rule: CompiledDeclarativeValidationExecutableRule, selection: DeclarativeSelection, runtimeContext?: DeclarativeValidationRuntimeContext): ValidationRuleResult;
5
6
  //# sourceMappingURL=evaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAEV,2CAA2C,EAC5C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAiBlE,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,2CAA2C,EACjD,SAAS,EAAE,oBAAoB,GAC9B,oBAAoB,CAgBtB"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAEV,2CAA2C,EAC5C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAEV,mCAAmC,EACpC,MAAM,cAAc,CAAC;AAiBtB,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,2CAA2C,EACjD,SAAS,EAAE,oBAAoB,EAC/B,cAAc,GAAE,mCAAwC,GACvD,oBAAoB,CAmBtB"}
@@ -5,17 +5,21 @@ import { evaluateIds } from "./ids.js";
5
5
  import { sortAssertionDiagnostics } from "./ordering.js";
6
6
  import { evaluateReferences } from "./references.js";
7
7
  import { evaluateSectionsRequired } from "./sections-required.js";
8
+ import { evaluateSourceLength } from "./source-length.js";
8
9
  import { evaluateTableColumnCoverage } from "./table-column-coverage.js";
9
10
  import { evaluateTableColumnsRequired } from "./table-columns-required.js";
10
11
  import { evaluateText } from "./text.js";
11
12
  import { evaluateTextFormat } from "./text-format.js";
12
13
  import { evaluateTextLength } from "./text-length.js";
13
14
  import { evaluateTextOccurrenceCount } from "./text-occurrence-count.js";
14
- export function evaluateCompiledDeclarativeRule(rule, selection) {
15
+ export function evaluateCompiledDeclarativeRule(rule, selection, runtimeContext = {}) {
15
16
  const evaluatedDiagnostics = rule.assertions.flatMap((assertion, assertionIndex) => evaluateAssertion(assertion, {
16
17
  rule,
17
18
  selection,
18
19
  assertionIndex,
20
+ ...(runtimeContext.sourceText !== undefined
21
+ ? { sourceText: runtimeContext.sourceText }
22
+ : {}),
19
23
  }));
20
24
  const diagnostics = sortAssertionDiagnostics(evaluatedDiagnostics);
21
25
  return {
@@ -36,6 +40,8 @@ function evaluateAssertion(assertion, context) {
36
40
  return evaluateTextOccurrenceCount(assertion, context);
37
41
  case "textLength":
38
42
  return evaluateTextLength(assertion, context);
43
+ case "sourceLength":
44
+ return evaluateSourceLength(assertion, context);
39
45
  case "textFormat":
40
46
  return evaluateTextFormat(assertion, context);
41
47
  case "frontmatterRequired":
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/evaluator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,+BAA+B,CAC7C,IAAiD,EACjD,SAA+B;IAE/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAClD,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,CAC5B,iBAAiB,CAAC,SAAS,EAAE;QAC3B,IAAI;QACJ,SAAS;QACT,cAAc;KACf,CAAC,CACL,CAAC;IACF,MAAM,WAAW,GAAG,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IAEnE,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;QAChC,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAuC,EACvC,OAAmC;IAEnC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;QAEjC,KAAK,kBAAkB;YACrB,OAAO,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtD,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1C,KAAK,qBAAqB;YACxB,OAAO,2BAA2B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzD,KAAK,YAAY;YACf,OAAO,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhD,KAAK,YAAY;YACf,OAAO,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhD,KAAK,qBAAqB;YACxB,OAAO,2BAA2B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzD,KAAK,sBAAsB;YACzB,OAAO,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1D,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzC,KAAK,YAAY;YACf,OAAO,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhD,KAAK,qBAAqB;YACxB,OAAO,2BAA2B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzD,KAAK,kBAAkB;YACrB,OAAO,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { EngineDocument } from "../../api/document.js";
2
2
  import type { CompiledDeclarativeValidationAllOfRuleV2, CompiledDeclarativeValidationAnyOfRuleV2 } from "../compiler/plan.js";
3
3
  import type { DeclarativeValidationRuleResultV2 } from "../results/index.js";
4
- export declare function evaluateCompiledDeclarativeAnyOfRule(rule: CompiledDeclarativeValidationAnyOfRuleV2, document: EngineDocument): DeclarativeValidationRuleResultV2;
5
- export declare function evaluateCompiledDeclarativeAllOfRule(rule: CompiledDeclarativeValidationAllOfRuleV2, document: EngineDocument): DeclarativeValidationRuleResultV2;
4
+ import type { DeclarativeValidationRuntimeContext } from "./context.js";
5
+ export declare function evaluateCompiledDeclarativeAnyOfRule(rule: CompiledDeclarativeValidationAnyOfRuleV2, document: EngineDocument, runtimeContext?: DeclarativeValidationRuntimeContext): DeclarativeValidationRuleResultV2;
6
+ export declare function evaluateCompiledDeclarativeAllOfRule(rule: CompiledDeclarativeValidationAllOfRuleV2, document: EngineDocument, runtimeContext?: DeclarativeValidationRuntimeContext): DeclarativeValidationRuleResultV2;
6
7
  //# sourceMappingURL=group-evaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-evaluator.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/group-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EACV,wCAAwC,EACxC,wCAAwC,EAEzC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAGV,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAQ7B,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,wCAAwC,EAC9C,QAAQ,EAAE,cAAc,GACvB,iCAAiC,CAmBnC;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,wCAAwC,EAC9C,QAAQ,EAAE,cAAc,GACvB,iCAAiC,CAgBnC"}
1
+ {"version":3,"file":"group-evaluator.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/group-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EACV,wCAAwC,EACxC,wCAAwC,EAEzC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAGV,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AAQxE,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,wCAAwC,EAC9C,QAAQ,EAAE,cAAc,EACxB,cAAc,GAAE,mCAAwC,GACvD,iCAAiC,CA6BnC;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,wCAAwC,EAC9C,QAAQ,EAAE,cAAc,EACxB,cAAc,GAAE,mCAAwC,GACvD,iCAAiC,CA4BnC"}
@@ -1,11 +1,18 @@
1
1
  import { resolveDeclarativeSelector } from "../selectors/index.js";
2
- import { groupRequirementFailedDiagnostic, noAlternativeMatchedDiagnostic, } from "./diagnostics.js";
2
+ import { groupRequirementFailedDiagnostic, isSourceUnavailableDiagnostic, noAlternativeMatchedDiagnostic, } from "./diagnostics.js";
3
3
  import { evaluateCompiledDeclarativeRule } from "./evaluator.js";
4
- export function evaluateCompiledDeclarativeAnyOfRule(rule, document) {
5
- const branches = evaluateCompiledDeclarativeBranches(rule.branches, document);
4
+ export function evaluateCompiledDeclarativeAnyOfRule(rule, document, runtimeContext = {}) {
5
+ const branches = evaluateCompiledDeclarativeBranches(rule.branches, document, runtimeContext);
6
+ const sourceUnavailable = sourceUnavailableDiagnostics(branches);
6
7
  const selectedBranch = branches.find((branch) => branch.status === "passed");
7
- const passed = selectedBranch !== undefined;
8
- const diagnostics = passed ? [] : [noAlternativeMatchedDiagnostic(rule)];
8
+ const passed = selectedBranch !== undefined && sourceUnavailable.length === 0;
9
+ let diagnostics = [];
10
+ if (sourceUnavailable.length > 0) {
11
+ diagnostics = sourceUnavailable;
12
+ }
13
+ else if (!passed) {
14
+ diagnostics = [noAlternativeMatchedDiagnostic(rule)];
15
+ }
9
16
  return {
10
17
  ruleId: rule.ruleId,
11
18
  status: passed ? "passed" : "failed",
@@ -13,17 +20,25 @@ export function evaluateCompiledDeclarativeAnyOfRule(rule, document) {
13
20
  diagnostics,
14
21
  evaluation: {
15
22
  kind: "anyOf",
16
- ...(selectedBranch !== undefined
23
+ ...(passed && selectedBranch !== undefined
17
24
  ? { selectedBranch: branchReferenceFromResult(selectedBranch) }
18
25
  : {}),
19
26
  branches,
20
27
  },
21
28
  };
22
29
  }
23
- export function evaluateCompiledDeclarativeAllOfRule(rule, document) {
24
- const branches = evaluateCompiledDeclarativeBranches(rule.branches, document);
25
- const failed = branches.some((branch) => branch.status === "failed");
26
- const diagnostics = failed ? [groupRequirementFailedDiagnostic(rule)] : [];
30
+ export function evaluateCompiledDeclarativeAllOfRule(rule, document, runtimeContext = {}) {
31
+ const branches = evaluateCompiledDeclarativeBranches(rule.branches, document, runtimeContext);
32
+ const sourceUnavailable = sourceUnavailableDiagnostics(branches);
33
+ const failed = sourceUnavailable.length > 0 ||
34
+ branches.some((branch) => branch.status === "failed");
35
+ let diagnostics = [];
36
+ if (sourceUnavailable.length > 0) {
37
+ diagnostics = sourceUnavailable;
38
+ }
39
+ else if (failed) {
40
+ diagnostics = [groupRequirementFailedDiagnostic(rule)];
41
+ }
27
42
  const status = failed ? "failed" : "passed";
28
43
  return {
29
44
  ruleId: rule.ruleId,
@@ -36,11 +51,11 @@ export function evaluateCompiledDeclarativeAllOfRule(rule, document) {
36
51
  },
37
52
  };
38
53
  }
39
- function evaluateCompiledDeclarativeBranches(branches, document) {
40
- return branches.map((branch) => evaluateCompiledDeclarativeBranch(branch, document));
54
+ function evaluateCompiledDeclarativeBranches(branches, document, runtimeContext) {
55
+ return branches.map((branch) => evaluateCompiledDeclarativeBranch(branch, document, runtimeContext));
41
56
  }
42
- function evaluateCompiledDeclarativeBranch(branch, document) {
43
- const result = evaluateCompiledDeclarativeRule(branch, resolveDeclarativeSelector(document, branch.selector));
57
+ function evaluateCompiledDeclarativeBranch(branch, document, runtimeContext) {
58
+ const result = evaluateCompiledDeclarativeRule(branch, resolveDeclarativeSelector(document, branch.selector), runtimeContext);
44
59
  return {
45
60
  branchIndex: branch.branchIndex,
46
61
  ...(branch.label !== undefined ? { label: branch.label } : {}),
@@ -48,6 +63,9 @@ function evaluateCompiledDeclarativeBranch(branch, document) {
48
63
  diagnostics: result.diagnostics,
49
64
  };
50
65
  }
66
+ function sourceUnavailableDiagnostics(branches) {
67
+ return branches.flatMap((branch) => branch.diagnostics.filter(isSourceUnavailableDiagnostic));
68
+ }
51
69
  function branchReferenceFromResult(branch) {
52
70
  return {
53
71
  branchIndex: branch.branchIndex,