@likec4/core 1.40.0 → 1.42.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 (257) hide show
  1. package/builder/package.json +4 -0
  2. package/compute-view/package.json +4 -0
  3. package/compute-view/relationships/package.json +4 -0
  4. package/dist/builder/index.d.mts +83 -20
  5. package/dist/builder/index.mjs +210 -126
  6. package/dist/compute-view/index.d.mts +8 -7
  7. package/dist/compute-view/index.mjs +14 -11
  8. package/dist/compute-view/relationships-view/index.d.mts +9 -8
  9. package/dist/compute-view/relationships-view/index.mjs +6 -6
  10. package/dist/index.d.mts +7 -7
  11. package/dist/index.mjs +12 -12
  12. package/dist/model/connection/deployment/index.d.mts +11 -10
  13. package/dist/model/connection/deployment/index.mjs +2 -2
  14. package/dist/model/connection/index.d.mts +12 -11
  15. package/dist/model/connection/index.mjs +3 -3
  16. package/dist/model/connection/model/index.d.mts +11 -10
  17. package/dist/model/connection/model/index.mjs +2 -2
  18. package/dist/model/index.d.mts +14 -14
  19. package/dist/model/index.mjs +4 -5
  20. package/dist/shared/{core.DHQ32OHa.mjs → core.01VTr9qu.mjs} +10 -29
  21. package/dist/shared/core.1vX5a9AY.mjs +86 -0
  22. package/dist/shared/{core.BVNaR17u.mjs → core.B7KhhkRY.mjs} +1 -1
  23. package/dist/shared/core.B85MJLTf.mjs +5 -0
  24. package/dist/shared/{core.BIAlzwKc.mjs → core.BIqHjQiH.mjs} +85 -45
  25. package/dist/shared/core.BKlholso.mjs +3 -0
  26. package/dist/shared/core.BR4zXDH-.mjs +13 -0
  27. package/dist/shared/{core.yHe79zEl.mjs → core.BYNkXQ8A.mjs} +21 -12
  28. package/dist/shared/core.BazD6cot.mjs +14 -0
  29. package/dist/shared/{core.BuoXfSMj.mjs → core.BbE4y-yl.mjs} +1 -1
  30. package/dist/shared/core.BoYfZOBm.mjs +3 -0
  31. package/dist/shared/core.BsSXS-_R.mjs +7 -0
  32. package/dist/shared/{core.T-eLZTW_.mjs → core.BzTakU3I.mjs} +15 -7
  33. package/dist/shared/{core.4u1dVmfX.mjs → core.C2TiyjI6.mjs} +2 -2
  34. package/dist/shared/{core.DLpidoWc.mjs → core.C3JowhaZ.mjs} +3 -3
  35. package/dist/shared/{core.CNGyqkJh.mjs → core.C4x8aaWa.mjs} +3 -1
  36. package/dist/shared/{core.BB6zA-UU.mjs → core.C8YY6Uub.mjs} +38 -9
  37. package/dist/shared/{core.FPITT8Vx.mjs → core.C8sl5Y8Z.mjs} +144 -61
  38. package/dist/shared/{core.DuR3R-xJ.mjs → core.CNgZvKb8.mjs} +3 -5176
  39. package/dist/shared/{core.BbThmf6M.d.mts → core.CQngdcuj.d.mts} +85 -4
  40. package/dist/shared/{core.Be1n9a0i.mjs → core.C_Ni6yHl.mjs} +5 -4
  41. package/dist/shared/core.CbT8JVYL.mjs +5 -0
  42. package/dist/shared/core.CqAJJpK_.mjs +3 -0
  43. package/dist/shared/{core.CySf-2gP.d.mts → core.D0PjZzIS.d.mts} +52 -15
  44. package/dist/shared/{core.DrvfVXkh.d.mts → core.D5fzJWbF.d.mts} +11 -2
  45. package/dist/shared/{core.DrVOJuxX.d.mts → core.DACpKp35.d.mts} +5 -5
  46. package/dist/shared/core.DFi2dOTl.mjs +39548 -0
  47. package/dist/shared/{core.D704WZES.d.mts → core.DIol3syK.d.mts} +2 -2
  48. package/dist/shared/{core.DlG1xWt2.mjs → core.DMMOWQqc.mjs} +3 -2
  49. package/dist/shared/core.DNbUPnve.mjs +3990 -0
  50. package/dist/shared/{core.CCD1ID81.mjs → core.DRJma0Ol.mjs} +4 -3
  51. package/dist/shared/{core.DgttqsJc.mjs → core.DRhg-gVU.mjs} +9 -9
  52. package/dist/shared/core.DSO_rTC2.mjs +5322 -0
  53. package/dist/shared/{core.vWJTxpLV.d.mts → core.D_vkffV4.d.mts} +4 -2
  54. package/dist/shared/core.DdMJk7nx.d.mts +476 -0
  55. package/dist/shared/{core.D_fI5Lf6.d.mts → core.Dgs6-nuz.d.mts} +24 -4
  56. package/dist/shared/{core.Be4Jy9Qx.mjs → core.FZ305VYd.mjs} +2 -2
  57. package/dist/shared/core.OHD4KXm9.mjs +5 -0
  58. package/dist/shared/{core.GTgsmXS_.mjs → core.QJD_fcrc.mjs} +2 -2
  59. package/dist/shared/core.RfnaEmgA.mjs +7 -0
  60. package/dist/shared/core.fHR_8Tnq.d.mts +450 -0
  61. package/dist/shared/{core.D0EgVMQK.mjs → core.lRvxPoao.mjs} +14 -12
  62. package/dist/shared/{core.CaT0SUUK.mjs → core.rCeaAqgW.mjs} +1 -84
  63. package/dist/shared/{core.kxeJe0OY.d.mts → core.s9uwOt60.d.mts} +4 -4
  64. package/dist/shared/core.yna0OdV5.d.mts +98 -0
  65. package/dist/styles/index.d.mts +106 -0
  66. package/dist/styles/index.mjs +1 -0
  67. package/dist/types/_aux.d.mts +2 -2
  68. package/dist/types/_aux.mjs +1 -5
  69. package/dist/types/expression-model.d.mts +3 -4
  70. package/dist/types/expression.d.mts +3 -4
  71. package/dist/types/fqnRef.d.mts +2 -2
  72. package/dist/types/fqnRef.mjs +3 -3
  73. package/dist/types/index.d.mts +8 -8
  74. package/dist/types/index.mjs +151 -6
  75. package/dist/types/scalar.mjs +3 -2
  76. package/dist/utils/graphology/index.d.mts +1864 -0
  77. package/dist/utils/graphology/index.mjs +1 -0
  78. package/dist/utils/index.d.mts +11 -6
  79. package/dist/utils/index.mjs +21 -37
  80. package/dist/utils/iterable/index.d.mts +1 -1
  81. package/dist/utils/iterable/index.mjs +45 -7
  82. package/model/package.json +4 -0
  83. package/package.json +42 -24
  84. package/styles/package.json +4 -0
  85. package/types/package.json +4 -0
  86. package/utils/graphology/package.json +4 -0
  87. package/utils/package.json +4 -0
  88. package/dist/shared/core.6_Vp2iiN.mjs +0 -172
  89. package/dist/shared/core.Bpou6c2f.d.mts +0 -850
  90. package/dist/shared/core.CUw_2J9j.mjs +0 -47
  91. package/dist/shared/core.CzdwsPmY.d.mts +0 -69
  92. package/dist/shared/core.DoM6aM9N.mjs +0 -7
  93. package/dist/shared/core.ILwny7BV.mjs +0 -38
  94. package/dist/theme/index.d.mts +0 -11
  95. package/dist/theme/index.mjs +0 -232
  96. package/src/builder/Builder.deployment.ts +0 -224
  97. package/src/builder/Builder.deploymentModel.ts +0 -449
  98. package/src/builder/Builder.element.ts +0 -241
  99. package/src/builder/Builder.model.ts +0 -494
  100. package/src/builder/Builder.ts +0 -870
  101. package/src/builder/Builder.view-common.ts +0 -273
  102. package/src/builder/Builder.view-deployment.ts +0 -135
  103. package/src/builder/Builder.view-element.ts +0 -202
  104. package/src/builder/Builder.views.ts +0 -399
  105. package/src/builder/Builder.with.ts +0 -156
  106. package/src/builder/_types.ts +0 -320
  107. package/src/builder/index.ts +0 -11
  108. package/src/compute-view/compute-view.ts +0 -80
  109. package/src/compute-view/deployment-view/_types.ts +0 -38
  110. package/src/compute-view/deployment-view/clean-connections.ts +0 -236
  111. package/src/compute-view/deployment-view/compute.ts +0 -94
  112. package/src/compute-view/deployment-view/memory/index.ts +0 -9
  113. package/src/compute-view/deployment-view/memory/memory.ts +0 -96
  114. package/src/compute-view/deployment-view/predicates/deploymentRefs-where.ts +0 -18
  115. package/src/compute-view/deployment-view/predicates/deploymentRefs.ts +0 -154
  116. package/src/compute-view/deployment-view/predicates/index.ts +0 -8
  117. package/src/compute-view/deployment-view/predicates/relation-direct.ts +0 -243
  118. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +0 -70
  119. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +0 -101
  120. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +0 -95
  121. package/src/compute-view/deployment-view/predicates/relation-where.ts +0 -18
  122. package/src/compute-view/deployment-view/predicates/utils.ts +0 -282
  123. package/src/compute-view/deployment-view/predicates/wildcard.ts +0 -41
  124. package/src/compute-view/deployment-view/stages/stage-exclude.ts +0 -5
  125. package/src/compute-view/deployment-view/stages/stage-final.ts +0 -245
  126. package/src/compute-view/deployment-view/stages/stage-include.ts +0 -95
  127. package/src/compute-view/deployment-view/utils.ts +0 -286
  128. package/src/compute-view/dynamic-view/compute.ts +0 -312
  129. package/src/compute-view/element-view/_types.ts +0 -47
  130. package/src/compute-view/element-view/clean-connections.ts +0 -117
  131. package/src/compute-view/element-view/compute.ts +0 -324
  132. package/src/compute-view/element-view/memory/NodeGroup.ts +0 -31
  133. package/src/compute-view/element-view/memory/index.ts +0 -10
  134. package/src/compute-view/element-view/memory/memory.ts +0 -178
  135. package/src/compute-view/element-view/memory/stage-exclude.ts +0 -59
  136. package/src/compute-view/element-view/memory/stage-final.ts +0 -129
  137. package/src/compute-view/element-view/memory/stage-include.ts +0 -130
  138. package/src/compute-view/element-view/predicates/_utils.ts +0 -91
  139. package/src/compute-view/element-view/predicates/element-expand.ts +0 -29
  140. package/src/compute-view/element-view/predicates/element-kind-tag.ts +0 -27
  141. package/src/compute-view/element-view/predicates/element-ref.ts +0 -24
  142. package/src/compute-view/element-view/predicates/relation-direct.ts +0 -321
  143. package/src/compute-view/element-view/predicates/relation-in-out.ts +0 -64
  144. package/src/compute-view/element-view/predicates/relation-in.ts +0 -115
  145. package/src/compute-view/element-view/predicates/relation-out.ts +0 -119
  146. package/src/compute-view/element-view/predicates/wildcard.ts +0 -88
  147. package/src/compute-view/element-view/utils.ts +0 -65
  148. package/src/compute-view/index.ts +0 -4
  149. package/src/compute-view/memory/AbstractMemory.ts +0 -45
  150. package/src/compute-view/memory/AbstractStageExclude.ts +0 -215
  151. package/src/compute-view/memory/AbstractStageInclude.ts +0 -200
  152. package/src/compute-view/memory/_types.ts +0 -148
  153. package/src/compute-view/memory/index.ts +0 -5
  154. package/src/compute-view/memory/ops.ts +0 -43
  155. package/src/compute-view/relationships-view/_types.ts +0 -16
  156. package/src/compute-view/relationships-view/compute.ts +0 -159
  157. package/src/compute-view/relationships-view/index.ts +0 -3
  158. package/src/compute-view/relationships-view/layout.ts +0 -357
  159. package/src/compute-view/relationships-view/utils.ts +0 -73
  160. package/src/compute-view/utils/ancestorsOfNode.ts +0 -19
  161. package/src/compute-view/utils/applyCustomElementProperties.ts +0 -107
  162. package/src/compute-view/utils/applyCustomRelationProperties.ts +0 -58
  163. package/src/compute-view/utils/applyViewRuleStyles.ts +0 -73
  164. package/src/compute-view/utils/buildComputedNodes.ts +0 -153
  165. package/src/compute-view/utils/buildElementNotations.ts +0 -63
  166. package/src/compute-view/utils/elementExpressionToPredicate.ts +0 -50
  167. package/src/compute-view/utils/link-nodes-with-edges.ts +0 -56
  168. package/src/compute-view/utils/merge-props-from-relationships.ts +0 -161
  169. package/src/compute-view/utils/relationExpressionToPredicates.ts +0 -55
  170. package/src/compute-view/utils/resolve-extended-views.ts +0 -85
  171. package/src/compute-view/utils/resolve-global-rules.ts +0 -88
  172. package/src/compute-view/utils/topological-sort.ts +0 -256
  173. package/src/compute-view/utils/view-hash.ts +0 -45
  174. package/src/compute-view/utils/with-readable-edges.ts +0 -40
  175. package/src/index.ts +0 -32
  176. package/src/model/DeploymentElementModel.ts +0 -682
  177. package/src/model/DeploymentModel.ts +0 -393
  178. package/src/model/ElementModel.ts +0 -293
  179. package/src/model/LikeC4Model.ts +0 -882
  180. package/src/model/RelationModel.ts +0 -152
  181. package/src/model/connection/Connection.ts +0 -72
  182. package/src/model/connection/deployment/DeploymentConnectionModel.ts +0 -185
  183. package/src/model/connection/deployment/find.ts +0 -120
  184. package/src/model/connection/deployment/index.ts +0 -8
  185. package/src/model/connection/index.ts +0 -22
  186. package/src/model/connection/model/ConnectionModel.ts +0 -158
  187. package/src/model/connection/model/find.ts +0 -117
  188. package/src/model/connection/model/index.ts +0 -8
  189. package/src/model/connection/ops.ts +0 -276
  190. package/src/model/guards.ts +0 -77
  191. package/src/model/index.ts +0 -72
  192. package/src/model/types.ts +0 -67
  193. package/src/model/utils.ts +0 -66
  194. package/src/model/view/EdgeModel.ts +0 -120
  195. package/src/model/view/LikeC4ViewModel.ts +0 -361
  196. package/src/model/view/LikeC4ViewsFolder.ts +0 -151
  197. package/src/model/view/NodeModel.ts +0 -247
  198. package/src/theme/element.ts +0 -61
  199. package/src/theme/index.ts +0 -127
  200. package/src/theme/relationships.ts +0 -54
  201. package/src/types/RichText.ts +0 -206
  202. package/src/types/_aux.ts +0 -291
  203. package/src/types/_common.ts +0 -80
  204. package/src/types/const.ts +0 -34
  205. package/src/types/expression-model.ts +0 -294
  206. package/src/types/expression.ts +0 -313
  207. package/src/types/fqnRef.ts +0 -91
  208. package/src/types/geometry.ts +0 -159
  209. package/src/types/global.ts +0 -21
  210. package/src/types/index.ts +0 -42
  211. package/src/types/model-data.ts +0 -77
  212. package/src/types/model-deployment.ts +0 -88
  213. package/src/types/model-dump.ts +0 -79
  214. package/src/types/model-logical.ts +0 -135
  215. package/src/types/model-spec.ts +0 -85
  216. package/src/types/operators.ts +0 -156
  217. package/src/types/project.ts +0 -14
  218. package/src/types/scalar.ts +0 -162
  219. package/src/types/styles.ts +0 -122
  220. package/src/types/view-changes.ts +0 -32
  221. package/src/types/view-common.ts +0 -157
  222. package/src/types/view-computed.ts +0 -118
  223. package/src/types/view-layouted.ts +0 -98
  224. package/src/types/view-parsed.deployment.ts +0 -39
  225. package/src/types/view-parsed.dynamic.ts +0 -89
  226. package/src/types/view-parsed.element.ts +0 -65
  227. package/src/types/view.ts +0 -113
  228. package/src/utils/common-head.ts +0 -22
  229. package/src/utils/compare-natural.ts +0 -60
  230. package/src/utils/const.ts +0 -1
  231. package/src/utils/fqn.ts +0 -302
  232. package/src/utils/getOrCreate.ts +0 -8
  233. package/src/utils/guards.ts +0 -9
  234. package/src/utils/index.ts +0 -68
  235. package/src/utils/invariant.ts +0 -29
  236. package/src/utils/iterable/_types.ts +0 -5
  237. package/src/utils/iterable/filter.ts +0 -55
  238. package/src/utils/iterable/find.ts +0 -38
  239. package/src/utils/iterable/first.ts +0 -48
  240. package/src/utils/iterable/flat.ts +0 -17
  241. package/src/utils/iterable/head.ts +0 -22
  242. package/src/utils/iterable/index.ts +0 -15
  243. package/src/utils/iterable/map.ts +0 -40
  244. package/src/utils/iterable/reduce.ts +0 -24
  245. package/src/utils/iterable/some.ts +0 -36
  246. package/src/utils/iterable/to.ts +0 -19
  247. package/src/utils/iterable/unique.ts +0 -23
  248. package/src/utils/markdown/index.ts +0 -2
  249. package/src/utils/markdown/to-html.ts +0 -32
  250. package/src/utils/markdown/to-text.ts +0 -14
  251. package/src/utils/memoize-prop.ts +0 -30
  252. package/src/utils/mnemonist.ts +0 -9
  253. package/src/utils/object-hash.ts +0 -14
  254. package/src/utils/promises.ts +0 -24
  255. package/src/utils/relations.ts +0 -36
  256. package/src/utils/set.ts +0 -83
  257. package/src/utils/string-hash.ts +0 -16
