@blockml/validator 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blocks/org/blockml/bml/compiler/validator/Library.bml +82 -0
- package/blocks/org/blockml/bml/compiler/validator/README.bml +60 -0
- package/blocks/org/blockml/bml/compiler/validator/ValidatorType.bml +38 -0
- package/blocks/org/blockml/bml/compiler/validator/capability/Validate.bml +54 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/DesignDecisions.bml +53 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/Diagnostics.bml +47 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/Introduction.bml +49 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/LayerSeparation.bml +51 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/PackageOwnership.bml +48 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/PublicApi.bml +52 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/ScopeExclusions.bml +49 -0
- package/blocks/org/blockml/bml/compiler/validator/documentation/ValidationPipeline.bml +58 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/validate.d.ts +3 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +47 -0
- package/dist/validate.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
BlockML Validator Library Descriptor
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.Library
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
|
|
25
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation">
|
|
26
|
+
|
|
27
|
+
<name>Library</name>
|
|
28
|
+
<type>validator:Library</type>
|
|
29
|
+
<baseType>core:BlockLibrary</baseType>
|
|
30
|
+
<is>The BlockML Validator compiler package library catalog</is>
|
|
31
|
+
|
|
32
|
+
<documentation>
|
|
33
|
+
Canonical validator specification for BlockML Stage-2 — validate() orchestration
|
|
34
|
+
on BomDocument using @blockml/framework utilities. TypeScript in packages/validator/src/
|
|
35
|
+
implements this library. Urmodell and API types live in org.blockml.bml.bom.*
|
|
36
|
+
(@blockml/bom). Membership is defined exclusively by this blocks list.
|
|
37
|
+
</documentation>
|
|
38
|
+
|
|
39
|
+
<version>0.1.0</version>
|
|
40
|
+
|
|
41
|
+
<language>
|
|
42
|
+
<English />
|
|
43
|
+
</language>
|
|
44
|
+
|
|
45
|
+
<properties>
|
|
46
|
+
<description>
|
|
47
|
+
<value>BlockML Validator library</value>
|
|
48
|
+
</description>
|
|
49
|
+
</properties>
|
|
50
|
+
|
|
51
|
+
<aggregations>
|
|
52
|
+
<readMe>
|
|
53
|
+
<composition>
|
|
54
|
+
<validator:README />
|
|
55
|
+
</composition>
|
|
56
|
+
</readMe>
|
|
57
|
+
<dependencies>
|
|
58
|
+
<composition>
|
|
59
|
+
<blockml:Library />
|
|
60
|
+
</composition>
|
|
61
|
+
<composition>
|
|
62
|
+
<bom:Library />
|
|
63
|
+
</composition>
|
|
64
|
+
<composition>
|
|
65
|
+
<framework:Library />
|
|
66
|
+
</composition>
|
|
67
|
+
</dependencies>
|
|
68
|
+
<blocks>
|
|
69
|
+
<composition><validator:ValidatorType /></composition>
|
|
70
|
+
<composition><valcap:Validate /></composition>
|
|
71
|
+
<composition><valdocumentation:Introduction /></composition>
|
|
72
|
+
<composition><valdocumentation:LayerSeparation /></composition>
|
|
73
|
+
<composition><valdocumentation:ValidationPipeline /></composition>
|
|
74
|
+
<composition><valdocumentation:PublicApi /></composition>
|
|
75
|
+
<composition><valdocumentation:Diagnostics /></composition>
|
|
76
|
+
<composition><valdocumentation:PackageOwnership /></composition>
|
|
77
|
+
<composition><valdocumentation:ScopeExclusions /></composition>
|
|
78
|
+
<composition><valdocumentation:DesignDecisions /></composition>
|
|
79
|
+
</blocks>
|
|
80
|
+
</aggregations>
|
|
81
|
+
|
|
82
|
+
</block>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
BlockML Validator — README
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.README
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
|
|
25
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation">
|
|
26
|
+
|
|
27
|
+
<name>README</name>
|
|
28
|
+
<type>blockml:README</type>
|
|
29
|
+
<baseType>core:ReadMe</baseType>
|
|
30
|
+
<is>Reading entry for the Validator compiler library</is>
|
|
31
|
+
|
|
32
|
+
<documentation>
|
|
33
|
+
The @blockml/validator package validates BomDocument (Urmodell) and returns
|
|
34
|
+
diagnostics plus an optional pragmatic model fork.
|
|
35
|
+
|
|
36
|
+
This library (org.blockml.bml.compiler.validator.*) is the SSOT; TypeScript in
|
|
37
|
+
packages/validator/src/ implements it. Parity tests in packages/validator/test/
|
|
38
|
+
verify BML ↔ TS alignment.
|
|
39
|
+
|
|
40
|
+
Start reading at org.blockml.bml.compiler.validator.documentation.Introduction (ReadNext chain).
|
|
41
|
+
|
|
42
|
+
Layer separation:
|
|
43
|
+
• org.blockml.bml.bom.* (@blockml/bom) — Urmodell types and ValidateOptions/ValidateResult
|
|
44
|
+
• org.blockml.bml.framework.* (@blockml/framework) — TypeRegistry, validation utilities
|
|
45
|
+
• org.blockml.bml.compiler.validator.* (this library) — validate() orchestration
|
|
46
|
+
|
|
47
|
+
Modules: documentation (narrative specs), capability (validate entry point).
|
|
48
|
+
|
|
49
|
+
Not in this library: validateTypes/validateConstraints implementation (@blockml/framework);
|
|
50
|
+
parse()/serialize() entry points.
|
|
51
|
+
</documentation>
|
|
52
|
+
|
|
53
|
+
<references>
|
|
54
|
+
<see type="valdocumentation:Introduction" relation="ReadFirst" />
|
|
55
|
+
<see type="valdocumentation:PublicApi" relation="SeeAlso" />
|
|
56
|
+
<see type="bomdocumentation:PublicApi" relation="SeeAlso" />
|
|
57
|
+
<see type="fwdocumentation:Introduction" relation="SeeAlso" />
|
|
58
|
+
</references>
|
|
59
|
+
|
|
60
|
+
</block>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator — ValidatorType
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.ValidatorType
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
24
|
+
|
|
25
|
+
<name>ValidatorType</name>
|
|
26
|
+
<type>validator:ValidatorType</type>
|
|
27
|
+
<baseType>core:Entity</baseType>
|
|
28
|
+
<is>Abstract marker for validator implementation data-structure blocks</is>
|
|
29
|
+
|
|
30
|
+
<documentation>Reserved for future validator-internal types. Distinct from bom:UrmodellType and core:Capability.</documentation>
|
|
31
|
+
|
|
32
|
+
<references>
|
|
33
|
+
<see type="bom:UrmodellType" relation="SeeAlso" />
|
|
34
|
+
</references>
|
|
35
|
+
|
|
36
|
+
<abstract>true</abstract>
|
|
37
|
+
|
|
38
|
+
</block>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Capability — Validate
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.capability.Validate
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
24
|
+
|
|
25
|
+
<name>Validate</name>
|
|
26
|
+
<type>valcap:Validate</type>
|
|
27
|
+
<baseType>core:Capability</baseType>
|
|
28
|
+
<is>Public entry: BomDocument → ValidateResult (B26)</is>
|
|
29
|
+
|
|
30
|
+
<documentation>Orchestrates TypeRegistry bootstrap/injection, forkBom, validateTypes, and validateConstraints. Does not mutate input Urmodell.</documentation>
|
|
31
|
+
|
|
32
|
+
<references>
|
|
33
|
+
<see type="valdocumentation:PublicApi" relation="SeeAlso" />
|
|
34
|
+
<see type="bomapi:ValidateOptions" relation="SeeAlso" />
|
|
35
|
+
<see type="bomapi:ValidateResult" relation="SeeAlso" />
|
|
36
|
+
<see type="fwcap:ForkBom" relation="SeeAlso" />
|
|
37
|
+
<see type="fwcap:ValidateTypes" relation="SeeAlso" />
|
|
38
|
+
<see type="fwcap:ValidateConstraints" relation="SeeAlso" />
|
|
39
|
+
<see type="fwcap:BootstrapTypeRegistry" relation="SeeAlso" />
|
|
40
|
+
</references>
|
|
41
|
+
|
|
42
|
+
<properties>
|
|
43
|
+
<document type="bomdoc:BomDocument">
|
|
44
|
+
<documentation>document. TS type: bomdoc:BomDocument. (required)</documentation>
|
|
45
|
+
</document>
|
|
46
|
+
<options type="bomapi:ValidateOptions">
|
|
47
|
+
<documentation>Default continueOnError=true. (optional)</documentation>
|
|
48
|
+
</options>
|
|
49
|
+
<result type="bomapi:ValidateResult">
|
|
50
|
+
<documentation>result. TS type: bomapi:ValidateResult. (required)</documentation>
|
|
51
|
+
</result>
|
|
52
|
+
</properties>
|
|
53
|
+
|
|
54
|
+
</block>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — DesignDecisions
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.DesignDecisions
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>DesignDecisions</name>
|
|
27
|
+
<type>valdocumentation:DesignDecisions</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>Normative validator design decisions</is>
|
|
30
|
+
|
|
31
|
+
<documentation>Pragmatic model (default fork): validate() always forks via forkBom before checks.
|
|
32
|
+
Urmodell input is never mutated.
|
|
33
|
+
|
|
34
|
+
continueOnError (default true): when false and validation fails, return diagnostics
|
|
35
|
+
without pragmaticModel — host can abort before downstream work.
|
|
36
|
+
|
|
37
|
+
TypeRegistry injection: hosts with pre-built registry skip bootstrap; supports
|
|
38
|
+
LSP and incremental validation scenarios.
|
|
39
|
+
|
|
40
|
+
success semantics: false when any diagnostic has severity === "error"; warnings
|
|
41
|
+
alone do not fail success.
|
|
42
|
+
|
|
43
|
+
Bootstrap modes: bootstrapPaths (corpus flat scan) or libraryPaths (Library.bml graph).
|
|
44
|
+
validateVersions runs after validateTypes and before validateConstraints.
|
|
45
|
+
|
|
46
|
+
No throw on validation failure — aligns with B26 sync diagnostic API across parser,
|
|
47
|
+
serializer, validator, and compiler.</documentation>
|
|
48
|
+
|
|
49
|
+
<references>
|
|
50
|
+
<see type="valdocumentation:Diagnostics" relation="ReadNext"></see>
|
|
51
|
+
</references>
|
|
52
|
+
|
|
53
|
+
</block>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — Diagnostics
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.Diagnostics
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>Diagnostics</name>
|
|
27
|
+
<type>valdocumentation:Diagnostics</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>Validator diagnostics and host abort policy</is>
|
|
30
|
+
|
|
31
|
+
<documentation>The validator aggregates diagnostics from framework utilities (validateTypes,
|
|
32
|
+
validateConstraints) and bootstrap (when TypeRegistry is built inline).
|
|
33
|
+
|
|
34
|
+
Diagnostic type: org.blockml.bml.bom.common.Diagnostic (shared across toolchain).
|
|
35
|
+
|
|
36
|
+
Host policy: CLI, IDE, and other orchestrators decide whether error diagnostics
|
|
37
|
+
block serialize, compile, or other downstream steps. The validator package does
|
|
38
|
+
not enforce abort-on-error — it reports diagnostics and success flag only.
|
|
39
|
+
|
|
40
|
+
Cross-ref diagnostic codes: org.blockml.bml.framework.config.FrameworkDiagnosticCodes</documentation>
|
|
41
|
+
|
|
42
|
+
<references>
|
|
43
|
+
<see type="fwconfig:FrameworkDiagnosticCodes" relation="SeeAlso"></see>
|
|
44
|
+
<see type="valdocumentation:PackageOwnership" relation="ReadNext"></see>
|
|
45
|
+
</references>
|
|
46
|
+
|
|
47
|
+
</block>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — Introduction
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.Introduction
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>Introduction</name>
|
|
27
|
+
<type>valdocumentation:Introduction</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>Purpose and scope of the Validator package</is>
|
|
30
|
+
|
|
31
|
+
<documentation>The @blockml/validator package provides Stage-2 semantic validation on BomDocument.
|
|
32
|
+
It orchestrates @blockml/framework utilities on a pragmatic fork of the Urmodell.
|
|
33
|
+
|
|
34
|
+
This library (org.blockml.bml.compiler.validator.*) is the SSOT. TypeScript in
|
|
35
|
+
packages/validator/src/ implements it. Parity tests in packages/validator/test/
|
|
36
|
+
verify BML ↔ TS alignment.
|
|
37
|
+
|
|
38
|
+
Pipeline placement: BomDocument ← Parser | BomBuilder → Validator → diagnostics +
|
|
39
|
+
optional pragmaticModel. Consumed by @blockml/cli, @blockml/lsp (V2), and hosts.
|
|
40
|
+
|
|
41
|
+
Validator never mutates the input Urmodell. Abort-on-error is a host concern — not
|
|
42
|
+
enforced inside the validator package.</documentation>
|
|
43
|
+
|
|
44
|
+
<references>
|
|
45
|
+
<see type="valdocumentation:LayerSeparation" relation="ReadNext"></see>
|
|
46
|
+
<see type="bomdocumentation:Introduction" relation="SeeAlso"></see>
|
|
47
|
+
</references>
|
|
48
|
+
|
|
49
|
+
</block>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — LayerSeparation
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.LayerSeparation
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>LayerSeparation</name>
|
|
27
|
+
<type>valdocumentation:LayerSeparation</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>Validator vs framework vs BOM vs parser</is>
|
|
30
|
+
|
|
31
|
+
<documentation>Four layers relevant to validation:
|
|
32
|
+
|
|
33
|
+
org.blockml.bml.bom.* (@blockml/bom) — Urmodell types (BomDocument, …).
|
|
34
|
+
ValidateOptions, ValidateResult, TypeRegistryReader (B26) live here.
|
|
35
|
+
|
|
36
|
+
org.blockml.bml.framework.* (@blockml/framework) — TypeRegistry, forkBom,
|
|
37
|
+
validateTypes, validateConstraints, bootstrapTypeRegistry. Validator calls these;
|
|
38
|
+
does not reimplement them.
|
|
39
|
+
|
|
40
|
+
org.blockml.bml.compiler.validator.* (this package) — validate() orchestration
|
|
41
|
+
and Stage-2 entry point contract only.
|
|
42
|
+
|
|
43
|
+
org.blockml.bml.compiler.parser.* (@blockml/parser) — BML → BomDocument (Stage 1).
|
|
44
|
+
Validator consumes parser output; does not call parse() directly (bootstrap is via framework).</documentation>
|
|
45
|
+
|
|
46
|
+
<references>
|
|
47
|
+
<see type="valdocumentation:ValidationPipeline" relation="ReadNext"></see>
|
|
48
|
+
<see type="fwdocumentation:Introduction" relation="SeeAlso"></see>
|
|
49
|
+
</references>
|
|
50
|
+
|
|
51
|
+
</block>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — PackageOwnership
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.PackageOwnership
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>PackageOwnership</name>
|
|
27
|
+
<type>valdocumentation:PackageOwnership</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>Toolchain package responsibilities for validation</is>
|
|
30
|
+
|
|
31
|
+
<documentation>@blockml/validator — validate() orchestration; ValidateResult assembly. Owns this BML library.
|
|
32
|
+
|
|
33
|
+
@blockml/bom — Urmodell types, ValidateOptions/ValidateResult (B26), Diagnostic.
|
|
34
|
+
Validator consumes; does not redefine.
|
|
35
|
+
|
|
36
|
+
@blockml/framework — TypeRegistry, forkBom, validateTypes, validateConstraints,
|
|
37
|
+
bootstrapTypeRegistry. Validator delegates all semantic work here.
|
|
38
|
+
|
|
39
|
+
@blockml/parser — BML → BomDocument; used indirectly via framework bootstrap.
|
|
40
|
+
|
|
41
|
+
@blockml/cli — validate command host; may inject TypeRegistry or bootstrap paths.</documentation>
|
|
42
|
+
|
|
43
|
+
<references>
|
|
44
|
+
<see type="valdocumentation:ScopeExclusions" relation="ReadNext"></see>
|
|
45
|
+
<see type="bomdocumentation:PackageOwnership" relation="SeeAlso"></see>
|
|
46
|
+
</references>
|
|
47
|
+
|
|
48
|
+
</block>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — PublicApi
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.PublicApi
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>PublicApi</name>
|
|
27
|
+
<type>valdocumentation:PublicApi</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>validate() entry point (B26)</is>
|
|
30
|
+
|
|
31
|
+
<documentation>validate(document: BomDocument, options?: ValidateOptions): ValidateResult
|
|
32
|
+
|
|
33
|
+
ValidateOptions (owned by @blockml/bom):
|
|
34
|
+
• typeRegistry — pre-built TypeRegistryReader / TypeRegistry instance (optional)
|
|
35
|
+
• bootstrapPaths — corpus roots when bootstrapping (optional)
|
|
36
|
+
• continueOnError — default true; when false, omit pragmaticModel on failure
|
|
37
|
+
|
|
38
|
+
ValidateResult (owned by @blockml/bom):
|
|
39
|
+
• pragmaticModel — forked BomDocument when validation completes or continueOnError
|
|
40
|
+
• diagnostics — Diagnostic[]
|
|
41
|
+
• success — false if any error-severity diagnostic
|
|
42
|
+
|
|
43
|
+
Sync only; does not throw on validation errors. Host decides abort policy.</documentation>
|
|
44
|
+
|
|
45
|
+
<references>
|
|
46
|
+
<see type="bomapi:ValidateOptions" relation="Defines"></see>
|
|
47
|
+
<see type="bomapi:ValidateResult" relation="Defines"></see>
|
|
48
|
+
<see type="valcap:Validate" relation="Defines"></see>
|
|
49
|
+
<see type="valdocumentation:DesignDecisions" relation="ReadNext"></see>
|
|
50
|
+
</references>
|
|
51
|
+
|
|
52
|
+
</block>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — ScopeExclusions
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.ScopeExclusions
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>ScopeExclusions</name>
|
|
27
|
+
<type>valdocumentation:ScopeExclusions</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>Explicit out-of-scope for the validator package</is>
|
|
30
|
+
|
|
31
|
+
<documentation>Out of scope for @blockml/validator:
|
|
32
|
+
|
|
33
|
+
• TypeRegistry implementation — @blockml/framework
|
|
34
|
+
• Individual validation rules — @blockml/framework (validateTypes, validateEmbeddedBlocks,
|
|
35
|
+
validateInstances, validatePresets, validateVisibility, validateReadOnly, validateConstraints)
|
|
36
|
+
• SCAD / MachineBlocks Stage-3 render validation
|
|
37
|
+
• MemberGroups axis constraints (Category / AiUsage) — MachineBlocks-only; see docs/TODOs
|
|
38
|
+
• parse() / serialize() — @blockml/parser / @blockml/serializer
|
|
39
|
+
• Render target emit / compile — @blockml/compiler
|
|
40
|
+
• CLI file I/O — @blockml/cli
|
|
41
|
+
• Language BML corpus — @blockml/core (npm)
|
|
42
|
+
|
|
43
|
+
In scope: validate() orchestration on BomDocument with framework utilities.</documentation>
|
|
44
|
+
|
|
45
|
+
<references>
|
|
46
|
+
<see type="valdocumentation:Introduction" relation="SeeAlso"></see>
|
|
47
|
+
</references>
|
|
48
|
+
|
|
49
|
+
</block>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Validator Documentation — ValidationPipeline
|
|
3
|
+
FQN: org.blockml.bml.compiler.validator.documentation.ValidationPipeline
|
|
4
|
+
-->
|
|
5
|
+
<block
|
|
6
|
+
xmlns="http://blockml.org/bml"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
8
|
+
xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
|
|
9
|
+
"
|
|
10
|
+
xmlns:blockml="org.blockml.bml"
|
|
11
|
+
xmlns:bom="org.blockml.bml.bom"
|
|
12
|
+
xmlns:bomapi="org.blockml.bml.bom.api"
|
|
13
|
+
xmlns:bomcommon="org.blockml.bml.bom.common"
|
|
14
|
+
xmlns:bomdoc="org.blockml.bml.bom.document"
|
|
15
|
+
xmlns:core="org.blockml.bml.core"
|
|
16
|
+
xmlns:def="org.blockml.bml.definition"
|
|
17
|
+
xmlns:framework="org.blockml.bml.framework"
|
|
18
|
+
xmlns:fwcap="org.blockml.bml.framework.capability"
|
|
19
|
+
xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
|
|
20
|
+
xmlns:type="org.blockml.bml.type"
|
|
21
|
+
xmlns:validator="org.blockml.bml.compiler.validator"
|
|
22
|
+
xmlns:valcap="org.blockml.bml.compiler.validator.capability"
|
|
23
|
+
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
24
|
+
xmlns:doc="org.blockml.bml.documentation">
|
|
25
|
+
|
|
26
|
+
<name>ValidationPipeline</name>
|
|
27
|
+
<type>valdocumentation:ValidationPipeline</type>
|
|
28
|
+
<baseType>core:Documentation</baseType>
|
|
29
|
+
<is>validate() orchestration steps</is>
|
|
30
|
+
|
|
31
|
+
<documentation>validate(document, options?) pipeline (packages/validator/src/validate.ts):
|
|
32
|
+
|
|
33
|
+
1. Resolve TypeRegistry — options.typeRegistry if instanceof TypeRegistry,
|
|
34
|
+
else bootstrapTypeRegistry({ paths, libraryPaths, rootDir })
|
|
35
|
+
2. forkBom(document) → pragmaticModel (structuredClone working copy)
|
|
36
|
+
3. validateTypes(pragmaticModel, registry) → diagnostics[]
|
|
37
|
+
4. validateEmbeddedBlocks(pragmaticModel) → append diagnostics
|
|
38
|
+
5. validateVersions(pragmaticModel, registry) → append diagnostics
|
|
39
|
+
6. validateInstances(pragmaticModel, registry) → append diagnostics
|
|
40
|
+
7. validatePresets(pragmaticModel, registry) → append diagnostics
|
|
41
|
+
8. validateVisibility(pragmaticModel, registry) → append diagnostics
|
|
42
|
+
9. validateReadOnly(pragmaticModel, registry) → append diagnostics
|
|
43
|
+
10. validateConstraints(pragmaticModel, registry) → append diagnostics
|
|
44
|
+
11. success = no diagnostic with severity === "error"
|
|
45
|
+
12. Return ValidateResult { pragmaticModel?, diagnostics, success }
|
|
46
|
+
|
|
47
|
+
When continueOnError === false and success === false, pragmaticModel is omitted
|
|
48
|
+
from the result (early return with diagnostics only).
|
|
49
|
+
|
|
50
|
+
Out of scope in this pipeline: SCAD/MachineBlocks Stage-3 render validation;
|
|
51
|
+
MemberGroups axis constraints (MB-only).</documentation>
|
|
52
|
+
|
|
53
|
+
<references>
|
|
54
|
+
<see type="valdocumentation:PublicApi" relation="ReadNext"></see>
|
|
55
|
+
<see type="valcap:Validate" relation="Defines"></see>
|
|
56
|
+
</references>
|
|
57
|
+
|
|
58
|
+
</block>
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA+B7F,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CA4ChB"}
|
package/dist/validate.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { bootstrapTypeRegistry, forkBom, validateConstraints, validateEmbeddedBlocks, validateInstances, validatePresets, validateReadOnly, validateTypes, validateVersions, validateVisibility, TypeRegistry, } from "@blockml/framework";
|
|
2
|
+
/** Bootstrap scan diagnostics apply to the corpus, not the document under validation. */
|
|
3
|
+
function libraryBootstrapDiagnostics(bootstrap, options) {
|
|
4
|
+
if (!options.libraryPaths?.length) {
|
|
5
|
+
return [];
|
|
6
|
+
}
|
|
7
|
+
return bootstrap.diagnostics.filter((d) => d.code === "BML_LIBRARY_RESOLVE_ERROR" ||
|
|
8
|
+
d.code === "BML_LIBRARY_NESTING_VIOLATION");
|
|
9
|
+
}
|
|
10
|
+
export function validate(document, options = {}) {
|
|
11
|
+
const continueOnError = options.continueOnError !== false;
|
|
12
|
+
let registry;
|
|
13
|
+
let bootstrapDiagnostics = [];
|
|
14
|
+
if (options.typeRegistry instanceof TypeRegistry) {
|
|
15
|
+
registry = options.typeRegistry;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const bootstrapOptions = { rootDir: process.cwd() };
|
|
19
|
+
if (options.bootstrapPaths) {
|
|
20
|
+
bootstrapOptions.paths = options.bootstrapPaths;
|
|
21
|
+
}
|
|
22
|
+
if (options.libraryPaths) {
|
|
23
|
+
bootstrapOptions.libraryPaths = options.libraryPaths;
|
|
24
|
+
}
|
|
25
|
+
const bootstrap = bootstrapTypeRegistry(bootstrapOptions);
|
|
26
|
+
registry = bootstrap.registry;
|
|
27
|
+
bootstrapDiagnostics = libraryBootstrapDiagnostics(bootstrap, options);
|
|
28
|
+
}
|
|
29
|
+
const pragmaticModel = forkBom(document);
|
|
30
|
+
const diagnostics = [
|
|
31
|
+
...bootstrapDiagnostics,
|
|
32
|
+
...validateTypes(pragmaticModel, registry),
|
|
33
|
+
...validateEmbeddedBlocks(pragmaticModel),
|
|
34
|
+
...validateVersions(pragmaticModel, registry),
|
|
35
|
+
...validateInstances(pragmaticModel, registry),
|
|
36
|
+
...validatePresets(pragmaticModel, registry),
|
|
37
|
+
...validateVisibility(pragmaticModel, registry),
|
|
38
|
+
...validateReadOnly(pragmaticModel, registry),
|
|
39
|
+
...validateConstraints(pragmaticModel, registry),
|
|
40
|
+
];
|
|
41
|
+
const success = !diagnostics.some((d) => d.severity === "error");
|
|
42
|
+
if (!continueOnError && !success) {
|
|
43
|
+
return { diagnostics, success };
|
|
44
|
+
}
|
|
45
|
+
return { pragmaticModel, diagnostics, success };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAE5B,yFAAyF;AACzF,SAAS,2BAA2B,CAClC,SAA0B,EAC1B,OAAwB;IAExB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,2BAA2B;QACtC,CAAC,CAAC,IAAI,KAAK,+BAA+B,CAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,QAAqB,EACrB,UAA2B,EAAE;IAE7B,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK,CAAC;IAC1D,IAAI,QAAsB,CAAC;IAC3B,IAAI,oBAAoB,GAAiB,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,YAAY,YAAY,YAAY,EAAE,CAAC;QACjD,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,GAIlB,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,gBAAgB,CAAC,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,gBAAgB,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACvD,CAAC;QACD,MAAM,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QAC1D,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC9B,oBAAoB,GAAG,2BAA2B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG;QAClB,GAAG,oBAAoB;QACvB,GAAG,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC1C,GAAG,sBAAsB,CAAC,cAAc,CAAC;QACzC,GAAG,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC7C,GAAG,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC9C,GAAG,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC5C,GAAG,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC/C,GAAG,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC7C,GAAG,mBAAmB,CAAC,cAAc,EAAE,QAAQ,CAAC;KACjD,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAEjE,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@blockml/validator",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "BlockML validator — semantic validation of BOM documents",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/pks5/blockml-toolchain.git",
|
|
9
|
+
"directory": "packages/validator"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"type": "module",
|
|
15
|
+
"sideEffects": false,
|
|
16
|
+
"blockml": {
|
|
17
|
+
"library": "./blocks/org/blockml/bml/compiler/validator/Library.bml"
|
|
18
|
+
},
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"import": "./dist/index.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"blocks"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc --build",
|
|
31
|
+
"prepublishOnly": "npm run build",
|
|
32
|
+
"test": "vitest run packages/validator/test"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@blockml/bom": "^0.1.0",
|
|
36
|
+
"@blockml/core": "^1.0.3",
|
|
37
|
+
"@blockml/framework": "^0.1.0"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=20"
|
|
41
|
+
}
|
|
42
|
+
}
|