@code0-tech/triangulum 0.37.1 → 0.38.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.
@@ -278,50 +278,84 @@ var _ = (t) => {
278
278
  value: !1,
279
279
  __typename: "LiteralValue"
280
280
  }] : [];
281
- }, ee = (e, t, n, r) => r.flatMap((r) => {
281
+ }, ee = [
282
+ "unconstrained",
283
+ "generic",
284
+ "union-member",
285
+ "nullable"
286
+ ], y = { match: "exact" }, b = (e) => ({
287
+ match: "possible",
288
+ reason: e
289
+ }), te = (e) => e.map((e) => ({
290
+ value: e,
291
+ certainty: y
292
+ })), ne = (e, t) => e.match === "exact" || t.match !== "exact" ? e : t, x = (...e) => {
293
+ let t = ee.find((t) => e.some((e) => e.reason === t));
294
+ return t ? b(t) : y;
295
+ }, S = (t, n = 1) => t === void 0 || (t.flags & (e.TypeFlags.Any | e.TypeFlags.Unknown)) !== 0 || (t.flags & e.TypeFlags.Object) !== 0 && t.getProperties().length === 0 && t.getCallSignatures().length === 0 && t.getConstructSignatures().length === 0 && (n === 0 ? t.getNumberIndexType() === void 0 && t.getStringIndexType() === void 0 : S(t.getNumberIndexType(), n - 1) && S(t.getStringIndexType(), n - 1)), C = (t, n, r) => {
296
+ let i = n.getNonNullableType(t);
297
+ if ((i.flags & e.TypeFlags.Never) !== 0) return null;
298
+ let a = i.isUnion() ? i.types.map((e) => n.getNonNullableType(e)) : [i], o = a.filter((t) => (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r));
299
+ return o.length === 0 ? null : x(S(i) || S(r) ? b("unconstrained") : y, i !== t && !n.isTypeAssignableTo(t, r) ? b("nullable") : y, o.length < a.length ? b("union-member") : y);
300
+ }, w = (e) => (e.suggestions ?? []).map((t, n) => ({
301
+ value: t,
302
+ certainty: e.suggestionCertainty?.[n] ?? y
303
+ })), T = (e) => ({
304
+ suggestions: e.map((e) => e.value),
305
+ suggestionCertainty: e.map((e) => e.certainty)
306
+ }), re = (e) => e && e.length > 0 ? T(e) : {}, ie = (e, t, n, r) => r.flatMap((r) => {
282
307
  let i = r.getName();
283
- if (!y(i)) return [];
308
+ if (!ae(i)) return [];
284
309
  let a = r.getDeclarations()?.[0];
285
310
  if (!a || a.getEnd() >= t.getEnd()) return [];
286
311
  let o = e.getTypeOfSymbolAtLocation(r, t);
287
- return i.startsWith("node_") ? b(i, o, e, n) : i.startsWith("p_") ? x(i, o, e, n) : i.startsWith("flow_") ? S(o, e, n) : [];
288
- }), y = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), b = (t, n, r, i) => {
312
+ return i.startsWith("node_") ? oe(i, o, e, n) : i.startsWith("p_") ? se(i, o, e, n) : i.startsWith("flow_") ? ce(o, e, n) : [];
313
+ }), ae = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), oe = (t, n, r, i) => {
289
314
  if ((n.flags & e.TypeFlags.Void) !== 0) return [];
290
- let a = C(t.replace("node_", ""));
291
- return D(n, r, i).flatMap(({ path: e }) => {
292
- let t = {
315
+ let a = E(t.replace("node_", ""));
316
+ return D(n, r, i).map(({ path: e, certainty: t }) => {
317
+ let n = {
293
318
  __typename: "ReferenceValue",
294
319
  nodeFunctionId: a
295
320
  };
296
- return e.length > 0 && (t.referencePath = e), t;
321
+ return e.length > 0 && (n.referencePath = e), {
322
+ value: n,
323
+ certainty: t
324
+ };
297
325
  });
298
- }, x = (e, t, n, r) => {
299
- let { nodeFunctionId: i, paramIndexFromName: a } = te(e);
326
+ }, se = (e, t, n, r) => {
327
+ let { nodeFunctionId: i, paramIndexFromName: a } = le(e);
300
328
  if (!n.isTupleType(t)) return [];
301
329
  let o = t;
302
- return n.getTypeArguments(o).flatMap((e, t) => D(e, n, r).flatMap(({ path: e }) => {
303
- let n = {
330
+ return n.getTypeArguments(o).flatMap((e, t) => D(e, n, r).map(({ path: e, certainty: n }) => {
331
+ let r = {
304
332
  __typename: "ReferenceValue",
305
333
  nodeFunctionId: i,
306
334
  parameterIndex: isNaN(a) ? 0 : a,
307
335
  inputIndex: t,
308
336
  inputTypeIdentifier: o.target.labeledElementDeclarations?.[t].name.getText()
309
337
  };
310
- return e.length > 0 && (n.referencePath = e), n;
338
+ return e.length > 0 && (r.referencePath = e), {
339
+ value: r,
340
+ certainty: n
341
+ };
311
342
  }));
312
- }, S = (e, t, n) => D(e, t, n).flatMap(({ path: e }) => {
313
- let t = {
343
+ }, ce = (e, t, n) => D(e, t, n).map(({ path: e, certainty: t }) => {
344
+ let n = {
314
345
  __typename: "ReferenceValue",
315
346
  nodeFunctionId: null
316
347
  };
317
- return e.length > 0 && (t.referencePath = e), t;
318
- }), C = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), te = (e) => {
348
+ return e.length > 0 && (n.referencePath = e), {
349
+ value: n,
350
+ certainty: t
351
+ };
352
+ }), E = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), le = (e) => {
319
353
  let t = e.replace("p_", ""), n = t.lastIndexOf("_"), r = t.substring(0, n), i = parseInt(t.substring(n + 1), 10);
320
354
  return {
321
- nodeFunctionId: C(r),
355
+ nodeFunctionId: E(r),
322
356
  paramIndexFromName: i
323
357
  };
324
- }, ne = 7, w = (e, t, n) => {
358
+ }, ue = 7, de = (e, t, n) => {
325
359
  let r = n.get(e);
326
360
  if (r !== void 0) return r;
327
361
  let i = /* @__PURE__ */ new Set(), a = (n) => {
@@ -335,13 +369,14 @@ var _ = (t) => {
335
369
  return !1;
336
370
  }, o = a(e);
337
371
  return n.set(e, o), o;
338
- }, T = (t, n, r) => t.isUnion() ? t.types.some((e) => T(n.getNonNullableType(e), n, r)) : (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r), E = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(O) : O(e) ? [e] : [], D = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
339
- let o = [], s = t.getNonNullableType(e);
340
- return T(s, t, n) && o.push({
372
+ }, fe = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(O) : O(e) ? [e] : [], D = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
373
+ let o = [], s = t.getNonNullableType(e), c = C(e, t, n);
374
+ return c && o.push({
341
375
  path: r,
342
- type: e
343
- }), E(s, t).forEach((e) => {
344
- if (i.has(e) || r.length >= ne && w(e, t, a)) return;
376
+ type: e,
377
+ certainty: c
378
+ }), fe(s, t).forEach((e) => {
379
+ if (i.has(e) || r.length >= ue && de(e, t, a)) return;
345
380
  let s = e.getProperties();
346
381
  s && s.length > 0 && (i.add(e), s.forEach((e) => {
347
382
  let s = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration), c = e.getName(), l = [...r, { path: c }];
@@ -351,15 +386,18 @@ var _ = (t) => {
351
386
  }, O = (t) => {
352
387
  let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
353
388
  return (t.flags & n) === 0;
354
- }, re = (e, t, n, r) => q(r) ? [] : t.flatMap((t) => {
355
- let i = ie(e, t, n, r);
389
+ }, pe = (e, t, n, r) => t.flatMap((t) => {
390
+ let i = me(e, t, n, r);
356
391
  return i ? [i] : [];
357
- }), ie = (t, n, r, i) => {
358
- let a = t.getSignatureFromDeclaration(n), o = ae(t, t.getReturnTypeOfSignature(a)), s = t.getNonNullableType(o);
359
- if ((s.flags & e.TypeFlags.Never) !== 0 || !t.isTypeAssignableTo(s, i)) return null;
360
- let c = oe(n.name?.getText());
361
- return se(r.find((e) => e.identifier === c));
362
- }, ae = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, oe = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", se = (e) => {
392
+ }), me = (e, t, n, r) => {
393
+ let i = e.getSignatureFromDeclaration(t), a = e.getReturnTypeOfSignature(i), o = C(he(e, a), e, r);
394
+ if (!o) return null;
395
+ let s = a.isTypeParameter() ? x(o, b("generic")) : o, c = ge(t.name?.getText());
396
+ return {
397
+ value: _e(n.find((e) => e.identifier === c)),
398
+ certainty: s
399
+ };
400
+ }, he = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, ge = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", _e = (e) => {
363
401
  let t = (e?.parameterDefinitions?.nodes?.length ?? 0) > 0, n = {
364
402
  __typename: "NodeFunction",
365
403
  id: "gid://sagittarius/NodeFunction/1",
@@ -372,11 +410,11 @@ var _ = (t) => {
372
410
  displayIcon: e?.displayIcon
373
411
  }
374
412
  };
375
- return t && (n.parameters = ce(e?.parameterDefinitions?.nodes || [])), n;
376
- }, ce = (e) => ({
413
+ return t && (n.parameters = ve(e?.parameterDefinitions?.nodes || [])), n;
414
+ }, ve = (e) => ({
377
415
  __typename: "NodeParameterConnection",
378
- nodes: e.map((e) => le(e))
379
- }), le = (e) => ({
416
+ nodes: e.map((e) => ye(e))
417
+ }), ye = (e) => ({
380
418
  __typename: "NodeParameter",
381
419
  parameterDefinition: {
382
420
  __typename: "ParameterDefinition",
@@ -387,15 +425,18 @@ var _ = (t) => {
387
425
  __typename: "LiteralValue",
388
426
  value: e.defaultValue.value
389
427
  } : null
390
- }), ue = (e, t, n, r) => q(r) ? t.flatMap((t) => {
391
- let i = de(e, t, n, r);
428
+ }), be = (e, t, n, r) => J(r) ? t.flatMap((t) => {
429
+ let i = xe(e, t, n, r);
392
430
  return i ? [i] : [];
393
- }) : [], de = (e, t, n, r) => {
394
- let i = e.getTypeAtLocation(t);
395
- if (!e.isTypeAssignableTo(i, r)) return null;
396
- let a = fe(t.name?.getText()), o = n.find((e) => e.identifier === a);
397
- return o ? pe(o) : null;
398
- }, fe = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", pe = (e) => ({
431
+ }) : [], xe = (e, t, n, r) => {
432
+ let i = C(e.getTypeAtLocation(t), e, r);
433
+ if (!i) return null;
434
+ let a = Se(t.name?.getText()), o = n.find((e) => e.identifier === a);
435
+ return o ? {
436
+ value: Ce(o),
437
+ certainty: i
438
+ } : null;
439
+ }, Se = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", Ce = (e) => ({
399
440
  __typename: "SubFlowValue",
400
441
  functionDefinition: e,
401
442
  signature: e.signature,
@@ -409,92 +450,96 @@ var _ = (t) => {
409
450
  }), k = {
410
451
  DATE: "date",
411
452
  TYPE: "type"
412
- }, A = (e) => e != null && e in k, me = new Set(Object.values(k)), j = (e) => e != null && me.has(e), M = 7, N = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u) => {
453
+ }, A = (e) => e != null && e in k, we = new Set(Object.values(k)), j = (e) => e != null && we.has(e), Te = 7, M = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u) => {
413
454
  if ((r.flags & e.TypeFlags.TypeParameter) !== 0) {
414
455
  let u = r.symbol?.declarations?.[0];
415
- if (u && e.isTypeParameterDeclaration(u) && u.constraint) return N(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
456
+ if (u && e.isTypeParameterDeclaration(u) && u.constraint) return M(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
416
457
  }
417
458
  let d = A(r.aliasSymbol?.getName()), f = d && r.isIntersection() ? t.typeToString(r.types.find((t) => (t.flags & e.TypeFlags.Object) === 0) ?? r) : d ? "object" : t.typeToString({
418
459
  ...r,
419
460
  aliasSymbol: void 0
420
- }), p = s ?? r, m = o ? { suggestions: [
421
- ...v(p, t),
422
- ...n ? ee(t, n, p, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
423
- ...re(t, i, a, p),
424
- ...ue(t, i, a, p)
425
- ] } : {};
461
+ }), p = s ?? r, m = J(p) ? p : r, h = o ? [
462
+ ...te(v(p, t)),
463
+ ...n ? ie(t, n, p, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
464
+ ...pe(t, i, a, p),
465
+ ...be(t, i, a, m)
466
+ ] : [], g = o ? T(h) : {};
426
467
  if (u) {
427
- let e = ve(t, u);
468
+ let e = Me(t, u);
428
469
  if (e) return {
429
470
  input: e,
430
471
  type: f,
431
- ...m
472
+ ...g
432
473
  };
433
474
  }
434
475
  if (r.isUnion()) {
435
476
  let s = r.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
436
477
  if (s.length === 1) return {
437
- ...N(t, n, s[0], i, a, o, void 0, c, l),
478
+ ...M(t, n, s[0], i, a, o, void 0, c, l),
438
479
  type: f,
439
- ...m
480
+ ...g
440
481
  };
441
482
  }
442
- let h = B(r);
443
- if (h) return {
444
- input: h,
483
+ let _ = B(r);
484
+ if (_) return {
485
+ input: _,
445
486
  type: f,
446
- ...m
487
+ ...g
447
488
  };
448
489
  if (V(t, r)) return {
449
490
  input: "file",
450
491
  type: f,
451
492
  mimetype: H(t, r),
452
- ...m
493
+ ...g
453
494
  };
454
- if (be(t, r)) return {
495
+ if (Pe(t, r)) return {
455
496
  input: "color",
456
497
  type: f,
457
- ...m
498
+ ...g
458
499
  };
459
500
  if (U(r)) return {
460
501
  input: "boolean",
461
502
  type: f,
462
- ...m
503
+ ...g
463
504
  };
464
- if (K(r)) return {
505
+ if (q(r)) return {
465
506
  input: "select",
466
507
  type: f,
467
- ...m
508
+ ...g
468
509
  };
469
510
  if (W(r)) return {
470
511
  input: "number",
471
512
  type: f,
472
- ...m
513
+ ...g
473
514
  };
474
515
  if (G(r)) return {
475
516
  input: "text",
476
517
  type: f,
477
- ...m
518
+ ...g
478
519
  };
479
- if (q(r)) return {
520
+ if (J(r)) return {
480
521
  input: "sub-flow",
481
522
  type: f,
482
- ...m
523
+ ...g
483
524
  };
484
- if (we(t, r)) {
525
+ if (Re(t, r)) {
485
526
  let e = t.getTypeArguments(r);
486
527
  if (e.length === 1 && V(t, e[0])) return {
487
528
  input: "list-file",
488
529
  type: f,
489
530
  mimetype: H(t, e[0]),
490
- ...m
531
+ ...g
491
532
  };
492
- let s = e.flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => N(t, n, e, i, a, o, void 0, c, l)));
493
- if (e.length === 1 && K(e[0])) return {
533
+ let s = e.flatMap((e) => {
534
+ let r = e.isUnion() ? e.types : [e], s = r.length > 1 ? e : void 0;
535
+ return r.map((e) => M(t, n, e, i, a, o, s, c, l));
536
+ }), u = o ? { declaredItems: s } : {};
537
+ if (e.length === 1 && q(e[0])) return {
494
538
  input: "list-select",
495
539
  type: f,
496
540
  items: s,
497
- ...m
541
+ ...u,
542
+ ...g
498
543
  };
499
544
  if (e.length === 1) {
500
545
  let t = e[0];
@@ -502,91 +547,101 @@ var _ = (t) => {
502
547
  input: "list-boolean",
503
548
  type: f,
504
549
  items: s,
505
- ...m
550
+ ...u,
551
+ ...g
506
552
  };
507
553
  if (W(t)) return {
508
554
  input: "list-number",
509
555
  type: f,
510
556
  items: s,
511
- ...m
557
+ ...u,
558
+ ...g
512
559
  };
513
560
  if (G(t)) return {
514
561
  input: "list-text",
515
562
  type: f,
516
563
  items: s,
517
- ...m
564
+ ...u,
565
+ ...g
518
566
  };
519
- if (q(t)) return {
567
+ if (J(t)) return {
520
568
  input: "list-sub-flow",
521
569
  type: f,
522
570
  items: s,
523
- ...m
571
+ ...u,
572
+ ...g
524
573
  };
525
574
  }
526
575
  return {
527
576
  input: "list",
528
577
  type: f,
529
578
  items: s,
530
- ...m
579
+ ...u,
580
+ ...g
531
581
  };
532
582
  }
533
583
  if ((r.flags & e.TypeFlags.Object) !== 0) {
534
- if (c.has(r) || c.size >= M && w(r, t, l)) return {
584
+ if (c.has(r) || c.size >= Te && de(r, t, l)) return {
535
585
  input: "data",
536
586
  type: f,
537
- ...m
587
+ ...g
538
588
  };
539
589
  c.add(r);
540
590
  let s = {}, d = [];
541
591
  for (let f of t.getPropertiesOfType(r)) {
542
592
  let r = f.valueDeclaration ?? f.declarations?.[0];
543
593
  if (!r) continue;
544
- let p = t.getTypeOfSymbolAtLocation(f, r), m = (f.flags & e.SymbolFlags.Optional) !== 0 || p.isUnion() && p.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), h = p.isUnion() ? p.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0) : [p], g = u ? ye(t, u, f.name) : void 0, _ = h.map((e) => N(t, n, e, i, a, o, void 0, c, l, g));
545
- s[f.name] = _.length === 1 ? _[0] : _, m || d.push(f.name);
594
+ let p = t.getTypeOfSymbolAtLocation(f, r), m = (f.flags & e.SymbolFlags.Optional) !== 0 || p.isUnion() && p.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), h = t.getNonNullableType(p), g = h.isUnion() && !q(h) && !U(h) ? h.types : [h], _ = u ? Ne(t, u, f.name) : void 0, v = g.map((e) => M(t, n, e, i, a, o, void 0, c, l, _));
595
+ s[f.name] = v.length === 1 ? v[0] : v, m || d.push(f.name);
546
596
  }
547
597
  return c.delete(r), {
548
598
  input: "data",
549
599
  type: f,
550
600
  properties: s,
551
601
  required: d,
552
- ...m
602
+ ...g
553
603
  };
554
604
  }
555
605
  return {
556
606
  input: "generic",
557
607
  type: f,
558
- ...m
608
+ ...g
559
609
  };
560
- }, P = /* @__PURE__ */ new Set([
610
+ }, N = /* @__PURE__ */ new Set([
561
611
  "list",
562
612
  "list-select",
563
613
  "list-boolean",
564
614
  "list-number",
565
615
  "list-text",
566
616
  "list-sub-flow"
567
- ]), F = /* @__PURE__ */ new Set([
617
+ ]), Ee = /* @__PURE__ */ new Set([
568
618
  "list-select",
569
619
  "list-boolean",
570
620
  "list-number",
571
621
  "list-text",
572
622
  "list-sub-flow",
573
623
  "list-file"
574
- ]), I = (e) => {
624
+ ]), P = (e) => {
575
625
  let t = e, n = e.items;
576
626
  n && (t = {
577
627
  ...t,
578
- items: n.map(I)
628
+ items: n.map(P)
629
+ });
630
+ let r = e.declaredItems;
631
+ r && (t = {
632
+ ...t,
633
+ declaredItems: r.map(P)
579
634
  });
580
- let r = e.properties;
581
- if (r) {
635
+ let i = e.properties;
636
+ if (i) {
582
637
  let e = {};
583
- for (let [t, n] of Object.entries(r)) e[t] = Array.isArray(n) ? n.map(I) : I(n);
638
+ for (let [t, n] of Object.entries(i)) e[t] = Array.isArray(n) ? n.map(P) : P(n);
584
639
  t = {
585
640
  ...t,
586
641
  properties: e
587
642
  };
588
643
  }
589
- if (F.has(t.input)) {
644
+ if (Ee.has(t.input)) {
590
645
  let { mimetype: e, ...n } = t;
591
646
  t = {
592
647
  ...n,
@@ -594,106 +649,129 @@ var _ = (t) => {
594
649
  };
595
650
  }
596
651
  if (t.suggestions && t.suggestions.length === 0) {
597
- let { suggestions: e, ...n } = t;
598
- t = n;
652
+ let { suggestions: e, suggestionCertainty: n, ...r } = t;
653
+ t = r;
599
654
  }
600
655
  return t;
601
- }, L = (e, t = void 0, n = !0) => {
602
- let r = _e(e), i = r.items;
603
- i && (r = {
604
- ...r,
605
- items: i.map((e) => L(e, t))
656
+ }, De = (t) => {
657
+ if (!t.isUnion()) return t;
658
+ let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
659
+ return n.length === 1 ? n[0] : t;
660
+ }, F = (e, t) => {
661
+ if (t && t.length > 0) return {
662
+ ...e,
663
+ ...re(t)
664
+ };
665
+ if (e.suggestions === void 0) return e;
666
+ let { suggestions: n, suggestionCertainty: r, ...i } = e;
667
+ return i;
668
+ }, I = (e, t = void 0) => {
669
+ let n = e, r = n.items;
670
+ r && (n = {
671
+ ...n,
672
+ items: r.map((e) => I(e, t))
606
673
  });
607
- let a = r.properties;
674
+ let i = n.declaredItems;
675
+ i && (n = {
676
+ ...n,
677
+ declaredItems: i.map((e) => I(e, t))
678
+ });
679
+ let a = n.properties;
608
680
  if (a) {
609
681
  let e = {};
610
- for (let [n, r] of Object.entries(a)) e[n] = Array.isArray(r) ? r.map((e) => L(e, t)) : L(r, t);
611
- r = {
612
- ...r,
682
+ for (let [n, r] of Object.entries(a)) e[n] = Array.isArray(r) ? r.map((e) => I(e, t)) : I(r, t);
683
+ n = {
684
+ ...n,
613
685
  properties: e
614
686
  };
615
687
  }
616
- if (n) {
617
- if (t && t.length > 0) r = {
688
+ return n.input === "generic" ? F(n, t) : F(n, w(n));
689
+ }, L = (e, t = void 0) => e && e.length > 0 ? e.map((e) => I(e, t)) : [F({ input: "generic" }, t)], R = (e, t = void 0, n = !0) => {
690
+ let r = je(e), i = r.items;
691
+ i && (r = {
692
+ ...r,
693
+ items: i.map((e) => R(e, t))
694
+ });
695
+ let a = r.declaredItems;
696
+ a && (r = {
697
+ ...r,
698
+ declaredItems: a.map((e) => R(e, t))
699
+ });
700
+ let o = r.properties;
701
+ if (o) {
702
+ let e = {};
703
+ for (let [n, r] of Object.entries(o)) e[n] = Array.isArray(r) ? r.map((e) => R(e, t)) : R(r, t);
704
+ r = {
618
705
  ...r,
619
- suggestions: t
706
+ properties: e
620
707
  };
621
- else if (r.suggestions) {
622
- let { suggestions: e, ...t } = r;
623
- r = t;
624
- }
625
708
  }
626
- return r;
627
- }, R = (e, t, n = !1, r = void 0, i = !0) => {
628
- if (!e || e.input === "generic") return ge(L(t, r, !i), n);
629
- let a = he(e.suggestions, t.suggestions);
709
+ return n && (r = F(r, t)), r;
710
+ }, z = (e, t, n = !1, r = void 0, i = !0) => {
711
+ if (!e || e.input === "generic") return Ae(R(t, r, !i), n);
712
+ let a = ke(w(i || e.suggestions === void 0 ? t : e));
630
713
  if (e.input === "data") {
631
714
  let n = e.properties ?? {}, i = t.input === "data" ? t.properties ?? {} : {}, o = {}, s = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(i)]);
632
- for (let e of s) o[e] = z(n[e], i[e], r);
633
- return {
715
+ for (let e of s) o[e] = Oe(n[e], i[e], r);
716
+ return F({
634
717
  ...e,
635
- properties: o,
636
- ...a ? { suggestions: a } : {}
637
- };
718
+ properties: o
719
+ }, a);
638
720
  }
639
- if (P.has(e.input)) {
640
- let n = e.items ?? [], i = P.has(t.input) ? t.items ?? [] : [], o = n.length > 0 && n.every((e) => e.input === "generic") && i.length > 0 ? i.map((e) => L(e, r)) : n.length === i.length && n.length > 0 ? n.map((e, t) => R(e, i[t], !1, r, !1)) : n;
641
- return {
721
+ if (N.has(e.input)) {
722
+ let n = e.items ?? [], i = N.has(t.input) ? t.items ?? [] : [], o = n.length > 0 && n.every((e) => e.input === "generic") && i.length > 0 ? i.map((e) => R(e, r)) : n.length === i.length && n.length > 0 ? n.map((e, t) => z(e, i[t], !1, r, !1)) : L(n, r);
723
+ return F({
642
724
  ...e,
643
725
  items: o,
644
- ...a ? { suggestions: a } : {}
645
- };
726
+ declaredItems: L(n, r)
727
+ }, a);
646
728
  }
647
- return j(e.input) ? {
729
+ return j(e.input) ? F({
648
730
  ...e,
649
- ...t.type === void 0 ? {} : { type: t.type },
650
- ...a ? { suggestions: a } : {}
651
- } : {
652
- ...e,
653
- ...a ? { suggestions: a } : {}
654
- };
655
- }, z = (e, t, n = void 0) => e && !Array.isArray(e) && t && !Array.isArray(t) ? R(e, t, !1, n, !1) : e === void 0 && t !== void 0 ? Array.isArray(t) ? t.map((e) => L(e, n)) : L(t, n) : e ?? t, he = (e, t) => {
656
- let n = [...e ?? [], ...t ?? []];
657
- if (n.length === 0) return;
658
- let r = /* @__PURE__ */ new Set(), i = [];
659
- for (let e of n) {
660
- let t = JSON.stringify(e);
661
- r.has(t) || (r.add(t), i.push(e));
731
+ ...t.type === void 0 ? {} : { type: t.type }
732
+ }, a) : F({ ...e }, a);
733
+ }, Oe = (e, t, n = void 0) => e === void 0 && t !== void 0 ? Array.isArray(t) ? t.map((e) => R(e, n)) : R(t, n) : e && !Array.isArray(e) && t && !Array.isArray(t) ? z(e, t, !1, n, !1) : Array.isArray(e) && Array.isArray(t) && e.length === t.length ? e.map((e, r) => z(e, t[r], !1, n, !1)) : Array.isArray(e) ? e.map((e) => I(e, n)) : I(e, n), ke = (e) => {
734
+ if (!e || e.length === 0) return;
735
+ let t = /* @__PURE__ */ new Map();
736
+ for (let n of e) {
737
+ let e = JSON.stringify(n.value), r = t.get(e);
738
+ t.set(e, r ? {
739
+ ...r,
740
+ certainty: ne(r.certainty, n.certainty)
741
+ } : n);
662
742
  }
663
- return i;
664
- }, ge = (e, t) => !t || e.input !== "generic" ? e : {
743
+ return [...t.values()];
744
+ }, Ae = (e, t) => !t || e.input !== "generic" ? e : F({
665
745
  input: "data",
666
746
  ...e.type ? { type: e.type } : {},
667
747
  properties: {},
668
- required: [],
669
- ...e.suggestions ? { suggestions: e.suggestions } : {}
670
- }, _e = (e) => {
748
+ required: []
749
+ }, w(e)), je = (e) => {
671
750
  if (e.input !== "select") return e;
672
- let t = e.suggestions ?? [], n = /* @__PURE__ */ new Set();
751
+ let t = w(e), n = /* @__PURE__ */ new Set();
673
752
  for (let e of t) {
674
- let t = typeof e.value;
753
+ let t = typeof e.value.value;
675
754
  (t === "string" || t === "number" || t === "boolean") && n.add(t);
676
755
  }
677
- return {
756
+ return F({
678
757
  input: n.size === 1 ? {
679
758
  string: "text",
680
759
  number: "number",
681
760
  boolean: "boolean"
682
761
  }[[...n][0]] : "text",
683
- ...e.type ? { type: e.type } : {},
684
- ...t.length > 0 ? { suggestions: t } : {}
685
- };
762
+ ...e.type ? { type: e.type } : {}
763
+ }, t);
686
764
  };
687
765
  function B(e) {
688
766
  let t = e.aliasSymbol?.getName();
689
767
  return A(t) ? k[t] : void 0;
690
768
  }
691
- function ve(t, n) {
769
+ function Me(t, n) {
692
770
  if ((n.flags & e.TypeFlags.TypeParameter) === 0) return;
693
771
  let r = n.symbol?.declarations?.[0];
694
772
  if (r && e.isTypeParameterDeclaration(r) && r.constraint) return B(t.getTypeFromTypeNode(r.constraint));
695
773
  }
696
- function ye(e, t, n) {
774
+ function Ne(e, t, n) {
697
775
  let r = e.getPropertyOfType(t, n), i = r?.valueDeclaration ?? r?.declarations?.[0];
698
776
  return i ? e.getTypeOfSymbolAtLocation(r, i) : void 0;
699
777
  }
@@ -708,7 +786,7 @@ function V(t, n) {
708
786
  let s = t.getTypeOfSymbolAtLocation(a, o);
709
787
  return s.isStringLiteral() && s.value === "base64";
710
788
  }
711
- function be(t, n) {
789
+ function Pe(t, n) {
712
790
  if (n.aliasSymbol?.getName() !== "COLOR" || (n.flags & e.TypeFlags.Object) === 0) return !1;
713
791
  let r = new Map(t.getPropertiesOfType(n).map((e) => [e.name, e]));
714
792
  return [
@@ -744,40 +822,46 @@ function W(t) {
744
822
  function G(t) {
745
823
  return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
746
824
  }
747
- function xe(e) {
825
+ function Fe(e) {
748
826
  return G(e) || W(e) || U(e);
749
827
  }
750
- function Se(t) {
828
+ function K(t) {
751
829
  return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
752
830
  }
753
- function K(e) {
754
- return U(e) ? !1 : Ce(e) || Se(e);
831
+ function q(e) {
832
+ return U(e) ? !1 : Le(e) || K(e);
755
833
  }
756
- function Ce(t) {
834
+ function Ie(t) {
757
835
  if (!t.isUnion()) return !1;
836
+ if (U(t)) return !0;
758
837
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
759
- return n.length > 0 && n.every(xe);
838
+ return n.length > 0 && n.every(K);
760
839
  }
761
- function we(e, t) {
840
+ function Le(t) {
841
+ if (!t.isUnion()) return !1;
842
+ let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
843
+ return n.length > 0 && n.every(Fe);
844
+ }
845
+ function Re(e, t) {
762
846
  return e.isArrayType(t) || e.isTupleType(t);
763
847
  }
764
- function q(e) {
848
+ function J(e) {
765
849
  return e.getCallSignatures().length > 0;
766
850
  }
767
851
  //#endregion
768
852
  //#region src/utils.ts
769
- var Te = "\n interface Array<T> { \n [n: number]: T; \n length: number; \n }\n interface String { readonly length: number; }\n interface Number { }\n interface Boolean { }\n interface Object { }\n interface Function { }\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n interface IArguments { }\n interface RegExp { }\n \n declare namespace Utils {\n type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\n }\n\n import ReturnType = Utils.ReturnType;\n";
770
- function J(t, n) {
853
+ var ze = "\n interface Array<T> { \n [n: number]: T; \n length: number; \n }\n interface String { readonly length: number; }\n interface Number { }\n interface Boolean { }\n interface Object { }\n interface Function { }\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n interface IArguments { }\n interface RegExp { }\n \n declare namespace Utils {\n type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\n }\n\n import ReturnType = Utils.ReturnType;\n";
854
+ function Be(t, n) {
771
855
  let r = /* @__PURE__ */ new Map();
772
- return r.set(t, n), r.set("lib.codezero.d.ts", Te), a(u(r), [t, "lib.codezero.d.ts"], e, Ee);
856
+ return r.set(t, n), r.set("lib.codezero.d.ts", ze), a(u(r), [t, "lib.codezero.d.ts"], e, Ve);
773
857
  }
774
- var Ee = {
858
+ var Ve = {
775
859
  target: e.ScriptTarget.Latest,
776
860
  lib: ["lib.codezero.d.ts"],
777
861
  noEmit: !0,
778
862
  strictNullChecks: !0
779
863
  };
780
- function De(e) {
864
+ function He(e) {
781
865
  let t = [], n = 0, r = null, i = "";
782
866
  for (let a of e) {
783
867
  if (r) a === r && (r = null);
@@ -792,20 +876,20 @@ function De(e) {
792
876
  }
793
877
  return t.push(i), t.map((e) => (e.trim().split(/\s+/).find((e) => e !== "const" && e !== "in" && e !== "out") ?? "").match(/^[A-Za-z_$][A-Za-z0-9_$]*/)?.[0] ?? "").filter((e) => e.length > 0);
794
878
  }
795
- var Oe = /* @__PURE__ */ new Set([
879
+ var Ue = /* @__PURE__ */ new Set([
796
880
  "number",
797
881
  "string",
798
882
  "boolean"
799
883
  ]);
800
884
  function Y(e, t = "any", n = !0) {
801
- let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(De))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
802
- let t = A(e.identifier), n = (e.genericKeys?.length ?? 0) > 0 ? t ? `<${e.genericKeys.map((e) => e.includes("=") ? e : `${e} = any`).join(", ")}>` : `<${e.genericKeys?.join(",")}>` : "", r = e.type?.trim() ?? "", i = t ? Oe.has(r) ? `${e.type} & {}` : "{}" : e.type;
885
+ let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(He))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
886
+ let t = A(e.identifier), n = (e.genericKeys?.length ?? 0) > 0 ? t ? `<${e.genericKeys.map((e) => e.includes("=") ? e : `${e} = any`).join(", ")}>` : `<${e.genericKeys?.join(",")}>` : "", r = e.type?.trim() ?? "", i = t ? Ue.has(r) ? `${e.type} & {}` : "{}" : e.type;
803
887
  return `type ${e.identifier}${n} = ${i};`;
804
888
  }).join("\n"), a = e?.filter((e) => (e.genericKeys?.length ?? 0) > 0).map((e) => `declare const __widen_${e.identifier}: ${e.identifier}<${e.genericKeys.map(() => "any").join(", ")}>;`).join("\n") ?? "";
805
889
  return `${n ? r : ""}\n${i}\n${a}`;
806
890
  }
807
- var ke = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ae = (e) => {
808
- if (!ke.test(e)) return !1;
891
+ var We = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ge = (e) => {
892
+ if (!We.test(e)) return !1;
809
893
  let t = {
810
894
  "<": ">",
811
895
  "[": "]",
@@ -824,8 +908,8 @@ var ke = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ae = (e) => {
824
908
  return r === null && n.length === 0;
825
909
  }, X = (e, t) => {
826
910
  let n = t?.trim();
827
- return !n || !Ae(n) ? e : `(${e}) as unknown as ${n}`;
828
- }, Z = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_"), Q = (e) => e.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"), je = (e, t) => {
911
+ return !n || !Ge(n) ? e : `(${e}) as unknown as ${n}`;
912
+ }, Z = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_"), Q = (e) => e.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"), Ke = (e, t) => {
829
913
  let n = e.match(/^\$\{([^}]+)\}$/);
830
914
  if (n && t.has(n[1])) return t.get(n[1]);
831
915
  let r = /\$\{([^}]+)\}/g, i = !1;
@@ -840,8 +924,8 @@ var ke = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ae = (e) => {
840
924
  a += Q(e.slice(o, s)), a += t.has(i) ? "${" + t.get(i) + "}" : Q(r), o = s + r.length;
841
925
  }
842
926
  return a += Q(e.slice(o)), "`" + a + "`";
843
- }, $ = (e, t) => typeof e == "string" ? je(e, t) : Array.isArray(e) ? `[${e.map((e) => $(e, t)).join(", ")}]` : typeof e == "object" && e ? `{${Object.entries(e).map(([e, n]) => `${h(e)}: ${$(n, t)}`).join(", ")}}` : h(e) ?? "undefined";
844
- function Me(e, t, n, r = !1, i = !0) {
927
+ }, $ = (e, t) => typeof e == "string" ? Ke(e, t) : Array.isArray(e) ? `[${e.map((e) => $(e, t)).join(", ")}]` : typeof e == "object" && e ? `{${Object.entries(e).map(([e, n]) => `${h(e)}: ${$(n, t)}`).join(", ")}}` : h(e) ?? "undefined";
928
+ function qe(e, t, n, r = !1, i = !0) {
845
929
  let a = e?.nodes?.nodes || [], o = new Map(t?.map((e) => [e.identifier, e])), s = /* @__PURE__ */ new Set(), c = (t) => {
846
930
  let n = typeof t.inputIndex == "number" ? `p_${Z(t.nodeFunctionId ?? "undefined")}_${t.parameterIndex}[${t.inputIndex}]` : t.nodeFunctionId ? `node_${Z(t.nodeFunctionId)}` : `flow_${Z(e?.id ?? "undefined")}`;
847
931
  return t.referencePath?.forEach((e) => {
@@ -904,4 +988,4 @@ function Me(e, t, n, r = !1, i = !0) {
904
988
  `;
905
989
  }
906
990
  //#endregion
907
- export { k as a, A as c, R as d, I as f, Z as i, j as l, Me as n, L as o, h as p, Y as r, N as s, J as t, q as u };
991
+ export { F as _, k as a, R as c, j as d, Ie as f, P as g, De as h, Z as i, M as l, z as m, qe as n, L as o, J as p, Y as r, I as s, Be as t, A as u, w as v, h as y };