@likec4/core 1.30.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +407 -5
  2. package/dist/builder/index.d.mts +221 -42
  3. package/dist/builder/index.mjs +118 -65
  4. package/dist/compute-view/index.d.mts +23 -7
  5. package/dist/compute-view/index.mjs +11 -6
  6. package/dist/compute-view/relationships-view/index.d.mts +9 -7
  7. package/dist/compute-view/relationships-view/index.mjs +3 -2
  8. package/dist/index.d.mts +10 -14
  9. package/dist/index.mjs +10 -6
  10. package/dist/model/index.d.mts +173 -19
  11. package/dist/model/index.mjs +6 -1
  12. package/dist/shared/core.BaYE_r29.d.mts +258 -0
  13. package/dist/shared/core.Bk7wEZFG.mjs +276 -0
  14. package/dist/shared/core.BrCnZFTn.mjs +32 -0
  15. package/dist/shared/core.BuO4ncfY.d.mts +146 -0
  16. package/dist/shared/{core.CAcZ6_cP.mjs → core.CBpKAlhj.mjs} +1742 -4128
  17. package/dist/shared/core.CCWXGc6G.d.mts +920 -0
  18. package/dist/shared/core.CUYDgv2-.mjs +214 -0
  19. package/dist/shared/{core.Cu-UdkSl.mjs → core.CpXlRyE5.mjs} +7 -494
  20. package/dist/shared/{core.C-YXI-43.mjs → core.Cy9smucx.mjs} +3 -1
  21. package/dist/shared/core.CywrQs86.d.mts +31 -0
  22. package/dist/shared/core.DoK86JEe.mjs +518 -0
  23. package/dist/shared/core.Dpq3P3YJ.d.mts +1265 -0
  24. package/dist/shared/{core.D2830qgg.d.mts → core.Pf5I9o0e.d.mts} +1 -1
  25. package/dist/shared/core.cbA9VZ02.mjs +2681 -0
  26. package/dist/shared/{core.CQXU9DF7.mjs → core.rmvsy0n3.mjs} +23 -32
  27. package/dist/types/aux.d.mts +3 -0
  28. package/dist/types/aux.mjs +1 -0
  29. package/dist/types/index.d.mts +7 -45
  30. package/dist/types/index.mjs +130 -3
  31. package/dist/utils/index.d.mts +221 -53
  32. package/dist/utils/index.mjs +14 -10
  33. package/package.json +19 -10
  34. package/src/builder/Builder.deploymentModel.ts +82 -18
  35. package/src/builder/Builder.element.ts +40 -20
  36. package/src/builder/Builder.model.ts +66 -17
  37. package/src/builder/Builder.ts +168 -76
  38. package/src/builder/Builder.view-common.ts +35 -17
  39. package/src/builder/Builder.view-deployment.ts +25 -25
  40. package/src/builder/Builder.view-element.ts +13 -12
  41. package/src/builder/Builder.views.ts +12 -7
  42. package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +62 -34
  43. package/src/builder/__snapshots__/Builder-style2.compute-model.json5 +319 -0
  44. package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +45 -24
  45. package/src/builder/_types.ts +34 -27
  46. package/src/compute-view/compute-view.ts +31 -34
  47. package/src/compute-view/deployment-view/__test__/TestHelper.ts +27 -14
  48. package/src/compute-view/deployment-view/__test__/fixture.ts +15 -13
  49. package/src/compute-view/deployment-view/_types.ts +10 -10
  50. package/src/compute-view/deployment-view/clean-connections.ts +5 -7
  51. package/src/compute-view/deployment-view/compute.ts +16 -13
  52. package/src/compute-view/deployment-view/memory/memory.ts +5 -6
  53. package/src/compute-view/deployment-view/predicates/deploymentRefs.ts +4 -5
  54. package/src/compute-view/deployment-view/predicates/relation-direct.ts +25 -50
  55. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +5 -7
  56. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +7 -11
  57. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +7 -10
  58. package/src/compute-view/deployment-view/predicates/utils.ts +37 -31
  59. package/src/compute-view/deployment-view/predicates/wildcard.ts +3 -2
  60. package/src/compute-view/deployment-view/stages/stage-final.ts +2 -2
  61. package/src/compute-view/deployment-view/stages/stage-include.ts +1 -1
  62. package/src/compute-view/deployment-view/utils.ts +79 -72
  63. package/src/compute-view/dynamic-view/__test__/fixture.ts +20 -11
  64. package/src/compute-view/dynamic-view/compute.ts +60 -53
  65. package/src/compute-view/element-view/__test__/TestHelper.ts +53 -29
  66. package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +26 -26
  67. package/src/compute-view/element-view/__test__/fixture.ts +134 -83
  68. package/src/compute-view/element-view/_types.ts +14 -19
  69. package/src/compute-view/element-view/clean-connections.ts +12 -8
  70. package/src/compute-view/element-view/compute.ts +61 -51
  71. package/src/compute-view/element-view/memory/NodeGroup.ts +8 -9
  72. package/src/compute-view/element-view/memory/memory.ts +22 -22
  73. package/src/compute-view/element-view/memory/stage-include.ts +5 -3
  74. package/src/compute-view/element-view/predicates/_utils.ts +18 -14
  75. package/src/compute-view/element-view/predicates/element-expand.ts +4 -5
  76. package/src/compute-view/element-view/predicates/element-kind-tag.ts +3 -4
  77. package/src/compute-view/element-view/predicates/element-ref.ts +3 -4
  78. package/src/compute-view/element-view/predicates/relation-direct.ts +16 -12
  79. package/src/compute-view/element-view/predicates/relation-in-out.ts +7 -8
  80. package/src/compute-view/element-view/predicates/relation-in.ts +19 -26
  81. package/src/compute-view/element-view/predicates/relation-out.ts +20 -21
  82. package/src/compute-view/element-view/predicates/wildcard.ts +3 -3
  83. package/src/compute-view/element-view/utils.ts +25 -23
  84. package/src/compute-view/index.ts +1 -1
  85. package/src/compute-view/memory/AbstractStageExclude.ts +3 -4
  86. package/src/compute-view/memory/AbstractStageInclude.ts +1 -1
  87. package/src/compute-view/memory/_types.ts +3 -2
  88. package/src/compute-view/relationships-view/_types.ts +3 -4
  89. package/src/compute-view/relationships-view/compute.ts +8 -11
  90. package/src/compute-view/relationships-view/layout.ts +6 -6
  91. package/src/compute-view/relationships-view/utils.ts +4 -4
  92. package/src/compute-view/utils/ancestorsOfNode.ts +7 -7
  93. package/src/compute-view/utils/applyCustomElementProperties.ts +16 -8
  94. package/src/compute-view/utils/applyCustomRelationProperties.ts +19 -9
  95. package/src/compute-view/utils/applyViewRuleStyles.ts +18 -10
  96. package/src/compute-view/utils/buildComputedNodes.ts +40 -40
  97. package/src/compute-view/utils/buildElementNotations.ts +14 -14
  98. package/src/compute-view/utils/elementExpressionToPredicate.ts +14 -15
  99. package/src/compute-view/utils/link-nodes-with-edges.ts +6 -4
  100. package/src/compute-view/utils/merge-props-from-relationships.ts +52 -20
  101. package/src/compute-view/utils/relationExpressionToPredicates.ts +19 -19
  102. package/src/compute-view/utils/resolve-extended-views.ts +8 -7
  103. package/src/compute-view/utils/resolve-global-rules.ts +31 -26
  104. package/src/compute-view/utils/topological-sort.ts +14 -14
  105. package/src/compute-view/utils/view-hash.ts +2 -2
  106. package/src/compute-view/utils/with-readable-edges.ts +9 -5
  107. package/src/index.ts +0 -32
  108. package/src/model/DeploymentElementModel.ts +182 -137
  109. package/src/model/DeploymentModel.ts +88 -65
  110. package/src/model/ElementModel.ts +92 -72
  111. package/src/model/LikeC4Model.ts +430 -241
  112. package/src/model/RelationModel.ts +69 -26
  113. package/src/model/__test__/fixture.ts +50 -36
  114. package/src/model/connection/Connection.ts +2 -2
  115. package/src/model/connection/deployment/DeploymentConnectionModel.ts +21 -24
  116. package/src/model/connection/deployment/find.ts +1 -1
  117. package/src/model/connection/model/ConnectionModel.ts +21 -20
  118. package/src/model/connection/model/find.ts +7 -7
  119. package/src/model/connection/ops.ts +6 -6
  120. package/src/model/guards.ts +66 -14
  121. package/src/model/index.ts +20 -7
  122. package/src/model/types.ts +41 -97
  123. package/src/model/view/EdgeModel.ts +47 -41
  124. package/src/model/view/LikeC4ViewModel.ts +130 -80
  125. package/src/model/view/NodeModel.ts +102 -96
  126. package/src/theme/element.ts +1 -1
  127. package/src/theme/index.ts +9 -9
  128. package/src/theme/relationships.ts +1 -1
  129. package/src/types/_common.ts +21 -15
  130. package/src/types/aux.ts +285 -0
  131. package/src/types/const.ts +34 -0
  132. package/src/types/expression-model.ts +292 -0
  133. package/src/types/expression.ts +311 -0
  134. package/src/types/fqnRef.ts +88 -0
  135. package/src/types/geometry.ts +131 -0
  136. package/src/types/global.ts +10 -8
  137. package/src/types/index.ts +39 -201
  138. package/src/types/model-data.ts +52 -84
  139. package/src/types/model-deployment.ts +87 -0
  140. package/src/types/model-dump.ts +72 -0
  141. package/src/types/model-logical.ts +111 -0
  142. package/src/types/model-spec.ts +81 -0
  143. package/src/types/operators.ts +51 -52
  144. package/src/types/scalar.ts +114 -0
  145. package/src/types/styles.ts +123 -0
  146. package/src/types/view-changes.ts +4 -5
  147. package/src/types/view-common.ts +157 -0
  148. package/src/types/view-computed.ts +113 -0
  149. package/src/types/view-layouted.ts +82 -0
  150. package/src/types/view-parsed.deployment.ts +40 -0
  151. package/src/types/view-parsed.dynamic.ts +78 -0
  152. package/src/types/view-parsed.element.ts +65 -0
  153. package/src/types/view.ts +122 -542
  154. package/src/utils/compare-natural.ts +43 -1
  155. package/src/utils/getOrCreate.ts +0 -34
  156. package/src/utils/index.ts +7 -12
  157. package/src/utils/iterable/filter.ts +1 -1
  158. package/src/utils/iterable/find.ts +3 -1
  159. package/src/utils/iterable/head.ts +22 -0
  160. package/src/utils/iterable/index.ts +1 -0
  161. package/src/utils/iterable/map.ts +1 -1
  162. package/src/utils/iterable/reduce.ts +1 -1
  163. package/src/utils/iterable/some.ts +1 -1
  164. package/src/utils/memoize-prop.ts +30 -0
  165. package/src/utils/object-hash.ts +1 -1
  166. package/src/utils/relations.ts +14 -11
  167. package/src/utils/string-hash.ts +1 -1
  168. package/dist/shared/core.CZR9J1Qx.d.mts +0 -146
  169. package/dist/shared/core.CiFKryGW.d.mts +0 -745
  170. package/dist/shared/core.DJvmfnEi.d.mts +0 -1153
  171. package/dist/shared/core.DgfwjBtu.mjs +0 -495
  172. package/dist/shared/core.SjLhMA7a.d.mts +0 -62
  173. package/src/builder/__snapshots__/Builder.spec.ts.snap +0 -374
  174. package/src/compute-view/element-view/predicates.ts +0 -520
  175. package/src/compute-view/utils/uniqueTags.ts +0 -21
  176. package/src/types/deployments.ts +0 -170
  177. package/src/types/element.ts +0 -109
  178. package/src/types/expression-v2-model.ts +0 -314
  179. package/src/types/expression-v2.ts +0 -392
  180. package/src/types/overview-graph.ts +0 -43
  181. package/src/types/relation.ts +0 -61
  182. package/src/types/scalars.ts +0 -39
  183. package/src/types/theme.ts +0 -82
  184. package/src/types/view-notation.ts +0 -9
  185. package/src/utils/graphlib.ts +0 -10
  186. /package/src/{errors/index.ts → utils/invariant.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { isString } from 'remeda'
2
- import { type ExpressionV2, type Fqn } from '../types'
2
+ import { type DeploymentFqn, type Expression } from '../types'
3
3
  import type { AnyTypes, Types } from './_types'
4
4
  import type { LikeC4ViewBuilder, ViewPredicate } from './Builder.view-common'
5
5
  import type { ViewsBuilder } from './Builder.views'
@@ -10,7 +10,7 @@ export interface DeploymentViewBuilder<T extends AnyTypes>
10
10
  }
