@blockml/builder 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/blocks/org/blockml/bml/builder/AddAggregationOptions.bml +35 -0
  2. package/blocks/org/blockml/bml/builder/AddPropertyOptions.bml +38 -0
  3. package/blocks/org/blockml/bml/builder/BomBuilder.bml +36 -0
  4. package/blocks/org/blockml/bml/builder/BuilderType.bml +32 -0
  5. package/blocks/org/blockml/bml/builder/CreateBlockOptions.bml +50 -0
  6. package/blocks/org/blockml/bml/builder/Library.bml +86 -0
  7. package/blocks/org/blockml/bml/builder/README.bml +36 -0
  8. package/blocks/org/blockml/bml/builder/capability/AddAggregation.bml +40 -0
  9. package/blocks/org/blockml/bml/builder/capability/AddCompositionChild.bml +44 -0
  10. package/blocks/org/blockml/bml/builder/capability/AddProperty.bml +40 -0
  11. package/blocks/org/blockml/bml/builder/capability/Create.bml +41 -0
  12. package/blocks/org/blockml/bml/builder/capability/Edit.bml +41 -0
  13. package/blocks/org/blockml/bml/builder/capability/EnsureNamespaceBinding.bml +41 -0
  14. package/blocks/org/blockml/bml/builder/capability/QuerySelector.bml +40 -0
  15. package/blocks/org/blockml/bml/builder/capability/Seal.bml +37 -0
  16. package/blocks/org/blockml/bml/builder/capability/SetMemberValue.bml +40 -0
  17. package/blocks/org/blockml/bml/builder/documentation/ArchitectureOverview.bml +36 -0
  18. package/blocks/org/blockml/bml/builder/documentation/Introduction.bml +38 -0
  19. package/blocks/org/blockml/bml/builder/documentation/LayerSeparation.bml +40 -0
  20. package/blocks/org/blockml/bml/builder/documentation/PackageOwnership.bml +37 -0
  21. package/blocks/org/blockml/bml/builder/documentation/PublicApi.bml +45 -0
  22. package/blocks/org/blockml/bml/builder/documentation/ScopeExclusions.bml +38 -0
  23. package/blocks/org/blockml/bml/builder/documentation/V1Scope.bml +39 -0
  24. package/dist/index.d.ts +4 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +3 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/namespaces.d.ts +12 -0
  29. package/dist/namespaces.d.ts.map +1 -0
  30. package/dist/namespaces.js +74 -0
  31. package/dist/namespaces.js.map +1 -0
  32. package/dist/session.d.ts +25 -0
  33. package/dist/session.d.ts.map +1 -0
  34. package/dist/session.js +233 -0
  35. package/dist/session.js.map +1 -0
  36. package/dist/types.d.ts +24 -0
  37. package/dist/types.d.ts.map +1 -0
  38. package/dist/types.js +2 -0
  39. package/dist/types.js.map +1 -0
  40. package/package.json +46 -0
