@meltemi/diagrams-edit 1.9.0 → 1.10.17

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 (78) hide show
  1. package/dist/animate.d.ts.map +1 -1
  2. package/dist/animate.js +3 -0
  3. package/dist/animate.js.map +1 -1
  4. package/dist/attachments.d.ts +30 -0
  5. package/dist/attachments.d.ts.map +1 -0
  6. package/dist/attachments.js +85 -0
  7. package/dist/attachments.js.map +1 -0
  8. package/dist/c4.d.ts +26 -1
  9. package/dist/c4.d.ts.map +1 -1
  10. package/dist/c4.js +321 -27
  11. package/dist/c4.js.map +1 -1
  12. package/dist/context.d.ts +7 -0
  13. package/dist/context.d.ts.map +1 -1
  14. package/dist/context.js +15 -0
  15. package/dist/context.js.map +1 -1
  16. package/dist/create.d.ts.map +1 -1
  17. package/dist/create.js +61 -15
  18. package/dist/create.js.map +1 -1
  19. package/dist/free.d.ts.map +1 -1
  20. package/dist/free.js +97 -9
  21. package/dist/free.js.map +1 -1
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/insert.d.ts +39 -1
  27. package/dist/insert.d.ts.map +1 -1
  28. package/dist/insert.js +128 -2
  29. package/dist/insert.js.map +1 -1
  30. package/dist/labels.d.ts.map +1 -1
  31. package/dist/labels.js +7 -9
  32. package/dist/labels.js.map +1 -1
  33. package/dist/lines.d.ts +16 -0
  34. package/dist/lines.d.ts.map +1 -0
  35. package/dist/lines.js +123 -0
  36. package/dist/lines.js.map +1 -0
  37. package/dist/messages/en.d.ts +105 -1
  38. package/dist/messages/en.d.ts.map +1 -1
  39. package/dist/messages/en.js +108 -2
  40. package/dist/messages/en.js.map +1 -1
  41. package/dist/messages/es.d.ts.map +1 -1
  42. package/dist/messages/es.js +69 -2
  43. package/dist/messages/es.js.map +1 -1
  44. package/dist/messages/index.d.ts +61 -1
  45. package/dist/messages/index.d.ts.map +1 -1
  46. package/dist/pens.d.ts +16 -0
  47. package/dist/pens.d.ts.map +1 -0
  48. package/dist/pens.js +175 -0
  49. package/dist/pens.js.map +1 -0
  50. package/dist/plan.d.ts.map +1 -1
  51. package/dist/plan.js +125 -20
  52. package/dist/plan.js.map +1 -1
  53. package/dist/relations.d.ts +1 -1
  54. package/dist/relations.d.ts.map +1 -1
  55. package/dist/relations.js +35 -16
  56. package/dist/relations.js.map +1 -1
  57. package/dist/sequence.d.ts +13 -2
  58. package/dist/sequence.d.ts.map +1 -1
  59. package/dist/sequence.js +342 -31
  60. package/dist/sequence.js.map +1 -1
  61. package/dist/structure.d.ts +7 -5
  62. package/dist/structure.d.ts.map +1 -1
  63. package/dist/structure.js +49 -49
  64. package/dist/structure.js.map +1 -1
  65. package/dist/styles.d.ts.map +1 -1
  66. package/dist/styles.js +8 -3
  67. package/dist/styles.js.map +1 -1
  68. package/dist/tags.d.ts +19 -0
  69. package/dist/tags.d.ts.map +1 -0
  70. package/dist/tags.js +159 -0
  71. package/dist/tags.js.map +1 -0
  72. package/dist/text.d.ts +4 -0
  73. package/dist/text.d.ts.map +1 -1
  74. package/dist/text.js +9 -0
  75. package/dist/text.js.map +1 -1
  76. package/dist/types.d.ts +270 -21
  77. package/dist/types.d.ts.map +1 -1
  78. package/package.json +8 -8
