@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.
- package/CHANGELOG.md +23 -0
- package/README.md +29 -10
- package/SECURITY.md +4 -4
- package/dist/api/declarative-validation.d.ts.map +1 -1
- package/dist/api/declarative-validation.js +31 -11
- package/dist/api/declarative-validation.js.map +1 -1
- package/dist/api/document-set-validation.js +1 -0
- package/dist/api/document-set-validation.js.map +1 -1
- package/dist/cli/declarative-validation.d.ts.map +1 -1
- package/dist/cli/declarative-validation.js +4 -4
- package/dist/cli/declarative-validation.js.map +1 -1
- package/dist/declarative-validation/applicability/classifier.d.ts +2 -1
- package/dist/declarative-validation/applicability/classifier.d.ts.map +1 -1
- package/dist/declarative-validation/applicability/classifier.js +2 -2
- package/dist/declarative-validation/applicability/classifier.js.map +1 -1
- package/dist/declarative-validation/assertions/context.d.ts +4 -0
- package/dist/declarative-validation/assertions/context.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/diagnostics.d.ts +3 -0
- package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/diagnostics.js +18 -0
- package/dist/declarative-validation/assertions/diagnostics.js.map +1 -1
- package/dist/declarative-validation/assertions/evaluator.d.ts +2 -1
- package/dist/declarative-validation/assertions/evaluator.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/evaluator.js +7 -1
- package/dist/declarative-validation/assertions/evaluator.js.map +1 -1
- package/dist/declarative-validation/assertions/group-evaluator.d.ts +3 -2
- package/dist/declarative-validation/assertions/group-evaluator.d.ts.map +1 -1
- package/dist/declarative-validation/assertions/group-evaluator.js +32 -14
- package/dist/declarative-validation/assertions/group-evaluator.js.map +1 -1
- package/dist/declarative-validation/assertions/source-length.d.ts +9 -0
- package/dist/declarative-validation/assertions/source-length.d.ts.map +1 -0
- package/dist/declarative-validation/assertions/source-length.js +33 -0
- package/dist/declarative-validation/assertions/source-length.js.map +1 -0
- package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/assertion-builders.js +4 -32
- package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -1
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts +1 -2
- package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/assertion-shapes.js +1 -25
- package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -1
- package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/assertions.js +1 -0
- package/dist/declarative-validation/compiler/assertions.js.map +1 -1
- package/dist/declarative-validation/compiler/compatibility.d.ts +2 -0
- package/dist/declarative-validation/compiler/compatibility.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/compatibility.js +10 -0
- package/dist/declarative-validation/compiler/compatibility.js.map +1 -1
- package/dist/declarative-validation/compiler/index.d.ts.map +1 -1
- package/dist/declarative-validation/compiler/index.js +10 -3
- package/dist/declarative-validation/compiler/index.js.map +1 -1
- package/dist/declarative-validation/compiler/length-assertion-builders.d.ts +7 -0
- package/dist/declarative-validation/compiler/length-assertion-builders.d.ts.map +1 -0
- package/dist/declarative-validation/compiler/length-assertion-builders.js +58 -0
- package/dist/declarative-validation/compiler/length-assertion-builders.js.map +1 -0
- package/dist/declarative-validation/compiler/plan.d.ts +4 -0
- package/dist/declarative-validation/compiler/plan.d.ts.map +1 -1
- package/dist/declarative-validation/evidence/index.d.ts +2 -1
- package/dist/declarative-validation/evidence/index.d.ts.map +1 -1
- package/dist/declarative-validation/evidence/index.js +27 -3
- package/dist/declarative-validation/evidence/index.js.map +1 -1
- package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -1
- package/dist/declarative-validation/profile/assertion-schema.js +11 -50
- package/dist/declarative-validation/profile/assertion-schema.js.map +1 -1
- package/dist/declarative-validation/profile/index.d.ts +4 -0
- package/dist/declarative-validation/profile/index.d.ts.map +1 -1
- package/dist/declarative-validation/profile/length-bound-schema.d.ts +7 -0
- package/dist/declarative-validation/profile/length-bound-schema.d.ts.map +1 -0
- package/dist/declarative-validation/profile/length-bound-schema.js +55 -0
- package/dist/declarative-validation/profile/length-bound-schema.js.map +1 -0
- package/dist/declarative-validation/results/create-result.js +1 -1
- package/dist/declarative-validation/results/create-result.js.map +1 -1
- package/dist/declarative-validation/results/types.d.ts +1 -0
- package/dist/declarative-validation/results/types.d.ts.map +1 -1
- package/dist/internal/package-version.d.ts +2 -0
- package/dist/internal/package-version.d.ts.map +1 -0
- package/dist/internal/package-version.js +2 -0
- package/dist/internal/package-version.js.map +1 -0
- package/dist-bundled/markdown-engine-cli.mjs +702 -525
- package/docs/contracts/declarative-validation.md +66 -10
- package/package.json +9 -5
- 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.
|
|
10
|
-
- published npm versions before this release: `0.1.0`, `1.0.0`, `2.0.0
|
|
11
|
-
|
|
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:
|
|
14
|
-
retaining the existing `documentVersion: "1.0.0"` rich IR
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
|
7
|
-
to land on the latest `
|
|
8
|
-
Older `0.x` and `
|
|
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;
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAGA,OAAO,EAAE,4CAA4C,EAAE,MAAM,kDAAkD,CAAC;
|
|
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":"AAIA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAQnC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAW/E,MAAM,CAAC,MAAM,mBAAmB,GAAgC,CAC9D,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,EAAE;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CACzC,CAAC;IACF,MAAM,WAAW,GAAG,gBAAgB,CAClC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CACnD,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC;QACvC,WAAW;QACX,OAAO,EAAE,YAAY;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,wBAAwB,CAC/B,KAA+B,EAC/B,OAAmC;IAEnC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC9E,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC,CAAC;IACH,IAAI,gBAAyD,CAAC;IAC9D,IACE,aAAa,CAAC,OAAO,KAAK,SAAS;QACnC,CAAC,kBAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,EAC9C,CAAC;QACD,gBAAgB,GAAG,mBAAmB,CACpC,eAAe,CAAC,QAAQ,EACxB,aAAa,CAAC,OAAO,EACrB;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;SACR,CACF,CAAC;IACJ,CAAC;IACD,MAAM,qBAAqB,GACzB,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;IACrE,MAAM,WAAW,GAAG,gBAAgB,CAAC;QACnC,GAAG,eAAe,CAAC,WAAW;QAC9B,GAAG,aAAa,CAAC,WAAW;QAC5B,GAAG,qBAAqB;KACzB,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,WAAW;QACX,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC;QAC3D,wBAAwB,EAAE,gBAAgB,CAAC,eAAe,CAAC,WAAW,CAAC;QACvE,kBAAkB,EAAE,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC;QAC/D,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB,CAAC;QAC9D,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAmC;IAC3D,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;YAC9C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,uBAAuB,KAAK,SAAS;YAC/C,CAAC,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,EAAE;YAC9D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAsC;IAEtC,OAAO,KAA+B,CAAC;AACzC,CAAC"}
|
|
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,
|
|
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":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAKzF,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAM/F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAqB5D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAA6C;IAE7C,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3E,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,aAAa,GAAG,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE;QACrE,IAAI,EAAE,KAAK,CAAC,WAAW;KACxB,CAAC,CAAC;IAEH,IACE,aAAa,CAAC,OAAO,KAAK,SAAS;QACnC,kBAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,EAC7C,CAAC;QACD,OAAO,YAAY,CAAC,kBAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,OAAO,YAAY,CACjB,kBAAkB,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC,CAAC,EACzE,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAErE,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,eAAe,GAAG,iBAAiB,CAAC;QACxC,eAAe,EAAE,OAAO;QACxB,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,IAAI,EAAE,KAAK,CAAC,QAAQ;KACrB,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG;QAC1B,GAAG,aAAa,CAAC,WAAW;QAC5B,GAAG,eAAe,CAAC,WAAW;KAC/B,CAAC;IAEF,IAAI,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,OAAO,YAAY,CACjB,yBAAyB,CACvB,eAAe,CAAC,QAAQ,EACxB,aAAa,CAAC,OAAO,EACrB;YACE,GAAG,mBAAmB;YACtB,GAAG,0BAA0B,CAC3B,aAAa,CAAC,OAAO,EACrB,eAAe,CAAC,QAAQ,CAAC,OAAO,CACjC;SACF,CACF,EACD,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAC1C,eAAe,CAAC,QAAQ,EACxB,aAAa,CAAC,OAAO,EACrB,EAAE,eAAe,EAAE,IAAI,EAAE,
|
|
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;
|
|
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;
|
|
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;
|
|
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":"
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/diagnostics.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,kCAAkC,GAC7C,sCAAsC,CAAC;AAmBzC,MAAM,UAAU,8BAA8B,CAC5C,IAA8C;IAE9C,OAAO;QACL,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,2CAA2C;QACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAA8C;IAE9C,OAAO;QACL,IAAI,EAAE,2CAA2C;QACjD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAiD,EACjD,cAAsB;IAEtB,OAAO,oBAAoB,CACzB,mCAAmC,EACnC,mDAAmD,EACnD,IAAI,EACJ;QACE,cAAc;QACd,WAAW,EAAE,CAAC,CAAC;QACf,SAAS,EAAE,iBAAiB;KAC7B,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAiD,EACjD,cAAsB;IAEtB,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,kCAAkC;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EACL,gEAAgE;YAClE,QAAQ,EAAE,OAAO;SAClB;QACD,cAAc;QACd,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,iBAAiB;QAC5B,eAAe,EAAE,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,UAA8B;IAE9B,OAAO,UAAU,CAAC,IAAI,KAAK,kCAAkC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,OAAe,EACf,IAAiD,EACjD,OAAmC;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7E,OAAO;QACL,UAAU,EAAE;YACV,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD;QACD,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;QACrC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7D,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,SAAuC,EACvC,IAAiD,EACjD,cAAsB;IAEtB,OAAO,yCAAyC,CAC9C,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC,EAC3C,IAAI,EACJ,cAAc,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,aAAmD,EACnD,WAAmB,EACnB,IAAiD,EACjD,cAAsB;IAEtB,OAAO,yCAAyC,CAC9C,kCAAkC,CAAC,aAAa,EAAE,WAAW,CAAC,EAC9D,IAAI,EACJ,cAAc,CACf,CAAC;AACJ,CAAC;AAED,SAAS,yCAAyC,CAChD,OAAe,EACf,IAAiD,EACjD,cAAsB;IAEtB,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,yCAAyC;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO;YACP,QAAQ,EAAE,OAAO;SAClB;QACD,cAAc;QACd,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,aAAmD;IAEnD,OAAO,cAAc,aAAa,mEAAmE,CAAC;AACxG,CAAC;AAED,SAAS,kCAAkC,CACzC,aAAmD,EACnD,WAAmB;IAEnB,OAAO,kCAAkC,WAAW,UAAU,aAAa,mEAAmE,CAAC;AACjJ,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA8C;IAE9C,OAAO,MAAM,KAAK,SAAS,IAAI,QAAQ,IAAI,MAAM;QAC/C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK;QACtB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,MAA8C;IACnE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QAEpB,KAAK,SAAS;YACZ,OAAO,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEvE,KAAK,SAAS;YACZ,OAAO,WAAW,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAErE,KAAK,OAAO;YACV,OAAO,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAE3C,KAAK,UAAU;YACb,OAAO,YAAY,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEjE,KAAK,WAAW;YACd,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEjG,KAAK,UAAU;YACb,OAAO,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAE5D,KAAK,MAAM;YACT,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAE3E,KAAK,MAAM;YACT,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC"}
|
|
@@ -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
|
-
|
|
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;
|
|
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":"
|
|
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
|
-
|
|
5
|
-
export declare function
|
|
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;
|
|
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
|
-
|
|
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
|
|
26
|
-
const
|
|
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,
|