@@ -1,494 +0,0 @@
1
- import type { Element, Fqn, ModelRelation } from '../types'
2
- import type { AnyTypes, AnyTypesNested, Invalid, Types, ValidId } from './_types'
3
- import { Builder } from './Builder'
4
- import type { AddElement } from './Builder.element'
5
-
6
- export interface ModelBuilder<T extends AnyTypes> extends Builder<T> {
7
- __addElement(element: Element): Builder<T>
8
- __addRelation(relation: Omit<ModelRelation, 'id'>): Builder<T>
9
- /**
10
- * Create a fully qualified name from an id (for nested models)
11
- */
12
- __fqn(id: string): Fqn
13
- __addSourcelessRelation(relation: Omit<ModelRelation, 'id' | 'source'>): Builder<T>
14
- }
15
-
16
- export function model<
17
- A extends AnyTypes,
18
- >(): (input: Builder<A>) => Builder<A>
19
-
20
- export function model<
21
- A extends AnyTypes,
22
- B extends AnyTypes,
23
- >(
24
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
25
- ): (input: Builder<A>) => Builder<B>
26
-
27
- export function model<
28
- A extends AnyTypes,
29
- B extends AnyTypes,
30
- C extends AnyTypes,
31
- >(
32
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
33
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
34
- ): (input: Builder<A>) => Builder<C>
35
- export function model<
36
- A extends AnyTypes,
37
- B extends AnyTypes,
38
- C extends AnyTypes,
39
- D extends AnyTypes,
40
- >(
41
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
42
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
43
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
44
- ): (input: Builder<A>) => Builder<D>
45
- export function model<
46
- A extends AnyTypes,
47
- B extends AnyTypes,
48
- C extends AnyTypes,
49
- D extends AnyTypes,
50
- E extends AnyTypes,
51
- >(
52
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
53
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
54
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
55
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
56
- ): (input: Builder<A>) => Builder<E>
57
- export function model<
58
- A extends AnyTypes,
59
- B extends AnyTypes,
60
- C extends AnyTypes,
61
- D extends AnyTypes,
62
- E extends AnyTypes,
63
- F extends AnyTypes,
64
- >(
65
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
66
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
67
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
68
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
69
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
70
- ): (input: Builder<A>) => Builder<F>
71
- export function model<
72
- A extends AnyTypes,
73
- B extends AnyTypes,
74
- C extends AnyTypes,
75
- D extends AnyTypes,
76
- E extends AnyTypes,
77
- F extends AnyTypes,
78
- G extends AnyTypes,
79
- >(
80
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
81
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
82
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
83
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
84
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
85
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
86
- ): (input: Builder<A>) => Builder<G>
87
- export function model<
88
- A extends AnyTypes,
89
- B extends AnyTypes,
90
- C extends AnyTypes,
91
- D extends AnyTypes,
92
- E extends AnyTypes,
93
- F extends AnyTypes,
94
- G extends AnyTypes,
95
- H extends AnyTypes,
96
- >(
97
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
98
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
99
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
100
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
101
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
102
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
103
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
104
- ): (input: Builder<A>) => Builder<H>
105
- export function model<
106
- A extends AnyTypes,
107
- B extends AnyTypes,
108
- C extends AnyTypes,
109
- D extends AnyTypes,
110
- E extends AnyTypes,
111
- F extends AnyTypes,
112
- G extends AnyTypes,
113
- H extends AnyTypes,
114
- I extends AnyTypes,
115
- >(
116
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
117
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
118
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
119
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
120
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
121
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
122
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
123
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
124
- ): (input: Builder<A>) => Builder<I>
125
- export function model<
126
- A extends AnyTypes,
127
- B extends AnyTypes,
128
- C extends AnyTypes,
129
- D extends AnyTypes,
130
- E extends AnyTypes,
131
- F extends AnyTypes,
132
- G extends AnyTypes,
133
- H extends AnyTypes,
134
- I extends AnyTypes,
135
- J extends AnyTypes,
136
- >(
137
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
138
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
139
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
140
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
141
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
142
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
143
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
144
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
145
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
146
- ): (input: Builder<A>) => Builder<J>
147
- export function model<
148
- A extends AnyTypes,
149
- B extends AnyTypes,
150
- C extends AnyTypes,
151
- D extends AnyTypes,
152
- E extends AnyTypes,
153
- F extends AnyTypes,
154
- G extends AnyTypes,
155
- H extends AnyTypes,
156
- I extends AnyTypes,
157
- J extends AnyTypes,
158
- K extends AnyTypes,
159
- >(
160
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
161
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
162
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
163
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
164
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
165
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
166
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
167
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
168
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
169
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
170
- ): (input: Builder<A>) => Builder<K>
171
- export function model<
172
- A extends AnyTypes,
173
- B extends AnyTypes,
174
- C extends AnyTypes,
175
- D extends AnyTypes,
176
- E extends AnyTypes,
177
- F extends AnyTypes,
178
- G extends AnyTypes,
179
- H extends AnyTypes,
180
- I extends AnyTypes,
181
- J extends AnyTypes,
182
- K extends AnyTypes,
183
- L extends AnyTypes,
184
- >(
185
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
186
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
187
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
188
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
189
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
190
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
191
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
192
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
193
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
194
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
195
- op11: (input: ModelBuilder<K>) => ModelBuilder<L>,
196
- ): (input: Builder<A>) => Builder<L>
197
- export function model<
198
- A extends AnyTypes,
199
- B extends AnyTypes,
200
- C extends AnyTypes,
201
- D extends AnyTypes,
202
- E extends AnyTypes,
203
- F extends AnyTypes,
204
- G extends AnyTypes,
205
- H extends AnyTypes,
206
- I extends AnyTypes,
207
- J extends AnyTypes,
208
- K extends AnyTypes,
209
- L extends AnyTypes,
210
- M extends AnyTypes,
211
- >(
212
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
213
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
214
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
215
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
216
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
217
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
218
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
219
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
220
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
221
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
222
- op11: (input: ModelBuilder<K>) => ModelBuilder<L>,
223
- op12: (input: ModelBuilder<L>) => ModelBuilder<M>,
224
- ): (input: Builder<A>) => Builder<M>
225
- export function model<
226
- A extends AnyTypes,
227
- B extends AnyTypes,
228
- C extends AnyTypes,
229
- D extends AnyTypes,
230
- E extends AnyTypes,
231
- F extends AnyTypes,
232
- G extends AnyTypes,
233
- H extends AnyTypes,
234
- I extends AnyTypes,
235
- J extends AnyTypes,
236
- K extends AnyTypes,
237
- L extends AnyTypes,
238
- M extends AnyTypes,
239
- N extends AnyTypes,
240
- >(
241
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
242
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
243
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
244
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
245
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
246
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
247
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
248
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
249
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
250
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
251
- op11: (input: ModelBuilder<K>) => ModelBuilder<L>,
252
- op12: (input: ModelBuilder<L>) => ModelBuilder<M>,
253
- op13: (input: ModelBuilder<M>) => ModelBuilder<N>,
254
- ): (input: Builder<A>) => Builder<N>
255
- export function model<
256
- A extends AnyTypes,
257
- B extends AnyTypes,
258
- C extends AnyTypes,
259
- D extends AnyTypes,
260
- E extends AnyTypes,
261
- F extends AnyTypes,
262
- G extends AnyTypes,
263
- H extends AnyTypes,
264
- I extends AnyTypes,
265
- J extends AnyTypes,
266
- K extends AnyTypes,
267
- L extends AnyTypes,
268
- M extends AnyTypes,
269
- N extends AnyTypes,
270
- O extends AnyTypes,
271
- >(
272
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
273
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
274
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
275
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
276
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
277
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
278
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
279
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
280
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
281
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
282
- op11: (input: ModelBuilder<K>) => ModelBuilder<L>,
283
- op12: (input: ModelBuilder<L>) => ModelBuilder<M>,
284
- op13: (input: ModelBuilder<M>) => ModelBuilder<N>,
285
- op14: (input: ModelBuilder<N>) => ModelBuilder<O>,
286
- ): (input: Builder<A>) => Builder<O>
287
- export function model<
288
- A extends AnyTypes,
289
- B extends AnyTypes,
290
- C extends AnyTypes,
291
- D extends AnyTypes,
292
- E extends AnyTypes,
293
- F extends AnyTypes,
294
- G extends AnyTypes,
295
- H extends AnyTypes,
296
- I extends AnyTypes,
297
- J extends AnyTypes,
298
- K extends AnyTypes,
299
- L extends AnyTypes,
300
- M extends AnyTypes,
301
- N extends AnyTypes,
302
- O extends AnyTypes,
303
- P extends AnyTypes,
304
- >(
305
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
306
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
307
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
308
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
309
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
310
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
311
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
312
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
313
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
314
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
315
- op11: (input: ModelBuilder<K>) => ModelBuilder<L>,
316
- op12: (input: ModelBuilder<L>) => ModelBuilder<M>,
317
- op13: (input: ModelBuilder<M>) => ModelBuilder<N>,
318
- op14: (input: ModelBuilder<N>) => ModelBuilder<O>,
319
- op15: (input: ModelBuilder<O>) => ModelBuilder<P>,
320
- ): (input: Builder<A>) => Builder<P>
321
- export function model<
322
- A extends AnyTypes,
323
- B extends AnyTypes,
324
- C extends AnyTypes,
325
- D extends AnyTypes,
326
- E extends AnyTypes,
327
- F extends AnyTypes,
328
- G extends AnyTypes,
329
- H extends AnyTypes,
330
- I extends AnyTypes,
331
- J extends AnyTypes,
332
- K extends AnyTypes,
333
- L extends AnyTypes,
334
- M extends AnyTypes,
335
- N extends AnyTypes,
336
- O extends AnyTypes,
337
- P extends AnyTypes,
338
- Q extends AnyTypes,
339
- >(
340
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
341
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
342
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
343
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
344
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
345
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
346
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
347
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
348
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
349
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
350
- op11: (input: ModelBuilder<K>) => ModelBuilder<L>,
351
- op12: (input: ModelBuilder<L>) => ModelBuilder<M>,
352
- op13: (input: ModelBuilder<M>) => ModelBuilder<N>,
353
- op14: (input: ModelBuilder<N>) => ModelBuilder<O>,
354
- op15: (input: ModelBuilder<O>) => ModelBuilder<P>,
355
- op16: (input: ModelBuilder<P>) => ModelBuilder<Q>,
356
- ): (input: Builder<A>) => Builder<Q>
357
- export function model<
358
- A extends AnyTypes,
359
- B extends AnyTypes,
360
- C extends AnyTypes,
361
- D extends AnyTypes,
362
- E extends AnyTypes,
363
- F extends AnyTypes,
364
- G extends AnyTypes,
365
- H extends AnyTypes,
366
- I extends AnyTypes,
367
- J extends AnyTypes,
368
- K extends AnyTypes,
369
- L extends AnyTypes,
370
- M extends AnyTypes,
371
- N extends AnyTypes,
372
- O extends AnyTypes,
373
- P extends AnyTypes,
374
- Q extends AnyTypes,
375
- R extends AnyTypes,
376
- >(
377
- op1: (input: ModelBuilder<A>) => ModelBuilder<B>,
378
- op2: (input: ModelBuilder<B>) => ModelBuilder<C>,
379
- op3: (input: ModelBuilder<C>) => ModelBuilder<D>,
380
- op4: (input: ModelBuilder<D>) => ModelBuilder<E>,
381
- op5: (input: ModelBuilder<E>) => ModelBuilder<F>,
382
- op6: (input: ModelBuilder<F>) => ModelBuilder<G>,
383
- op7: (input: ModelBuilder<G>) => ModelBuilder<H>,
384
- op8: (input: ModelBuilder<H>) => ModelBuilder<I>,
385
- op9: (input: ModelBuilder<I>) => ModelBuilder<J>,
386
- op10: (input: ModelBuilder<J>) => ModelBuilder<K>,
387
- op11: (input: ModelBuilder<K>) => ModelBuilder<L>,
388
- op12: (input: ModelBuilder<L>) => ModelBuilder<M>,
389
- op13: (input: ModelBuilder<M>) => ModelBuilder<N>,
390
- op14: (input: ModelBuilder<N>) => ModelBuilder<O>,
391
- op15: (input: ModelBuilder<O>) => ModelBuilder<P>,
392
- op16: (input: ModelBuilder<P>) => ModelBuilder<Q>,
393
- op17: (input: ModelBuilder<Q>) => ModelBuilder<R>,
394
- ): (input: Builder<A>) => Builder<R>
395
-
396
- export function model(...ops: any[]) {
397
- return (input: Builder<any>) => {
398
- let builder = input
399
- for (const op of ops) {
400
- builder = op(builder)
401
- }
402
- return builder
403
- }
404
- }
405
-
406
- export type RelationshipHelper<Props = unknown> =
407
- /**
408
- * @example
409
- * ```ts
410
- * rel('a', 'b')
411
- * ```
412
- *
413
- * @example
414
- * ```ts
415
- * rel('a', 'b', {
416
- * title: 'title',
417
- * tags: ['tag1'],
418
- * })
419
- * ```
420
- */
421
- <
422
- T extends AnyTypes,
423
- From extends string & T['Fqn'],
424
- To extends string & T['Fqn'],
425
- >(
426
- from: From,
427
- to: To,
428
- titleOrProps?: string | Props,
429
- ) => (builder: ModelBuilder<T>) => ModelBuilder<T>
430
-
431
- export type NestedRelationshipHelper<Props = unknown> =
432
- /**
433
- * @example
434
- * ```ts
435
- * el('a').with(
436
- * relTo('b')
437
- * )
438
- * ```
439
- *
440
- * @example
441
- * ```ts
442
- * el('a').with(
443
- * relTo('b', {
444
- * title: 'title',
445
- * tags: ['tag1'],
446
- * })
447
- * )
448
- * ```
449
- */
450
- <T extends AnyTypesNested, To extends string & T['Fqn']>(
451
- to: To,
452
- titleOrProps?: string | Props,
453
- ) => (builder: ModelBuilder<T>) => ModelBuilder<T>
454
-
455
- type AddElementHelper<T = unknown> =
456
- /**
457
- * @example
458
- * ```ts
459
- * el('some.id')
460
- * ```
461
- *
462
- * @example
463
- * ```ts
464
- * el('some.id', {
465
- * title: 'title',
466
- * tags: ['tag1'],
467
- * })
468
- * ```
469
- */
470
- <const Id extends string>(
471
- id: ValidId<Id>,
472
- titleOrProps?: string | T,
473
- ) => AddElement<Id>
474
-
475
- export type AddElementHelpers<T extends AnyTypes> = T extends
476
- Types<infer Kinds extends string, any, any, any, any, any, any, any> ? {
477
- [Kind in Kinds]: AddElementHelper<T['NewElementProps']>
478
- }
479
- : Invalid<'No Element Kinds'>
480
-
481
- export type ModelHelpers<T extends AnyTypes> = AddElementHelpers<T> & {
482
- model: typeof model
483
- rel: RelationshipHelper<T['NewRelationshipProps']>
484
- relTo: NestedRelationshipHelper<T['NewRelationshipProps']>
485
- }
486
-
487
- export type ModelBuilderFunction<A extends AnyTypes, B extends AnyTypes> = (
488
- helpers: ModelHelpers<A> & {
489
- _: ModelHelpers<A>['model']
490
- },
491
- add: ModelHelpers<A>['model'],
492
- ) =>
493
- | ((builder: ModelBuilder<A>) => ModelBuilder<B>)
494
- | ((builder: Builder<A>) => Builder<B>)