package/dist/plan.js CHANGED
@@ -1,8 +1,11 @@
1
+ import { createLine, setLinePoints } from "./lines.js";
2
+ import { createPen, setPenPoints } from "./pens.js";
1
3
  import { applyTextEdits, invertTextEdits, isIdentifierText, isToken, parse, tokensOf, } from "@meltemi/diagrams-language";
2
- import { compile, singleIdent, } from "@meltemi/diagrams-model";
3
- import { Rejected, createContext, createTextContext, insertStatement, reject, requireElement, requireNamedRelation, requireNumbers, } from "./context.js";
4
- import { createEntity, createModelContext, createModelRelation, excludeEntity, includeEntity, isCombination, refuseInView, removeEntity, removeModelRelation, renameEntity, setEntityProperty, setLocalLabel, setModelRelationProperty, } from "./c4.js";
4
+ import { compile, relationLabelSpan, relationNameAnchor, singleIdent, } from "@meltemi/diagrams-model";
5
+ import { Rejected, createContext, createTextContext, insertStatement, isListGroup, reject, requireElement, requireNamedRelation, requireNumbers, } from "./context.js";
6
+ import { createEntity, createModelContext, createModelRelation, excludeEntity, forgetModelRelation, includeEntity, isCombination, reconnectModelRelation, rewriteRouteEnd, refuseInView, removeEntity, removeModelRelation, renameEntity, setEntityProperty, setLocalLabel, setModelRelationProperty, } from "./c4.js";
5
7
  import { composeEdits, planBatch } from "./batch.js";
8
+ import { attachmentDependent, attachNote } from "./attachments.js";
6
9
  import { createElement, createRelation, requirePortOf, usedIds } from "./create.js";
7
10
  import { deleteStatements } from "./delete.js";
8
11
  import { createDiagram } from "./diagrams.js";
@@ -12,9 +15,10 @@ import { messages, reasons } from "./messages/index.js";
12
15
  import { setClasses, setDescription, setElementKind, setElementLabel } from "./labels.js";
13
16
  import { reconnectRelation, removeRelation, renameRelation, setRelationLine } from "./relations.js";
14
17
  import { convertToFree, removedLinks, renameLayer, renameLinks, reorderElement, setElementProperty, setElementSource, } from "./free.js";
15
- import { addBranch, insertEvent, moveEvent, participantEvents, refuseFlowGeometry, eventIdsOf, removeEvent, renameEvent, setEventText, setFragmentOperator, setNotePlacement, toggleActivation, reorderParticipant, setFragmentCondition, setSpacing, unwrapFragment, wrapInFragment, } from "./sequence.js";
18
+ import { addBranch, insertEvent, moveEvent, participantEvents, nestedInCalls, refuseFlowGeometry, eventIdsOf, removeEvent, renameEvent, setEventText, setFragmentOperator, setNotePlacement, toggleActivation, reorderParticipant, setFragmentCondition, setSpacing, nestInCall, unnestCall, unwrapFragment, wrapInFragment, } from "./sequence.js";
16
19
  import { addPort, convertToContainer, groupElements, insertFragment, moveElement, removePort, ungroup, } from "./structure.js";
17
20
  import { setDiagramProperty, setStyleProperty } from "./styles.js";
21
+ import { addTag, removeTag, setTag } from "./tags.js";
18
22
  import { removeAnimation, setAnimation } from "./animate.js";
19
23
  import { createTheme, removeThemeToken, setThemeToken } from "./themes.js";
20
24
  import { insertScene, insertStoryAction, removeStoryAction, renameInStories, setStoryTiming, storyDependents, } from "./stories.js";
