@code0-tech/triangulum 0.37.2 → 0.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -278,54 +278,88 @@ var _ = (t) => {
278
278
  value: !1,
279
279
  __typename: "LiteralValue"
280
280
  }] : [];
281
- }, y = (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 (!ee(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_") ? te(i, o, e, n) : i.startsWith("p_") ? ne(i, o, e, n) : i.startsWith("flow_") ? re(o, e, n) : [];
288
- }), ee = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), te = (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 = b(t.replace("node_", ""));
291
- return T(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
- }, ne = (e, t, n, r) => {
299
- let { nodeFunctionId: i, paramIndexFromName: a } = x(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) => T(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
- }, re = (e, t, n) => T(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
- }), b = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), x = (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: b(r),
355
+ nodeFunctionId: E(r),
322
356
  paramIndexFromName: i
323
357
  };
324
- }, S = 7, C = (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) => {
328
- if (i.has(n) || !E(n)) return !1;
362
+ if (i.has(n) || !O(n)) return !1;
329
363
  i.add(n);
330
364
  for (let r of n.getProperties()) {
331
365
  if (!r.valueDeclaration) continue;
@@ -335,31 +369,35 @@ var _ = (t) => {
335
369
  return !1;
336
370
  }, o = a(e);
337
371
  return n.set(e, o), o;
338
- }, w = (t, n, r) => t.isUnion() ? t.types.some((e) => w(n.getNonNullableType(e), n, r)) : (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r), ie = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(E) : E(e) ? [e] : [], T = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
339
- let o = [], s = t.getNonNullableType(e);
340
- return w(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
- }), ie(s, t).forEach((e) => {
344
- if (i.has(e) || r.length >= S && C(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 }];
348
- o.push(...T(s, t, n, l, i, a));
383
+ o.push(...D(s, t, n, l, i, a));
349
384
  }), i.delete(e));
350
385
  }), o;
351
- }, E = (t) => {
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
- }, ae = (e, t, n, r) => t.flatMap((t) => {
355
- let i = oe(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
- }), oe = (t, n, r, i) => {
358
- let a = t.getSignatureFromDeclaration(n), o = se(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 = ce(n.name?.getText());
361
- return le(r.find((e) => e.identifier === c));
362
- }, se = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, ce = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", le = (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 = ue(e?.parameterDefinitions?.nodes || [])), n;
376
- }, ue = (e) => ({
413
+ return t && (n.parameters = ve(e?.parameterDefinitions?.nodes || [])), n;
414
+ }, ve = (e) => ({
377
415
  __typename: "NodeParameterConnection",
378
- nodes: e.map((e) => de(e))
379
- }), de = (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
- }), fe = (e, t, n, r) => q(r) ? t.flatMap((t) => {
391
- let i = pe(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
- }) : [], pe = (e, t, n, r) => {
394
- let i = e.getTypeAtLocation(t);
395
- if (!e.isTypeAssignableTo(i, r)) return null;
396
- let a = me(t.name?.getText()), o = n.find((e) => e.identifier === a);
397
- return o ? he(o) : null;
398
- }, me = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", he = (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,
@@ -406,129 +447,129 @@ var _ = (t) => {
406
447
  hidden: e?.hidden ?? !1,
407
448
  optional: e?.optional ?? !1
408
449
  }))
