@likec4/core 1.40.0 → 1.41.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 (61) hide show
  1. package/dist/builder/index.d.mts +75 -14
  2. package/dist/builder/index.mjs +111 -47
  3. package/dist/compute-view/index.d.mts +5 -5
  4. package/dist/compute-view/index.mjs +3 -3
  5. package/dist/compute-view/relationships-view/index.d.mts +5 -5
  6. package/dist/index.d.mts +5 -5
  7. package/dist/index.mjs +4 -4
  8. package/dist/model/connection/deployment/index.d.mts +7 -7
  9. package/dist/model/connection/deployment/index.mjs +1 -1
  10. package/dist/model/connection/index.d.mts +8 -8
  11. package/dist/model/connection/index.mjs +1 -1
  12. package/dist/model/connection/model/index.d.mts +7 -7
  13. package/dist/model/index.d.mts +10 -10
  14. package/dist/model/index.mjs +3 -3
  15. package/dist/shared/{core.DHQ32OHa.mjs → core.Ae86Y3tB.mjs} +2 -3
  16. package/dist/shared/{core.FPITT8Vx.mjs → core.Asc11Mjy.mjs} +28 -9
  17. package/dist/shared/{core.CySf-2gP.d.mts → core.BXsxn-hf.d.mts} +29 -4
  18. package/dist/shared/core.BazD6cot.mjs +14 -0
  19. package/dist/shared/{core.D_fI5Lf6.d.mts → core.BhpgpOep.d.mts} +24 -4
  20. package/dist/shared/{core.DuR3R-xJ.mjs → core.BvMRMo7Z.mjs} +68 -46
  21. package/dist/shared/{core.BbThmf6M.d.mts → core.CUG6vpyL.d.mts} +2 -2
  22. package/dist/shared/{core.yHe79zEl.mjs → core.CXy1NLUG.mjs} +2 -2
  23. package/dist/shared/{core.Bpou6c2f.d.mts → core.D-ZGWDDt.d.mts} +19 -38
  24. package/dist/shared/{core.BIAlzwKc.mjs → core.DA5vzwZ9.mjs} +30 -4
  25. package/dist/shared/{core.T-eLZTW_.mjs → core.DJp8fgok.mjs} +6 -2
  26. package/dist/shared/{core.DrvfVXkh.d.mts → core.DgesAwC8.d.mts} +11 -2
  27. package/dist/shared/{core.vWJTxpLV.d.mts → core.FUPplpae.d.mts} +1 -1
  28. package/dist/shared/{core.DrVOJuxX.d.mts → core.hfOE3RfK.d.mts} +4 -4
  29. package/dist/shared/{core.D704WZES.d.mts → core.xSQO0XYD.d.mts} +2 -2
  30. package/dist/shared/{core.kxeJe0OY.d.mts → core.zxTBF_PD.d.mts} +3 -3
  31. package/dist/types/_aux.d.mts +2 -2
  32. package/dist/types/_aux.mjs +1 -5
  33. package/dist/types/expression-model.d.mts +3 -3
  34. package/dist/types/expression.d.mts +3 -3
  35. package/dist/types/fqnRef.d.mts +2 -2
  36. package/dist/types/index.d.mts +6 -6
  37. package/dist/types/index.mjs +4 -4
  38. package/dist/utils/index.d.mts +2 -2
  39. package/dist/utils/iterable/index.d.mts +1 -1
  40. package/package.json +2 -2
  41. package/src/builder/Builder.ts +119 -43
  42. package/src/builder/_types.ts +12 -8
  43. package/src/compute-view/deployment-view/utils.ts +47 -36
  44. package/src/compute-view/relationships-view/layout.ts +7 -6
  45. package/src/compute-view/utils/buildComputedNodes.ts +23 -10
  46. package/src/compute-view/utils/buildElementNotations.ts +2 -1
  47. package/src/model/DeploymentElementModel.ts +33 -3
  48. package/src/model/ElementModel.ts +25 -2
  49. package/src/model/RelationModel.ts +1 -1
  50. package/src/model/view/EdgeModel.ts +3 -2
  51. package/src/model/view/LikeC4ViewModel.ts +1 -1
  52. package/src/model/view/NodeModel.ts +1 -1
  53. package/src/types/RichText.ts +2 -3
  54. package/src/types/_aux.ts +26 -0
  55. package/src/types/_common.ts +23 -1
  56. package/src/types/index.ts +2 -0
  57. package/src/types/model-deployment.ts +8 -18
  58. package/src/types/model-logical.ts +4 -13
  59. package/src/types/model-spec.ts +3 -0
  60. package/src/types/view-computed.ts +21 -13
  61. package/src/types/view-layouted.ts +0 -4
@@ -1,11 +1,11 @@
1
1
  import { Simplify, MergeExclusive, Tagged, NonEmptyTuple, IsNever, IsAny } from 'type-fest';
2
- import { A as Any, W as WithOptionalTags, z as WithOptionalLinks, g as StrictViewId, e as _stage, f as _type, F as Fqn, B as WithMetadata, h as ElementKind, l as Tags, m as Metadata, R as RelationKind, V as ViewId, U as Unknown, s as DeploymentFqn, o as DeploymentKind, T as Tag, n as MetadataKey, E as ExtractOnStage, M as ModelStage, P as ProjectId$1, j as ElementId, D as DeploymentId, d as UnknownParsed, b as UnknownComputed, c as UnknownLayouted, S as SpecAux, a as Aux, N as Never } from './core.D_fI5Lf6.mjs';
3
- import { N as NonEmptyArray, E as ExclusiveUnion, L as Link, K as KeysOf } from './core.DrvfVXkh.mjs';
2
+ import { A as Any, W as WithOptionalTags, C as WithOptionalLinks, h as StrictViewId, f as _stage, g as _type, F as Fqn, G as WithDescriptionAndTech, H as WithMetadata, I as WithNotation, j as ElementKind, R as RelationKind, V as ViewId, U as Unknown, u as DeploymentFqn, q as DeploymentKind, T as Tag, o as MetadataKey, J as WithTags, E as ExtractOnStage, M as ModelStage, P as ProjectId$1, k as ElementId, D as DeploymentId, d as UnknownParsed, b as UnknownComputed, c as UnknownLayouted, S as SpecAux, a as Aux, N as Never } from './core.BhpgpOep.mjs';
3
+ import { N as NonEmptyArray, E as ExclusiveUnion, L as Link, K as KeysOf } from './core.DgesAwC8.mjs';
4
4
  import { ModelExpression, ModelFqnExpr } from '../types/expression-model.mjs';