11
11
 
12
12
  export type DeploymentRulesBuilderOp<Types extends AnyTypes> = (
13
- b: DeploymentViewBuilder<Types>
13
+ b: DeploymentViewBuilder<Types>,
14
14
  ) => DeploymentViewBuilder<Types>
15
15
 
16
16
  export interface AddDeploymentViewRules<Id extends string> {
@@ -25,48 +25,48 @@ export interface AddDeploymentViewRules<Id extends string> {
25
25
  export interface AddDeploymentViewHelper {
26
26
  <
27
27
  const Id extends string,
28
- T extends AnyTypes
28
+ T extends AnyTypes,
29
29
  >(
30
- id: Id
30
+ id: Id,
31
31
  ): AddDeploymentViewRules<Id> & {
32
32
  (builder: ViewsBuilder<T>): ViewsBuilder<Types.AddView<T, Id>>
33
33
  }
34
34
 
35
35
  <
36
36
  const Id extends string,
37
- T extends AnyTypes
37
+ T extends AnyTypes,
38
38
  >(
39
39
  id: Id,
40
- bulder: (b: DeploymentViewBuilder<T>) => DeploymentViewBuilder<T>
40
+ bulder: (b: DeploymentViewBuilder<T>) => DeploymentViewBuilder<T>,
41
41
  ): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>
42
42
 
43
43
  <
44
44
  const Id extends string,
45
- T extends AnyTypes
45
+ T extends AnyTypes,
46
46
  >(
47
47
  id: Id,
48
- propsOrTitle: T['NewViewProps'] | string
48
+ propsOrTitle: T['NewViewProps'] | string,
49
49
  ): AddDeploymentViewRules<Id> & {
50
50
  (builder: ViewsBuilder<T>): ViewsBuilder<Types.AddView<T, Id>>
51
51
  }
52
52
 
53
53
  <
54
54
  const Id extends string,
55
- T extends AnyTypes
55
+ T extends AnyTypes,
56
56
  >(
57
57
  id: Id,
58
58
  propsOrTitle: T['NewViewProps'] | string,
59
- bulder: (b: DeploymentViewBuilder<T>) => DeploymentViewBuilder<T>
59
+ bulder: (b: DeploymentViewBuilder<T>) => DeploymentViewBuilder<T>,
60
60
  ): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>
61
61
  }
62
62
 
63
63
  export function $deploymentExpr<T extends AnyTypes>(
64
- expr: ViewPredicate.DeploymentExpression<T> | ExpressionV2
64
+ expr: ViewPredicate.DeploymentExpression<T> | Expression,
65
65
  ): Types.ToExpression<T> {
66
66
  if (!isString(expr)) {
67
67
  return expr as any
68
68
  }
69
- const asTypedDeploymentExpression = (expr: ExpressionV2): Types.ToExpression<T> => {
69
+ const asTypedDeploymentExpression = (expr: Expression): Types.ToExpression<T> => {
70
70
  return expr as any
71
71
  }
72
72
 
@@ -76,16 +76,16 @@ export function $deploymentExpr<T extends AnyTypes>(
76
76
  if (expr.startsWith('->')) {
77
77
  if (expr.endsWith('->')) {
78
78
  return asTypedDeploymentExpression({
79
- inout: $deploymentExpr(expr.replace(/->/g, '').trim()) as any
79
+ inout: $deploymentExpr(expr.replace(/->/g, '').trim()) as any,
80
80
  })
81
81
  }
82
82
  return asTypedDeploymentExpression({
83
- incoming: $deploymentExpr(expr.replace('-> ', '')) as any
83
+ incoming: $deploymentExpr(expr.replace('-> ', '')) as any,
84
84
  })
85
85
  }
86
86
  if (expr.endsWith(' ->')) {
87
87
  return asTypedDeploymentExpression({
88
- outgoing: $deploymentExpr(expr.replace(' ->', '')) as any
88
+ outgoing: $deploymentExpr(expr.replace(' ->', '')) as any,
89
89
  })
90
90
  }
91
91
  if (expr.includes(' <-> ')) {
@@ -93,43 +93,43 @@ export function $deploymentExpr<T extends AnyTypes>(
93
93
  return asTypedDeploymentExpression({
94
94
  source: $deploymentExpr(source) as any,
95
95
  target: $deploymentExpr(target) as any,
96
- isBidirectional: true
96
+ isBidirectional: true,
97
97
  })
98
98
  }
99
99
  if (expr.includes(' -> ')) {
100
100
  const [source, target] = expr.split(' -> ')
101
101
  return asTypedDeploymentExpression({
102
102
  source: $deploymentExpr(source) as any,
103
- target: $deploymentExpr(target) as any
103
+ target: $deploymentExpr(target) as any,
104
104
  })
105
105
  }
106
106
  if (expr.endsWith('._')) {
107
107
  return asTypedDeploymentExpression({
108
108
  ref: {
109
- deployment: expr.replace('._', '') as Fqn
109
+ deployment: expr.replace('._', '') as DeploymentFqn,
110
110
  },
111
- selector: 'expanded'
111
+ selector: 'expanded',
112
112
  })
113
113
  }
114
114
  if (expr.endsWith('.**')) {
115
115
  return asTypedDeploymentExpression({
116
116
  ref: {
117
- deployment: expr.replace('.**', '') as Fqn
117
+ deployment: expr.replace('.**', '') as DeploymentFqn,
118
118
  },
119
- selector: 'descendants'
119
+ selector: 'descendants',
120
120
  })
121
121
  }
122
122
  if (expr.endsWith('.*')) {
123
123
  return asTypedDeploymentExpression({
124
124
  ref: {
125
- deployment: expr.replace('.*', '') as Fqn
125
+ deployment: expr.replace('.*', '') as DeploymentFqn,
126
126
  },
127
- selector: 'children'
127
+ selector: 'children',
128
128
  })
129
129
  }
130
130
  return asTypedDeploymentExpression({
131
131
  ref: {
132
- deployment: expr as any as Fqn
133
- }
132
+ deployment: expr as DeploymentFqn,
133
+ },
134
134
  })
135
135
  }
@@ -1,12 +1,13 @@
1
1
  import { isString } from 'remeda'
2
- import type { IsStringLiteral } from 'type-fest/source/is-literal'
3
- import { type ExpressionV2 } from '../types/expression-v2'
4
- import { type Fqn } from '../types/scalars'
2
+ import type { IsLiteral } from 'type-fest'
3
+ import { type Expression, type Fqn } from '../types'
5
4
  import type { AnyTypes, Invalid, Types } from './_types'
6
5
  import type { LikeC4ViewBuilder, ViewPredicate } from './Builder.view-common'
7
6
  import type { ViewsBuilder } from './Builder.views'
8
7
 
9
- export interface ElementViewBuilder<T extends AnyTypes> extends LikeC4ViewBuilder<T, T['Fqn'], Types.ToExpression<T>> {
8
+ export interface ElementViewBuilder<T extends AnyTypes>
9
+ extends LikeC4ViewBuilder<T, T['Fqn'], Expression<Types.ToAux<T>>>
10
+ {
10
11
  }
11
12
 
12
13
  export type ElementViewRulesBuilder<T extends AnyTypes> = (b: ElementViewBuilder<T>) => ElementViewBuilder<T>
@@ -59,8 +60,8 @@ export interface AddViewHelper {
59
60
  }
60
61
  }
61
62
 
62
- type ValidFqn<T extends AnyTypes> = IsStringLiteral<T['Fqn']> extends true ? T['Fqn']
63
- : Invalid<'Fqn must be from known'>
63
+ type ValidFqn<T extends AnyTypes> = IsLiteral<T['Fqn']> extends true ? T['Fqn']
64
+ : Invalid<'Fqn must be a literal'>
64
65
 
65
66
  export interface AddViewOfHelper {
66
67
  <
@@ -126,15 +127,15 @@ export interface TypedAddViewOfHelper<A extends AnyTypes> {
126
127
  }
127
128
  }
128
129
  // To hook types
129
- const asTypedExpr = (expr: ExpressionV2): ExpressionV2 => {
130
- return expr as ExpressionV2
130
+ const asTypedExpr = <T extends AnyTypes>(expr: Expression): Expression<Types.ToAux<T>> => {
131
+ return expr as Expression<Types.ToAux<T>>
131
132
  }
132
133
 
133
- export function $expr<Types extends AnyTypes>(
134
- expr: ViewPredicate.Expression<Types> | ExpressionV2,
135
- ): ExpressionV2 {
134
+ export function $expr<T extends AnyTypes>(
135
+ expr: ViewPredicate.Expression<T> | Expression,
136
+ ): Expression<Types.ToAux<T>> {
136
137
  if (!isString(expr)) {
137
- return expr as ExpressionV2
138
+ return expr as Expression<Types.ToAux<T>>
138
139
  }
139
140
  if (expr === '*') {
140
141
  return asTypedExpr({ wildcard: true })
@@ -1,15 +1,20 @@
1
1
  import type { Simplify, Writable } from 'type-fest'
2
- import type { DeploymentView, ElementView, LikeC4View } from '../types'
2
+ import {
3
+ type LikeC4View,
4
+ type ParsedDeploymentView as DeploymentView,
5
+ type ParsedElementView as ElementView,
6
+ _type,
7
+ } from '../types'
3
8
  import type { AnyTypes } from './_types'
4
9
  import type { Builder } from './Builder'
5
10
  import type { $autoLayout, $exclude, $include, $rules, $style } from './Builder.view-common'
6
- import { $deploymentExpr, type AddDeploymentViewHelper, type DeploymentViewBuilder } from './Builder.view-deployment'
11
+ import { type AddDeploymentViewHelper, type DeploymentViewBuilder, $deploymentExpr } from './Builder.view-deployment'
7
12
  import {
8
- $expr,
9
13
  type AddViewHelper,
10
14
  type AddViewOfHelper,
11
15
  type ElementViewBuilder,
12
16
  type TypedAddViewOfHelper,
17
+ $expr,
13
18
  } from './Builder.view-element'
14
19
 
15
20
  export interface ViewsBuilder<T extends AnyTypes> extends Builder<T> {
@@ -352,13 +357,13 @@ export type ViewsBuilderFunction<A extends AnyTypes, B extends AnyTypes> = (
352
357
  | ((builder: ViewsBuilder<A>) => ViewsBuilder<B>)
353
358
  | ((builder: Builder<A>) => Builder<B>)
354
359
 
355
- export function mkViewBuilder(view: Writable<DeploymentView>): DeploymentViewBuilder<AnyTypes>
356
- export function mkViewBuilder(view: Writable<ElementView>): ElementViewBuilder<AnyTypes>
360
+ export function mkViewBuilder(view: Writable<DeploymentView<any>>): DeploymentViewBuilder<AnyTypes>
361
+ export function mkViewBuilder(view: Writable<ElementView<any>>): ElementViewBuilder<AnyTypes>
357
362
  export function mkViewBuilder(
358
- view: Writable<ElementView | DeploymentView>,
363
+ view: Writable<ElementView<any> | DeploymentView<any>>,
359
364
  ): DeploymentViewBuilder<AnyTypes> | ElementViewBuilder<AnyTypes> {
360
365
  const viewBuilder = {
361
- $expr: view.__ === 'deployment' ? $deploymentExpr : $expr,
366
+ $expr: view[_type] === 'deployment' ? $deploymentExpr : $expr,
362
367
  autoLayout(autoLayout: unknown) {
363
368
  view.rules.push({
364
369
  direction: autoLayout,
@@ -2,6 +2,7 @@
2
2
 
3
3
  exports[`Builder (style1) > should build nested elements and relTo 1`] = `
4
4
  {
5
+ "_stage": "parsed",
5
6
  "deployments": {
6
7
  "elements": {},
7
8
  "relations": {},
@@ -18,7 +19,7 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
18
19
  "opacity": 10,
19
20
  "size": "lg",
20
21
  },
21
- "tags": null,
22
+ "tags": [],
22
23
  "technology": null,
23
24
  "title": "s1",
24
25
  },
@@ -32,7 +33,7 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
32
33
  "style": {
33
34
  "textSize": "sm",
34
35
  },
35
- "tags": null,
36
+ "tags": [],
36
37
  "technology": null,
37
38
  "title": "c1",
38
39
  },
@@ -47,7 +48,7 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
47
48
  "opacity": 10,
48
49
  "size": "lg",
49
50
  },
50
- "tags": null,
51
+ "tags": [],
51
52
  "technology": null,
52
53
  "title": "s2",
53
54
  },
@@ -61,7 +62,7 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
61
62
  "style": {
62
63
  "textSize": "sm",
63
64
  },
64
- "tags": null,
65
+ "tags": [],
65
66
  "technology": null,
66
67
  "title": "Component s2.1",
67
68
  },
@@ -75,7 +76,7 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
75
76
  "style": {
76
77
  "textSize": "sm",
77
78
  },
78
- "tags": null,
79
+ "tags": [],
79
80
  "technology": null,
80
81
  "title": "Component s2.1.2",
81
82
  },
@@ -89,7 +90,7 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
89
90
  "style": {
90
91
  "textSize": "sm",
91
92
  },
92
- "tags": null,
93
+ "tags": [],
93
94
  "technology": null,
94
95
  "title": "c3",
95
96
  },
@@ -100,27 +101,41 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
100
101
  "styles": {},
101
102
  },
102
103
  "imports": {},
104
+ "projectId": "from-builder",
103
105
  "relations": {
104
106
  "rel1": {
105
107
  "id": "rel1",
106
- "source": "s2.c1.c2.c3",
107
- "target": "s1.c1",
108
+ "source": {
109
+ "model": "s2.c1.c2.c3",
110
+ },
111
+ "target": {
112
+ "model": "s1.c1",
113
+ },
108
114
  "title": "relation from s2.1.2.3 to s1.1",
109
115
  },
110
116
  "rel2": {
111
117
  "id": "rel2",
112
- "source": "s2.c1",
113
- "target": "s1.c1",
118
+ "source": {
119
+ "model": "s2.c1",
120
+ },
121
+ "target": {
122
+ "model": "s1.c1",
123
+ },
114
124
  "title": "relation from s2.1 to s1.1",
115
125
  },
116
126
  "rel3": {
117
127
  "id": "rel3",
118
- "source": "s1.c1",
119
- "target": "s2.c1.c2",
128
+ "source": {
129
+ "model": "s1.c1",
130
+ },
131
+ "target": {
132
+ "model": "s2.c1.c2",
133
+ },
120
134
  "title": "relation from s1.1 to s2.1.2",
121
135
  },
122
136
  },
123
137
  "specification": {
138
+ "customColors": {},
124
139
  "deployments": {},
125
140
  "elements": {
126
141
  "component": {
@@ -138,7 +153,14 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
138
153
  },
139
154
  },
140
155
  "relationships": {},
141
- "tags": [],
156
+ "tags": {
157
+ "tag1": {
158
+ "color": "#FFF",
159
+ },
160
+ "tag2": {
161
+ "color": "primary",
162
+ },
163
+ },
142
164
  },
143
165
  "views": {},
144
166
  }
@@ -146,6 +168,7 @@ exports[`Builder (style1) > should build nested elements and relTo 1`] = `
146
168
 
147
169
  exports[`Builder (style1) > should build view 1`] = `
148
170
  {
171
+ "_stage": "parsed",
149
172
  "deployments": {
150
173
  "elements": {},
151
174
  "relations": {},
@@ -159,7 +182,7 @@ exports[`Builder (style1) > should build view 1`] = `
159
182
  "links": null,
160
183
  "shape": "rectangle",
161
184
  "style": {},
162
- "tags": null,
185
+ "tags": [],
163
186
  "technology": null,
164
187
  "title": "c1",
165
188
  },
@@ -171,7 +194,7 @@ exports[`Builder (style1) > should build view 1`] = `
171
194
  "links": null,
172
195
  "shape": "rectangle",
173
196
  "style": {},
174
- "tags": null,
197
+ "tags": [],
175
198
  "technology": null,
176
199
  "title": "c2",
177
200
  },
@@ -183,7 +206,7 @@ exports[`Builder (style1) > should build view 1`] = `
183
206
  "links": null,
184
207
  "shape": "rectangle",
185
208
  "style": {},
186
- "tags": null,
209
+ "tags": [],
187
210
  "technology": null,
188
211
  "title": "c3",
189
212
  },
@@ -194,19 +217,21 @@ exports[`Builder (style1) > should build view 1`] = `
194
217
  "styles": {},
195
218
  },
196
219
  "imports": {},
220
+ "projectId": "from-builder",
197
221
  "relations": {},
198
222
  "specification": {
223
+ "customColors": {},
199
224
  "deployments": {},
200
225
  "elements": {
201
226
  "component": {},
202
227
  },
203
228
  "relationships": {},
204
- "tags": [],
229
+ "tags": {},
205
230
  },
206
231
  "views": {
207
232
  "1": {
208
- "__": "element",
209
- "customColorDefinitions": {},
233
+ "_stage": "parsed",
234
+ "_type": "element",
210
235
  "description": null,
211
236
  "id": "1",
212
237
  "links": null,
@@ -219,12 +244,12 @@ exports[`Builder (style1) > should build view 1`] = `
219
244
  ],
220
245
  },
221
246
  ],
222
- "tags": null,
247
+ "tags": [],
223
248
  "title": "View 1",
224
249
  },
225
250
  "2": {
226
- "__": "element",
227
- "customColorDefinitions": {},
251
+ "_stage": "parsed",
252
+ "_type": "element",
228
253
  "description": null,
229
254
  "id": "2",
230
255
  "links": null,
@@ -247,12 +272,12 @@ exports[`Builder (style1) > should build view 1`] = `
247
272
  ],
248
273
  },
249
274
  ],
250
- "tags": null,
275
+ "tags": [],
251
276
  "title": "view 2",
252
277
  },
253
278
  "3": {
254
- "__": "element",
255
- "customColorDefinitions": {},
279
+ "_stage": "parsed",
280
+ "_type": "element",
256
281
  "description": null,
257
282
  "id": "3",
258
283
  "links": null,
@@ -268,7 +293,7 @@ exports[`Builder (style1) > should build view 1`] = `
268
293
  ],
269
294
  },
270
295
  ],
271
- "tags": null,
296
+ "tags": [],
272
297
  "title": "",
273
298
  },
274
299
  },
@@ -277,6 +302,7 @@ exports[`Builder (style1) > should build view 1`] = `
277
302
 
278
303
  exports[`Builder (style1) > should build viewOf 1`] = `
279
304
  {
305
+ "_stage": "parsed",
280
306
  "deployments": {
281
307
  "elements": {},
282
308
  "relations": {},
@@ -290,7 +316,7 @@ exports[`Builder (style1) > should build viewOf 1`] = `
290
316
  "links": null,
291
317
  "shape": "rectangle",
292
318
  "style": {},
293
- "tags": null,
319
+ "tags": [],
294
320
  "technology": null,
295
321
  "title": "c1",
296
322
  },
@@ -302,7 +328,7 @@ exports[`Builder (style1) > should build viewOf 1`] = `
302
328
  "links": null,
303
329
  "shape": "rectangle",
304
330
  "style": {},
305
- "tags": null,
331
+ "tags": [],
306
332
  "technology": null,
307
333
  "title": "c2",
308
334
  },
@@ -314,7 +340,7 @@ exports[`Builder (style1) > should build viewOf 1`] = `
314
340
  "links": null,
315
341
  "shape": "rectangle",
316
342
  "style": {},
317
- "tags": null,
343
+ "tags": [],
318
344
  "technology": null,
319
345
  "title": "c3",
320
346
  },
@@ -326,7 +352,7 @@ exports[`Builder (style1) > should build viewOf 1`] = `
326
352
  "links": null,
327
353
  "shape": "rectangle",
328
354
  "style": {},
329
- "tags": null,
355
+ "tags": [],
330
356
  "technology": null,
331
357
  "title": "c4",
332
358
  },
@@ -337,19 +363,21 @@ exports[`Builder (style1) > should build viewOf 1`] = `
337
363
  "styles": {},
338
364
  },
339
365
  "imports": {},
366
+ "projectId": "from-builder",
340
367
  "relations": {},
341
368
  "specification": {
369
+ "customColors": {},
342
370
  "deployments": {},
343
371
  "elements": {
344
372
  "component": {},
345
373
  },
346
374
  "relationships": {},
347
- "tags": [],
375
+ "tags": {},
348
376
  },
349
377
  "views": {
350
378
  "1": {
351
- "__": "element",
352
- "customColorDefinitions": {},
379
+ "_stage": "parsed",
380
+ "_type": "element",
353
381
  "description": null,
354
382
  "id": "1",
355
383
  "links": null,
@@ -392,7 +420,7 @@ exports[`Builder (style1) > should build viewOf 1`] = `
392
420
  ],
393
421
  },
394
422
  ],
395
- "tags": null,
423
+ "tags": [],
396
424
  "title": "View 1",
397
425
  "viewOf": "c1",
398
426
  },