409
- }), D = {
450
+ }), k = {
410
451
  DATE: "date",
411
452
  TYPE: "type"
412
- }, O = (e) => e != null && e in D, ge = new Set(Object.values(D)), k = (e) => e != null && ge.has(e), _e = 7, A = (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 A(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
- let d = O(r.aliasSymbol?.getName()), f = d && r.isIntersection() ? t.typeToString(r.types.find((t) => (t.flags & e.TypeFlags.Object) === 0) ?? r) : d ? "object" : t.typeToString({
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 = q(p) ? p : r, h = o ? { suggestions: [
421
- ...v(p, t),
422
- ...n ? y(t, n, p, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
423
- ...ae(t, i, a, p),
424
- ...fe(t, i, a, m)
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 = Ce(t, u);
468
+ let e = Me(t, u);
428
469
  if (e) return {
429
470
  input: e,
430
471
  type: f,
431
- ...h
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
- ...A(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
- ...h
480
+ ...g
440
481
  };
441
482
  }
442
- let g = z(r);
443
- if (g) return {
444
- input: g,
483
+ let _ = B(r);
484
+ if (_) return {
485
+ input: _,
445
486
  type: f,
446
- ...h
487
+ ...g
447
488
  };
448
- if (B(t, r)) return {
489
+ if (V(t, r)) return {
449
490
  input: "file",
450
491
  type: f,
451
- mimetype: V(t, r),
452
- ...h
492
+ mimetype: H(t, r),
493
+ ...g
453
494
  };
454
- if (Te(t, r)) return {
495
+ if (Pe(t, r)) return {
455
496
  input: "color",
456
497
  type: f,
457
- ...h
498
+ ...g
458
499
  };
459
- if (H(r)) return {
500
+ if (U(r)) return {
460
501
  input: "boolean",
461
502
  type: f,
462
- ...h
503
+ ...g
463
504
  };
464
- if (K(r)) return {
505
+ if (q(r)) return {
465
506
  input: "select",
466
507
  type: f,
467
- ...h
508
+ ...g
468
509
  };
469
- if (U(r)) return {
510
+ if (W(r)) return {
470
511
  input: "number",
471
512
  type: f,
472
- ...h
513
+ ...g
473
514
  };
474
- if (W(r)) return {
515
+ if (G(r)) return {
475
516
  input: "text",
476
517
  type: f,
477
- ...h
518
+ ...g
478
519
  };
479
- if (q(r)) return {
520
+ if (J(r)) return {
480
521
  input: "sub-flow",
481
522
  type: f,
482
- ...h
523
+ ...g
483
524
  };
484
- if (ke(t, r)) {
525
+ if (Re(t, r)) {
485
526
  let e = t.getTypeArguments(r);
486
- if (e.length === 1 && B(t, e[0])) return {
527
+ if (e.length === 1 && V(t, e[0])) return {
487
528
  input: "list-file",
488
529
  type: f,
489
- mimetype: V(t, e[0]),
490
- ...h
530
+ mimetype: H(t, e[0]),
531
+ ...g
491
532
  };
492
533
  let s = e.flatMap((e) => {
493
534
  let r = e.isUnion() ? e.types : [e], s = r.length > 1 ? e : void 0;
494
- return r.map((e) => A(t, n, e, i, a, o, s, c, l));
535
+ return r.map((e) => M(t, n, e, i, a, o, s, c, l));
495
536
  }), u = o ? { declaredItems: s } : {};
496
- if (e.length === 1 && K(e[0])) return {
537
+ if (e.length === 1 && q(e[0])) return {
497
538
  input: "list-select",
498
539
  type: f,
499
540
  items: s,
500
541
  ...u,
501
- ...h
542
+ ...g
502
543
  };
503
544
  if (e.length === 1) {
504
545
  let t = e[0];
505
- if (H(t)) return {
546
+ if (U(t)) return {
506
547
  input: "list-boolean",
507
548
  type: f,
508
549
  items: s,
509
550
  ...u,
510
- ...h
551
+ ...g
511
552
  };
512
- if (U(t)) return {
553
+ if (W(t)) return {
513
554
  input: "list-number",
514
555
  type: f,
515
556
  items: s,
516
557
  ...u,
517
- ...h
558
+ ...g
518
559
  };
519
- if (W(t)) return {
560
+ if (G(t)) return {
520
561
  input: "list-text",
521
562
  type: f,
522
563
  items: s,
523
564
  ...u,
524
- ...h
565
+ ...g
525
566
  };
526
- if (q(t)) return {
567
+ if (J(t)) return {
527
568
  input: "list-sub-flow",
528
569
  type: f,
529
570
  items: s,
530
571
  ...u,
531
- ...h
572
+ ...g
532
573
  };
533
574
  }
534
575
  return {
@@ -536,21 +577,21 @@ var _ = (t) => {
536
577
  type: f,
537
578
  items: s,
538
579
  ...u,
539
- ...h
580
+ ...g
540
581
  };
541
582
  }
542
583
  if ((r.flags & e.TypeFlags.Object) !== 0) {
543
- if (c.has(r) || c.size >= _e && C(r, t, l)) return {
584
+ if (c.has(r) || c.size >= Te && de(r, t, l)) return {
544
585
  input: "data",
545
586
  type: f,
546
- ...h
587
+ ...g
547
588
  };
548
589
  c.add(r);
549
590
  let s = {}, d = [];
550
591
  for (let f of t.getPropertiesOfType(r)) {
551
592
  let r = f.valueDeclaration ?? f.declarations?.[0];
552
593
  if (!r) continue;
553
- 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() && !K(h) && !H(h) ? h.types : [h], _ = u ? we(t, u, f.name) : void 0, v = g.map((e) => A(t, n, e, i, a, o, void 0, c, l, _));
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, _));
554
595
  s[f.name] = v.length === 1 ? v[0] : v, m || d.push(f.name);
555
596
  }
556
597
  return c.delete(r), {
@@ -558,49 +599,49 @@ var _ = (t) => {
558
599
  type: f,
559
600
  properties: s,
560
601
  required: d,
561
- ...h
602
+ ...g
562
603
  };
563
604
  }
564
605
  return {
565
606
  input: "generic",
566
607
  type: f,
567
- ...h
608
+ ...g
568
609
  };
569
- }, j = /* @__PURE__ */ new Set([
610
+ }, N = /* @__PURE__ */ new Set([
570
611
  "list",
571
612
  "list-select",
572
613
  "list-boolean",
573
614
  "list-number",
574
615
  "list-text",
575
616
  "list-sub-flow"
576
- ]), ve = /* @__PURE__ */ new Set([
617
+ ]), Ee = /* @__PURE__ */ new Set([
577
618
  "list-select",
578
619
  "list-boolean",
579
620
  "list-number",
580
621
  "list-text",
581
622
  "list-sub-flow",
582
623
  "list-file"
583
- ]), M = (e) => {
624
+ ]), P = (e) => {
584
625
  let t = e, n = e.items;
585
626
  n && (t = {
586
627
  ...t,
587
- items: n.map(M)
628
+ items: n.map(P)
588
629
  });
589
630
  let r = e.declaredItems;
590
631
  r && (t = {
591
632
  ...t,
592
- declaredItems: r.map(M)
633
+ declaredItems: r.map(P)
593
634
  });
594
635
  let i = e.properties;
595
636
  if (i) {
596
637
  let e = {};
597
- for (let [t, n] of Object.entries(i)) e[t] = Array.isArray(n) ? n.map(M) : M(n);
638
+ for (let [t, n] of Object.entries(i)) e[t] = Array.isArray(n) ? n.map(P) : P(n);
598
639
  t = {
599
640
  ...t,
600
641
  properties: e
601
642
  };
602
643
  }
603
- if (ve.has(t.input)) {
644
+ if (Ee.has(t.input)) {
604
645
  let { mimetype: e, ...n } = t;
605
646
  t = {
606
647
  ...n,
@@ -608,142 +649,133 @@ var _ = (t) => {
608
649
  };
609
650
  }
610
651
  if (t.suggestions && t.suggestions.length === 0) {
611
- let { suggestions: e, ...n } = t;
612
- t = n;
652
+ let { suggestions: e, suggestionCertainty: n, ...r } = t;
653
+ t = r;
613
654
  }
614
655
  return t;
615
- }, N = (t) => {
656
+ }, De = (t) => {
616
657
  if (!t.isUnion()) return t;
617
658
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
618
659
  return n.length === 1 ? n[0] : t;
619
- }, P = (e, t) => {
660
+ }, F = (e, t) => {
620
661
  if (t && t.length > 0) return {
621
662
  ...e,
622
- suggestions: t
663
+ ...re(t)
623
664
  };
624
665
  if (e.suggestions === void 0) return e;
625
- let { suggestions: n, ...r } = e;
626
- return r;
627
- }, F = (e, t = void 0) => {
666
+ let { suggestions: n, suggestionCertainty: r, ...i } = e;
667
+ return i;
668
+ }, I = (e, t = void 0) => {
628
669
  let n = e, r = n.items;
629
670
  r && (n = {
630
671
  ...n,
631
- items: r.map((e) => F(e, t))
672
+ items: r.map((e) => I(e, t))
632
673
  });
633
674
  let i = n.declaredItems;
634
675
  i && (n = {
635
676
  ...n,
636
- declaredItems: i.map((e) => F(e, t))
677
+ declaredItems: i.map((e) => I(e, t))
637
678
  });
638
679
  let a = n.properties;
639
680
  if (a) {
640
681
  let e = {};
641
- for (let [n, r] of Object.entries(a)) e[n] = Array.isArray(r) ? r.map((e) => F(e, t)) : F(r, t);
682
+ for (let [n, r] of Object.entries(a)) e[n] = Array.isArray(r) ? r.map((e) => I(e, t)) : I(r, t);
642
683
  n = {
643
684
  ...n,
644
685
  properties: e
645
686
  };
646
687
  }
647
- return n.input === "generic" ? P(n, t) : P(n, n.suggestions);
648
- }, I = (e, t = void 0) => e && e.length > 0 ? e.map((e) => F(e, t)) : [P({ input: "generic" }, t)], L = (e, t = void 0, n = !0) => {
649
- let r = Se(e), i = r.items;
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;
650
691
  i && (r = {
651
692
  ...r,
652
- items: i.map((e) => L(e, t))
693
+ items: i.map((e) => R(e, t))
653
694
  });
654
695
  let a = r.declaredItems;
655
696
  a && (r = {
656
697
  ...r,
657
- declaredItems: a.map((e) => L(e, t))
698
+ declaredItems: a.map((e) => R(e, t))
658
699
  });
659
700
  let o = r.properties;
660
701
  if (o) {
661
702
  let e = {};
662
- for (let [n, r] of Object.entries(o)) e[n] = Array.isArray(r) ? r.map((e) => L(e, t)) : L(r, t);
703
+ for (let [n, r] of Object.entries(o)) e[n] = Array.isArray(r) ? r.map((e) => R(e, t)) : R(r, t);
663
704
  r = {
664
705
  ...r,
665
706
  properties: e
666
707
  };
667
708
  }
668
- if (n) {
669
- if (t && t.length > 0) r = {
670
- ...r,
671
- suggestions: t
672
- };
673
- else if (r.suggestions) {
674
- let { suggestions: e, ...t } = r;
675
- r = t;
676
- }
677
- }
678
- return r;
679
- }, R = (e, t, n = !1, r = void 0, i = !0) => {
680
- if (!e || e.input === "generic") return xe(L(t, r, !i), n);
681
- let a = be(i ? t.suggestions : 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));
682
713
  if (e.input === "data") {
683
714
  let n = e.properties ?? {}, i = t.input === "data" ? t.properties ?? {} : {}, o = {}, s = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(i)]);
684
- for (let e of s) o[e] = ye(n[e], i[e], r);
685
- return P({
715
+ for (let e of s) o[e] = Oe(n[e], i[e], r);
716
+ return F({
686
717
  ...e,
687
718
  properties: o
688
719
  }, a);
689
720
  }
690
- if (j.has(e.input)) {
691
- let n = e.items ?? [], i = j.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)) : I(n, r);
692
- return P({
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({
693
724
  ...e,
694
725
  items: o,
695
- declaredItems: I(n, r)
726
+ declaredItems: L(n, r)
696
727
  }, a);
697
728
  }
698
- return k(e.input) ? P({
729
+ return j(e.input) ? F({
699
730
  ...e,
700
731
  ...t.type === void 0 ? {} : { type: t.type }
701
- }, a) : P({ ...e }, a);
702
- }, ye = (e, t, n = void 0) => e === void 0 && t !== void 0 ? Array.isArray(t) ? t.map((e) => L(e, n)) : L(t, n) : e && !Array.isArray(e) && t && !Array.isArray(t) ? R(e, t, !1, n, !1) : Array.isArray(e) && Array.isArray(t) && e.length === t.length ? e.map((e, r) => R(e, t[r], !1, n, !1)) : Array.isArray(e) ? e.map((e) => F(e, n)) : F(e, n), be = (e) => {
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) => {
703
734
  if (!e || e.length === 0) return;
704
- let t = /* @__PURE__ */ new Set(), n = [];
705
- for (let r of e) {
706
- let e = JSON.stringify(r);
707
- t.has(e) || (t.add(e), n.push(r));
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);
708
742
  }
709
- return n;
710
- }, xe = (e, t) => !t || e.input !== "generic" ? e : {
743
+ return [...t.values()];
744
+ }, Ae = (e, t) => !t || e.input !== "generic" ? e : F({
711
745
  input: "data",
712
746
  ...e.type ? { type: e.type } : {},
713
747
  properties: {},
714
- required: [],
715
- ...e.suggestions ? { suggestions: e.suggestions } : {}
716
- }, Se = (e) => {
748
+ required: []
749
+ }, w(e)), je = (e) => {
717
750
  if (e.input !== "select") return e;
718
- let t = e.suggestions ?? [], n = /* @__PURE__ */ new Set();
751
+ let t = w(e), n = /* @__PURE__ */ new Set();
719
752
  for (let e of t) {
720
- let t = typeof e.value;
753
+ let t = typeof e.value.value;
721
754
  (t === "string" || t === "number" || t === "boolean") && n.add(t);
722
755
  }
723
- return {
756
+ return F({
724
757
  input: n.size === 1 ? {
725
758
  string: "text",
726
759
  number: "number",
727
760
  boolean: "boolean"
728
761
  }[[...n][0]] : "text",
729
- ...e.type ? { type: e.type } : {},
730
- ...t.length > 0 ? { suggestions: t } : {}
731
- };
762
+ ...e.type ? { type: e.type } : {}
763
+ }, t);
732
764
  };
733
- function z(e) {
765
+ function B(e) {
734
766
  let t = e.aliasSymbol?.getName();
735
- return O(t) ? D[t] : void 0;
767
+ return A(t) ? k[t] : void 0;
736
768
  }
737
- function Ce(t, n) {
769
+ function Me(t, n) {
738
770
  if ((n.flags & e.TypeFlags.TypeParameter) === 0) return;
739
771
  let r = n.symbol?.declarations?.[0];
740
- if (r && e.isTypeParameterDeclaration(r) && r.constraint) return z(t.getTypeFromTypeNode(r.constraint));
772
+ if (r && e.isTypeParameterDeclaration(r) && r.constraint) return B(t.getTypeFromTypeNode(r.constraint));
741
773
  }
742
- function we(e, t, n) {
774
+ function Ne(e, t, n) {
743
775
  let r = e.getPropertyOfType(t, n), i = r?.valueDeclaration ?? r?.declarations?.[0];
744
776
  return i ? e.getTypeOfSymbolAtLocation(r, i) : void 0;
745
777
  }
746
- function B(t, n) {
778
+ function V(t, n) {
747
779
  if (n.aliasSymbol?.getName() !== "FILE" || (n.flags & e.TypeFlags.Object) === 0) return !1;
748
780
  let r = t.getPropertiesOfType(n);
749
781
  if (r.length !== 4) return !1;
@@ -754,7 +786,7 @@ function B(t, n) {
754
786
  let s = t.getTypeOfSymbolAtLocation(a, o);
755
787
  return s.isStringLiteral() && s.value === "base64";
756
788
  }
757
- function Te(t, n) {
789
+ function Pe(t, n) {
758
790
  if (n.aliasSymbol?.getName() !== "COLOR" || (n.flags & e.TypeFlags.Object) === 0) return !1;
759
791
  let r = new Map(t.getPropertiesOfType(n).map((e) => [e.name, e]));
760
792
  return [
@@ -765,10 +797,10 @@ function Te(t, n) {
765
797
  let n = r.get(e);
766
798
  if (!n) return !1;
767
799
  let i = n.valueDeclaration ?? n.declarations?.[0];
768
- return i ? U(t.getTypeOfSymbolAtLocation(n, i)) : !1;
800
+ return i ? W(t.getTypeOfSymbolAtLocation(n, i)) : !1;
769
801
  });
770
802
  }
771
- function V(e, t) {
803
+ function H(e, t) {
772
804
  let n = /^(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)\/(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)$/, r = e.getPropertiesOfType(t).find((e) => e.name === "contentType");
773
805
  if (!r) return "*/*";
774
806
  let i = r.valueDeclaration ?? r.declarations?.[0];
@@ -776,7 +808,7 @@ function V(e, t) {
776
808
  let a = e.getTypeOfSymbolAtLocation(r, i);
777
809
  return a.isStringLiteral() && n.test(a.value) ? a.value : "*/*";
778
810
  }
779
- function H(t) {
811
+ function U(t) {
780
812
  if ((t.flags & e.TypeFlags.Boolean) !== 0 || (t.flags & e.TypeFlags.BooleanLiteral) !== 0) return !0;
781
813
  if (t.isUnion()) {
782
814
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
@@ -784,52 +816,52 @@ function H(t) {
784
816
  }
785
817
  return !1;
786
818
  }
787
- function U(t) {
819
+ function W(t) {
788
820
  return (t.flags & e.TypeFlags.Number) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
789
821
  }
790
- function W(t) {
822
+ function G(t) {
791
823
  return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
792
824
  }
793
- function Ee(e) {
794
- return W(e) || U(e) || H(e);
825
+ function Fe(e) {
826
+ return G(e) || W(e) || U(e);
795
827
  }
796
- function G(t) {
828
+ function K(t) {
797
829
  return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
798
830
  }
799
- function K(e) {
800
- return H(e) ? !1 : Oe(e) || G(e);
831
+ function q(e) {
832
+ return U(e) ? !1 : Le(e) || K(e);
801
833
  }
802
- function De(t) {
834
+ function Ie(t) {
803
835
  if (!t.isUnion()) return !1;
804
- if (H(t)) return !0;
836
+ if (U(t)) return !0;
805
837
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
806
- return n.length > 0 && n.every(G);
838
+ return n.length > 0 && n.every(K);
807
839
  }
808
- function Oe(t) {
840
+ function Le(t) {
809
841
  if (!t.isUnion()) return !1;
810
842
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
811
- return n.length > 0 && n.every(Ee);
843
+ return n.length > 0 && n.every(Fe);
812
844
  }
813
- function ke(e, t) {
845
+ function Re(e, t) {
814
846
  return e.isArrayType(t) || e.isTupleType(t);
815
847
  }
816
- function q(e) {
848
+ function J(e) {
817
849
  return e.getCallSignatures().length > 0;
818
850
  }
819
851
  //#endregion
820
852
  //#region src/utils.ts
821
- var Ae = "\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";
822
- function je(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) {
823
855
  let r = /* @__PURE__ */ new Map();
824
- return r.set(t, n), r.set("lib.codezero.d.ts", Ae), a(u(r), [t, "lib.codezero.d.ts"], e, Me);
856
+ return r.set(t, n), r.set("lib.codezero.d.ts", ze), a(u(r), [t, "lib.codezero.d.ts"], e, Ve);
825
857
  }
826
- var Me = {
858
+ var Ve = {
827
859
  target: e.ScriptTarget.Latest,
828
860
  lib: ["lib.codezero.d.ts"],
829
861
  noEmit: !0,
830
862
  strictNullChecks: !0
831
863
  };
832
- function Ne(e) {
864
+ function He(e) {
833
865
  let t = [], n = 0, r = null, i = "";
834
866
  for (let a of e) {
835
867
  if (r) a === r && (r = null);
@@ -844,20 +876,20 @@ function Ne(e) {
844
876
  }
845
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);
846
878
  }
847
- var J = /* @__PURE__ */ new Set([
879
+ var Ue = /* @__PURE__ */ new Set([
848
880
  "number",
849
881
  "string",
850
882
  "boolean"
851
883
  ]);
852
884
  function Y(e, t = "any", n = !0) {
853
- let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(Ne))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
854
- let t = O(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 ? J.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;
855
887
  return `type ${e.identifier}${n} = ${i};`;
856
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") ?? "";
857
889
  return `${n ? r : ""}\n${i}\n${a}`;
858
890
  }
859
- var Pe = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Fe = (e) => {
860
- if (!Pe.test(e)) return !1;
891
+ var We = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ge = (e) => {
892
+ if (!We.test(e)) return !1;
861
893
  let t = {
862
894
  "<": ">",
863
895
  "[": "]",
@@ -876,8 +908,8 @@ var Pe = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Fe = (e) => {
876
908
  return r === null && n.length === 0;
877
909
  }, X = (e, t) => {
878
910
  let n = t?.trim();
879
- return !n || !Fe(n) ? e : `(${e}) as unknown as ${n}`;
880
- }, Z = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_"), Q = (e) => e.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"), Ie = (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) => {
881
913
  let n = e.match(/^\$\{([^}]+)\}$/);
882
914
  if (n && t.has(n[1])) return t.get(n[1]);
883
915
  let r = /\$\{([^}]+)\}/g, i = !1;
@@ -892,8 +924,8 @@ var Pe = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Fe = (e) => {
892
924
  a += Q(e.slice(o, s)), a += t.has(i) ? "${" + t.get(i) + "}" : Q(r), o = s + r.length;
893
925
  }
894
926
  return a += Q(e.slice(o)), "`" + a + "`";
895
- }, $ = (e, t) => typeof e == "string" ? Ie(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";
896
- function Le(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) {
897
929
  let a = e?.nodes?.nodes || [], o = new Map(t?.map((e) => [e.identifier, e])), s = /* @__PURE__ */ new Set(), c = (t) => {
898
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")}`;
899
931
  return t.referencePath?.forEach((e) => {
@@ -956,4 +988,4 @@ function Le(e, t, n, r = !1, i = !0) {
956
988
  `;
957
989
  }
958
990
  //#endregion
959
- export { P as _, D as a, L as c, k as d, De as f, M as g, N as h, Z as i, A as l, R as m, Le as n, I as o, q as p, Y as r, F as s, je as t, O as u, h as v };
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 };