5
5
  import { I as Icon, M as MarkdownOrString, d as RelationId, T as Tag$1, P as ProjectId, N as NodeId, j as EdgeId, m as StepEdgeKind } from './core.DX-WYEPA.mjs';
6
6
  import { b as BorderStyle, a as ShapeSize, S as SpacingSize, T as TextSize, i as Color, c as ElementShape, R as RelationshipLineType, f as RelationshipArrowType, h as ThemeColor, C as ColorLiteral, e as CustomColorDefinitions } from './core.CzdwsPmY.mjs';
7
7
  import { FqnRef } from '../types/fqnRef.mjs';
8
- import { E as Expression, F as FqnExpr } from './core.BbThmf6M.mjs';
8
+ import { E as Expression, F as FqnExpr } from './core.CUG6vpyL.mjs';
9
9
 
10
10
  type Point = readonly [x: number, y: number];
11
11
  interface XYPoint {
@@ -282,38 +282,27 @@ type WithSizes = Pick<ElementStyle, 'size' | 'padding' | 'textSize'>;
282
282
  * Ensures that the sizes are set to default values if they are not set
283
283
  */
284
284
  declare function ensureSizes<S extends WithSizes>({ size, padding, textSize, ...rest }: S): Omit<S, 'size' | 'padding' | 'textSize'> & Required<WithSizes>;
285
- interface Element<A extends Any = Any> extends WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A> {
285
+ interface Element<A extends Any = Any> extends WithDescriptionAndTech, WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A>, WithNotation {
286
286
  readonly id: Fqn<A>;
287
287
  readonly kind: ElementKind<A>;
288
288
  readonly title: string;
289
- readonly description?: MarkdownOrString | null;
290
- readonly technology?: string | null;
291
- readonly tags?: Tags<A> | null;
292
- readonly links?: readonly Link[] | null;
293
289
  readonly icon?: Icon;
294
290
  readonly shape?: ElementShape;
295
291
  readonly color?: Color;
296
292
  readonly style?: ElementStyle;
297
- readonly notation?: string | null;
298
- readonly metadata?: Metadata<A>;
299
293
  }
300
294
  declare const DefaultLineStyle: RelationshipLineType;
301
295
  declare const DefaultArrowType: RelationshipArrowType;
302
296
  declare const DefaultRelationshipColor: ThemeColor;
303
- interface AbstractRelationship<A extends Any> extends WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A> {
297
+ interface AbstractRelationship<A extends Any> extends WithDescriptionAndTech, WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A> {
304
298
  readonly id: RelationId;
305
299
  readonly title?: string | null;
306
- readonly description?: MarkdownOrString | null;
307
- readonly technology?: string | null;
308
300
  readonly kind?: RelationKind<A>;
309
301
  readonly color?: Color;
310
302
  readonly line?: RelationshipLineType;
311
303
  readonly head?: RelationshipArrowType;
312
304
  readonly tail?: RelationshipArrowType;
313
- readonly tags?: Tags<A> | null;
314
- readonly links?: readonly Link[] | null;
315
305
  readonly navigateTo?: ViewId<A>;
316
- readonly metadata?: Metadata<A>;
317
306
  }
318
307
  /**
319
308
  * Relationship between two model elements
@@ -333,20 +322,14 @@ interface DeploymentElementStyle extends ElementStyle {
333
322
  readonly shape?: ElementShape;
334
323
  readonly color?: Color;
335
324
  }
336
- interface DeploymentNode<A extends Any = Unknown> extends WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A> {
325
+ interface DeploymentNode<A extends Any = Unknown> extends WithDescriptionAndTech, WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A>, WithNotation {
337
326
  element?: never;
338
327
  readonly id: DeploymentFqn<A>;
339
328
  readonly kind: DeploymentKind<A>;
340
329
  readonly title: string;
341
- readonly description?: MarkdownOrString | null;
342
- readonly technology?: string | null;
343
- readonly tags?: Tags<A> | null;
344
- readonly links?: readonly Link[] | null;
345
330
  readonly style: DeploymentElementStyle;
346
- readonly notation?: string | null;
347
- readonly metadata?: Metadata<A>;
348
331
  }
349
- interface DeployedInstance<A extends Any = Unknown> extends WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A> {
332
+ interface DeployedInstance<A extends Any = Unknown> extends WithDescriptionAndTech, WithOptionalTags<A>, WithOptionalLinks, WithMetadata<A>, WithNotation {
350
333
  kind?: never;
351
334
  /**
352
335
  * Format: `<DeploymentNode Fqn>.<Instance Id>`
@@ -355,13 +338,7 @@ interface DeployedInstance<A extends Any = Unknown> extends WithOptionalTags<A>,
355
338
  readonly id: DeploymentFqn<A>;
356
339
  readonly element: Fqn<A>;
357
340
  readonly title?: string;
358
- readonly description?: MarkdownOrString | null;
359
- readonly technology?: string | null;
360
- readonly tags?: Tags<A> | null;
361
- readonly links?: readonly Link[] | null;
362
341
  readonly style?: DeploymentElementStyle;
363
- readonly notation?: string;
364
- readonly metadata?: Metadata<A>;
365
342
  }
366
343
  type DeploymentElement<A extends Any = Unknown> = DeploymentNode<A> | DeployedInstance<A>;
367
344
  type DeploymentElementRef<A extends Any = Unknown> = {
@@ -389,6 +366,7 @@ type DeploymentRelation<A extends Any = Unknown> = DeploymentRelationship<A>;
389
366
  interface ElementSpecification {
390
367
  tags?: Tag$1[];
391
368
  title?: string;
369
+ summary?: MarkdownOrString;
392
370
  description?: MarkdownOrString;
393
371
  technology?: string;
394
372
  notation?: string;
@@ -452,37 +430,40 @@ interface LikeC4Project {
452
430
  title?: string;
453
431
  }
454
432
 
455
- interface ComputedNode<A extends Any = Any> extends WithOptionalLinks {
433
+ interface ComputedNode<A extends Any = Any> extends WithTags<A>, WithOptionalLinks {
456
434
  id: NodeId;
457
435
  kind: ElementKind<A> | DeploymentKind<A> | '@group';
458
436
  parent: NodeId | null;
459
437
  /**
460
438
  * Reference to model element
461
439
  */
462
- modelRef?: Fqn<A> | undefined;
440
+ modelRef?: Fqn<A>;
463
441
  /**
464
442
  * Reference to deployment element
465
443
  */
466
- deploymentRef?: DeploymentFqn<A> | undefined;
444
+ deploymentRef?: DeploymentFqn<A>;
467
445
  title: string;
446
+ /**
447
+ * Description of the node
448
+ * either summary or description
449
+ */
468
450
  description?: MarkdownOrString | null;
469
451
  technology?: string | null;
470
- notation?: string;
471
452
  children: NodeId[];
472
453
  inEdges: EdgeId[];
473
454
  outEdges: EdgeId[];
474
- tags: Tags<A>;
475
455
  shape: ElementShape;
476
456
  color: Color;
477
457
  icon?: Icon;
478
458
  style: ElementStyle;
479
459
  navigateTo?: StrictViewId<A> | null;
480
460
  level: number;
481
- depth?: number;
461
+ depth?: number | null;
482
462
  /**
483
463
  * If this node was customized in the view
484
464
  */
485
465
  isCustomized?: boolean;
466
+ notation?: string | null;
486
467
  }
487
468
  interface ComputedEdge<A extends Any = Any> extends WithOptionalTags<A> {
488
469
  id: EdgeId;
@@ -491,7 +472,7 @@ interface ComputedEdge<A extends Any = Any> extends WithOptionalTags<A> {
491
472
  target: NodeId;
492
473
  label: string | null;
493
474
  description?: MarkdownOrString | null;
494
- technology?: string;
475
+ technology?: string | null;
495
476
  relations: RelationId[];
496
477
  kind?: RelationKind<A> | typeof StepEdgeKind;
497
478
  notation?: string;
@@ -807,7 +788,7 @@ declare class RichText {
807
788
  * return RichText.memoize(this, this.$element.description)
808
789
  * }
809
790
  */
810
- static memoize(obj: object, source: MarkdownOrString | null | undefined): RichTextOrEmpty;
791
+ static memoize(obj: object, tag: symbol | string, source: MarkdownOrString | null | undefined): RichTextOrEmpty;
811
792
  /**
812
793
  * Creates a RichText instance from a source.
813
794
  */
@@ -4,7 +4,8 @@ import { unique, only, isTruthy, isEmpty } from 'remeda';
4
4
  import { o as hierarchyLevel, g as commonAncestor, n as nameFromFqn, d as isSameHierarchy } from './core.DgttqsJc.mjs';
5
5
  import { a as nonNullable, i as invariant } from './core.D4npX2q8.mjs';
6
6
  import { m as memoizeProp } from './core.CUw_2J9j.mjs';
7
- import { c as DefaultShapeSize, R as RichText, D as DefaultThemeColor, g as DefaultLineStyle, a as DefaultElementShape } from './core.DHQ32OHa.mjs';
7
+ import { c as DefaultShapeSize, R as RichText, D as DefaultThemeColor, g as DefaultLineStyle, a as DefaultElementShape } from './core.Ae86Y3tB.mjs';
8
+ import { a as preferSummary, p as preferDescription } from './core.BazD6cot.mjs';
8
9
 
9
10
  class AbstractDeploymentElementModel {
10
11
  get style() {
@@ -24,8 +25,19 @@ class AbstractDeploymentElementModel {
24
25
  get color() {
25
26
  return this.$node.style?.color ?? DefaultThemeColor;
26
27
  }
28
+ /**
29
+ * Short description of the element.
30
+ * Falls back to description if summary is not provided.
31
+ */
32
+ get summary() {
33
+ return RichText.memoize(this, "summary", preferSummary(this.$node));
34
+ }
35
+ /**
36
+ * Long description of the element.
37
+ * Falls back to summary if description is not provided.
38
+ */
27
39
  get description() {
28
- return RichText.memoize(this, this.$node.description);
40
+ return RichText.memoize(this, "description", preferDescription(this.$node));
29
41
  }
30
42
  get technology() {
31
43
  return this.$node.technology ?? null;
@@ -315,8 +327,19 @@ class DeployedInstanceModel extends AbstractDeploymentElementModel {
315
327
  get kind() {
316
328
  return this.element.kind;
317
329
  }
330
+ get summary() {
331
+ return RichText.memoize(
332
+ this,
333
+ "summary",
334
+ preferSummary(this.$instance) ?? preferSummary(this.element.$element)
335
+ );
336
+ }
318
337
  get description() {
319
- return RichText.memoize(this, this.$instance.description ?? this.element.$element.description);
338
+ return RichText.memoize(
339
+ this,
340
+ "description",
341
+ preferDescription(this.$instance) ?? preferDescription(this.element.$element)
342
+ );
320
343
  }
321
344
  get technology() {
322
345
  return this.$instance.technology ?? this.element.technology ?? null;
@@ -381,6 +404,9 @@ class NestedElementOfDeployedInstanceModel {
381
404
  get title() {
382
405
  return this.element.title;
383
406
  }
407
+ get summary() {
408
+ return this.element.summary;
409
+ }
384
410
  get description() {
385
411
  return this.element.description;
386
412
  }
@@ -422,7 +448,7 @@ class DeploymentRelationModel {
422
448
  return this.$relationship.technology ?? null;
423
449
  }
424
450
  get description() {
425
- return RichText.memoize(this, this.$relationship.description);
451
+ return RichText.memoize(this, "description", this.$relationship.description);
426
452
  }
427
453
  get tags() {
428
454
  return this.$relationship.tags ?? [];
@@ -1,6 +1,10 @@
1
- import { isTruthy, isArray } from 'remeda';
1
+ import { omitBy, isTruthy, isArray } from 'remeda';
2
2
  import { e as isStepEdgeId } from './core.Be1n9a0i.mjs';
3
3
 
4
+ function omitUndefined(a) {
5
+ return omitBy(a, (v) => v === void 0);
6
+ }
7
+
4
8
  function isViewRulePredicate(rule) {
5
9
  return "include" in rule || "exclude" in rule;
6
10
  }
@@ -56,4 +60,4 @@ function isViewRuleGroup(rule) {
56
60
  return "title" in rule && "groupRules" in rule && Array.isArray(rule.groupRules);
57
61
  }
58
62
 
59
- export { isViewRuleStyle as a, isComputedView as b, isDiagramView as c, isElementView as d, isScopedElementView as e, isExtendsElementView as f, isDeploymentView as g, isDynamicView as h, isViewRulePredicate as i, isViewRuleGlobalStyle as j, isViewRuleGlobalPredicateRef as k, isAutoLayoutDirection as l, isViewRuleAutoLayout as m, getParallelStepsPrefix as n, isDynamicViewParallelSteps as o, isViewRuleGroup as p };
63
+ export { isViewRuleStyle as a, isComputedView as b, isDiagramView as c, isElementView as d, isScopedElementView as e, isExtendsElementView as f, isDeploymentView as g, isDynamicView as h, isViewRulePredicate as i, isViewRuleGlobalStyle as j, isViewRuleGlobalPredicateRef as k, isAutoLayoutDirection as l, isViewRuleAutoLayout as m, getParallelStepsPrefix as n, omitUndefined as o, isDynamicViewParallelSteps as p, isViewRuleGroup as q };
@@ -1,4 +1,4 @@
1
- import { IsAny, UnionToIntersection, Simplify } from 'type-fest';
1
+ import { IsAny, UnionToIntersection, Simplify, KeysOfUnion } from 'type-fest';
2
2
 
3
3
  type NonEmptyArray<T> = [T, ...T[]];
4
4
  type NonEmptyReadonlyArray<T> = readonly [T, ...T[]];
@@ -57,5 +57,14 @@ interface Link {
57
57
  * Coalesce `V` to a string if it is `any`
58
58
  */
59
59
  type Coalesce<V extends string, OrIfAny = string> = IsAny<V> extends true ? OrIfAny : V;
60
+ type ExactObject<T, InputType = unknown> = {
61
+ [KeyType in keyof T]: undefined extends T[KeyType] ? T[KeyType] | undefined : T[KeyType];
62
+ } & Record<Exclude<keyof InputType, KeysOfUnion<T>>, never>;
63
+ /**
64
+ * Allows only exact properties of `U` to be present in `T` and omits undefined values
65
+ *
66
+ * See {@link Exact} for more details (this version is non-deep)
67
+ */
68
+ declare function omitUndefined<Expected, T extends ExactObject<Expected, T>>(a: T): Expected;
60
69
 
61
- export type { Coalesce as C, ExclusiveUnion as E, IterableContainer as I, KeysOf as K, Link as L, NonEmptyArray as N, Predicate as P, ReorderedArray as R, NonEmptyReadonlyArray as a, NTuple as b, IteratorLike as c };
70
+ export { type Coalesce as C, type ExclusiveUnion as E, type IterableContainer as I, type KeysOf as K, type Link as L, type NonEmptyArray as N, type Predicate as P, type ReorderedArray as R, type NonEmptyReadonlyArray as a, type NTuple as b, type IteratorLike as c, omitUndefined as o };
@@ -1,4 +1,4 @@
1
- import { I as IterableContainer, R as ReorderedArray, N as NonEmptyArray } from './core.DrvfVXkh.mjs';
1
+ import { I as IterableContainer, R as ReorderedArray, N as NonEmptyArray } from './core.DgesAwC8.mjs';
2
2
  import { F as Fqn } from './core.DX-WYEPA.mjs';
3
3
 
4
4
  /**
@@ -1,7 +1,7 @@
1
- import { C as Connection, c as customInspectSymbol } from './core.D704WZES.mjs';
2
- import { e as DeploymentElementModel, i as RelationshipsAccum, D as DeploymentNodeModel, R as RelationshipModel, b as DeploymentRelationModel } from './core.CySf-2gP.mjs';
3
- import { A as Any, C as EdgeId } from './core.D_fI5Lf6.mjs';
4
- import { c as IteratorLike } from './core.DrvfVXkh.mjs';
1
+ import { C as Connection, c as customInspectSymbol } from './core.xSQO0XYD.mjs';
2
+ import { e as DeploymentElementModel, i as RelationshipsAccum, D as DeploymentNodeModel, R as RelationshipModel, b as DeploymentRelationModel } from './core.BXsxn-hf.mjs';
3
+ import { A as Any, K as EdgeId } from './core.BhpgpOep.mjs';
4
+ import { c as IteratorLike } from './core.DgesAwC8.mjs';
5
5
 
6
6
  /**
7
7
  * Connection is ephemeral entity, result of a resolving relationships between source and target.
@@ -1,5 +1,5 @@
1
- import { E as ElementModel, e as DeploymentElementModel } from './core.CySf-2gP.mjs';
2
- import { A as Any } from './core.D_fI5Lf6.mjs';
1
+ import { E as ElementModel, e as DeploymentElementModel } from './core.BXsxn-hf.mjs';
2
+ import { A as Any } from './core.BhpgpOep.mjs';
3
3
  import { F as Fqn } from './core.DX-WYEPA.mjs';
4
4
 
5
5
  interface Connection<Elem = ElementModel<Any> | DeploymentElementModel<Any>, Id = string> {
@@ -1,6 +1,6 @@
1
- import { C as Connection, c as customInspectSymbol } from './core.D704WZES.mjs';
2
- import { E as ElementModel, R as RelationshipModel } from './core.CySf-2gP.mjs';
3
- import { A as Any, U as Unknown, C as EdgeId } from './core.D_fI5Lf6.mjs';
1
+ import { C as Connection, c as customInspectSymbol } from './core.xSQO0XYD.mjs';
2
+ import { E as ElementModel, R as RelationshipModel } from './core.BXsxn-hf.mjs';
3
+ import { A as Any, U as Unknown, K as EdgeId } from './core.BhpgpOep.mjs';
4
4
 
5
5
  /**
6
6
  * Connection refers to any relationships between two elements,
@@ -1,4 +1,4 @@
1
1
  import 'type-fest';
2
- import '../shared/core.DrvfVXkh.mjs';
3
- export { k as AllKinds, A as Any, A as AnyAux, G as AnySpec, a as Aux, s as DeploymentFqn, D as DeploymentId, o as DeploymentKind, C as EdgeId, j as ElementId, h as ElementKind, F as Fqn, r as LooseDeploymentId, a4 as LooseDeploymentKind, q as LooseElementId, a3 as LooseElementKind, a5 as LooseRelationKind, L as LooseTag, a2 as LooseTags, x as LooseViewId, m as Metadata, n as MetadataKey, N as Never, J as NodeId, a1 as OrString, H as PickByStage, P as ProjectId, p as RelationId, R as RelationKind, K as Spec, S as SpecAux, v as Stage, s as StrictDeploymentFqn, Y as StrictDeploymentKind, X as StrictElementKind, F as StrictFqn, O as StrictProjectId, Z as StrictRelationKind, Q as StrictTag, g as StrictViewId, T as Tag, l as Tags, U as Unknown, b as UnknownComputed, c as UnknownLayouted, d as UnknownParsed, V as ViewId, a0 as WithLinks, B as WithMetadata, z as WithOptionalLinks, W as WithOptionalTags, $ as WithTags, y as setProject, I as setStage, t as toComputed, u as toLayouted, w as toParsed } from '../shared/core.D_fI5Lf6.mjs';
2
+ import '../shared/core.DgesAwC8.mjs';
3
+ export { l as AllKinds, A as Any, A as AnyAux, O as AnySpec, a as Aux, u as DeploymentFqn, D as DeploymentId, q as DeploymentKind, K as EdgeId, k as ElementId, j as ElementKind, F as Fqn, t as LooseDeploymentId, a8 as LooseDeploymentKind, s as LooseElementId, a7 as LooseElementKind, a9 as LooseRelationKind, L as LooseTag, a6 as LooseTags, z as LooseViewId, n as Metadata, o as MetadataKey, N as Never, Y as NodeId, a5 as OrString, Q as PickByStage, P as ProjectId, r as RelationId, R as RelationKind, Z as Spec, S as SpecAux, x as Stage, u as StrictDeploymentFqn, a2 as StrictDeploymentKind, a1 as StrictElementKind, F as StrictFqn, $ as StrictProjectId, a3 as StrictRelationKind, a0 as StrictTag, h as StrictViewId, T as Tag, m as Tags, U as Unknown, b as UnknownComputed, c as UnknownLayouted, d as UnknownParsed, V as ViewId, G as WithDescriptionAndTech, a4 as WithLinks, H as WithMetadata, I as WithNotation, C as WithOptionalLinks, W as WithOptionalTags, J as WithTags, p as preferDescription, e as preferSummary, B as setProject, X as setStage, v as toComputed, w as toLayouted, y as toParsed } from '../shared/core.BhpgpOep.mjs';
4
4
  import '../shared/core.DX-WYEPA.mjs';
@@ -1,5 +1 @@
1
- const _aux = {
2
- __proto__: null
3
- };
4
-
5
- export { _aux as _ };
1
+ export { p as preferDescription, a as preferSummary } from '../shared/core.BazD6cot.mjs';
@@ -1,6 +1,6 @@
1
- import { A as Any, g as StrictViewId, h as ElementKind, T as Tag } from '../shared/core.D_fI5Lf6.mjs';
2
- import { E as ExclusiveUnion } from '../shared/core.DrvfVXkh.mjs';
3
- import { W as WhereOperator, P as PredicateSelector } from '../shared/core.BbThmf6M.mjs';
1
+ import { A as Any, h as StrictViewId, j as ElementKind, T as Tag } from '../shared/core.BhpgpOep.mjs';
2
+ import { E as ExclusiveUnion } from '../shared/core.DgesAwC8.mjs';
3
+ import { W as WhereOperator, P as PredicateSelector } from '../shared/core.CUG6vpyL.mjs';
4
4
  import { FqnRef } from './fqnRef.mjs';
5
5
  import { M as MarkdownOrString, I as Icon } from '../shared/core.DX-WYEPA.mjs';
6
6
  import { i as Color, R as RelationshipLineType, f as RelationshipArrowType, c as ElementShape, b as BorderStyle, a as ShapeSize } from '../shared/core.CzdwsPmY.mjs';
@@ -1,7 +1,7 @@
1
- import '../shared/core.D_fI5Lf6.mjs';
2
- import '../shared/core.DrvfVXkh.mjs';
1
+ import '../shared/core.BhpgpOep.mjs';
2
+ import '../shared/core.DgesAwC8.mjs';
3
3
  import './fqnRef.mjs';
4
- export { E as Expression, F as FqnExpr, P as PredicateSelector, R as RelationExpr } from '../shared/core.BbThmf6M.mjs';
4
+ export { E as Expression, F as FqnExpr, P as PredicateSelector, R as RelationExpr } from '../shared/core.CUG6vpyL.mjs';
5
5
  import '../shared/core.DX-WYEPA.mjs';
6
6
  import '../shared/core.CzdwsPmY.mjs';
7
7
  import 'type-fest';
@@ -1,5 +1,5 @@
1
- import { A as Any, U as Unknown$1, j as ElementId, P as ProjectId, F as Fqn, D as DeploymentId } from '../shared/core.D_fI5Lf6.mjs';
2
- import { E as ExclusiveUnion } from '../shared/core.DrvfVXkh.mjs';
1
+ import { A as Any, U as Unknown$1, k as ElementId, P as ProjectId, F as Fqn, D as DeploymentId } from '../shared/core.BhpgpOep.mjs';
2
+ import { E as ExclusiveUnion } from '../shared/core.DgesAwC8.mjs';
3
3
  import 'type-fest';
4
4
  import '../shared/core.DX-WYEPA.mjs';
5
5
 
@@ -1,11 +1,11 @@
1
- import { N as NonEmptyArray } from '../shared/core.DrvfVXkh.mjs';
2
- export { C as Coalesce, E as ExclusiveUnion, I as IterableContainer, c as IteratorLike, K as KeysOf, L as Link, b as NTuple, a as NonEmptyReadonlyArray, P as Predicate, R as ReorderedArray } from '../shared/core.DrvfVXkh.mjs';
3
- export { A as Any, A as AnyAux, a as Aux, E as ExtractOnStage, M as ModelStage, S as SpecAux, U as Unknown, b as UnknownComputed, c as UnknownLayouted, d as UnknownParsed, e as _stage, f as _type, _ as aux, i as isOnStage } from '../shared/core.D_fI5Lf6.mjs';
4
- export { A as AndOperator, a as EqualOperator, E as Expression, j as Filterable, F as FqnExpr, K as KindEqual, N as NotOperator, k as OperatorPredicate, O as OrOperator, c as Participant, d as ParticipantOperator, P as PredicateSelector, R as RelationExpr, T as TagEqual, W as WhereOperator, g as isAndOperator, b as isKindEqual, f as isNotOperator, h as isOrOperator, e as isParticipantOperator, i as isTagEqual, w as whereOperatorAsPredicate } from '../shared/core.BbThmf6M.mjs';
1
+ import { N as NonEmptyArray } from '../shared/core.DgesAwC8.mjs';
2
+ export { C as Coalesce, E as ExclusiveUnion, I as IterableContainer, c as IteratorLike, K as KeysOf, L as Link, b as NTuple, a as NonEmptyReadonlyArray, P as Predicate, R as ReorderedArray, o as omitUndefined } from '../shared/core.DgesAwC8.mjs';
3
+ export { A as Any, A as AnyAux, a as Aux, E as ExtractOnStage, M as ModelStage, S as SpecAux, U as Unknown, b as UnknownComputed, c as UnknownLayouted, d as UnknownParsed, f as _stage, g as _type, _ as aux, i as isOnStage, p as preferDescription, e as preferSummary } from '../shared/core.BhpgpOep.mjs';
4
+ export { A as AndOperator, a as EqualOperator, E as Expression, j as Filterable, F as FqnExpr, K as KindEqual, N as NotOperator, k as OperatorPredicate, O as OrOperator, c as Participant, d as ParticipantOperator, P as PredicateSelector, R as RelationExpr, T as TagEqual, W as WhereOperator, g as isAndOperator, b as isKindEqual, f as isNotOperator, h as isOrOperator, e as isParticipantOperator, i as isTagEqual, w as whereOperatorAsPredicate } from '../shared/core.CUG6vpyL.mjs';
5
5
  export { ModelExpression, ModelFqnExpr, ModelRelationExpr } from './expression-model.mjs';
6
6
  export { FqnRef } from './fqnRef.mjs';
7
- import { at as ViewManualLayout, ao as AutoLayoutDirection } from '../shared/core.Bpou6c2f.mjs';
8
- export { O as AbstractRelationship, ai as AnyExcludePredicate, ah as AnyIncludePredicate, a4 as AnyView, aj as AnyViewRuleStyle, u as AuxFromDump, A as AuxFromLikeC4ModelData, B as BBox, aw as BaseParsedViewProperties, av as BaseViewProperties, aD as ComputedDeploymentView, aE as ComputedDynamicView, aB as ComputedEdge, aC as ComputedElementView, C as ComputedLikeC4ModelData, aA as ComputedNode, a2 as ComputedView, K as DefaultArrowType, w as DefaultElementShape, J as DefaultLineStyle, z as DefaultPaddingSize, N as DefaultRelationshipColor, y as DefaultShapeSize, x as DefaultSize, E as DefaultTextSize, v as DefaultThemeColor, k as DeployedInstance, l as DeploymentElement, m as DeploymentElementRef, D as DeploymentElementStyle, j as DeploymentNode, q as DeploymentRelation, p as DeploymentRelationship, aL as DeploymentViewExcludePredicate, aK as DeploymentViewIncludePredicate, aM as DeploymentViewPredicate, aO as DeploymentViewRule, aN as DeploymentViewRuleStyle, aG as DiagramEdge, aF as DiagramNode, a0 as DiagramView, aW as DynamicViewDisplayVariant, aU as DynamicViewIncludeRule, aR as DynamicViewParallelSteps, aV as DynamicViewRule, aQ as DynamicViewStep, aT as DynamicViewStepOrParallel, I as Element, U as ElementSpecification, F as ElementStyle, a_ as ElementViewExcludePredicate, aZ as ElementViewIncludePredicate, a$ as ElementViewPredicate, b3 as ElementViewRule, b0 as ElementViewRuleGroup, b2 as ElementViewRuleStyle, e as GlobalDynamicPredicates, G as GlobalPredicateId, d as GlobalPredicates, f as GlobalStyleID, g as GlobalStyles, aI as LayoutedDeploymentView, aJ as LayoutedDynamicView, aH as LayoutedElementView, L as LayoutedLikeC4ModelData, a0 as LayoutedView, i as LikeC4ModelData, s as LikeC4ModelDump, _ as LikeC4Project, $ as LikeC4View, M as ModelGlobals, T as ModelRelation, ax as NodeNotation, aP as ParsedDeploymentView, aX as ParsedDynamicView, b4 as ParsedElementView, h as ParsedLikeC4ModelData, $ as ParsedView, P as Point, a3 as ProcessedView, t as ProjectDump, c as RectBox, Q as Relationship, Y as RelationshipSpecification, R as RichText, a as RichTextEmpty, b as RichTextOrEmpty, r as SpecTypesFromDump, Z as Specification, S as SpecificationDump, V as TagSpecification, as as ViewAutoLayout, a5 as ViewOnStage, a7 as ViewRule, aq as ViewRuleAutoLayout, am as ViewRuleGlobalPredicateRef, ak as ViewRuleGlobalStyle, a8 as ViewRulePredicate, au as ViewType, az as ViewWithHash, ay as ViewWithNotation, a6 as ViewWithType, X as XYPoint, H as ensureSizes, aS as getParallelStepsPrefix, ap as isAutoLayoutDirection, ab as isComputedView, o as isDeployedInstance, n as isDeploymentNode, af as isDeploymentView, a1 as isDiagramView, ag as isDynamicView, aY as isDynamicViewParallelSteps, ac as isElementView, ae as isExtendsElementView, a1 as isLayoutedView, ad as isScopedElementView, W as isTagColorSpecified, ar as isViewRuleAutoLayout, an as isViewRuleGlobalPredicateRef, al as isViewRuleGlobalStyle, b1 as isViewRuleGroup, a9 as isViewRulePredicate, aa as isViewRuleStyle } from '../shared/core.Bpou6c2f.mjs';
7
+ import { at as ViewManualLayout, ao as AutoLayoutDirection } from '../shared/core.D-ZGWDDt.mjs';
8
+ export { O as AbstractRelationship, ai as AnyExcludePredicate, ah as AnyIncludePredicate, a4 as AnyView, aj as AnyViewRuleStyle, u as AuxFromDump, A as AuxFromLikeC4ModelData, B as BBox, aw as BaseParsedViewProperties, av as BaseViewProperties, aD as ComputedDeploymentView, aE as ComputedDynamicView, aB as ComputedEdge, aC as ComputedElementView, C as ComputedLikeC4ModelData, aA as ComputedNode, a2 as ComputedView, K as DefaultArrowType, w as DefaultElementShape, J as DefaultLineStyle, z as DefaultPaddingSize, N as DefaultRelationshipColor, y as DefaultShapeSize, x as DefaultSize, E as DefaultTextSize, v as DefaultThemeColor, k as DeployedInstance, l as DeploymentElement, m as DeploymentElementRef, D as DeploymentElementStyle, j as DeploymentNode, q as DeploymentRelation, p as DeploymentRelationship, aL as DeploymentViewExcludePredicate, aK as DeploymentViewIncludePredicate, aM as DeploymentViewPredicate, aO as DeploymentViewRule, aN as DeploymentViewRuleStyle, aG as DiagramEdge, aF as DiagramNode, a0 as DiagramView, aW as DynamicViewDisplayVariant, aU as DynamicViewIncludeRule, aR as DynamicViewParallelSteps, aV as DynamicViewRule, aQ as DynamicViewStep, aT as DynamicViewStepOrParallel, I as Element, U as ElementSpecification, F as ElementStyle, a_ as ElementViewExcludePredicate, aZ as ElementViewIncludePredicate, a$ as ElementViewPredicate, b3 as ElementViewRule, b0 as ElementViewRuleGroup, b2 as ElementViewRuleStyle, e as GlobalDynamicPredicates, G as GlobalPredicateId, d as GlobalPredicates, f as GlobalStyleID, g as GlobalStyles, aI as LayoutedDeploymentView, aJ as LayoutedDynamicView, aH as LayoutedElementView, L as LayoutedLikeC4ModelData, a0 as LayoutedView, i as LikeC4ModelData, s as LikeC4ModelDump, _ as LikeC4Project, $ as LikeC4View, M as ModelGlobals, T as ModelRelation, ax as NodeNotation, aP as ParsedDeploymentView, aX as ParsedDynamicView, b4 as ParsedElementView, h as ParsedLikeC4ModelData, $ as ParsedView, P as Point, a3 as ProcessedView, t as ProjectDump, c as RectBox, Q as Relationship, Y as RelationshipSpecification, R as RichText, a as RichTextEmpty, b as RichTextOrEmpty, r as SpecTypesFromDump, Z as Specification, S as SpecificationDump, V as TagSpecification, as as ViewAutoLayout, a5 as ViewOnStage, a7 as ViewRule, aq as ViewRuleAutoLayout, am as ViewRuleGlobalPredicateRef, ak as ViewRuleGlobalStyle, a8 as ViewRulePredicate, au as ViewType, az as ViewWithHash, ay as ViewWithNotation, a6 as ViewWithType, X as XYPoint, H as ensureSizes, aS as getParallelStepsPrefix, ap as isAutoLayoutDirection, ab as isComputedView, o as isDeployedInstance, n as isDeploymentNode, af as isDeploymentView, a1 as isDiagramView, ag as isDynamicView, aY as isDynamicViewParallelSteps, ac as isElementView, ae as isExtendsElementView, a1 as isLayoutedView, ad as isScopedElementView, W as isTagColorSpecified, ar as isViewRuleAutoLayout, an as isViewRuleGlobalPredicateRef, al as isViewRuleGlobalStyle, b1 as isViewRuleGroup, a9 as isViewRulePredicate, aa as isViewRuleStyle } from '../shared/core.D-ZGWDDt.mjs';
9
9
  import { F as Fqn, D as DeploymentFqn } from '../shared/core.DX-WYEPA.mjs';
10
10
  export { A as AnyFqn, B as BuiltInIcon, b as DeploymentKind, j as EdgeId, E as ElementKind, e as GlobalFqn, G as GroupElementKind, I as Icon, a as IconUrl, M as MarkdownOrString, N as NodeId, P as ProjectId, d as RelationId, R as RelationKind, c as RelationshipKind, k as StepEdgeId, S as StepEdgeIdLiteral, m as StepEdgeKind, T as Tag, V as ViewId, o as extractStep, f as flattenMarkdownOrString, g as isGlobalFqn, i as isGroupElementKind, n as isStepEdgeId, s as scalar, h as splitGlobalFqn, l as stepEdgeId } from '../shared/core.DX-WYEPA.mjs';
11
11
  import { b as BorderStyle, c as ElementShape, h as ThemeColor } from '../shared/core.CzdwsPmY.mjs';
@@ -1,9 +1,9 @@
1
- export { _ as aux } from './_aux.mjs';
2
- export { _ as _stage, a as _type, h as isAndOperator, c as isDeployedInstance, b as isDeploymentNode, e as isKindEqual, g as isNotOperator, i as isOnStage, j as isOrOperator, f as isParticipantOperator, d as isTagEqual, w as whereOperatorAsPredicate } from '../shared/core.yHe79zEl.mjs';
1
+ export { n as getParallelStepsPrefix, l as isAutoLayoutDirection, b as isComputedView, g as isDeploymentView, c as isDiagramView, h as isDynamicView, p as isDynamicViewParallelSteps, d as isElementView, f as isExtendsElementView, c as isLayoutedView, e as isScopedElementView, m as isViewRuleAutoLayout, k as isViewRuleGlobalPredicateRef, j as isViewRuleGlobalStyle, q as isViewRuleGroup, i as isViewRulePredicate, a as isViewRuleStyle, o as omitUndefined } from '../shared/core.DJp8fgok.mjs';
2
+ export { _ as aux, p as preferDescription, a as preferSummary } from '../shared/core.BazD6cot.mjs';
3
+ export { _ as _stage, a as _type, h as isAndOperator, c as isDeployedInstance, b as isDeploymentNode, e as isKindEqual, g as isNotOperator, i as isOnStage, j as isOrOperator, f as isParticipantOperator, d as isTagEqual, w as whereOperatorAsPredicate } from '../shared/core.CXy1NLUG.mjs';
3
4
  export { Expression, FqnExpr, RelationExpr } from './expression.mjs';
4
5
  export { ModelExpression, ModelFqnExpr, ModelRelationExpr } from './expression-model.mjs';
5
6
  export { FqnRef } from './fqnRef.mjs';
6
7
  export { B as BBox, a as BorderStyles, E as ElementShapes, R as RectBox, T as ThemeColors, i as isTagColorSpecified, b as isThemeColor } from '../shared/core.6_Vp2iiN.mjs';
7
- export { h as DefaultArrowType, a as DefaultElementShape, g as DefaultLineStyle, d as DefaultPaddingSize, i as DefaultRelationshipColor, c as DefaultShapeSize, b as DefaultSize, e as DefaultTextSize, D as DefaultThemeColor, R as RichText, f as ensureSizes } from '../shared/core.DHQ32OHa.mjs';
8
+ export { h as DefaultArrowType, a as DefaultElementShape, g as DefaultLineStyle, d as DefaultPaddingSize, i as DefaultRelationshipColor, c as DefaultShapeSize, b as DefaultSize, e as DefaultTextSize, D as DefaultThemeColor, R as RichText, f as ensureSizes } from '../shared/core.Ae86Y3tB.mjs';
8
9
  export { D as DeploymentFqn, E as EdgeId, F as Fqn, a as GlobalFqn, G as GroupElementKind, N as NodeId, P as ProjectId, R as RelationId, S as StepEdgeKind, V as ViewId, g as extractStep, f as flattenMarkdownOrString, b as isGlobalFqn, i as isGroupElementKind, e as isStepEdgeId, s as scalar, c as splitGlobalFqn, d as stepEdgeId } from '../shared/core.Be1n9a0i.mjs';
9
- export { n as getParallelStepsPrefix, l as isAutoLayoutDirection, b as isComputedView, g as isDeploymentView, c as isDiagramView, h as isDynamicView, o as isDynamicViewParallelSteps, d as isElementView, f as isExtendsElementView, c as isLayoutedView, e as isScopedElementView, m as isViewRuleAutoLayout, k as isViewRuleGlobalPredicateRef, j as isViewRuleGlobalStyle, p as isViewRuleGroup, i as isViewRulePredicate, a as isViewRuleStyle } from '../shared/core.T-eLZTW_.mjs';
@@ -1,6 +1,6 @@
1
1
  export { D as DefaultMap } from '../shared/core.CywrQs86.mjs';
2
- export { B as BiMap, D as DefaultWeakMap, L as LinkedList, M as MultiMap, Q as Queue, a as ancestorsFqn, k as commonAncestor, l as compareByFqnHierarchically, o as compareFqnHierarchically, q as hierarchyDistance, r as hierarchyLevel, i as invariant, b as isAncestor, c as isDescendantOf, d as isNonEmptyArray, e as isSameHierarchy, f as isString, m as memoizeProp, n as nameFromFqn, h as nonNullable, g as nonexhaustive, p as parentFqn, t as sortByFqnHierarchically, s as sortNaturalByFqn, j as sortParentsFirst } from '../shared/core.vWJTxpLV.mjs';
3
- import { N as NonEmptyArray } from '../shared/core.DrvfVXkh.mjs';
2
+ export { B as BiMap, D as DefaultWeakMap, L as LinkedList, M as MultiMap, Q as Queue, a as ancestorsFqn, k as commonAncestor, l as compareByFqnHierarchically, o as compareFqnHierarchically, q as hierarchyDistance, r as hierarchyLevel, i as invariant, b as isAncestor, c as isDescendantOf, d as isNonEmptyArray, e as isSameHierarchy, f as isString, m as memoizeProp, n as nameFromFqn, h as nonNullable, g as nonexhaustive, p as parentFqn, t as sortByFqnHierarchically, s as sortNaturalByFqn, j as sortParentsFirst } from '../shared/core.FUPplpae.mjs';
3
+ import { N as NonEmptyArray } from '../shared/core.DgesAwC8.mjs';
4
4
  export { ifilter, ifind, ifirst, iflat, ihead, imap, ireduce, isome, iunique, toArray, toSet } from './iterable/index.mjs';
5
5
  export { i as isIterable } from '../shared/core.DXhDWKFZ.mjs';
6
6
  import '../shared/core.DX-WYEPA.mjs';
@@ -1,5 +1,5 @@
1
1
  export { i as isIterable } from '../../shared/core.DXhDWKFZ.mjs';
2
- import { c as IteratorLike } from '../../shared/core.DrvfVXkh.mjs';
2
+ import { c as IteratorLike } from '../../shared/core.DgesAwC8.mjs';
3
3
  import 'type-fest';
4
4
 
5
5
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@likec4/core",
3
- "version": "1.40.0",
3
+ "version": "1.41.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://likec4.dev",
6
6
  "author": "Denis Davydkov <denis@davydkov.com>",
@@ -126,7 +126,7 @@
126
126
  "typescript": "5.9.2",
127
127
  "unbuild": "3.5.0",
128
128
  "vitest": "3.2.4",
129
- "@likec4/tsconfig": "1.40.0"
129
+ "@likec4/tsconfig": "1.41.0"
130
130
  },
131
131
  "scripts": {
132
132
  "typecheck": "tsc -b --verbose",