@@ -0,0 +1,40 @@
1
+ <!--
2
+ Builder Capability — SetMemberValue
3
+ FQN: org.blockml.bml.builder.capability.SetMemberValue
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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>SetMemberValue</name>
24
+ <type>buildercap:SetMemberValue</type>
25
+ <baseType>core:Capability</baseType>
26
+ <is>Set a literal value on a declared property</is>
27
+ <documentation>Finds a property by name and sets its literal value. Throws when the
28
+ member is missing or not a property.</documentation>
29
+ <properties>
30
+ <name type="type:Text">
31
+ <documentation>Property name. (required)</documentation>
32
+ </name>
33
+ <value type="type:Text">
34
+ <documentation>Literal value. (required)</documentation>
35
+ </value>
36
+ <result type="builder:BomBuilder">
37
+ <documentation>This session. (required)</documentation>
38
+ </result>
39
+ </properties>
40
+ </block>
@@ -0,0 +1,36 @@
1
+ <!--
2
+ Builder Documentation — ArchitectureOverview
3
+ FQN: org.blockml.bml.builder.documentation.ArchitectureOverview
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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>ArchitectureOverview</name>
24
+ <type>builderdocumentation:ArchitectureOverview</type>
25
+ <baseType>core:Documentation</baseType>
26
+ <is>Create or edit session to sealed Urmodell</is>
27
+ <documentation>BomBuilder.create(options) or BomBuilder.edit(document) → draft mutations
28
+ → seal() → BomDocument. Serializer and validator consume the sealed document
29
+ regardless of Parser or Builder provenance.
30
+
31
+ create starts a new root block. edit deep-clones an existing Urmodell.
32
+ Authoring never mutates a sealed document in place.</documentation>
33
+ <references>
34
+ <see type="builderdocumentation:V1Scope" relation="ReadNext" />
35
+ </references>
36
+ </block>
@@ -0,0 +1,38 @@
1
+ <!--
2
+ Builder Documentation — Introduction
3
+ FQN: org.blockml.bml.builder.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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>Introduction</name>
24
+ <type>builderdocumentation:Introduction</type>
25
+ <baseType>core:Documentation</baseType>
26
+ <is>Purpose and scope of the Builder package</is>
27
+ <documentation>The @blockml/builder package provides BomBuilder, the writable authoring API
28
+ for BlockML. A session builds or edits a BOM graph and seal() produces a normal
29
+ Urmodell (BomDocument). Parser-origin and builder-origin documents share types.
30
+
31
+ This library (org.blockml.bml.builder.*) is the SSOT. TypeScript in
32
+ packages/builder/src/ implements it. File I/O lives in @blockml/cli (blockml new).</documentation>
33
+ <references>
34
+ <see type="builderdocumentation:LayerSeparation" relation="ReadNext" />
35
+ <see type="buildercap:Create" relation="SeeAlso" />
36
+ <see type="bomdoc:BomDocument" relation="SeeAlso" />
37
+ </references>
38
+ </block>
@@ -0,0 +1,40 @@
1
+ <!--
2
+ Builder Documentation — LayerSeparation
3
+ FQN: org.blockml.bml.builder.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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>LayerSeparation</name>
24
+ <type>builderdocumentation:LayerSeparation</type>
25
+ <baseType>core:Documentation</baseType>
26
+ <is>Builder vs BOM vs framework vs CLI</is>
27
+ <documentation>Layers:
28
+
29
+ org.blockml.bml.builder.* (@blockml/builder) — writable session, mutations, seal().
30
+ @blockml/bom — Urmodell types only.
31
+ @blockml/framework — TypeRegistry, forkBom (resolve only; not authoring).
32
+ @blockml/parser — BML → BomDocument for Edit.
33
+ @blockml/serializer — BomDocument → BML after seal().
34
+ @blockml/cli — blockml new host (paths, Library catalog, file write).
35
+
36
+ Builder does not parse, serialize, validate, or write files.</documentation>
37
+ <references>
38
+ <see type="builderdocumentation:ArchitectureOverview" relation="ReadNext" />
39
+ </references>
40
+ </block>
@@ -0,0 +1,37 @@
1
+ <!--
2
+ Builder Documentation — PackageOwnership
3
+ FQN: org.blockml.bml.builder.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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>PackageOwnership</name>
24
+ <type>builderdocumentation:PackageOwnership</type>
25
+ <baseType>core:Documentation</baseType>
26
+ <is>Toolchain responsibilities for Builder</is>
27
+ <documentation>@blockml/builder — BomBuilder session, mutations, seal(). Owns this BML library.
28
+
29
+ @blockml/bom — BomDocument and member types.
30
+ @blockml/framework — TypeRegistry (CLI lookup of owning Library / baseType).
31
+ @blockml/parser — load existing documents for edit.
32
+ @blockml/serializer — emit BML after seal.
33
+ @blockml/cli — blockml new command host.</documentation>
34
+ <references>
35
+ <see type="builderdocumentation:ScopeExclusions" relation="ReadNext" />
36
+ </references>
37
+ </block>
@@ -0,0 +1,45 @@
1
+ <!--
2
+ Builder Documentation — PublicApi
3
+ FQN: org.blockml.bml.builder.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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>PublicApi</name>
24
+ <type>builderdocumentation:PublicApi</type>
25
+ <baseType>core:Documentation</baseType>
26
+ <is>Exported API from packages/builder/src/index.ts</is>
27
+ <documentation><![CDATA[
28
+ Exported API from packages/builder/src/index.ts:
29
+
30
+ • BomBuilder.create(options) → BomBuilder
31
+ • BomBuilder.edit(document) → BomBuilder
32
+ • session.seal() → BomDocument
33
+ • session.setName / setType / setBaseType / setIs / setDocumentation / setFilePath
34
+ • session.ensureNamespaceBinding(prefix, namespace)
35
+ • session.addProperty(options) / addAggregation(options)
36
+ • session.addCompositionChild(aggregationName, typeFqn)
37
+ • session.setMemberValue(name, value)
38
+ • session.querySelector(selector) → MemberDefinition | undefined
39
+ • packageOfFqn / prefixForPackage helpers
40
+ ]]></documentation>
41
+ <references>
42
+ <see type="buildercap:Create" relation="Defines" />
43
+ <see type="buildercap:Seal" relation="Defines" />
44
+ </references>
45
+ </block>
@@ -0,0 +1,38 @@
1
+ <!--
2
+ Builder Documentation — ScopeExclusions
3
+ FQN: org.blockml.bml.builder.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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>ScopeExclusions</name>
24
+ <type>builderdocumentation:ScopeExclusions</type>
25
+ <baseType>core:Documentation</baseType>
26
+ <is>Explicit out-of-scope for @blockml/builder V1</is>
27
+ <documentation>Out of scope:
28
+ • Schema-aware rejection of unknown members inside the session
29
+ • querySelectorAll, parent/child DOM walk, instance-level selectors
30
+ • File I/O, parse, serialize, validate
31
+ • forkBom structural authoring
32
+ • Changing BlockML meta-model / Definition grammar (V4)
33
+ • Transformer or LSP refactors
34
+ • Overwriting existing .bml files from blockml new</documentation>
35
+ <references>
36
+ <see type="builderdocumentation:Introduction" relation="SeeAlso" />
37
+ </references>
38
+ </block>
@@ -0,0 +1,39 @@
1
+ <!--
2
+ Builder Documentation — V1Scope
3
+ FQN: org.blockml.bml.builder.documentation.V1Scope
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:builder="org.blockml.bml.builder"
16
+ xmlns:buildercap="org.blockml.bml.builder.capability"
17
+ xmlns:builderdocumentation="org.blockml.bml.builder.documentation"
18
+ xmlns:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:framework="org.blockml.bml.framework"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>V1Scope</name>
24
+ <type>builderdocumentation:V1Scope</type>
25
+ <baseType>core:Documentation</baseType>
26
+ <is>Explicit V1 capabilities</is>
27
+ <documentation><![CDATA[In scope V1:
28
+ • BomBuilder.create / edit / seal
29
+ • Identity setters (name, type, baseType, is, documentation, filePath)
30
+ • ensureNamespaceBinding
31
+ • addProperty, addAggregation, addCompositionChild, setMemberValue
32
+ • querySelector for properties.<name> and aggregations.<name>
33
+ • CLI: blockml new FQN (host in @blockml/cli)
34
+
35
+ Out of scope: see ScopeExclusions.]]></documentation>
36
+ <references>
37
+ <see type="builderdocumentation:ScopeExclusions" relation="SeeAlso" />
38
+ </references>
39
+ </block>
@@ -0,0 +1,4 @@
1
+ export { BomBuilder } from "./session.js";
2
+ export type { AddAggregationOptions, AddPropertyOptions, CreateBlockOptions, } from "./types.js";
3
+ export { BML_XMLNS, DEFAULT_BASE_TYPE, KNOWN_PACKAGE_PREFIXES, packageOfFqn, prefixForPackage, SCHEMA_LOCATION, shortNameOfFqn, XSI_NS, } from "./namespaces.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,GACP,MAAM,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { BomBuilder } from "./session.js";
2
+ export { BML_XMLNS, DEFAULT_BASE_TYPE, KNOWN_PACKAGE_PREFIXES, packageOfFqn, prefixForPackage, SCHEMA_LOCATION, shortNameOfFqn, XSI_NS, } from "./namespaces.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,MAAM,GACP,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const BML_XMLNS = "http://blockml.org/bml";
2
+ export declare const XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
3
+ export declare const SCHEMA_LOCATION = "http://blockml.org/bml https://blockml.org/schemas/bml.xsd";
4
+ export declare const DEFAULT_BASE_TYPE = "org.blockml.bml.core.Block";
5
+ export declare const ENGLISH_FQN = "org.blockml.bml.language.English";
6
+ /** Conventional prefixes for well-known org.blockml.bml.* packages. */
7
+ export declare const KNOWN_PACKAGE_PREFIXES: Record<string, string>;
8
+ export declare function packageOfFqn(fqn: string): string;
9
+ export declare function shortNameOfFqn(fqn: string): string;
10
+ export declare function prefixForPackage(pkg: string, bindings: Record<string, string>): string;
11
+ export declare function orderedBindings(bindings: Record<string, string>): Record<string, string>;
12
+ //# sourceMappingURL=namespaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,2BAA2B,CAAC;AAClD,eAAO,MAAM,MAAM,8CAA8C,CAAC;AAClE,eAAO,MAAM,eAAe,+DAA+D,CAAC;AAC5F,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAC9D,eAAO,MAAM,WAAW,qCAAqC,CAAC;AAE9D,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwBzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAiBR;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB"}
@@ -0,0 +1,74 @@
1
+ export const BML_XMLNS = "http://blockml.org/bml";
2
+ export const XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
3
+ export const SCHEMA_LOCATION = "http://blockml.org/bml https://blockml.org/schemas/bml.xsd";
4
+ export const DEFAULT_BASE_TYPE = "org.blockml.bml.core.Block";
5
+ export const ENGLISH_FQN = "org.blockml.bml.language.English";
6
+ /** Conventional prefixes for well-known org.blockml.bml.* packages. */
7
+ export const KNOWN_PACKAGE_PREFIXES = {
8
+ "org.blockml.bml": "blockml",
9
+ "org.blockml.bml.core": "core",
10
+ "org.blockml.bml.type": "type",
11
+ "org.blockml.bml.unit": "unit",
12
+ "org.blockml.bml.language": "lang",
13
+ "org.blockml.bml.definition": "def",
14
+ "org.blockml.bml.annotation": "ann",
15
+ "org.blockml.bml.annotation.BmlAnnotation": "bml",
16
+ "org.blockml.bml.bom": "bom",
17
+ "org.blockml.bml.compiler.parser": "parser",
18
+ "org.blockml.bml.compiler.serializer": "serializer",
19
+ "org.blockml.bml.compiler.validator": "validator",
20
+ "org.blockml.bml.compiler.runtime": "runtime",
21
+ "org.blockml.bml.framework": "framework",
22
+ "org.blockml.bml.search": "search",
23
+ "org.blockml.bml.graph": "graph",
24
+ "org.blockml.bml.transformer": "transformer",
25
+ "org.blockml.bml.cli": "cli",
26
+ "org.blockml.bml.builder": "builder",
27
+ "org.blockml.bml.workspace": "workspace",
28
+ "org.blockml.bml.target.blockdoc": "blockdoc",
29
+ "org.blockml.bml.target.xsd": "xsd",
30
+ "org.blockml.bml.target.fatblock": "fatblock",
31
+ };
32
+ export function packageOfFqn(fqn) {
33
+ const index = fqn.lastIndexOf(".");
34
+ return index === -1 ? fqn : fqn.slice(0, index);
35
+ }
36
+ export function shortNameOfFqn(fqn) {
37
+ const index = fqn.lastIndexOf(".");
38
+ return index === -1 ? fqn : fqn.slice(index + 1);
39
+ }
40
+ export function prefixForPackage(pkg, bindings) {
41
+ for (const [prefix, uri] of Object.entries(bindings)) {
42
+ if (uri === pkg && prefix !== "") {
43
+ return prefix;
44
+ }
45
+ }
46
+ const known = KNOWN_PACKAGE_PREFIXES[pkg];
47
+ const last = pkg.split(".").pop()?.toLowerCase() || "ns";
48
+ const preferred = known ?? last;
49
+ if (!bindings[preferred] || bindings[preferred] === pkg) {
50
+ return preferred;
51
+ }
52
+ let n = 2;
53
+ while (bindings[`${preferred}${n}`] && bindings[`${preferred}${n}`] !== pkg) {
54
+ n += 1;
55
+ }
56
+ return `${preferred}${n}`;
57
+ }
58
+ export function orderedBindings(bindings) {
59
+ const ordered = {};
60
+ if (bindings[""]) {
61
+ ordered[""] = bindings[""];
62
+ }
63
+ if (bindings.xsi) {
64
+ ordered.xsi = bindings.xsi;
65
+ }
66
+ const rest = Object.entries(bindings)
67
+ .filter(([prefix]) => prefix !== "" && prefix !== "xsi")
68
+ .sort((a, b) => a[1].localeCompare(b[1]) || a[0].localeCompare(b[0]));
69
+ for (const [prefix, uri] of rest) {
70
+ ordered[prefix] = uri;
71
+ }
72
+ return ordered;
73
+ }
74
+ //# sourceMappingURL=namespaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { BomDocument, MemberDefinition } from "@blockml/bom";
2
+ import type { AddAggregationOptions, AddPropertyOptions, CreateBlockOptions } from "./types.js";
3
+ export declare class BomBuilder {
4
+ private readonly document;
5
+ private constructor();
6
+ static create(options: CreateBlockOptions): BomBuilder;
7
+ static edit(document: BomDocument): BomBuilder;
8
+ setName(name: string): this;
9
+ setType(fqn: string): this;
10
+ setBaseType(fqn: string): this;
11
+ setIs(text: string): this;
12
+ setDocumentation(text: string): this;
13
+ setFilePath(filePath: string): this;
14
+ ensureNamespaceBinding(prefix: string, namespace: string): this;
15
+ addProperty(options: AddPropertyOptions): this;
16
+ addAggregation(options: AddAggregationOptions): this;
17
+ addCompositionChild(aggregationName: string, typeFqn: string): this;
18
+ setMemberValue(name: string, value: string): this;
19
+ querySelector(selector: string): MemberDefinition | undefined;
20
+ seal(): BomDocument;
21
+ private bindings;
22
+ private ensurePackageBinding;
23
+ private syncCompositionIndex;
24
+ }
25
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,gBAAgB,EAIjB,MAAM,cAAc,CAAC;AAYtB,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAiCpB,qBAAa,UAAU;IACD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAA7C,OAAO;IAQP,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;IA8CtD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU;IAI9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM1B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWpC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/D,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAkB9C,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAgBpD,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA6BnE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASjD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAiB7D,IAAI,IAAI,WAAW;IASnB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,oBAAoB;CAM7B"}