@likec4/core 1.41.0 → 1.42.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 (255) 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 +13 -11
  5. package/dist/builder/index.mjs +111 -91
  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 +11 -11
  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.Ae86Y3tB.mjs → core.01VTr9qu.mjs} +8 -26
  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.DA5vzwZ9.mjs → core.BIqHjQiH.mjs} +56 -42
  25. package/dist/shared/core.BKlholso.mjs +3 -0
  26. package/dist/shared/core.BR4zXDH-.mjs +13 -0
  27. package/dist/shared/{core.CXy1NLUG.mjs → core.BYNkXQ8A.mjs} +21 -12
  28. package/dist/shared/{core.BuoXfSMj.mjs → core.BbE4y-yl.mjs} +1 -1
  29. package/dist/shared/core.BoYfZOBm.mjs +3 -0
  30. package/dist/shared/core.BsSXS-_R.mjs +7 -0
  31. package/dist/shared/{core.DJp8fgok.mjs → core.BzTakU3I.mjs} +14 -10
  32. package/dist/shared/{core.4u1dVmfX.mjs → core.C2TiyjI6.mjs} +2 -2
  33. package/dist/shared/{core.DLpidoWc.mjs → core.C3JowhaZ.mjs} +3 -3
  34. package/dist/shared/{core.CNGyqkJh.mjs → core.C4x8aaWa.mjs} +3 -1
  35. package/dist/shared/{core.BB6zA-UU.mjs → core.C8YY6Uub.mjs} +38 -9
  36. package/dist/shared/{core.Asc11Mjy.mjs → core.C8sl5Y8Z.mjs} +122 -58
  37. package/dist/shared/{core.BvMRMo7Z.mjs → core.CNgZvKb8.mjs} +3 -5198
  38. package/dist/shared/{core.CUG6vpyL.d.mts → core.CQngdcuj.d.mts} +85 -4
  39. package/dist/shared/{core.Be1n9a0i.mjs → core.C_Ni6yHl.mjs} +5 -4
  40. package/dist/shared/core.CbT8JVYL.mjs +5 -0
  41. package/dist/shared/core.CqAJJpK_.mjs +3 -0
  42. package/dist/shared/{core.BXsxn-hf.d.mts → core.D0PjZzIS.d.mts} +27 -15
  43. package/dist/shared/{core.DgesAwC8.d.mts → core.D5fzJWbF.d.mts} +2 -2
  44. package/dist/shared/{core.hfOE3RfK.d.mts → core.DACpKp35.d.mts} +5 -5
  45. package/dist/shared/core.DFi2dOTl.mjs +39548 -0
  46. package/dist/shared/{core.xSQO0XYD.d.mts → core.DIol3syK.d.mts} +2 -2
  47. package/dist/shared/{core.DlG1xWt2.mjs → core.DMMOWQqc.mjs} +3 -2
  48. package/dist/shared/core.DNbUPnve.mjs +3990 -0
  49. package/dist/shared/{core.CCD1ID81.mjs → core.DRJma0Ol.mjs} +4 -3
  50. package/dist/shared/{core.DgttqsJc.mjs → core.DRhg-gVU.mjs} +9 -9
  51. package/dist/shared/core.DSO_rTC2.mjs +5322 -0
  52. package/dist/shared/{core.FUPplpae.d.mts → core.D_vkffV4.d.mts} +4 -2
  53. package/dist/shared/core.DdMJk7nx.d.mts +476 -0
  54. package/dist/shared/{core.BhpgpOep.d.mts → core.Dgs6-nuz.d.mts} +2 -2
  55. package/dist/shared/{core.Be4Jy9Qx.mjs → core.FZ305VYd.mjs} +2 -2
  56. package/dist/shared/core.OHD4KXm9.mjs +5 -0
  57. package/dist/shared/{core.GTgsmXS_.mjs → core.QJD_fcrc.mjs} +2 -2
  58. package/dist/shared/core.RfnaEmgA.mjs +7 -0
  59. package/dist/shared/core.fHR_8Tnq.d.mts +450 -0
  60. package/dist/shared/{core.D0EgVMQK.mjs → core.lRvxPoao.mjs} +14 -12
  61. package/dist/shared/{core.CaT0SUUK.mjs → core.rCeaAqgW.mjs} +1 -84
  62. package/dist/shared/{core.zxTBF_PD.d.mts → core.s9uwOt60.d.mts} +4 -4
  63. package/dist/shared/core.yna0OdV5.d.mts +98 -0
  64. package/dist/styles/index.d.mts +106 -0
  65. package/dist/styles/index.mjs +1 -0
  66. package/dist/types/_aux.d.mts +2 -2
  67. package/dist/types/expression-model.d.mts +3 -4
  68. package/dist/types/expression.d.mts +3 -4
  69. package/dist/types/fqnRef.d.mts +2 -2
  70. package/dist/types/fqnRef.mjs +3 -3
  71. package/dist/types/index.d.mts +8 -8
  72. package/dist/types/index.mjs +150 -5
  73. package/dist/types/scalar.mjs +3 -2
  74. package/dist/utils/graphology/index.d.mts +1864 -0
  75. package/dist/utils/graphology/index.mjs +1 -0
  76. package/dist/utils/index.d.mts +11 -6
  77. package/dist/utils/index.mjs +21 -37
  78. package/dist/utils/iterable/index.d.mts +1 -1
  79. package/dist/utils/iterable/index.mjs +45 -7
  80. package/model/package.json +4 -0
  81. package/package.json +42 -24
  82. package/styles/package.json +4 -0
  83. package/types/package.json +4 -0
  84. package/utils/graphology/package.json +4 -0
  85. package/utils/package.json +4 -0
  86. package/dist/shared/core.6_Vp2iiN.mjs +0 -172
  87. package/dist/shared/core.CUw_2J9j.mjs +0 -47
  88. package/dist/shared/core.CzdwsPmY.d.mts +0 -69
  89. package/dist/shared/core.D-ZGWDDt.d.mts +0 -831
  90. package/dist/shared/core.DoM6aM9N.mjs +0 -7
  91. package/dist/shared/core.ILwny7BV.mjs +0 -38
  92. package/dist/theme/index.d.mts +0 -11
  93. package/dist/theme/index.mjs +0 -232
  94. package/src/builder/Builder.deployment.ts +0 -224
  95. package/src/builder/Builder.deploymentModel.ts +0 -449
  96. package/src/builder/Builder.element.ts +0 -241
  97. package/src/builder/Builder.model.ts +0 -494
  98. package/src/builder/Builder.ts +0 -946
  99. package/src/builder/Builder.view-common.ts +0 -273
  100. package/src/builder/Builder.view-deployment.ts +0 -135
  101. package/src/builder/Builder.view-element.ts +0 -202
  102. package/src/builder/Builder.views.ts +0 -399
  103. package/src/builder/Builder.with.ts +0 -156
  104. package/src/builder/_types.ts +0 -324
  105. package/src/builder/index.ts +0 -11
  106. package/src/compute-view/compute-view.ts +0 -80
  107. package/src/compute-view/deployment-view/_types.ts +0 -38
  108. package/src/compute-view/deployment-view/clean-connections.ts +0 -236
  109. package/src/compute-view/deployment-view/compute.ts +0 -94
  110. package/src/compute-view/deployment-view/memory/index.ts +0 -9
  111. package/src/compute-view/deployment-view/memory/memory.ts +0 -96
  112. package/src/compute-view/deployment-view/predicates/deploymentRefs-where.ts +0 -18
  113. package/src/compute-view/deployment-view/predicates/deploymentRefs.ts +0 -154
  114. package/src/compute-view/deployment-view/predicates/index.ts +0 -8
  115. package/src/compute-view/deployment-view/predicates/relation-direct.ts +0 -243
  116. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +0 -70
  117. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +0 -101
  118. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +0 -95
  119. package/src/compute-view/deployment-view/predicates/relation-where.ts +0 -18
  120. package/src/compute-view/deployment-view/predicates/utils.ts +0 -282
  121. package/src/compute-view/deployment-view/predicates/wildcard.ts +0 -41
  122. package/src/compute-view/deployment-view/stages/stage-exclude.ts +0 -5
  123. package/src/compute-view/deployment-view/stages/stage-final.ts +0 -245
  124. package/src/compute-view/deployment-view/stages/stage-include.ts +0 -95
  125. package/src/compute-view/deployment-view/utils.ts +0 -297
  126. package/src/compute-view/dynamic-view/compute.ts +0 -312
  127. package/src/compute-view/element-view/_types.ts +0 -47
  128. package/src/compute-view/element-view/clean-connections.ts +0 -117
  129. package/src/compute-view/element-view/compute.ts +0 -324
  130. package/src/compute-view/element-view/memory/NodeGroup.ts +0 -31
  131. package/src/compute-view/element-view/memory/index.ts +0 -10
  132. package/src/compute-view/element-view/memory/memory.ts +0 -178
  133. package/src/compute-view/element-view/memory/stage-exclude.ts +0 -59
  134. package/src/compute-view/element-view/memory/stage-final.ts +0 -129
  135. package/src/compute-view/element-view/memory/stage-include.ts +0 -130
  136. package/src/compute-view/element-view/predicates/_utils.ts +0 -91
  137. package/src/compute-view/element-view/predicates/element-expand.ts +0 -29
  138. package/src/compute-view/element-view/predicates/element-kind-tag.ts +0 -27
  139. package/src/compute-view/element-view/predicates/element-ref.ts +0 -24
  140. package/src/compute-view/element-view/predicates/relation-direct.ts +0 -321
  141. package/src/compute-view/element-view/predicates/relation-in-out.ts +0 -64
  142. package/src/compute-view/element-view/predicates/relation-in.ts +0 -115
  143. package/src/compute-view/element-view/predicates/relation-out.ts +0 -119
  144. package/src/compute-view/element-view/predicates/wildcard.ts +0 -88
  145. package/src/compute-view/element-view/utils.ts +0 -65
  146. package/src/compute-view/index.ts +0 -4
  147. package/src/compute-view/memory/AbstractMemory.ts +0 -45
  148. package/src/compute-view/memory/AbstractStageExclude.ts +0 -215
  149. package/src/compute-view/memory/AbstractStageInclude.ts +0 -200
  150. package/src/compute-view/memory/_types.ts +0 -148
  151. package/src/compute-view/memory/index.ts +0 -5
  152. package/src/compute-view/memory/ops.ts +0 -43
  153. package/src/compute-view/relationships-view/_types.ts +0 -16
  154. package/src/compute-view/relationships-view/compute.ts +0 -159
  155. package/src/compute-view/relationships-view/index.ts +0 -3
  156. package/src/compute-view/relationships-view/layout.ts +0 -358
  157. package/src/compute-view/relationships-view/utils.ts +0 -73
  158. package/src/compute-view/utils/ancestorsOfNode.ts +0 -19
  159. package/src/compute-view/utils/applyCustomElementProperties.ts +0 -107
  160. package/src/compute-view/utils/applyCustomRelationProperties.ts +0 -58
  161. package/src/compute-view/utils/applyViewRuleStyles.ts +0 -73
  162. package/src/compute-view/utils/buildComputedNodes.ts +0 -166
  163. package/src/compute-view/utils/buildElementNotations.ts +0 -64
  164. package/src/compute-view/utils/elementExpressionToPredicate.ts +0 -50
  165. package/src/compute-view/utils/link-nodes-with-edges.ts +0 -56
  166. package/src/compute-view/utils/merge-props-from-relationships.ts +0 -161
  167. package/src/compute-view/utils/relationExpressionToPredicates.ts +0 -55
  168. package/src/compute-view/utils/resolve-extended-views.ts +0 -85
  169. package/src/compute-view/utils/resolve-global-rules.ts +0 -88
  170. package/src/compute-view/utils/topological-sort.ts +0 -256
  171. package/src/compute-view/utils/view-hash.ts +0 -45
  172. package/src/compute-view/utils/with-readable-edges.ts +0 -40
  173. package/src/index.ts +0 -32
  174. package/src/model/DeploymentElementModel.ts +0 -712
  175. package/src/model/DeploymentModel.ts +0 -393
  176. package/src/model/ElementModel.ts +0 -316
  177. package/src/model/LikeC4Model.ts +0 -882
  178. package/src/model/RelationModel.ts +0 -152
  179. package/src/model/connection/Connection.ts +0 -72
  180. package/src/model/connection/deployment/DeploymentConnectionModel.ts +0 -185
  181. package/src/model/connection/deployment/find.ts +0 -120
  182. package/src/model/connection/deployment/index.ts +0 -8
  183. package/src/model/connection/index.ts +0 -22
  184. package/src/model/connection/model/ConnectionModel.ts +0 -158
  185. package/src/model/connection/model/find.ts +0 -117
  186. package/src/model/connection/model/index.ts +0 -8
  187. package/src/model/connection/ops.ts +0 -276
  188. package/src/model/guards.ts +0 -77
  189. package/src/model/index.ts +0 -72
  190. package/src/model/types.ts +0 -67
  191. package/src/model/utils.ts +0 -66
  192. package/src/model/view/EdgeModel.ts +0 -121
  193. package/src/model/view/LikeC4ViewModel.ts +0 -361
  194. package/src/model/view/LikeC4ViewsFolder.ts +0 -151
  195. package/src/model/view/NodeModel.ts +0 -247
  196. package/src/theme/element.ts +0 -61
  197. package/src/theme/index.ts +0 -127
  198. package/src/theme/relationships.ts +0 -54
  199. package/src/types/RichText.ts +0 -205
  200. package/src/types/_aux.ts +0 -317
  201. package/src/types/_common.ts +0 -102
  202. package/src/types/const.ts +0 -34
  203. package/src/types/expression-model.ts +0 -294
  204. package/src/types/expression.ts +0 -313
  205. package/src/types/fqnRef.ts +0 -91
  206. package/src/types/geometry.ts +0 -159
  207. package/src/types/global.ts +0 -21
  208. package/src/types/index.ts +0 -44
  209. package/src/types/model-data.ts +0 -77
  210. package/src/types/model-deployment.ts +0 -78
  211. package/src/types/model-dump.ts +0 -79
  212. package/src/types/model-logical.ts +0 -126
  213. package/src/types/model-spec.ts +0 -88
  214. package/src/types/operators.ts +0 -156
  215. package/src/types/project.ts +0 -14
  216. package/src/types/scalar.ts +0 -162
  217. package/src/types/styles.ts +0 -122
  218. package/src/types/view-changes.ts +0 -32
  219. package/src/types/view-common.ts +0 -157
  220. package/src/types/view-computed.ts +0 -126
  221. package/src/types/view-layouted.ts +0 -94
  222. package/src/types/view-parsed.deployment.ts +0 -39
  223. package/src/types/view-parsed.dynamic.ts +0 -89
  224. package/src/types/view-parsed.element.ts +0 -65
  225. package/src/types/view.ts +0 -113
  226. package/src/utils/common-head.ts +0 -22
  227. package/src/utils/compare-natural.ts +0 -60
  228. package/src/utils/const.ts +0 -1
  229. package/src/utils/fqn.ts +0 -302
  230. package/src/utils/getOrCreate.ts +0 -8
  231. package/src/utils/guards.ts +0 -9
  232. package/src/utils/index.ts +0 -68
  233. package/src/utils/invariant.ts +0 -29
  234. package/src/utils/iterable/_types.ts +0 -5
  235. package/src/utils/iterable/filter.ts +0 -55
  236. package/src/utils/iterable/find.ts +0 -38
  237. package/src/utils/iterable/first.ts +0 -48
  238. package/src/utils/iterable/flat.ts +0 -17
  239. package/src/utils/iterable/head.ts +0 -22
  240. package/src/utils/iterable/index.ts +0 -15
  241. package/src/utils/iterable/map.ts +0 -40
  242. package/src/utils/iterable/reduce.ts +0 -24
  243. package/src/utils/iterable/some.ts +0 -36
  244. package/src/utils/iterable/to.ts +0 -19
  245. package/src/utils/iterable/unique.ts +0 -23
  246. package/src/utils/markdown/index.ts +0 -2
  247. package/src/utils/markdown/to-html.ts +0 -32
  248. package/src/utils/markdown/to-text.ts +0 -14
  249. package/src/utils/memoize-prop.ts +0 -30
  250. package/src/utils/mnemonist.ts +0 -9
  251. package/src/utils/object-hash.ts +0 -14
  252. package/src/utils/promises.ts +0 -24
  253. package/src/utils/relations.ts +0 -36
  254. package/src/utils/set.ts +0 -83
  255. 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>)