@floegence/floe-webapp-core 0.86.13 → 0.86.14

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.
@@ -1,48 +1,51 @@
1
- import { AvoidLib as Y } from "../../node_modules/.pnpm/libavoid-js@0.5.0-beta.5/node_modules/libavoid-js/dist/index.js";
2
- import tt from "../../node_modules/.pnpm/libavoid-js@0.5.0-beta.5/node_modules/libavoid-js/dist/libavoid.wasm.js";
3
- let _;
4
- const L = { NORTH: 1, SOUTH: 2, WEST: 4, EAST: 8 }, A = ["NORTH", "EAST", "SOUTH", "WEST"], S = (n) => n.delete();
5
- async function et(n, o = {}) {
1
+ import { AvoidLib as X } from "../../node_modules/.pnpm/libavoid-js@0.5.0-beta.5/node_modules/libavoid-js/dist/index.js";
2
+ import I from "../../node_modules/.pnpm/libavoid-js@0.5.0-beta.5/node_modules/libavoid-js/dist/libavoid.wasm.js";
3
+ let Y;
4
+ const _ = { NORTH: 1, SOUTH: 2, WEST: 4, EAST: 8 }, v = ["NORTH", "EAST", "SOUTH", "WEST"], T = (i) => i.delete();
5
+ async function st(i, o = {}) {
6
6
  const a = o.edgeClearance ?? 4;
7
7
  if (!Number.isFinite(a) || a < 0)
8
8
  throw new Error("Graph edge clearance must be finite and nonnegative");
9
- if (!n.nodes.length) return n;
10
- if (!n.edges.length) return $(n);
11
- await (_ ??= Y.load(tt).catch((r) => {
12
- throw _ = void 0, r;
9
+ if (!i.nodes.length) return i;
10
+ if (!i.edges.length) return L(i);
11
+ await (Y ??= X.load(I).catch((r) => {
12
+ throw Y = void 0, r;
13
13
  }));
14
- const i = Y.getInstance(), h = new Map(n.nodes.map((r) => [r.id, r])), l = (r) => {
15
- const c = [];
16
- for (let s = h.get(r).parentId; s; s = h.get(s).parentId)
17
- c.push(s);
18
- return c;
14
+ const n = X.getInstance(), c = new Map(i.nodes.map((r) => [r.id, r])), l = (r) => {
15
+ const h = [];
16
+ for (let s = c.get(r).parentId; s; s = c.get(s).parentId)
17
+ h.push(s);
18
+ return h;
19
19
  }, f = /* @__PURE__ */ new Map();
20
- for (const r of n.edges) {
21
- const c = /* @__PURE__ */ new Set([...l(r.source), ...l(r.target)]), s = JSON.stringify([...c].sort()), M = f.get(s) ?? { open: c, edges: [] };
20
+ for (const r of i.edges) {
21
+ const h = /* @__PURE__ */ new Set([...l(r.source), ...l(r.target)]), s = JSON.stringify([...h].sort()), M = f.get(s) ?? { open: h, edges: [] };
22
22
  M.edges.push(r), f.set(s, M);
23
23
  }
24
- const T = /* @__PURE__ */ new Map();
25
- for (const { open: r, edges: c } of f.values()) {
26
- const s = new i.Router(2);
24
+ const P = /* @__PURE__ */ new Map();
25
+ for (const { open: r, edges: h } of f.values()) {
26
+ const s = new n.Router(2);
27
27
  try {
28
- s.setRoutingParameter(i.RoutingParameter.shapeBufferDistance, a), s.setRoutingParameter(i.RoutingParameter.idealNudgingDistance, 8), s.setRoutingParameter(i.RoutingParameter.crossingPenalty, 80), s.setRoutingParameter(i.RoutingParameter.fixedSharedPathPenalty, 120), s.setRoutingParameter(i.RoutingParameter.portDirectionPenalty, 0), s.setRoutingOption(i.RoutingOption.nudgeOrthogonalSegmentsConnectedToShapes, !1), s.setRoutingOption(i.RoutingOption.nudgeSharedPathsWithCommonEndPoint, !0);
28
+ s.setRoutingParameter(n.RoutingParameter.shapeBufferDistance, a), s.setRoutingParameter(n.RoutingParameter.idealNudgingDistance, 8), s.setRoutingParameter(n.RoutingParameter.crossingPenalty, 80), s.setRoutingParameter(n.RoutingParameter.fixedSharedPathPenalty, 120), s.setRoutingParameter(n.RoutingParameter.portDirectionPenalty, 0), s.setRoutingOption(
29
+ n.RoutingOption.nudgeOrthogonalSegmentsConnectedToShapes,
30
+ !h.some((t) => t.sourcePort || t.targetPort || t.source === t.target)
31
+ ), s.setRoutingOption(n.RoutingOption.nudgeSharedPathsWithCommonEndPoint, !0);
29
32
  const M = new Map(
30
- n.nodes.filter((t) => !r.has(t.id) && l(t.id).every((e) => r.has(e))).map((t) => {
31
- const e = new i.Point(t.x, t.y), g = new i.Point(t.x + t.width, t.y + t.height), p = new i.Rectangle(e, g), x = new i.ShapeRef(s, p);
32
- return S(e), S(g), S(p), [t.id, x];
33
+ i.nodes.filter((t) => !r.has(t.id) && l(t.id).every((e) => r.has(e))).map((t) => {
34
+ const e = new n.Point(t.x, t.y), g = new n.Point(t.x + t.width, t.y + t.height), p = new n.Rectangle(e, g), x = new n.ShapeRef(s, p);
35
+ return T(e), T(g), T(p), [t.id, x];
33
36
  })
34
- ), O = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
35
- for (const t of c) {
37
+ ), O = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
38
+ for (const t of h) {
36
39
  const e = [t.source, t.target].sort().join("\0"), g = O.get(e) ?? 0;
37
- O.set(e, g + 1), E.set(t.id, g % 2 === 0 ? -6 : 6);
40
+ O.set(e, g + 1), C.set(t.id, g % 2 === 0 ? -6 : 6);
38
41
  }
39
- let Q = A.length + 2;
40
- const B = /* @__PURE__ */ new Map(), b = (t, e) => Math.max(0, Math.min(1, t / e));
41
- for (const t of n.nodes) {
42
+ let K = v.length + 2;
43
+ const W = /* @__PURE__ */ new Map(), b = (t, e) => Math.max(0, Math.min(1, t / e));
44
+ for (const t of i.nodes) {
42
45
  const e = M.get(t.id);
43
46
  if (!e) continue;
44
- const g = (p, x, w, y, m) => {
45
- const N = new i.ShapeConnectionPin(
47
+ const g = (p, x, w, y, u) => {
48
+ const N = new n.ShapeConnectionPin(
46
49
  e,
47
50
  p,
48
51
  b(x, t.width),
@@ -51,13 +54,13 @@ async function et(n, o = {}) {
51
54
  0,
52
55
  y
53
56
  );
54
- N.setExclusive(m), N.setConnectionCost(
57
+ N.setExclusive(u), N.setConnectionCost(
55
58
  t.width / 2 + t.height / 2 - Math.abs(x - t.width / 2) - Math.abs(w - t.height / 2)
56
59
  );
57
60
  };
58
61
  for (const p of new Set(t.ports?.map((x) => x.side))) {
59
- const { x, y: w } = q(t, p), y = A.indexOf(p) + 2;
60
- g(y, x - t.x, w - t.y, L[p], !1), B.set(
62
+ const { x, y: w } = $(t, p), y = v.indexOf(p) + 2;
63
+ g(y, x - t.x, w - t.y, _[p], !1), W.set(
61
64
  JSON.stringify([
62
65
  t.id,
63
66
  b(x - t.x, t.width),
@@ -68,209 +71,210 @@ async function et(n, o = {}) {
68
71
  );
69
72
  }
70
73
  }
71
- const F = /* @__PURE__ */ new Map(), Z = n.nodes.filter((t) => M.has(t.id)), J = (t, e, g, p, x, w = !1) => {
74
+ const Q = i.nodes.filter((t) => M.has(t.id)), F = (t, e, g, p, x, w = !1) => {
72
75
  const y = M.get(t.id);
73
76
  if (y && g)
74
- return new i.ConnEnd(
77
+ return new n.ConnEnd(
75
78
  y,
76
- A.indexOf(t.ports.find((d) => d.id === g).side) + 2
79
+ v.indexOf(t.ports.find((d) => d.id === g).side) + 2
77
80
  );
78
- const m = g ? [
81
+ const u = g ? [
79
82
  {
80
83
  side: t.ports.find((d) => d.id === g).side,
81
- position: q(t, t.ports.find((d) => d.id === g).side)
84
+ position: $(t, t.ports.find((d) => d.id === g).side)
82
85
  }
83
- ] : x ? [{ side: "EAST", position: x }] : (w ? [K(t, e).source] : A).flatMap((d) => {
84
- const P = nt(t, d, e, p);
85
- if (w) return [{ side: d, position: P }];
86
- const R = d === "NORTH" || d === "SOUTH", H = R ? t.x : t.y, v = R ? t.width : t.height, C = H + Math.min(8, v / 4), j = H + v - Math.min(8, v / 4);
86
+ ] : x ? [{ side: "EAST", position: x }] : (w ? [q(t, e).source] : v).flatMap((d) => {
87
+ const H = tt(t, d, e, p);
88
+ if (w) return [{ side: d, position: H }];
89
+ const R = d === "NORTH" || d === "SOUTH", A = R ? t.x : t.y, S = R ? t.width : t.height, E = A + Math.min(8, S / 4), B = A + S - Math.min(8, S / 4);
87
90
  return [
88
- R ? P.x : P.y,
89
- C,
90
- j,
91
- ...Z.flatMap((u) => {
92
- const k = R ? u.x : u.y, X = k + (R ? u.width : u.height);
93
- return [k - a, X + a, k - a - 8, X + a + 8];
94
- }).filter((u) => u >= C && u <= j)
95
- ].map((u) => ({
91
+ R ? H.x : H.y,
92
+ E,
93
+ B,
94
+ ...Q.flatMap((m) => {
95
+ const k = R ? m.x : m.y, V = k + (R ? m.width : m.height);
96
+ return [k - a, V + a, k - a - 8, V + a + 8];
97
+ }).filter((m) => m >= E && m <= B)
98
+ ].map((m) => ({
96
99
  side: d,
97
- position: R ? { x: u, y: P.y } : { x: P.x, y: u }
100
+ position: R ? { x: m, y: H.y } : { x: H.x, y: m }
98
101
  }));
99
102
  });
100
103
  if (y) {
101
- const d = (v, C) => JSON.stringify([
104
+ const d = (S, E) => JSON.stringify([
102
105
  t.id,
103
- b(C.x - t.x, t.width),
104
- b(C.y - t.y, t.height),
105
- v
106
- ]), P = !!(g || x || w), R = P ? B.get(d(m[0].side, m[0].position)) : F.get(t.id);
107
- if (P && R !== void 0) return new i.ConnEnd(y, R);
108
- const H = R ?? Q++;
109
- P || F.set(t.id, H);
110
- for (const { side: v, position: C } of m) {
111
- const j = d(v, C);
112
- if (B.has(j)) continue;
113
- B.set(j, H);
114
- const D = C.x - t.x, u = C.y - t.y, k = new i.ShapeConnectionPin(
106
+ b(E.x - t.x, t.width),
107
+ b(E.y - t.y, t.height),
108
+ S
109
+ ]), R = !!(g || x || w) || u.every(
110
+ (S) => W.has(d(S.side, S.position))
111
+ ) ? W.get(d(u[0].side, u[0].position)) : void 0;
112
+ if (R !== void 0) return new n.ConnEnd(y, R);
113
+ const A = R ?? K++;
114
+ for (const { side: S, position: E } of u) {
115
+ const B = d(S, E);
116
+ if (W.has(B)) continue;
117
+ W.set(B, A);
118
+ const D = E.x - t.x, m = E.y - t.y, k = new n.ShapeConnectionPin(
115
119
  y,
116
- H,
120
+ A,
117
121
  b(D, t.width),
118
- b(u, t.height),
122
+ b(m, t.height),
119
123
  !0,
120
124
  0,
121
- L[v]
125
+ _[S]
122
126
  );
123
127
  k.setExclusive(!1), k.setConnectionCost(
124
- t.width / 2 + t.height / 2 - Math.abs(D - t.width / 2) - Math.abs(u - t.height / 2)
128
+ t.width / 2 + t.height / 2 - Math.abs(D - t.width / 2) - Math.abs(m - t.height / 2)
125
129
  );
126
130
  }
127
- return new i.ConnEnd(y, H);
131
+ return new n.ConnEnd(y, A);
128
132
  }
129
- const N = K(t, e).source, G = m.find((d) => d.side === N)?.position ?? m[0].position, W = new i.Point(G.x, G.y), z = new i.ConnEnd(W);
130
- return S(W), z;
131
- }, V = (t) => +!!(t.sourcePort || t.targetPort || t.source === t.target || O.get([t.source, t.target].sort().join("\0")) > 1), I = [...c].sort((t, e) => V(e) - V(t)).map((t) => {
132
- const e = h.get(t.source), g = h.get(t.target), p = t.source === t.target, x = O.get([t.source, t.target].sort().join("\0")) > 1, w = J(
133
+ const N = q(t, e).source, G = u.find((d) => d.side === N)?.position ?? u[0].position, j = new n.Point(G.x, G.y), z = new n.ConnEnd(j);
134
+ return T(j), z;
135
+ }, J = (t) => +!!(t.sourcePort || t.targetPort || t.source === t.target || O.get([t.source, t.target].sort().join("\0")) > 1), Z = [...h].sort((t, e) => J(e) - J(t)).map((t) => {
136
+ const e = c.get(t.source), g = c.get(t.target), p = t.source === t.target, x = O.get([t.source, t.target].sort().join("\0")) > 1, w = F(
133
137
  e,
134
138
  g,
135
139
  t.sourcePort,
136
- E.get(t.id),
140
+ C.get(t.id),
137
141
  p ? { x: e.x + e.width, y: e.y + e.height / 3 } : void 0,
138
142
  x
139
- ), y = J(
143
+ ), y = F(
140
144
  g,
141
145
  e,
142
146
  t.targetPort,
143
- E.get(t.id),
147
+ C.get(t.id),
144
148
  p ? {
145
149
  x: g.x + g.width,
146
150
  y: g.y + g.height * 2 / 3
147
151
  } : void 0,
148
152
  x
149
- ), m = new i.ConnRef(s, w, y);
150
- if (S(w), S(y), p) {
151
- const N = new i.CheckpointVector();
153
+ ), u = new n.ConnRef(s, w, y);
154
+ if (T(w), T(y), p) {
155
+ const N = new n.CheckpointVector();
152
156
  for (const G of [
153
157
  e.y + e.height / 3,
154
158
  e.y + e.height * 2 / 3
155
159
  ]) {
156
- const W = new i.Point(
160
+ const j = new n.Point(
157
161
  e.x + e.width + Math.max(24, a + 4),
158
162
  G
159
- ), z = new i.Checkpoint(W);
160
- N.push_back(z), S(W), S(z);
163
+ ), z = new n.Checkpoint(j);
164
+ N.push_back(z), T(j), T(z);
161
165
  }
162
- m.setRoutingCheckpoints(N), S(N);
166
+ u.setRoutingCheckpoints(N), T(N);
163
167
  }
164
- return { edge: t, connection: m };
168
+ return { edge: t, connection: u };
165
169
  });
166
170
  s.processTransaction();
167
- for (const { edge: t, connection: e } of I) {
171
+ for (const { edge: t, connection: e } of Z) {
168
172
  const g = e.displayRoute(), p = Array.from({ length: g.size() }, (x, w) => {
169
- const y = g.at(w), m = { x: y.x, y: y.y };
170
- return S(y), m;
173
+ const y = g.at(w), u = { x: y.x, y: y.y };
174
+ return T(y), u;
171
175
  });
172
- if (S(g), !e.hasValidRoute() || p.length < 2 || p.some((x) => !Number.isFinite(x.x) || !Number.isFinite(x.y)) || p.some((x, w) => w > 0 && x.x !== p[w - 1].x && x.y !== p[w - 1].y))
176
+ if (T(g), !e.hasValidRoute() || p.length < 2 || p.some((x) => !Number.isFinite(x.x) || !Number.isFinite(x.y)) || p.some((x, w) => w > 0 && x.x !== p[w - 1].x && x.y !== p[w - 1].y))
173
177
  throw new Error(`Graph edge cannot be routed: ${t.id}`);
174
- T.set(t.id, p);
178
+ P.set(t.id, p);
175
179
  }
176
180
  } finally {
177
181
  s.delete();
178
182
  }
179
183
  }
180
- const U = n.edges.map((r) => ({ ...r, sections: [T.get(r.id)] }));
181
- return $({
182
- nodes: n.nodes,
184
+ const U = i.edges.map((r) => ({ ...r, sections: [P.get(r.id)] }));
185
+ return L({
186
+ nodes: i.nodes,
183
187
  edges: U,
184
- bounds: n.bounds
188
+ bounds: i.bounds
185
189
  });
186
190
  }
187
- function $(n) {
191
+ function L(i) {
188
192
  const o = [
189
- ...n.nodes.flatMap((h) => [
190
- { x: h.x, y: h.y },
191
- { x: h.x + h.width, y: h.y + h.height }
193
+ ...i.nodes.flatMap((c) => [
194
+ { x: c.x, y: c.y },
195
+ { x: c.x + c.width, y: c.y + c.height }
192
196
  ]),
193
- ...n.edges.flatMap((h) => h.sections.flat())
194
- ], a = Math.min(...o.map((h) => h.x)), i = Math.min(...o.map((h) => h.y));
197
+ ...i.edges.flatMap((c) => c.sections.flat())
198
+ ], a = Math.min(...o.map((c) => c.x)), n = Math.min(...o.map((c) => c.y));
195
199
  return {
196
- nodes: n.nodes,
197
- edges: n.edges,
200
+ nodes: i.nodes,
201
+ edges: i.edges,
198
202
  bounds: {
199
203
  x: a,
200
- y: i,
201
- width: Math.max(...o.map((h) => h.x)) - a,
202
- height: Math.max(...o.map((h) => h.y)) - i
204
+ y: n,
205
+ width: Math.max(...o.map((c) => c.x)) - a,
206
+ height: Math.max(...o.map((c) => c.y)) - n
203
207
  }
204
208
  };
205
209
  }
206
- function q(n, o) {
210
+ function $(i, o) {
207
211
  return {
208
- x: o === "WEST" ? n.x : o === "EAST" ? n.x + n.width : n.x + n.width / 2,
209
- y: o === "NORTH" ? n.y : o === "SOUTH" ? n.y + n.height : n.y + n.height / 2
212
+ x: o === "WEST" ? i.x : o === "EAST" ? i.x + i.width : i.x + i.width / 2,
213
+ y: o === "NORTH" ? i.y : o === "SOUTH" ? i.y + i.height : i.y + i.height / 2
210
214
  };
211
215
  }
212
- function K(n, o) {
213
- const a = (c, s) => s.x >= c.x && s.y >= c.y && s.x + s.width <= c.x + c.width && s.y + s.height <= c.y + c.height, i = a(n, o) ? n : a(o, n) ? o : void 0;
214
- if (i) {
215
- const c = i === n ? o : n, s = {
216
- NORTH: c.y - i.y,
217
- EAST: i.x + i.width - c.x - c.width,
218
- SOUTH: i.y + i.height - c.y - c.height,
219
- WEST: c.x - i.x
220
- }, M = [...A].sort((O, E) => s[O] - s[E])[0];
216
+ function q(i, o) {
217
+ const a = (h, s) => s.x >= h.x && s.y >= h.y && s.x + s.width <= h.x + h.width && s.y + s.height <= h.y + h.height, n = a(i, o) ? i : a(o, i) ? o : void 0;
218
+ if (n) {
219
+ const h = n === i ? o : i, s = {
220
+ NORTH: h.y - n.y,
221
+ EAST: n.x + n.width - h.x - h.width,
222
+ SOUTH: n.y + n.height - h.y - h.height,
223
+ WEST: h.x - n.x
224
+ }, M = [...v].sort((O, C) => s[O] - s[C])[0];
221
225
  return { source: M, target: M };
222
226
  }
223
- const h = o.x + o.width / 2 - (n.x + n.width / 2), l = o.y + o.height / 2 - (n.y + n.height / 2), f = Math.max(n.x - (o.x + o.width), o.x - (n.x + n.width), 0), T = Math.max(
224
- n.y - (o.y + o.height),
225
- o.y - (n.y + n.height),
227
+ const c = o.x + o.width / 2 - (i.x + i.width / 2), l = o.y + o.height / 2 - (i.y + i.height / 2), f = Math.max(i.x - (o.x + o.width), o.x - (i.x + i.width), 0), P = Math.max(
228
+ i.y - (o.y + o.height),
229
+ o.y - (i.y + i.height),
226
230
  0
227
- ), r = (T === 0 && f > 0 ? !0 : f === 0 && T > 0 ? !1 : f === 0 && T === 0 ? Math.abs(h) >= Math.abs(l) : f <= T) ? h >= 0 ? "EAST" : "WEST" : l >= 0 ? "SOUTH" : "NORTH";
228
- return { source: r, target: A[(A.indexOf(r) + 2) % 4] };
231
+ ), r = (P === 0 && f > 0 ? !0 : f === 0 && P > 0 ? !1 : f === 0 && P === 0 ? Math.abs(c) >= Math.abs(l) : f <= P) ? c >= 0 ? "EAST" : "WEST" : l >= 0 ? "SOUTH" : "NORTH";
232
+ return { source: r, target: v[(v.indexOf(r) + 2) % 4] };
229
233
  }
230
- function nt(n, o, a, i = 0) {
231
- const h = (r) => Math.min(8, r / 4), l = (r, c, s) => Math.max(c + h(s), Math.min(c + s - h(s), r)), f = (r, c, s, M) => {
232
- const O = Math.max(r, s), E = Math.min(r + c, s + M);
233
- return O < E ? (O + E) / 2 + i : void 0;
234
- }, T = a.x + a.width / 2, U = a.y + a.height / 2;
234
+ function tt(i, o, a, n = 0) {
235
+ const c = (r) => Math.min(8, r / 4), l = (r, h, s) => Math.max(h + c(s), Math.min(h + s - c(s), r)), f = (r, h, s, M) => {
236
+ const O = Math.max(r, s), C = Math.min(r + h, s + M);
237
+ return O < C ? (O + C) / 2 + n : void 0;
238
+ }, P = a.x + a.width / 2, U = a.y + a.height / 2;
235
239
  switch (o) {
236
240
  case "NORTH":
237
241
  return {
238
242
  x: l(
239
- f(n.x, n.width, a.x, a.width) ?? T + i,
240
- n.x,
241
- n.width
243
+ f(i.x, i.width, a.x, a.width) ?? P + n,
244
+ i.x,
245
+ i.width
242
246
  ),
243
- y: n.y
247
+ y: i.y
244
248
  };
245
249
  case "EAST":
246
250
  return {
247
- x: n.x + n.width,
251
+ x: i.x + i.width,
248
252
  y: l(
249
- f(n.y, n.height, a.y, a.height) ?? U + i,
250
- n.y,
251
- n.height
253
+ f(i.y, i.height, a.y, a.height) ?? U + n,
254
+ i.y,
255
+ i.height
252
256
  )
253
257
  };
254
258
  case "SOUTH":
255
259
  return {
256
260
  x: l(
257
- f(n.x, n.width, a.x, a.width) ?? T + i,
258
- n.x,
259
- n.width
261
+ f(i.x, i.width, a.x, a.width) ?? P + n,
262
+ i.x,
263
+ i.width
260
264
  ),
261
- y: n.y + n.height
265
+ y: i.y + i.height
262
266
  };
263
267
  case "WEST":
264
268
  return {
265
- x: n.x,
269
+ x: i.x,
266
270
  y: l(
267
- f(n.y, n.height, a.y, a.height) ?? U + i,
268
- n.y,
269
- n.height
271
+ f(i.y, i.height, a.y, a.height) ?? U + n,
272
+ i.y,
273
+ i.height
270
274
  )
271
275
  };
272
276
  }
273
277
  }
274
278
  export {
275
- et as routeGraphGeometry
279
+ st as routeGraphGeometry
276
280
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floegence/floe-webapp-core",
3
- "version": "0.86.13",
3
+ "version": "0.86.14",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",