@@ -90,6 +94,8 @@ function runModel(ctx, operation) {
90
94
  return setEntityProperty(ctx, operation);
91
95
  case "createModelRelation":
92
96
  return createModelRelation(ctx, operation);
97
+ case "reconnectModelRelation":
98
+ return reconnectModelRelation(ctx, operation);
93
99
  case "removeModelRelation":
94
100
  return removeModelRelation(ctx, operation);
95
101
  case "setModelRelationProperty":
@@ -122,9 +128,10 @@ function run(ctx, operation) {
122
128
  if (["setPosition", "setSize", "setRoute", "arrange"].includes(operation.kind)) {
123
129
  refuseFlowGeometry(ctx, operation.kind);
124
130
  }
125
- // A move between groups and a conversion to a container explain their own refusal in C4 views.
126
- if (operation.kind !== "moveElement" && operation.kind !== "convertToContainer") {
127
- refuseInView(ctx, operation.kind);
131
+ // A move between groups, a conversion to a container and the tag operations explain their own
132
+ // refusal in C4 views.
133
+ if (!["moveElement", "convertToContainer", "addTag", "setTag", "removeTag"].includes(operation.kind)) {
134
+ refuseInView(ctx, operation);
128
135
  }
129
136
  if (operation.kind === "setRelationLabel" &&
130
137
  ctx.diagram.type === "c4" &&
@@ -157,8 +164,18 @@ function run(ctx, operation) {
157
164
  return arrange(ctx, operation);
158
165
  case "createElement":
159
166
  return createElement(ctx, operation);
167
+ case "attachNote":
168
+ return attachNote(ctx, operation);
160
169
  case "createRelation":
161
170
  return createRelation(ctx, operation);
171
+ case "createLine":
172
+ return createLine(ctx, operation);
173
+ case "setLinePoints":
174
+ return setLinePoints(ctx, operation);
175
+ case "createPen":
176
+ return createPen(ctx, operation);
177
+ case "setPenPoints":
178
+ return setPenPoints(ctx, operation);
162
179
  case "renameRelation":
163
180
  return renameRelation(ctx, operation);
164
181
  case "removeRelation":
@@ -217,6 +234,10 @@ function run(ctx, operation) {
217
234
  return insertEvent(ctx, operation);
218
235
  case "wrapInFragment":
219
236
  return wrapInFragment(ctx, operation);
237
+ case "nestInCall":
238
+ return nestInCall(ctx, operation);
239
+ case "unnestCall":
240
+ return unnestCall(ctx, operation);
220
241
  case "unwrapFragment":
221
242
  return unwrapFragment(ctx, operation);
222
243
  case "addBranch":
@@ -231,6 +252,10 @@ function run(ctx, operation) {
231
252
  return excludeEntity(ctx, operation);
232
253
  case "setLocalLabel":
233
254
  return setLocalLabel(ctx, operation);
255
+ case "forgetModelRelation":
256
+ return forgetModelRelation(ctx, operation);
257
+ case "rewriteRouteEnd":
258
+ return rewriteRouteEnd(ctx, operation);
234
259
  case "renameEvent":
235
260
  return renameEvent(ctx, operation);
236
261
  case "toggleActivation":
@@ -241,6 +266,12 @@ function run(ctx, operation) {
241
266
  return setNotePlacement(ctx, operation);
242
267
  case "setFragmentOperator":
243
268
  return setFragmentOperator(ctx, operation);
269
+ case "addTag":
270
+ return addTag(ctx, operation);
271
+ case "setTag":
272
+ return setTag(ctx, operation);
273
+ case "removeTag":
274
+ return removeTag(ctx, operation);
244
275
  }
245
276
  }
246
277
  /** Safety net: a plan must never make the document syntactically worse. */
@@ -299,7 +330,7 @@ function pointEdits(tuple, point) {
299
330
  }
300
331
  export function setPosition(ctx, op) {
301
332
  requireNumbers(op.x, op.y);
302
- requireElement(ctx, op.element);
333
+ refuseLine(requireElement(ctx, op.element));
303
334
  // Dragging a box in an automatic view switches it to `assisted` (decision 0015).
304
335
  const mode = assistedMode(ctx);
305
336
  const entry = findEntry(ctx, "place", op.element);
@@ -311,6 +342,13 @@ export function setPosition(ctx, op) {
311
342
  insertPlacement(ctx, `place ${op.element} at ${formatPoint({ x: op.x, y: op.y })}`),
312
343
  ];
313
344
  }
345
+ /** A free line or a pen takes no `place` or `size`: its points are written in its statement. */
346
+ function refuseLine(element) {
347
+ if (element.kind === "line")
348
+ reject("edit.invalid-value", reasons().lines.points(element.id));
349
+ if (element.kind === "pen")
350
+ reject("edit.invalid-value", reasons().pens.points(element.id));
351
+ }
314
352
  /** Edits that turn `layout auto`, written or implied, into `layout assisted`. */
315
353
  function assistedMode(ctx) {
316
354
  if (ctx.diagram.properties.layout !== "auto")
@@ -348,18 +386,27 @@ function assistedMode(ctx) {
348
386
  { start: newline.start, end: newline.start, newText: `${ctx.eol}${indent}layout assisted` },
349
387
  ];
350
388
  }
351
- /** Writes arranged positions as `place` statements and switches the diagram to `assisted`. */
389
+ /**
390
+ * Writes arranged positions as `place` statements and switches the diagram to `assisted`. A list
391
+ * group places its children and grows with them, so its children get no `place` and it gets no
392
+ * `size` from an arrangement. Free lines and pens hold their points in their statements and
393
+ * refuse a `place`, so they get none either.
394
+ */
352
395
  function arrange(ctx, op) {
353
396
  const edits = [...assistedMode(ctx)];
354
397
  const inserted = [];
355
398
  for (const [id, point] of op.positions) {
356
399
  const element = requireElement(ctx, id);
400
+ if (element.kind === "line" || element.kind === "pen")
401
+ continue;
402
+ if (isListGroup(ctx, element.groupPath[element.groupPath.length - 1]))
403
+ continue;
357
404
  const rounded = { x: Math.round(point.x), y: Math.round(point.y) };
358
405
  requireNumbers(rounded.x, rounded.y);
359
406
  if (element.kind === "group") {
360
407
  const place = findEntry(ctx, "place", id);
361
408
  const size = findEntry(ctx, "size", id);
362
- const box = op.sizes?.get(id);
409
+ const box = element.list === null ? op.sizes?.get(id) : undefined;
363
410
  const dimensions = box ? { x: Math.round(box.width), y: Math.round(box.height) } : undefined;
364
411
  if (dimensions)
365
412
  requireNumbers(dimensions.x, dimensions.y);
@@ -451,8 +498,7 @@ function arrange(ctx, op) {
451
498
  if (ctx.diagram.type === "c4" || !relation.node)
452
499
  continue;
453
500
  id = relationId(ctx, relation, named);
454
- const node = relation.node;
455
- const anchor = node.label && isToken(node.label) ? node.label.end : node.target.end;
501
+ const anchor = relationNameAnchor(relation);
456
502
  edits.push({ start: anchor, end: anchor, newText: ` as ${id}` });
457
503
  }
458
504
  guardInvalidStatement(ctx, "route", relation.key);
@@ -529,7 +575,7 @@ export function setSize(ctx, op) {
529
575
  requireNumbers(op.width, op.height);
530
576
  if (op.width <= 0 || op.height <= 0)
531
577
  reject("edit.invalid-value", reasons().values.positiveSize);
532
- requireElement(ctx, op.element);
578
+ refuseLine(requireElement(ctx, op.element));
533
579
  const entry = findEntry(ctx, "size", op.element);
534
580
  if (entry)
535
581
  return pointEdits(entry.node.args[1], { x: op.width, y: op.height });
@@ -612,7 +658,9 @@ function setRoute(ctx, op) {
612
658
  return [insertPlacement(ctx, `route ${relation.key} from ${from} to ${to}${via}`)];
613
659
  }
614
660
  function setLabelAnchor(ctx, op) {
615
- const relation = requireNamedRelation(ctx, op.relation);
661
+ // A free line's pill is placed as a relation's, by the line's id.
662
+ const line = ctx.diagram.elementsById.get(op.relation);
663
+ const relation = line?.kind === "line" ? { key: line.id } : requireNamedRelation(ctx, op.relation);
616
664
  requireNumbers(op.at, op.offset.x, op.offset.y);
617
665
  if (op.at < 0 || op.at > 100)
618
666
  reject("edit.invalid-value", reasons().placement.labelPosition);
@@ -640,6 +688,18 @@ function setLabelAnchor(ctx, op) {
640
688
  function setRelationLabel(ctx, op) {
641
689
  const relation = requireNamedRelation(ctx, op.relation);
642
690
  const node = relation.node;
691
+ if (node.kind === "KeywordStatement") {
692
+ // A `return`'s label is the string right after the keyword.
693
+ const span = relationLabelSpan(relation);
694
+ if (op.label === null)
695
+ return span ? [{ start: node.keyword.end, end: span.end, newText: "" }] : [];
696
+ const text = quoteString(op.label);
697
+ if (!span)
698
+ return [{ start: node.keyword.end, end: node.keyword.end, newText: ` ${text}` }];
699
+ return ctx.text.slice(span.start, span.end) === text
700
+ ? []
701
+ : [{ start: span.start, end: span.end, newText: text }];
702
+ }
643
703
  const label = node.label && isToken(node.label) ? node.label : undefined;
644
704
  if (op.label === null) {
645
705
  if (!label || !node.colon)
@@ -671,9 +731,12 @@ function materializeRelationId(ctx, op) {
671
731
  reject("edit.unsafe-target", reasons().relations.missing(op.relationKey, ctx.diagram.id));
672
732
  if (relation.id !== null)
673
733
  reject("edit.already-named", reasons().relations.alreadyNamed(relation.id));
734
+ // A C4 view names its own combinations; the relations it draws from the model are named there.
735
+ if (ctx.diagram.type === "c4" && !ctx.diagram.c4?.combined.includes(relation.key)) {
736
+ reject("edit.unsafe-target", reasons().c4.nameInModel(relation.key));
737
+ }
674
738
  requireNewId(ctx, op.id);
675
- const node = relation.node;
676
- const anchor = node.label && isToken(node.label) ? node.label.end : node.target.end;
739
+ const anchor = relationNameAnchor(relation);
677
740
  return [{ start: anchor, end: anchor, newText: ` as ${op.id}` }];
678
741
  }
679
742
  // ---------------------------------------------------------------------- rename
@@ -743,6 +806,15 @@ function removeElement(ctx, op) {
743
806
  const removedRelations = diagram.relations.filter((r) => removedElements.has(r.from) ||
744
807
  removedElements.has(r.to) ||
745
808
  r.groupPath.some((g) => removedElements.has(g)));
809
+ // A call goes with the events of its block: its messages and returns, notes and fragments.
810
+ const nested = nestedInCalls(ctx, new Set(removedRelations.map((r) => r.key)));
811
+ for (const event of nested) {
812
+ if (event.kind !== "message")
813
+ continue;
814
+ const relation = diagram.relationsByKey.get(event.relation);
815
+ if (!removedRelations.includes(relation))
816
+ removedRelations.push(relation);
817
+ }
746
818
  const removedRelationIds = new Set(removedRelations.flatMap((r) => (r.id === null ? [] : [r.id])));
747
819
  const statements = [];
748
820
  const dependents = [];
@@ -762,17 +834,43 @@ function removeElement(ctx, op) {
762
834
  if (other.id !== element.id && removedElements.has(other.id) && other.node)
763
835
  depend("element", other.id, other.node);
764
836
  }
837
+ // A note attached to what goes stays, without its clause: its text is the person's words.
838
+ const attachmentEdits = [];
839
+ for (const other of diagram.elements) {
840
+ if (other.attachedTo === null || removedElements.has(other.id))
841
+ continue;
842
+ if (!removedElements.has(other.attachedTo))
843
+ continue;
844
+ const attached = attachmentDependent(ctx, other);
845
+ if (!attached)
846
+ continue;
847
+ dependents.push(attached.dependent);
848
+ attachmentEdits.push(attached.edit);
849
+ }
765
850
  for (const relation of removedRelations)
766
851
  depend("relation", relation.key, relation.node);
767
852
  for (const entry of diagram.placement) {
768
853
  const target = entry.statement === "place" || entry.statement === "size" || entry.statement === "gap"
769
854
  ? removedElements
770
855
  : removedRelationIds;
771
- if (target.has(entry.target))
856
+ // A free line's label pill is placed by a `label` statement as a relation's is.
857
+ const lineLabel = entry.statement === "label" && removedElements.has(entry.target);
858
+ if (target.has(entry.target) || lineLabel)
772
859
  depend(entry.statement, entry.target, entry.node);
773
860
  }
774
- const removedEvents = participantEvents(ctx, removedElements);
861
+ const removedEvents = [
862
+ ...new Set([
863
+ ...participantEvents(ctx, removedElements),
864
+ ...nested.filter((e) => e.kind !== "message"),
865
+ ]),
866
+ ];
775
867
  const removedEventIds = eventIdsOf(removedEvents);
868
+ for (const scenario of diagram.scenarios) {
869
+ for (const choice of scenario.choices) {
870
+ if (removedEventIds.has(choice.fragment))
871
+ depend("event", choice.fragment, choice.node);
872
+ }
873
+ }
776
874
  for (const event of removedEvents) {
777
875
  depend("event", event.key, event.node);
778
876
  if (event.id !== null) {
@@ -855,14 +953,21 @@ function removeElement(ctx, op) {
855
953
  const mentions = diagram.relations.filter((r) => r.from === other.id || r.to === other.id);
856
954
  if (mentions.length === 0 || !mentions.every((r) => removedRelations.includes(r)))
857
955
  continue;
858
- const anchor = mentions[0].node;
956
+ // The declaration replaces the outermost removed statement around the first mention: a
957
+ // message inside a removed call goes with the call.
958
+ const first = mentions[0].node;
959
+ const anchor = removedRelations
960
+ .map((r) => r.node)
961
+ .filter((n) => n.start <= first.start && first.end <= n.end)
962
+ .reduce((a, b) => (b.end - b.start > a.end - a.start ? b : a), first);
859
963
  keep.set(anchor, [...(keep.get(anchor) ?? []), other.id]);
860
964
  ctx.notes.push(messages().notes.keptElement(other.id, other.kind));
861
965
  }
862
- const edits = deleteStatements(ctx.text, ctx.compilation.parse.root, statements.filter((s) => !keep.has(s)));
966
+ const edits = deleteStatements(ctx.text, ctx.compilation.parse.root, statements.filter((s) => ![...keep.keys()].some((k) => k.start <= s.start && s.end <= k.end)));
863
967
  for (const [node, indices] of partial)
864
968
  edits.push(...removeListItems(node.args, indices));
865
969
  edits.push(...constraintEdits);
970
+ edits.push(...attachmentEdits);
866
971
  edits.push(...links.edits);
867
972
  edits.push(...deleteStatements(ctx.text, ctx.compilation.parse.root, stories.statements));
868
973
  edits.push(...stories.edits);
package/dist/plan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type CstNode, type TextEdit } from "@meltemi/diagrams-language";
2
- import type { Relation } from "@meltemi/diagrams-model";
2
+ import { type Relation } from "@meltemi/diagrams-model";
3
3
  import { type EditContext } from "./context.js";
4
4
  import { type OperationOf } from "./plan.js";
5
5
  /** A relation by id or by key (`<from>-><to>#<n>`). */
@@ -1 +1 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EAEZ,KAAK,QAAQ,EAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAgD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAI9F,OAAO,EAAmD,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAI9F,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAMxE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAc9F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GACvB;IAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAwB9C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAuC9F;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,iBAAiB,CAAC,GAAG,QAAQ,EAAE,CAMhG;AASD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,WAAW,CAAC,mBAAmB,CAAC,GACnC,QAAQ,EAAE,CA8CZ"}
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,QAAQ,EAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAgD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAI9F,OAAO,EAAmD,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAK9F,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAMxE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAc9F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GACvB;IAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAwB9C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAsD9F;AAUD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,iBAAiB,CAAC,GAAG,QAAQ,EAAE,CAOhG;AASD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,WAAW,CAAC,mBAAmB,CAAC,GACnC,QAAQ,EAAE,CA8CZ"}