@jasonbelmonti/markdown-engine 3.1.1 → 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 +14 -0
- package/README.md +28 -11
- 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 +25 -2
- 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 +1 -1
- package/dist/internal/package-version.js +1 -1
- package/dist-bundled/markdown-engine-cli.mjs +699 -525
- package/docs/contracts/declarative-validation.md +64 -8
- package/package.json +9 -5
- package/scripts/install-markdown-engine-cli.sh +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@
|
|
|
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
|
+
|
|
7
21
|
## 3.1.1 - 2026-07-03
|
|
8
22
|
|
|
9
23
|
### Fixed
|
package/README.md
CHANGED
|
@@ -6,15 +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.
|
|
9
|
+
- package metadata version: `3.2.0`
|
|
10
10
|
- published npm versions before this release: `0.1.0`, `1.0.0`, `2.0.0`,
|
|
11
|
-
`3.0.0`, `3.1.0`
|
|
12
|
-
- npm release target: `3.
|
|
11
|
+
`3.0.0`, `3.1.0`, `3.1.1`
|
|
12
|
+
- npm release target: `3.2.0` on `latest`
|
|
13
13
|
- website: <https://jasonbelmonti.github.io/markdown-engine/>
|
|
14
|
-
- release focus:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
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
|
|
18
17
|
- maintainer documentation map: [docs/README.md](docs/README.md)
|
|
19
18
|
- design reference:
|
|
20
19
|
[Markdown Engine 1.0 Rich IR design](docs/design/markdown-engine-1.0-rich-ir-operational-design-spec.md)
|
|
@@ -86,7 +85,7 @@ console.log(validationResult.valid);
|
|
|
86
85
|
console.log(serialize(validationResult, { pretty: true }));
|
|
87
86
|
```
|
|
88
87
|
|
|
89
|
-
Package 3.
|
|
88
|
+
Package 3.2 retains the serialized document contract at
|
|
90
89
|
`documentVersion: "1.0.0"` and makes that rich IR path the default for
|
|
91
90
|
`normalize(parsed)`. Callers may still pass
|
|
92
91
|
`normalize(parsed, { documentVersion: "1.0.0" })` explicitly. That path adds
|
|
@@ -187,6 +186,24 @@ rules:
|
|
|
187
186
|
exists: true
|
|
188
187
|
```
|
|
189
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
|
+
|
|
190
207
|
CLI validation output uses `profile.syntaxVersion` as the v1/v2 discriminator.
|
|
191
208
|
V1 rule results keep the existing flat `ruleId`, `passed`, and `diagnostics`
|
|
192
209
|
fields. V2 rule results add `status` and `evaluation`; v2 profile metadata adds
|
|
@@ -255,13 +272,13 @@ By default, the installer places the CLI under
|
|
|
255
272
|
and writes the wrapper to
|
|
256
273
|
`${MARKDOWN_ENGINE_BIN_DIR:-$HOME/.local/bin}/markdown-engine`. The installer
|
|
257
274
|
uses a local bundled artifact only when it matches the pinned artifact hash.
|
|
258
|
-
Otherwise it downloads `@jasonbelmonti/markdown-engine@3.
|
|
275
|
+
Otherwise it downloads `@jasonbelmonti/markdown-engine@3.2.0` with `npm pack
|
|
259
276
|
--ignore-scripts` and extracts only
|
|
260
277
|
`package/dist-bundled/markdown-engine-cli.mjs` from the tarball. It verifies the
|
|
261
278
|
pinned artifact hash before installing:
|
|
262
279
|
|
|
263
280
|
```text
|
|
264
|
-
|
|
281
|
+
5033d08160fcd3f44b11498dc29d01db73d7aff2a55eb3257fd9a1c14e29c3f6
|
|
265
282
|
```
|
|
266
283
|
|
|
267
284
|
The installed wrapper is:
|
|
@@ -270,7 +287,7 @@ The installed wrapper is:
|
|
|
270
287
|
"${MARKDOWN_ENGINE_BIN_DIR:-$HOME/.local/bin}/markdown-engine" validate --file <file.md> --profile <profile.yaml> --format json
|
|
271
288
|
```
|
|
272
289
|
|
|
273
|
-
Package 3.
|
|
290
|
+
Package 3.2 keeps the 2.0 API normalization default: callers that invoke
|
|
274
291
|
`normalize(parsed)` receive the rich IR `1.0.0` document shape. Consumers that
|
|
275
292
|
still need the legacy `0.0.0` shape should consume the rich IR fields
|
|
276
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":"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"}
|
|
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,UAAU,EAAE,KAAK,CAAC,QAAQ;YAC1B,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 +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":"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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
|
-
|
|
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,
|