@code0-tech/triangulum 0.28.0 → 0.30.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.
@@ -1,64 +1,65 @@
1
1
  import e, { flattenDiagnosticMessageText as t } from "typescript";
2
+ import { DEFAULT_CONFIG as n, SchemaGenerator as r, createFormatter as i, createParser as a } from "ts-json-schema-generator";
2
3
  //#region node_modules/@typescript/vfs/dist/vfs.esm.js
3
- function n() {
4
- return n = Object.assign ? Object.assign.bind() : function(e) {
4
+ function o() {
5
+ return o = Object.assign ? Object.assign.bind() : function(e) {
5
6
  for (var t = 1; t < arguments.length; t++) {
6
7
  var n = arguments[t];
7
8
  for (var r in n) ({}).hasOwnProperty.call(n, r) && (e[r] = n[r]);
8
9
  }
9
10
  return e;
10
- }, n.apply(null, arguments);
11
+ }, o.apply(null, arguments);
11
12
  }
12
- var r = !1;
13
+ var s = !1;
13
14
  try {
14
- r = typeof localStorage < "u";
15
+ s = typeof localStorage < "u";
15
16
  } catch {}
16
- var i = typeof process < "u", a = r && typeof localStorage.getItem == "function" && /*#__PURE__*/ localStorage.getItem("DEBUG") || i && process.env.DEBUG ? console.log : function(e) {
17
+ var c = typeof process < "u", l = s && typeof localStorage.getItem == "function" && /*#__PURE__*/ localStorage.getItem("DEBUG") || c && process.env.DEBUG ? console.log : function(e) {
17
18
  return "";
18
19
  };
19
- function o(e, t, r, i, a) {
20
- i === void 0 && (i = {});
21
- var o = n({}, l(r), i), s = p(e, t, o, r, a), c = s.languageServiceHost, u = s.updateFile, d = s.deleteFile, m = r.createLanguageService(c), h = m.getCompilerOptionsDiagnostics();
22
- if (h.length) {
23
- var g = f(e, i, r);
24
- throw Error(r.formatDiagnostics(h, g.compilerHost));
20
+ function u(e, t, n, r, i) {
21
+ r === void 0 && (r = {});
22
+ var a = o({}, p(n), r), s = _(e, t, a, n, i), c = s.languageServiceHost, l = s.updateFile, u = s.deleteFile, d = n.createLanguageService(c), f = d.getCompilerOptionsDiagnostics();
23
+ if (f.length) {
24
+ var m = g(e, r, n);
25
+ throw Error(n.formatDiagnostics(f, m.compilerHost));
25
26
  }
26
27
  return {
27
28
  name: "vfs",
28
29
  sys: e,
29
- languageService: m,
30
+ languageService: d,
30
31
  getSourceFile: function(e) {
31
- return m.getProgram()?.getSourceFile(e);
32
+ return d.getProgram()?.getSourceFile(e);
32
33
  },
33
34
  createFile: function(e, t) {
34
- u(r.createSourceFile(e, t, o.target, !1));
35
+ l(n.createSourceFile(e, t, a.target, !1));
35
36
  },
36
- updateFile: function(e, t, n) {
37
- var i = m.getProgram().getSourceFile(e);
37
+ updateFile: function(e, t, r) {
38
+ var i = d.getProgram().getSourceFile(e);
38
39
  if (!i) throw Error("Did not find a source file for " + e);
39
- var a = i.text, o = n ?? r.createTextSpan(0, a.length), s = a.slice(0, o.start) + t + a.slice(o.start + o.length);
40
- u(r.updateSourceFile(i, s, {
40
+ var a = i.text, o = r ?? n.createTextSpan(0, a.length), s = a.slice(0, o.start) + t + a.slice(o.start + o.length);
41
+ l(n.updateSourceFile(i, s, {
41
42
  span: o,
42
43
  newLength: t.length
43
44
  }));
44
45
  },
45
46
  deleteFile: function(e) {
46
- var t = m.getProgram().getSourceFile(e);
47
- t && d(t);
47
+ var t = d.getProgram().getSourceFile(e);
48
+ t && u(t);
48
49
  }
49
50
  };
50
51
  }
51
- function s(e) {
52
+ function d(e) {
52
53
  throw Error("Method '" + e + "' is not implemented.");
53
54
  }
54
- function c(e, t) {
55
+ function f(e, t) {
55
56
  return function() {
56
57
  var n = [...arguments], r = t.apply(void 0, n), i = typeof r == "string" ? r.slice(0, 80) + "..." : r;
57
- return a.apply(void 0, ["> " + e].concat(n)), a("< " + i), r;
58
+ return l.apply(void 0, ["> " + e].concat(n)), l("< " + i), r;
58
59
  };
59
60
  }
60
- var l = function(e) {
61
- return n({}, e.getDefaultCompilerOptions(), {
61
+ var p = function(e) {
62
+ return o({}, e.getDefaultCompilerOptions(), {
62
63
  jsx: e.JsxEmit.React,
63
64
  strict: !0,
64
65
  esModuleInterop: !0,
@@ -67,25 +68,25 @@ var l = function(e) {
67
68
  skipLibCheck: !0,
68
69
  skipDefaultLibCheck: !0
69
70
  }, e.versionMajorMinor && Number(e.versionMajorMinor.split(".")[0]) >= 6 ? { ignoreDeprecations: "6.0" } : { moduleResolution: e.ModuleResolutionKind.NodeJs });
70
- }, u = function(e) {
71
+ }, m = function(e) {
71
72
  return e.replace("/", "/lib.").toLowerCase();
72
73
  };
73
- function d(e) {
74
+ function h(e) {
74
75
  return {
75
76
  args: [],
76
77
  createDirectory: function() {
77
- return s("createDirectory");
78
+ return d("createDirectory");
78
79
  },
79
- directoryExists: c("directoryExists", function(t) {
80
+ directoryExists: f("directoryExists", function(t) {
80
81
  return Array.from(e.keys()).some(function(e) {
81
82
  return e.startsWith(t);
82
83
  });
83
84
  }),
84
85
  exit: function() {
85
- return s("exit");
86
+ return d("exit");
86
87
  },
87
- fileExists: c("fileExists", function(t) {
88
- return e.has(t) || e.has(u(t));
88
+ fileExists: f("fileExists", function(t) {
89
+ return e.has(t) || e.has(m(t));
89
90
  }),
90
91
  getCurrentDirectory: function() {
91
92
  return "/";
@@ -94,13 +95,13 @@ function d(e) {
94
95
  return [];
95
96
  },
96
97
  getExecutingFilePath: function() {
97
- return s("getExecutingFilePath");
98
+ return d("getExecutingFilePath");
98
99
  },
99
- readDirectory: c("readDirectory", function(t) {
100
+ readDirectory: f("readDirectory", function(t) {
100
101
  return t === "/" ? Array.from(e.keys()) : [];
101
102
  }),
102
- readFile: c("readFile", function(t) {
103
- return e.get(t) ?? e.get(u(t));
103
+ readFile: f("readFile", function(t) {
104
+ return e.get(t) ?? e.get(m(t));
104
105
  }),
105
106
  resolvePath: function(e) {
106
107
  return e;
@@ -108,7 +109,7 @@ function d(e) {
108
109
  newLine: "\n",
109
110
  useCaseSensitiveFileNames: !0,
110
111
  write: function() {
111
- return s("write");
112
+ return d("write");
112
113
  },
113
114
  writeFile: function(t, n) {
114
115
  e.set(t, n);
@@ -118,57 +119,57 @@ function d(e) {
118
119
  }
119
120
  };
120
121
  }
121
- function f(e, t, r) {
122
- var i = /* @__PURE__ */ new Map(), a = function(e) {
123
- return i.set(e.fileName, e), e;
122
+ function g(e, t, n) {
123
+ var r = /* @__PURE__ */ new Map(), i = function(e) {
124
+ return r.set(e.fileName, e), e;
124
125
  };
125
126
  return {
126
- compilerHost: n({}, e, {
127
+ compilerHost: o({}, e, {
127
128
  getCanonicalFileName: function(e) {
128
129
  return e;
129
130
  },
130
131
  getDefaultLibFileName: function() {
131
- return "/" + r.getDefaultLibFileName(t);
132
+ return "/" + n.getDefaultLibFileName(t);
132
133
  },
133
134
  getNewLine: function() {
134
135
  return e.newLine;
135
136
  },
136
- getSourceFile: function(n, o) {
137
- return i.get(n) || a(r.createSourceFile(n, e.readFile(n), o ?? t.target ?? l(r).target, !1));
137
+ getSourceFile: function(a, o) {
138
+ return r.get(a) || i(n.createSourceFile(a, e.readFile(a), o ?? t.target ?? p(n).target, !1));
138
139
  },
139
140
  useCaseSensitiveFileNames: function() {
140
141
  return e.useCaseSensitiveFileNames;
141
142
  }
142
143
  }),
143
144
  updateFile: function(t) {
144
- var n = i.has(t.fileName);
145
- return e.writeFile(t.fileName, t.text), i.set(t.fileName, t), n;
145
+ var n = r.has(t.fileName);
146
+ return e.writeFile(t.fileName, t.text), r.set(t.fileName, t), n;
146
147
  },
147
148
  deleteFile: function(t) {
148
- var n = i.has(t.fileName);
149
- return i.delete(t.fileName), e.deleteFile(t.fileName), n;
149
+ var n = r.has(t.fileName);
150
+ return r.delete(t.fileName), e.deleteFile(t.fileName), n;
150
151
  }
151
152
  };
152
153
  }
153
- function p(e, t, r, i, a) {
154
- var o = [].concat(t), s = f(e, r, i), c = s.compilerHost, l = s.updateFile, u = s.deleteFile, d = /* @__PURE__ */ new Map(), p = 0;
154
+ function _(e, t, n, r, i) {
155
+ var a = [].concat(t), s = g(e, n, r), c = s.compilerHost, l = s.updateFile, u = s.deleteFile, d = /* @__PURE__ */ new Map(), f = 0;
155
156
  return {
156
- languageServiceHost: n({}, c, {
157
+ languageServiceHost: o({}, c, {
157
158
  getProjectVersion: function() {
158
- return p.toString();
159
+ return f.toString();
159
160
  },
160
161
  getCompilationSettings: function() {
161
- return r;
162
+ return n;
162
163
  },
163
164
  getCustomTransformers: function() {
164
- return a;
165
+ return i;
165
166
  },
166
167
  getScriptFileNames: function() {
167
- return o.slice();
168
+ return a.slice();
168
169
  },
169
170
  getScriptSnapshot: function(t) {
170
171
  var n = e.readFile(t);
171
- if (n && typeof n == "string") return i.ScriptSnapshot.fromString(n);
172
+ if (n && typeof n == "string") return r.ScriptSnapshot.fromString(n);
172
173
  },
173
174
  getScriptVersion: function(e) {
174
175
  return d.get(e) || "0";
@@ -176,32 +177,32 @@ function p(e, t, r, i, a) {
176
177
  writeFile: e.writeFile
177
178
  }),
178
179
  updateFile: function(e) {
179
- p++, d.set(e.fileName, p.toString()), o.includes(e.fileName) || o.push(e.fileName), l(e);
180
+ f++, d.set(e.fileName, f.toString()), a.includes(e.fileName) || a.push(e.fileName), l(e);
180
181
  },
181
182
  deleteFile: function(e) {
182
- p++, d.set(e.fileName, p.toString());
183
- var t = o.indexOf(e.fileName);
184
- t !== -1 && o.splice(t, 1), u(e);
183
+ f++, d.set(e.fileName, f.toString());
184
+ var t = a.indexOf(e.fileName);
185
+ t !== -1 && a.splice(t, 1), u(e);
185
186
  }
186
187
  };
187
188
  }
188
189
  //#endregion
189
190
  //#region node_modules/lossless-json/lib/esm/utils.js
190
- function m(e) {
191
- return h.test(e);
191
+ function v(e) {
192
+ return y.test(e);
192
193
  }
193
- var h = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
194
+ var y = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
194
195
  //#endregion
195
196
  //#region node_modules/lossless-json/lib/esm/stringify.js
196
- function g(e, t, n, r) {
197
- let i = _(n);
197
+ function b(e, t, n, r) {
198
+ let i = x(n);
198
199
  return a(typeof t == "function" ? t.call({ "": e }, "", e) : e, "");
199
200
  function a(e, t) {
200
201
  if (Array.isArray(r)) {
201
202
  let t = r.find((t) => t.test(e));
202
203
  if (t) {
203
204
  let n = t.stringify(e);
204
- if (typeof n != "string" || !m(n)) throw Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${n})`);
205
+ if (typeof n != "string" || !v(n)) throw Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${n})`);
205
206
  return n;
206
207
  }
207
208
  }
@@ -220,7 +221,7 @@ function g(e, t, n, r) {
220
221
  return o += i ? `\n${n}]` : "]", o;
221
222
  }
222
223
  function s(e, r) {
223
- if (typeof e.toJSON == "function") return g(e.toJSON(), t, n, void 0);
224
+ if (typeof e.toJSON == "function") return b(e.toJSON(), t, n, void 0);
224
225
  let o = Array.isArray(t) ? t.map(String) : Object.keys(e);
225
226
  if (o.length === 0) return "{}";
226
227
  let s = i ? r + i : void 0, l = !0, u = i ? "{\n" : "{";
@@ -238,256 +239,14 @@ function g(e, t, n, r) {
238
239
  return t !== void 0 && typeof t != "function" && typeof t != "symbol";
239
240
  }
240
241
  }
241
- function _(e) {
242
+ function x(e) {
242
243
  if (typeof e == "number") return " ".repeat(e);
243
244
  if (typeof e == "string" && e !== "") return e;
244
245
  }
245
246
  //#endregion
246
- //#region src/utils.ts
247
- var v = "\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";
248
- function y(t, n) {
249
- let r = /* @__PURE__ */ new Map();
250
- return r.set(t, n), r.set("lib.codezero.d.ts", v), o(d(r), [t, "lib.codezero.d.ts"], e, b);
251
- }
252
- var b = {
253
- target: e.ScriptTarget.Latest,
254
- lib: ["lib.codezero.d.ts"],
255
- noEmit: !0,
256
- strictNullChecks: !0
257
- };
258
- function x(e, t = "any", n = !0) {
259
- let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => `type ${e.identifier}${(e.genericKeys?.length ?? 0) > 0 ? `<${e.genericKeys?.join(",")}>` : ""} = ${e.type};`).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") ?? "";
260
- return `${n ? r : ""}\n${i}\n${a}`;
261
- }
262
- var S = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_");
263
- function C(e, t, n, r = !1, i = !0) {
264
- let a = e?.nodes?.nodes || [], o = new Map(t?.map((e) => [e.identifier, e])), s = /* @__PURE__ */ new Set(), c = (t, n = "") => {
265
- let l = a.find((e) => e?.id === t);
266
- if (!l || !l.functionDefinition) return "";
267
- if (t?.includes("NodeFunction") && s.add(t), !o.get(l.functionDefinition.identifier)) return `${n}// Error: Function ${l.functionDefinition.identifier} not found\n`;
268
- let u = (l.parameters?.nodes || []).map((a, o) => {
269
- let s = a.value;
270
- if (!s) return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
271
- if (s.__typename === "ReferenceValue") {
272
- let n = s, r = typeof n.inputIndex == "number" ? `p_${S(n.nodeFunctionId ?? "undefined")}_${n.parameterIndex}[${n.inputIndex}]` : n.nodeFunctionId ? `node_${S(n.nodeFunctionId)}` : `flow_${S(e?.id ?? "undefined")}`;
273
- return n.referencePath?.forEach((e) => {
274
- r += `?.${e.path}`;
275
- }), `/* @pos ${t} ${o} */ (${r})${i ? "!" : ""}`;
276
- }
277
- if (s.__typename === "LiteralValue") return `/* @pos ${t} ${o} */ ${s?.value !== null && s?.value !== void 0 ? g(s?.value) : void 0}`;
278
- if (s.__typename === "SubFlowValue") {
279
- let e = s;
280
- return `/* @pos ${t} ${o} */ (...${`p_${S(t)}_${o}`}) => {\n${c(e.startingNodeId || e.functionDefinition?.id, n + " ")}${n}}`;
281
- }
282
- return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
283
- }), d = `node_${S(l.id)}`, f = `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
284
- u.includes("undefined");
285
- let p = `${n}`;
286
- return l.functionDefinition.identifier === "std::control::return" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `return ${d};\n`) : l.functionDefinition.identifier === "std::control::if" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `if(${u[0]}) {
287
- ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId || (l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, n + " ")}
288
- }`) : l.functionDefinition.identifier === "std::control::if_else" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `if(${u[0]}) {
289
- ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId || (l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, n + " ")}
290
- } else {
291
- ${c(l.parameters?.nodes?.[2]?.value?.startingNodeId || (l.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier, n + " ")}
292
- }`) : p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, l.nextNodeId && (p += c(l.nextNodeId, n)), p;
293
- }, l = x(n), u = `declare function flow${e?.signature ?? "(): void"}`, d = t?.map((e) => `declare function fn_${e.identifier?.replace(/::/g, "_")}${e.signature}`).join("\n"), f = new Set(a.map((e) => e?.nextNodeId).filter((e) => !!e)), p = /* @__PURE__ */ new Set();
294
- return a.forEach((e) => e?.parameters?.nodes?.forEach((e) => {
295
- e?.value?.__typename === "SubFlowValue" && (e.value.startingNodeId || e.value.functionDefinition?.id) && p.add(e.value.startingNodeId || e.value.functionDefinition?.id);
296
- })), `
297
- ${l}\n
298
- ${u}\n
299
- ${d}\n
300
- (() =>
301
- ${e ? `const flow_${S(e.id ?? "")} = /* @pos null null */ flow(${e.settings?.nodes?.map((e, t) => `/* @pos null ${t} */ ${e?.value !== null && e?.value !== void 0 ? g(e?.value) : void 0}`).join(", ") ?? ""});` : ""}
302
- ${a.filter((e) => e?.id && !f.has(e.id) && !p.has(e.id)).map((e) => c(e.id)).join("\n")}
303
- )();
304
- `;
305
- }
306
- //#endregion
307
- //#region src/extraction/getTypeFromValue.ts
308
- var w = (t, n) => {
309
- let r = g(t?.value);
310
- if (!r) return "any";
311
- let i = `
312
- ${x(n, "unknown")}
313
- const tempValue = ${r ?? "any"};
314
- `, a = "index.ts", o = y(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = "any", u = (t) => {
315
- if (e.isVariableDeclaration(t) && t.name.getText() === "tempValue") {
316
- let n = c.getTypeAtLocation(t), r = c.getSymbolsInScope(t, e.SymbolFlags.TypeAlias), i = (n) => {
317
- if (n.isUnion()) {
318
- let e = n.types.map(i);
319
- return Array.from(new Set(e)).sort().join(" | ");
320
- }
321
- if (c.isArrayType(n)) {
322
- let e = n.typeArguments || [], t = e.length > 0 ? i(e[0]) : "any";
323
- return e[0]?.isUnion() ? `(${t})[]` : `${t}[]`;
324
- }
325
- if (n.getFlags() & e.TypeFlags.Object || n.isClassOrInterface()) {
326
- let e = c.getPropertiesOfType(n);
327
- if (e.length > 0) return `{ ${e.map((e) => {
328
- let n = c.getTypeOfSymbolAtLocation(e, t);
329
- return `${e.getName()}: ${i(n)}`;
330
- }).join(", ")} }`;
331
- }
332
- let a = r.filter((e) => c.isTypeAssignableTo(n, c.getDeclaredTypeOfSymbol(e)));
333
- return a.length > 0 ? a.sort((e, t) => {
334
- let n = c.getDeclaredTypeOfSymbol(e), r = c.getDeclaredTypeOfSymbol(t), i = c.isTypeAssignableTo(n, r), a = c.isTypeAssignableTo(r, n);
335
- return i && !a ? -1 : a && !i ? 1 : e.getName().length - t.getName().length || e.getName().localeCompare(t.getName());
336
- })[0].getName() : c.typeToString(n, t);
337
- };
338
- l = i(n);
339
- }
340
- e.forEachChild(t, u);
341
- };
342
- return u(s), l;
343
- }, ee = (t, n) => {
344
- let r = `
345
- ${x(n)}
346
- type Target = ${t};
347
- `, i = "index.ts", a = y(i, r), o = a.getSourceFile(i), s = a.languageService.getProgram().getTypeChecker(), c = o.statements.find((t) => e.isTypeAliasDeclaration(t) && t.name.text === "Target");
348
- if (!c) return {
349
- __typename: "LiteralValue",
350
- value: null
351
- };
352
- let l = s.getTypeAtLocation(c.type), u = (t, n, r = /* @__PURE__ */ new Set()) => {
353
- let i = new Set(r);
354
- if (i.has(t)) return null;
355
- let a = t.getFlags();
356
- if (t.isUnion()) {
357
- if (n.type, e.isTypeAliasDeclaration(n) && n.type && e.isUnionTypeNode(n.type)) return u(s.getTypeFromTypeNode(n.type.types[0]), n, i);
358
- let r = t.types.filter((t) => {
359
- let n = t.getFlags();
360
- return !(n & e.TypeFlags.Undefined) && !(n & e.TypeFlags.Null);
361
- });
362
- return u(r.length > 0 ? r[0] : t.types[0], n, i);
363
- }
364
- if (a & e.TypeFlags.StringLiteral) return t.value;
365
- if (a & e.TypeFlags.String) return "";
366
- if (a & e.TypeFlags.NumberLiteral) return t.value;
367
- if (a & e.TypeFlags.Number) return 0;
368
- if (a & e.TypeFlags.BooleanLiteral) return t.intrinsicName === "true";
369
- if (a & e.TypeFlags.Boolean) return !1;
370
- if (s.isArrayType(t)) {
371
- i.add(t);
372
- let e = u(t.typeArguments?.[0] || s.getAnyType(), n, i);
373
- return e === null ? [] : [e];
374
- }
375
- if (t.isClassOrInterface() || a & e.TypeFlags.Object || t.getProperties().length > 0) {
376
- i.add(t);
377
- let e = {};
378
- return t.getProperties().forEach((t) => {
379
- let r = s.getTypeOfSymbolAtLocation(t, n), a = t.valueDeclaration;
380
- r && (e[t.getName()] = u(r, a || n, i));
381
- }), e;
382
- }
383
- return null;
384
- };
385
- return {
386
- __typename: "LiteralValue",
387
- value: u(l, c)
388
- };
389
- }, T = 2345, te = 2339, E = (e, t, n) => {
390
- if (e.getStart() > t || e.getEnd() < n) return;
391
- let r = e;
392
- return e.forEachChild((e) => {
393
- let i = E(e, t, n);
394
- i && (r = i);
395
- }), r;
396
- }, D = (t, n, r) => {
397
- if (t.start === void 0 || t.length === void 0) return !1;
398
- let i = E(n, t.start, t.start + t.length);
399
- if (!i) return !1;
400
- if (t.code === T && e.isExpression(i)) {
401
- let t = r.getTypeAtLocation(i);
402
- if (!t.isUnion()) return !1;
403
- let n = r.getContextualType(i);
404
- return n ? t.types.some((t) => (t.flags & (e.TypeFlags.Null | e.TypeFlags.Undefined)) === 0 && r.isTypeAssignableTo(t, n)) : !1;
405
- }
406
- if (t.code === te && e.isPropertyAccessExpression(i.parent)) {
407
- let e = r.getNonNullableType(r.getTypeAtLocation(i.parent.expression));
408
- if (!e.isUnion()) return !1;
409
- let t = i.getText();
410
- return e.types.some((e) => e.getProperty(t) !== void 0);
411
- }
412
- return !1;
413
- }, O = (e, n, r) => {
414
- if (!e?.startingNodeId) return {
415
- isValid: !1,
416
- returnType: "void",
417
- diagnostics: [{
418
- nodeId: null,
419
- parameterIndex: null,
420
- code: 0,
421
- message: "You need to provide a starting node to be able to execute this flow.",
422
- severity: "error"
423
- }]
424
- };
425
- if (!e.nodes?.nodes?.find((t) => t?.id == e.startingNodeId)) return {
426
- isValid: !1,
427
- returnType: "void",
428
- diagnostics: [{
429
- nodeId: null,
430
- parameterIndex: null,
431
- code: 0,
432
- message: "The starting node is not linked within the flow. Please make sure the starting node is connected to the rest of the flow.",
433
- severity: "error"
434
- }]
435
- };
436
- let i = new Set(n?.map((e) => e.identifier)), a = (e.nodes?.nodes ?? []).filter((e) => e?.functionDefinition && !i.has(e.functionDefinition.identifier)).map((e) => ({
437
- nodeId: e.id,
438
- parameterIndex: null,
439
- code: 0,
440
- message: `The function definition "${e.functionDefinition.identifier}" is not reachable.`,
441
- severity: "error"
442
- }));
443
- if (a.length > 0) return {
444
- isValid: !1,
445
- returnType: "void",
446
- diagnostics: a
447
- };
448
- let o = C(e, n, r, !1, !1), s = "index.ts", c = y(s, o), l = c.getSourceFile(s), u = c.languageService.getProgram(), d = u.getTypeChecker(), f = u.getSemanticDiagnostics(l).map((e) => {
449
- let n = t(e.messageText, "\n"), r, i = null;
450
- if (e.start !== void 0) {
451
- let t = l.getFullText(), n = Math.max(0, e.start - 300), a = Math.min(t.length, e.start), o = t.substring(n, a), s = /\/\* @pos ([^ ]+) (\d+|null) \*\//g, c, u = null, d = -1;
452
- for (; (c = s.exec(o)) !== null;) {
453
- let t = n + c.index + c[0].length;
454
- t <= e.start && t > d && (d = t, u = c);
455
- }
456
- u && (r = u[1] === "null" ? null : u[1], i = parseInt(u[2], 10));
457
- }
458
- let a = D(e, l, d) ? "warning" : "error";
459
- return {
460
- message: n,
461
- code: e.code,
462
- severity: a,
463
- nodeId: r,
464
- parameterIndex: typeof i == "number" && Number.isSafeInteger(i) ? i : null
465
- };
466
- }).filter((e) => e !== null);
467
- return {
468
- isValid: !f.some((e) => e?.severity === "error"),
469
- returnType: "void",
470
- diagnostics: f
471
- };
472
- }, k = (t, n, r) => {
473
- let i = g(n?.value), a = `
474
- ${x(r)}
475
- const testValue: ${t} = ${i};
476
- `, o = "index.ts", s = y(o, a).languageService.getSemanticDiagnostics(o).map((t) => {
477
- let n = e.flattenDiagnosticMessageText(t.messageText, "\n"), r = n.includes("not assignable to parameter of type") && (n.includes("'{}'") || n.includes("undefined")) || n.includes("not assignable to type 'undefined'") || n.includes("not assignable to type 'void'") || n.includes("may be a mistake because neither type sufficiently overlaps");
478
- return {
479
- message: n,
480
- code: t.code,
481
- severity: r ? "warning" : "error"
482
- };
483
- });
484
- return {
485
- isValid: !s.some((e) => e.severity === "error"),
486
- returnType: "void",
487
- diagnostics: s
488
- };
489
- }, A = (t) => {
490
- if (e.isUnionTypeNode(t)) return t.types.flatMap(A);
247
+ //#region src/util/values.util.ts
248
+ var S = (t) => {
249
+ if (e.isUnionTypeNode(t)) return t.types.flatMap(S);
491
250
  if (e.isLiteralTypeNode(t)) {
492
251
  let n = t.literal;
493
252
  if (e.isStringLiteral(n)) return [{
@@ -505,12 +264,12 @@ var w = (t, n) => {
505
264
  }];
506
265
  }
507
266
  return [];
508
- }, j = (t, n) => {
267
+ }, C = (t, n) => {
509
268
  if (n && t.aliasSymbol) {
510
269
  let n = t.aliasSymbol.declarations?.[0];
511
- if (n && e.isTypeAliasDeclaration(n)) return A(n.type);
270
+ if (n && e.isTypeAliasDeclaration(n)) return S(n.type);
512
271
  }
513
- return t.isUnion() ? t.types.flatMap((e) => j(e, n)) : t.isStringLiteral() ? [{
272
+ return t.isUnion() ? t.types.flatMap((e) => C(e, n)) : t.isStringLiteral() ? [{
514
273
  value: t.value,
515
274
  __typename: "LiteralValue"
516
275
  }] : t.isNumberLiteral() ? [{ value: t.value.toString() }] : t.intrinsicName === "true" ? [{
@@ -520,28 +279,28 @@ var w = (t, n) => {
520
279
  value: !1,
521
280
  __typename: "LiteralValue"
522
281
  }] : [];
523
- }, ne = (e, t, n, r) => r.flatMap((r) => {
282
+ }, ee = (e, t, n, r) => r.flatMap((r) => {
524
283
  let i = r.getName();
525
- if (!re(i)) return [];
284
+ if (!te(i)) return [];
526
285
  let a = r.getDeclarations()?.[0];
527
286
  if (!a || a.getEnd() >= t.getEnd()) return [];
528
287
  let o = e.getTypeOfSymbolAtLocation(r, t);
529
- return i.startsWith("node_") ? ie(i, o, e, n) : i.startsWith("p_") ? ae(i, o, e, n) : i.startsWith("flow_") ? oe(o, e, n) : [];
530
- }), re = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), ie = (t, n, r, i) => {
288
+ return i.startsWith("node_") ? ne(i, o, e, n) : i.startsWith("p_") ? re(i, o, e, n) : i.startsWith("flow_") ? ie(o, e, n) : [];
289
+ }), te = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), ne = (t, n, r, i) => {
531
290
  if ((n.flags & e.TypeFlags.Void) !== 0) return [];
532
- let a = M(t.replace("node_", ""));
533
- return I(n, r, i).flatMap(({ path: e }) => {
291
+ let a = w(t.replace("node_", ""));
292
+ return D(n, r, i).flatMap(({ path: e }) => {
534
293
  let t = {
535
294
  __typename: "ReferenceValue",
536
295
  nodeFunctionId: a
537
296
  };
538
297
  return e.length > 0 && (t.referencePath = e), t;
539
298
  });
540
- }, ae = (e, t, n, r) => {
541
- let { nodeFunctionId: i, paramIndexFromName: a } = se(e);
299
+ }, re = (e, t, n, r) => {
300
+ let { nodeFunctionId: i, paramIndexFromName: a } = ae(e);
542
301
  if (!n.isTupleType(t)) return [];
543
302
  let o = t;
544
- return n.getTypeArguments(o).flatMap((e, t) => I(e, n, r).flatMap(({ path: e }) => {
303
+ return n.getTypeArguments(o).flatMap((e, t) => D(e, n, r).flatMap(({ path: e }) => {
545
304
  let n = {
546
305
  __typename: "ReferenceValue",
547
306
  nodeFunctionId: i,
@@ -551,23 +310,23 @@ var w = (t, n) => {
551
310
  };
552
311
  return e.length > 0 && (n.referencePath = e), n;
553
312
  }));
554
- }, oe = (e, t, n) => I(e, t, n).flatMap(({ path: e }) => {
313
+ }, ie = (e, t, n) => D(e, t, n).flatMap(({ path: e }) => {
555
314
  let t = {
556
315
  __typename: "ReferenceValue",
557
316
  nodeFunctionId: null
558
317
  };
559
318
  return e.length > 0 && (t.referencePath = e), t;
560
- }), M = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), se = (e) => {
319
+ }), w = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), ae = (e) => {
561
320
  let t = e.replace("p_", ""), n = t.lastIndexOf("_"), r = t.substring(0, n), i = parseInt(t.substring(n + 1), 10);
562
321
  return {
563
- nodeFunctionId: M(r),
322
+ nodeFunctionId: w(r),
564
323
  paramIndexFromName: i
565
324
  };
566
- }, ce = 7, N = (e, t, n) => {
325
+ }, oe = 7, T = (e, t, n) => {
567
326
  let r = n.get(e);
568
327
  if (r !== void 0) return r;
569
328
  let i = /* @__PURE__ */ new Set(), a = (n) => {
570
- if (i.has(n) || !L(n)) return !1;
329
+ if (i.has(n) || !O(n)) return !1;
571
330
  i.add(n);
572
331
  for (let r of n.getProperties()) {
573
332
  if (!r.valueDeclaration) continue;
@@ -577,32 +336,32 @@ var w = (t, n) => {
577
336
  return !1;
578
337
  }, o = a(e);
579
338
  return n.set(e, o), o;
580
- }, P = (t, n, r) => t.isUnion() ? t.types.some((e) => P(n.getNonNullableType(e), n, r)) : (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r), F = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(L) : L(e) ? [e] : [], I = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
339
+ }, E = (t, n, r) => t.isUnion() ? t.types.some((e) => E(n.getNonNullableType(e), n, r)) : (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r), se = (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()) => {
581
340
  let o = [], s = t.getNonNullableType(e);
582
- return P(s, t, n) && o.push({
341
+ return E(s, t, n) && o.push({
583
342
  path: r,
584
343
  type: e
585
- }), F(s, t).forEach((e) => {
586
- if (i.has(e) || r.length >= ce && N(e, t, a)) return;
344
+ }), se(s, t).forEach((e) => {
345
+ if (i.has(e) || r.length >= oe && T(e, t, a)) return;
587
346
  let s = e.getProperties();
588
347
  s && s.length > 0 && (i.add(e), s.forEach((e) => {
589
348
  let s = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration), c = e.getName(), l = [...r, { path: c }];
590
- o.push(...I(s, t, n, l, i, a));
349
+ o.push(...D(s, t, n, l, i, a));
591
350
  }), i.delete(e));
592
351
  }), o;
593
- }, L = (t) => {
352
+ }, O = (t) => {
594
353
  let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
595
354
  return (t.flags & n) === 0;
596
- }, R = (e, t, n, r) => Z(r) ? [] : t.flatMap((t) => {
597
- let i = z(e, t, n, r);
355
+ }, ce = (e, t, n, r) => R(r) ? [] : t.flatMap((t) => {
356
+ let i = le(e, t, n, r);
598
357
  return i ? [i] : [];
599
- }), z = (t, n, r, i) => {
358
+ }), le = (t, n, r, i) => {
600
359
  if (n.parameters.length > 0) return null;
601
- let a = t.getSignatureFromDeclaration(n), o = B(t, t.getReturnTypeOfSignature(a)), s = t.getNonNullableType(o);
360
+ let a = t.getSignatureFromDeclaration(n), o = ue(t, t.getReturnTypeOfSignature(a)), s = t.getNonNullableType(o);
602
361
  if ((s.flags & e.TypeFlags.Never) !== 0 || !t.isTypeAssignableTo(s, i)) return null;
603
- let c = V(n.name?.getText());
604
- return H(r.find((e) => e.identifier === c));
605
- }, B = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, V = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", H = (e) => {
362
+ let c = de(n.name?.getText());
363
+ return fe(r.find((e) => e.identifier === c));
364
+ }, ue = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, de = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", fe = (e) => {
606
365
  let t = (e?.parameterDefinitions?.nodes?.length ?? 0) > 0, n = {
607
366
  __typename: "NodeFunction",
608
367
  id: "gid://sagittarius/NodeFunction/1",
@@ -615,11 +374,11 @@ var w = (t, n) => {
615
374
  displayIcon: e?.displayIcon
616
375
  }
617
376
  };
618
- return t && (n.parameters = U(e?.parameterDefinitions?.nodes || [])), n;
619
- }, U = (e) => ({
377
+ return t && (n.parameters = pe(e?.parameterDefinitions?.nodes || [])), n;
378
+ }, pe = (e) => ({
620
379
  __typename: "NodeParameterConnection",
621
- nodes: e.map((e) => W(e))
622
- }), W = (e) => ({
380
+ nodes: e.map((e) => me(e))
381
+ }), me = (e) => ({
623
382
  __typename: "NodeParameter",
624
383
  parameterDefinition: {
625
384
  __typename: "ParameterDefinition",
@@ -630,15 +389,15 @@ var w = (t, n) => {
630
389
  __typename: "LiteralValue",
631
390
  value: e.defaultValue.value
632
391
  } : null
633
- }), G = (e, t, n, r) => Z(r) ? t.flatMap((t) => {
634
- let i = le(e, t, n, r);
392
+ }), he = (e, t, n, r) => R(r) ? t.flatMap((t) => {
393
+ let i = ge(e, t, n, r);
635
394
  return i ? [i] : [];
636
- }) : [], le = (e, t, n, r) => {
395
+ }) : [], ge = (e, t, n, r) => {
637
396
  let i = e.getTypeAtLocation(t);
638
397
  if (!e.isTypeAssignableTo(i, r)) return null;
639
- let a = ue(t.name?.getText()), o = n.find((e) => e.identifier === a);
640
- return o ? de(o) : null;
641
- }, ue = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", de = (e) => ({
398
+ let a = _e(t.name?.getText()), o = n.find((e) => e.identifier === a);
399
+ return o ? ve(o) : null;
400
+ }, _e = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", ve = (e) => ({
642
401
  __typename: "SubFlowValue",
643
402
  functionDefinition: e,
644
403
  signature: e.signature,
@@ -649,58 +408,64 @@ var w = (t, n) => {
649
408
  hidden: e?.hidden ?? !1,
650
409
  optional: e?.optional ?? !1
651
410
  }))
652
- }), fe = 7, K = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map()) => {
411
+ }), k = { DATE: "date" }, A = (e) => e != null && e in k, ye = 7, j = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map()) => {
653
412
  if ((r.flags & e.TypeFlags.TypeParameter) !== 0) {
654
413
  let u = r.symbol?.declarations?.[0];
655
- if (u && e.isTypeParameterDeclaration(u) && u.constraint) return K(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
414
+ if (u && e.isTypeParameterDeclaration(u) && u.constraint) return j(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
656
415
  }
657
416
  let u = t.typeToString(r), d = s ?? r, f = o ? { suggestions: [
658
- ...j(d, t),
659
- ...n ? ne(t, n, d, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
660
- ...R(t, i, a, d),
661
- ...G(t, i, a, d)
417
+ ...C(d, t),
418
+ ...n ? ee(t, n, d, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
419
+ ...ce(t, i, a, d),
420
+ ...he(t, i, a, d)
662
421
  ] } : {};
663
422
  if (r.isUnion()) {
664
423
  let o = r.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
665
424
  if (o.length === 1) return {
666
- ...K(t, n, o[0], i, a, !1, void 0, c, l),
425
+ ...j(t, n, o[0], i, a, !1, void 0, c, l),
667
426
  type: u,
668
427
  ...f
669
428
  };
670
429
  }
671
- if (J(r)) return {
430
+ let p = Se(r);
431
+ if (p) return {
432
+ input: p,
433
+ type: u,
434
+ ...f
435
+ };
436
+ if (F(r)) return {
672
437
  input: "boolean",
673
438
  type: u,
674
439
  ...f
675
440
  };
676
- if (ye(r) || ve(r)) return {
441
+ if (Te(r) || we(r)) return {
677
442
  input: "select",
678
443
  type: u,
679
444
  ...f
680
445
  };
681
- if (Y(r)) return {
446
+ if (I(r)) return {
682
447
  input: "number",
683
448
  type: u,
684
449
  ...f
685
450
  };
686
- if (X(r)) return {
451
+ if (L(r)) return {
687
452
  input: "text",
688
453
  type: u,
689
454
  ...f
690
455
  };
691
- if (Z(r)) return {
456
+ if (R(r)) return {
692
457
  input: "sub-flow",
693
458
  type: u,
694
459
  ...f
695
460
  };
696
- if (be(t, r)) return {
461
+ if (Ee(t, r)) return {
697
462
  input: "list",
698
463
  type: u,
699
- items: t.getTypeArguments(r).flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => K(t, n, e, i, a, o, void 0, c, l))),
464
+ items: t.getTypeArguments(r).flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => j(t, n, e, i, a, o, void 0, c, l))),
700
465
  ...f
701
466
  };
702
467
  if ((r.flags & e.TypeFlags.Object) !== 0) {
703
- if (c.has(r) || c.size >= fe && N(r, t, l)) return {
468
+ if (c.has(r) || c.size >= ye && T(r, t, l)) return {
704
469
  input: "data",
705
470
  type: u,
706
471
  ...f
@@ -710,7 +475,7 @@ var w = (t, n) => {
710
475
  for (let u of t.getPropertiesOfType(r)) {
711
476
  let r = u.valueDeclaration ?? u.declarations?.[0];
712
477
  if (!r) continue;
713
- let f = t.getTypeOfSymbolAtLocation(u, r), p = (u.flags & e.SymbolFlags.Optional) !== 0 || f.isUnion() && f.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), m = (f.isUnion() ? f.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0) : [f]).map((e) => K(t, n, e, i, a, o, void 0, c, l));
478
+ let f = t.getTypeOfSymbolAtLocation(u, r), p = (u.flags & e.SymbolFlags.Optional) !== 0 || f.isUnion() && f.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), m = (f.isUnion() ? f.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0) : [f]).map((e) => j(t, n, e, i, a, o, void 0, c, l));
714
479
  s[u.name] = m.length === 1 ? m[0] : m, p || d.push(u.name);
715
480
  }
716
481
  return c.delete(r), {
@@ -726,14 +491,14 @@ var w = (t, n) => {
726
491
  type: u,
727
492
  ...f
728
493
  };
729
- }, q = (e, t, n = !1) => {
730
- if (!e || e.input === "generic") return he(ge(t), n);
731
- let r = me(e.suggestions, t.suggestions);
494
+ }, M = (e, t, n = !1) => {
495
+ if (!e || e.input === "generic") return be(xe(t), n);
496
+ let r = P(e.suggestions, t.suggestions);
732
497
  if (e.input === "data") {
733
498
  let n = e.properties ?? {}, i = t.input === "data" ? t.properties ?? {} : {}, a = {}, o = new Set([...Object.keys(n), ...Object.keys(i)]);
734
499
  for (let e of o) {
735
500
  let t = n[e], r = i[e];
736
- a[e] = pe(t, r);
501
+ a[e] = N(t, r);
737
502
  }
738
503
  return {
739
504
  ...e,
@@ -742,7 +507,7 @@ var w = (t, n) => {
742
507
  };
743
508
  }
744
509
  if (e.input === "list") {
745
- let n = e.items ?? [], i = t.input === "list" ? t.items ?? [] : [], a = n.length === i.length && n.length > 0 ? n.map((e, t) => q(e, i[t])) : n;
510
+ let n = e.items ?? [], i = t.input === "list" ? t.items ?? [] : [], a = n.length === i.length && n.length > 0 ? n.map((e, t) => M(e, i[t])) : n;
746
511
  return {
747
512
  ...e,
748
513
  items: a,
@@ -753,7 +518,7 @@ var w = (t, n) => {
753
518
  ...e,
754
519
  ...r ? { suggestions: r } : {}
755
520
  };
756
- }, pe = (e, t) => e && !Array.isArray(e) && t && !Array.isArray(t) ? q(e, t) : e ?? t, me = (e, t) => {
521
+ }, N = (e, t) => e && !Array.isArray(e) && t && !Array.isArray(t) ? M(e, t) : e ?? t, P = (e, t) => {
757
522
  let n = [...e ?? [], ...t ?? []];
758
523
  if (n.length === 0) return;
759
524
  let r = /* @__PURE__ */ new Set(), i = [];
@@ -762,13 +527,13 @@ var w = (t, n) => {
762
527
  r.has(t) || (r.add(t), i.push(e));
763
528
  }
764
529
  return i;
765
- }, he = (e, t) => !t || e.input !== "generic" ? e : {
530
+ }, be = (e, t) => !t || e.input !== "generic" ? e : {
766
531
  input: "data",
767
532
  ...e.type ? { type: e.type } : {},
768
533
  properties: {},
769
534
  required: [],
770
535
  ...e.suggestions ? { suggestions: e.suggestions } : {}
771
- }, ge = (e) => {
536
+ }, xe = (e) => {
772
537
  if (e.input !== "select") return e;
773
538
  let t = e.suggestions ?? [], n = /* @__PURE__ */ new Set();
774
539
  for (let e of t) {
@@ -785,7 +550,11 @@ var w = (t, n) => {
785
550
  ...t.length > 0 ? { suggestions: t } : {}
786
551
  };
787
552
  };
788
- function J(t) {
553
+ function Se(e) {
554
+ let t = e.aliasSymbol?.getName();
555
+ return A(t) ? k[t] : void 0;
556
+ }
557
+ function F(t) {
789
558
  if ((t.flags & e.TypeFlags.Boolean) !== 0 || (t.flags & e.TypeFlags.BooleanLiteral) !== 0) return !0;
790
559
  if (t.isUnion()) {
791
560
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
@@ -793,37 +562,410 @@ function J(t) {
793
562
  }
794
563
  return !1;
795
564
  }
796
- function Y(t) {
565
+ function I(t) {
797
566
  return (t.flags & e.TypeFlags.Number) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
798
567
  }
799
- function X(t) {
568
+ function L(t) {
800
569
  return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
801
570
  }
802
- function _e(e) {
803
- return X(e) || Y(e) || J(e);
571
+ function Ce(e) {
572
+ return L(e) || I(e) || F(e);
804
573
  }
805
- function ve(t) {
574
+ function we(t) {
806
575
  return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
807
576
  }
808
- function ye(t) {
577
+ function Te(t) {
809
578
  if (!t.isUnion()) return !1;
810
579
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
811
- return n.length > 0 && n.every(_e);
580
+ return n.length > 0 && n.every(Ce);
812
581
  }
813
- function be(e, t) {
582
+ function Ee(e, t) {
814
583
  return e.isArrayType(t) || e.isTupleType(t);
815
584
  }
816
- function Z(e) {
585
+ function R(e) {
817
586
  return e.getCallSignatures().length > 0;
818
587
  }
819
588
  //#endregion
820
- //#region src/schema/getSignatureSchema.ts
821
- var xe = (t, n, r, i) => {
822
- let a = C(t, r, n), o = "index.ts", s = y(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram().getTypeChecker(), u = t.nodes?.nodes?.find((e) => e?.id === i), d = i ? `fn_${u?.functionDefinition?.identifier?.replace(/::/g, "_")}` : "flow", f = i ? `node_${S(i)}` : `flow_${S(t.id)}`, p = Se(c), m = Ce(c).get(f), h = p.get(d), g = we(l, m), _ = Te(l, h, m), v = g?.map((t, n) => (t.flags & e.TypeFlags.Undefined) === 0 ? t : _?.[n] ?? t), b = (u?.parameters?.nodes ?? []).map((e) => e?.value != null), x = De(l, m, v, _, Ee(h, g, b), i ? p : /* @__PURE__ */ new Map(), i ? r : [], b), w = Q(l, m, h);
589
+ //#region src/utils.ts
590
+ var De = "\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";
591
+ function z(t, n) {
592
+ let r = /* @__PURE__ */ new Map();
593
+ return r.set(t, n), r.set("lib.codezero.d.ts", De), u(h(r), [t, "lib.codezero.d.ts"], e, Oe);
594
+ }
595
+ var Oe = {
596
+ target: e.ScriptTarget.Latest,
597
+ lib: ["lib.codezero.d.ts"],
598
+ noEmit: !0,
599
+ strictNullChecks: !0
600
+ };
601
+ function ke(e) {
602
+ let t = [], n = 0, r = null, i = "";
603
+ for (let a of e) {
604
+ if (r) a === r && (r = null);
605
+ else if (a === "'" || a === "\"" || a === "`") r = a;
606
+ else if (a === "<" || a === "{" || a === "(" || a === "[") n++;
607
+ else if (a === ">" || a === "}" || a === ")" || a === "]") n--;
608
+ else if (a === "," && n === 0) {
609
+ t.push(i), i = "";
610
+ continue;
611
+ }
612
+ i += a;
613
+ }
614
+ 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);
615
+ }
616
+ function B(e, t = "any", n = !0) {
617
+ let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(ke))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
618
+ let t = (e.genericKeys?.length ?? 0) > 0 ? `<${e.genericKeys?.join(",")}>` : "", n = A(e.identifier) ? `${e.type} & {}` : e.type;
619
+ return `type ${e.identifier}${t} = ${n};`;
620
+ }).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") ?? "";
621
+ return `${n ? r : ""}\n${i}\n${a}`;
622
+ }
623
+ var V = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_");
624
+ function H(e, t, n, r = !1, i = !0) {
625
+ let a = e?.nodes?.nodes || [], o = new Map(t?.map((e) => [e.identifier, e])), s = /* @__PURE__ */ new Set(), c = (t, n = "") => {
626
+ let l = a.find((e) => e?.id === t);
627
+ if (!l || !l.functionDefinition) return "";
628
+ if (t?.includes("NodeFunction") && s.add(t), !o.get(l.functionDefinition.identifier)) return `${n}// Error: Function ${l.functionDefinition.identifier} not found\n`;
629
+ let u = (l.parameters?.nodes || []).map((a, o) => {
630
+ let s = a.value;
631
+ if (!s) return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
632
+ if (s.__typename === "ReferenceValue") {
633
+ let n = s, r = typeof n.inputIndex == "number" ? `p_${V(n.nodeFunctionId ?? "undefined")}_${n.parameterIndex}[${n.inputIndex}]` : n.nodeFunctionId ? `node_${V(n.nodeFunctionId)}` : `flow_${V(e?.id ?? "undefined")}`;
634
+ return n.referencePath?.forEach((e) => {
635
+ r += `?.${e.path}`;
636
+ }), `/* @pos ${t} ${o} */ (${r})${i ? "!" : ""}`;
637
+ }
638
+ if (s.__typename === "LiteralValue") return `/* @pos ${t} ${o} */ ${s?.value !== null && s?.value !== void 0 ? b(s?.value) : void 0}`;
639
+ if (s.__typename === "SubFlowValue") {
640
+ let e = s;
641
+ return `/* @pos ${t} ${o} */ (...${`p_${V(t)}_${o}`}) => {\n${c(e.startingNodeId || e.functionDefinition?.id, n + " ")}${n}}`;
642
+ }
643
+ return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
644
+ }), d = `node_${V(l.id)}`, f = `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
645
+ u.includes("undefined");
646
+ let p = `${n}`;
647
+ return l.functionDefinition.identifier === "std::control::return" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `return ${d};\n`) : l.functionDefinition.identifier === "std::control::if" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `if(${u[0]}) {
648
+ ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId || (l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, n + " ")}
649
+ }`) : l.functionDefinition.identifier === "std::control::if_else" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `if(${u[0]}) {
650
+ ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId || (l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, n + " ")}
651
+ } else {
652
+ ${c(l.parameters?.nodes?.[2]?.value?.startingNodeId || (l.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier, n + " ")}
653
+ }`) : p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, l.nextNodeId && (p += c(l.nextNodeId, n)), p;
654
+ }, l = B(n), u = `declare function flow${e?.signature ?? "(): void"}`, d = t?.map((e) => `declare function fn_${e.identifier?.replace(/::/g, "_")}${e.signature}`).join("\n"), f = new Set(a.map((e) => e?.nextNodeId).filter((e) => !!e)), p = /* @__PURE__ */ new Set();
655
+ return a.forEach((e) => e?.parameters?.nodes?.forEach((e) => {
656
+ e?.value?.__typename === "SubFlowValue" && (e.value.startingNodeId || e.value.functionDefinition?.id) && p.add(e.value.startingNodeId || e.value.functionDefinition?.id);
657
+ })), `
658
+ ${l}\n
659
+ ${u}\n
660
+ ${d}\n
661
+ (() =>
662
+ ${e ? `const flow_${V(e.id ?? "")} = /* @pos null null */ flow(${e.settings?.nodes?.map((e, t) => `/* @pos null ${t} */ ${e?.value !== null && e?.value !== void 0 ? b(e?.value) : void 0}`).join(", ") ?? ""});` : ""}
663
+ ${a.filter((e) => e?.id && !f.has(e.id) && !p.has(e.id)).map((e) => c(e.id)).join("\n")}
664
+ )();
665
+ `;
666
+ }
667
+ //#endregion
668
+ //#region src/extraction/getTypeFromValue.ts
669
+ var Ae = (t, n) => {
670
+ let r = b(t?.value);
671
+ if (!r) return "any";
672
+ let i = `
673
+ ${B(n, "unknown")}
674
+ const tempValue = ${r ?? "any"};
675
+ `, a = "index.ts", o = z(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = "any", u = (t) => {
676
+ if (e.isVariableDeclaration(t) && t.name.getText() === "tempValue") {
677
+ let n = c.getTypeAtLocation(t), r = (n) => {
678
+ if (n.isUnion()) {
679
+ let e = n.types.map(r);
680
+ return Array.from(new Set(e)).sort().join(" | ");
681
+ }
682
+ if (c.isArrayType(n)) {
683
+ let e = n.typeArguments || [], t = e.length > 0 ? r(e[0]) : "any";
684
+ return e[0]?.isUnion() ? `(${t})[]` : `${t}[]`;
685
+ }
686
+ if (n.getFlags() & e.TypeFlags.Object || n.isClassOrInterface()) {
687
+ let e = c.getPropertiesOfType(n);
688
+ if (e.length > 0) return `{ ${e.map((e) => {
689
+ let n = c.getTypeOfSymbolAtLocation(e, t);
690
+ return `${e.getName()}: ${r(n)}`;
691
+ }).join(", ")} }`;
692
+ }
693
+ let i = c.getBaseTypeOfLiteralType(n);
694
+ return c.typeToString(i, t);
695
+ };
696
+ l = r(n);
697
+ }
698
+ e.forEachChild(t, u);
699
+ };
700
+ return u(s), l;
701
+ }, je = (t, n) => {
702
+ let r = `
703
+ ${B(n)}
704
+ type Target = ${t};
705
+ `, i = "index.ts", a = z(i, r), o = a.getSourceFile(i), s = a.languageService.getProgram().getTypeChecker(), c = o.statements.find((t) => e.isTypeAliasDeclaration(t) && t.name.text === "Target");
706
+ if (!c) return {
707
+ __typename: "LiteralValue",
708
+ value: null
709
+ };
710
+ let l = s.getTypeAtLocation(c.type), u = (t, n, r = /* @__PURE__ */ new Set()) => {
711
+ let i = new Set(r);
712
+ if (i.has(t)) return null;
713
+ let a = t.getFlags();
714
+ if (t.isUnion()) {
715
+ if (n.type, e.isTypeAliasDeclaration(n) && n.type && e.isUnionTypeNode(n.type)) return u(s.getTypeFromTypeNode(n.type.types[0]), n, i);
716
+ let r = t.types.filter((t) => {
717
+ let n = t.getFlags();
718
+ return !(n & e.TypeFlags.Undefined) && !(n & e.TypeFlags.Null);
719
+ });
720
+ return u(r.length > 0 ? r[0] : t.types[0], n, i);
721
+ }
722
+ if (a & e.TypeFlags.StringLiteral) return t.value;
723
+ if (a & e.TypeFlags.String) return "";
724
+ if (a & e.TypeFlags.NumberLiteral) return t.value;
725
+ if (a & e.TypeFlags.Number) return 0;
726
+ if (a & e.TypeFlags.BooleanLiteral) return t.intrinsicName === "true";
727
+ if (a & e.TypeFlags.Boolean) return !1;
728
+ if (s.isArrayType(t)) {
729
+ i.add(t);
730
+ let e = u(t.typeArguments?.[0] || s.getAnyType(), n, i);
731
+ return e === null ? [] : [e];
732
+ }
733
+ if (t.isClassOrInterface() || a & e.TypeFlags.Object || t.getProperties().length > 0) {
734
+ i.add(t);
735
+ let e = {};
736
+ return t.getProperties().forEach((t) => {
737
+ let r = s.getTypeOfSymbolAtLocation(t, n), a = t.valueDeclaration;
738
+ r && (e[t.getName()] = u(r, a || n, i));
739
+ }), e;
740
+ }
741
+ return null;
742
+ };
743
+ return {
744
+ __typename: "LiteralValue",
745
+ value: u(l, c)
746
+ };
747
+ }, U = {
748
+ ...n,
749
+ expose: "none",
750
+ topRef: !1,
751
+ jsDoc: "none",
752
+ skipTypeCheck: !0
753
+ }, Me = (e, t) => {
754
+ let n = Object.keys(e);
755
+ if (n.length === 0) return {};
756
+ let r = Pe(Ne(e, t)), i = {};
757
+ for (let e of n) try {
758
+ i[e] = Fe(r.createSchema(e));
759
+ } catch {
760
+ i[e] = {};
761
+ }
762
+ return i;
763
+ }, Ne = (e, t) => {
764
+ let n = Object.entries(e).map(([e, t]) => `export type ${e} = ${t};`).join("\n");
765
+ return `${B(t)}\n${n}`;
766
+ }, Pe = (e) => {
767
+ let t = z("index.ts", e).languageService.getProgram();
768
+ return new r(t, a(t, U), i(U), U);
769
+ }, Fe = (e) => {
770
+ let { $schema: t, definitions: n, ...r } = e, i = n && Object.keys(n).length > 0 ? {
771
+ ...r,
772
+ definitions: n
773
+ } : r;
774
+ return JSON.parse(JSON.stringify(i));
775
+ }, Ie = (e, t, n) => {
776
+ if (!e) return;
777
+ let r = "index.ts", i = z(r, H(e, t, n)), a = i.getSourceFile(r), o = i.languageService.getProgram().getTypeChecker(), s = Me({
778
+ ...Le(o, a),
779
+ ...Re(o, a, e)
780
+ }, n), c = (e.nodes?.nodes ?? []).map((e) => e && Be(e, s));
781
+ return {
782
+ ...e,
783
+ inputSchema: s[W] ?? J(),
784
+ outputSchema: s[G] ?? Y(),
785
+ nodes: {
786
+ ...e.nodes,
787
+ nodes: c
788
+ }
789
+ };
790
+ }, W = "Flow_input", G = "Flow_output", K = (e, t, n) => `Node_${V(e)}_${t}_${n}`, Le = (t, n) => {
791
+ let r = n.statements.filter(e.isFunctionDeclaration).find((e) => e.name?.getText() === "flow");
792
+ if (!r) return {};
793
+ let i = t.getSignatureFromDeclaration(r);
794
+ if (!i) return {};
795
+ let { input: a, output: o } = q(t, i, r);
796
+ return {
797
+ [W]: a,
798
+ [G]: o
799
+ };
800
+ }, Re = (e, t, n) => {
801
+ let r = Ue(t), i = {};
802
+ for (let t of n.nodes?.nodes ?? []) {
803
+ if (!t?.id) continue;
804
+ let n = t.parameters?.nodes;
805
+ if (!n?.some(X)) continue;
806
+ let a = He(r, t), o = a ? e.getResolvedSignature(a) : void 0;
807
+ o && n.forEach((n, r) => {
808
+ if (!X(n)) return;
809
+ let s = ze(e, o, a, r);
810
+ if (!s) return;
811
+ let { input: c, output: l } = q(e, s, a);
812
+ i[K(t.id, r, "input")] = c, i[K(t.id, r, "output")] = l;
813
+ });
814
+ }
815
+ return i;
816
+ }, ze = (e, t, n, r) => {
817
+ let i = t.parameters[r];
818
+ if (i) return e.getTypeOfSymbolAtLocation(i, n).getCallSignatures()[0];
819
+ }, q = (t, n, r) => {
820
+ let i = (n) => t.typeToString(n, r, e.TypeFormatFlags.NoTruncation);
821
+ return {
822
+ input: `{ ${n.parameters.map((e) => {
823
+ let n = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration ?? r), a = Ve(e) ? "?" : "";
824
+ return `${e.getName()}${a}: ${i(n)}`;
825
+ }).join("; ")} }`,
826
+ output: i(t.getReturnTypeOfSignature(n))
827
+ };
828
+ }, J = () => ({ type: "object" }), Y = () => ({}), Be = (e, t) => {
829
+ let n = e.parameters?.nodes;
830
+ if (!n?.some(X)) return e;
831
+ let r = n.map((n, r) => {
832
+ if (!X(n)) return n;
833
+ let i = {
834
+ ...n.value,
835
+ inputSchema: t[K(e.id, r, "input")] ?? J(),
836
+ outputSchema: t[K(e.id, r, "output")] ?? Y()
837
+ };
838
+ return {
839
+ ...n,
840
+ value: i
841
+ };
842
+ });
843
+ return {
844
+ ...e,
845
+ parameters: {
846
+ ...e.parameters,
847
+ nodes: r
848
+ }
849
+ };
850
+ }, X = (e) => e?.value?.__typename === "SubFlowValue", Ve = (t) => {
851
+ let n = t.valueDeclaration;
852
+ return !!n && e.isParameter(n) && (!!n.questionToken || !!n.initializer || !!n.dotDotDotToken);
853
+ }, He = (t, n) => {
854
+ let r = t.get(`node_${V(n.id)}`)?.initializer;
855
+ return r && e.isCallExpression(r) ? r : void 0;
856
+ }, Ue = (t) => {
857
+ let n = /* @__PURE__ */ new Map();
858
+ return t.statements.forEach((t) => {
859
+ t.forEachChild(function t(r) {
860
+ e.isVariableDeclaration(r) && (r.parent.flags & e.NodeFlags.Const) !== 0 && n.set(r.name.getText(), r), r.forEachChild(t);
861
+ });
862
+ }), n;
863
+ }, We = 2345, Ge = 2339, Z = (e, t, n) => {
864
+ if (e.getStart() > t || e.getEnd() < n) return;
865
+ let r = e;
866
+ return e.forEachChild((e) => {
867
+ let i = Z(e, t, n);
868
+ i && (r = i);
869
+ }), r;
870
+ }, Ke = (t, n, r) => {
871
+ if (t.start === void 0 || t.length === void 0) return !1;
872
+ let i = Z(n, t.start, t.start + t.length);
873
+ if (!i) return !1;
874
+ if (t.code === We && e.isExpression(i)) {
875
+ let t = r.getTypeAtLocation(i);
876
+ if (!t.isUnion()) return !1;
877
+ let n = r.getContextualType(i);
878
+ return n ? t.types.some((t) => (t.flags & (e.TypeFlags.Null | e.TypeFlags.Undefined)) === 0 && r.isTypeAssignableTo(t, n)) : !1;
879
+ }
880
+ if (t.code === Ge && e.isPropertyAccessExpression(i.parent)) {
881
+ let e = r.getNonNullableType(r.getTypeAtLocation(i.parent.expression));
882
+ if (!e.isUnion()) return !1;
883
+ let t = i.getText();
884
+ return e.types.some((e) => e.getProperty(t) !== void 0);
885
+ }
886
+ return !1;
887
+ }, qe = (e, n, r) => {
888
+ if (!e?.startingNodeId) return {
889
+ isValid: !1,
890
+ returnType: "void",
891
+ diagnostics: [{
892
+ nodeId: null,
893
+ parameterIndex: null,
894
+ code: 0,
895
+ message: "You need to provide a starting node to be able to execute this flow.",
896
+ severity: "error"
897
+ }]
898
+ };
899
+ if (!e.nodes?.nodes?.find((t) => t?.id == e.startingNodeId)) return {
900
+ isValid: !1,
901
+ returnType: "void",
902
+ diagnostics: [{
903
+ nodeId: null,
904
+ parameterIndex: null,
905
+ code: 0,
906
+ message: "The starting node is not linked within the flow. Please make sure the starting node is connected to the rest of the flow.",
907
+ severity: "error"
908
+ }]
909
+ };
910
+ let i = new Set(n?.map((e) => e.identifier)), a = (e.nodes?.nodes ?? []).filter((e) => e?.functionDefinition && !i.has(e.functionDefinition.identifier)).map((e) => ({
911
+ nodeId: e.id,
912
+ parameterIndex: null,
913
+ code: 0,
914
+ message: `The function definition "${e.functionDefinition.identifier}" is not reachable.`,
915
+ severity: "error"
916
+ }));
917
+ if (a.length > 0) return {
918
+ isValid: !1,
919
+ returnType: "void",
920
+ diagnostics: a
921
+ };
922
+ let o = H(e, n, r, !1, !1), s = "index.ts", c = z(s, o), l = c.getSourceFile(s), u = c.languageService.getProgram(), d = u.getTypeChecker(), f = u.getSemanticDiagnostics(l).map((e) => {
923
+ let n = t(e.messageText, "\n"), r, i = null;
924
+ if (e.start !== void 0) {
925
+ let t = l.getFullText(), n = Math.max(0, e.start - 300), a = Math.min(t.length, e.start), o = t.substring(n, a), s = /\/\* @pos ([^ ]+) (\d+|null) \*\//g, c, u = null, d = -1;
926
+ for (; (c = s.exec(o)) !== null;) {
927
+ let t = n + c.index + c[0].length;
928
+ t <= e.start && t > d && (d = t, u = c);
929
+ }
930
+ u && (r = u[1] === "null" ? null : u[1], i = parseInt(u[2], 10));
931
+ }
932
+ let a = Ke(e, l, d) ? "warning" : "error";
933
+ return {
934
+ message: n,
935
+ code: e.code,
936
+ severity: a,
937
+ nodeId: r,
938
+ parameterIndex: typeof i == "number" && Number.isSafeInteger(i) ? i : null
939
+ };
940
+ }).filter((e) => e !== null);
941
+ return {
942
+ isValid: !f.some((e) => e?.severity === "error"),
943
+ returnType: "void",
944
+ diagnostics: f
945
+ };
946
+ }, Je = (t, n, r) => {
947
+ let i = b(n?.value), a = `
948
+ ${B(r)}
949
+ const testValue: ${t} = ${i};
950
+ `, o = "index.ts", s = z(o, a).languageService.getSemanticDiagnostics(o).map((t) => {
951
+ let n = e.flattenDiagnosticMessageText(t.messageText, "\n"), r = n.includes("not assignable to parameter of type") && (n.includes("'{}'") || n.includes("undefined")) || n.includes("not assignable to type 'undefined'") || n.includes("not assignable to type 'void'") || n.includes("may be a mistake because neither type sufficiently overlaps");
952
+ return {
953
+ message: n,
954
+ code: t.code,
955
+ severity: r ? "warning" : "error"
956
+ };
957
+ });
958
+ return {
959
+ isValid: !s.some((e) => e.severity === "error"),
960
+ returnType: "void",
961
+ diagnostics: s
962
+ };
963
+ }, Ye = (t, n, r, i) => {
964
+ let a = H(t, r, n), o = "index.ts", s = z(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram().getTypeChecker(), u = t.nodes?.nodes?.find((e) => e?.id === i), d = i ? `fn_${u?.functionDefinition?.identifier?.replace(/::/g, "_")}` : "flow", f = i ? `node_${V(i)}` : `flow_${V(t.id)}`, p = Xe(c), m = Ze(c).get(f), h = p.get(d), g = Qe(l, m), _ = $e(l, h, m), v = g?.map((t, n) => (t.flags & e.TypeFlags.Undefined) === 0 ? t : _?.[n] ?? t), y = (u?.parameters?.nodes ?? []).map((e) => e?.value != null), b = tt(l, m, v, _, et(h, g, y), i ? p : /* @__PURE__ */ new Map(), i ? r : [], y), x = Q(l, m, h);
823
965
  return {
824
966
  nodeId: i,
825
- parameters: x,
826
- return: w ? K(l, m, w, Array.from(p.values()), r, !1) : { input: "generic" }
967
+ parameters: b,
968
+ return: x ? j(l, m, x, Array.from(p.values()), r, !1) : { input: "generic" }
827
969
  };
828
970
  }, Q = (t, n, r) => {
829
971
  if (n?.initializer && e.isCallExpression(n.initializer)) {
@@ -834,21 +976,21 @@ var xe = (t, n, r, i) => {
834
976
  let e = t.getSignatureFromDeclaration(r);
835
977
  if (e) return t.getReturnTypeOfSignature(e);
836
978
  }
837
- }, Se = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), Ce = (t) => {
979
+ }, Xe = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), Ze = (t) => {
838
980
  let n = [];
839
981
  return t.statements.forEach((t) => {
840
982
  t.forEachChild(function t(r) {
841
983
  e.isVariableDeclaration(r) && (r.parent.flags & e.NodeFlags.Const) !== 0 && n.push([r.name.getText(), r]), r.forEachChild(t);
842
984
  });
843
985
  }), new Map(n);
844
- }, we = (t, n) => {
986
+ }, Qe = (t, n) => {
845
987
  if (!(!n?.initializer || !e.isCallExpression(n.initializer))) return t.getResolvedSignature(n.initializer)?.parameters.map((e) => t.getTypeOfSymbolAtLocation(e, n.initializer));
846
- }, Te = (e, t, n) => {
988
+ }, $e = (e, t, n) => {
847
989
  if (!(!t || !n?.initializer)) return t.parameters.map((t) => {
848
990
  let r = e.getSymbolAtLocation(t.name);
849
991
  return e.getTypeOfSymbolAtLocation(r, n.initializer);
850
992
  });
851
- }, Ee = (t, n, r = []) => {
993
+ }, et = (t, n, r = []) => {
852
994
  let i = t.typeParameters?.map((e) => e.name.getText()) || [], a = {};
853
995
  t.parameters.forEach((t, n) => {
854
996
  if (!t.type) return;
@@ -878,13 +1020,13 @@ var xe = (t, n, r, i) => {
878
1020
  let a = (i.flags & e.TypeFlags.Null) !== 0, o = (i.flags & e.TypeFlags.Undefined) !== 0;
879
1021
  return a || o;
880
1022
  }) : o;
881
- }, De = (e, t, n, r, i, a, o, s) => n ? n.map((n, c) => {
882
- let l = r?.[c], u = l ? Oe(e, l, t) : void 0, d = K(e, t, n, Array.from(a.values()), o, !0, u);
1023
+ }, tt = (e, t, n, r, i, a, o, s) => n ? n.map((n, c) => {
1024
+ let l = r?.[c], u = l ? nt(e, l, t) : void 0, d = j(e, t, n, Array.from(a.values()), o, !0, u);
883
1025
  return {
884
- schema: q(l ? K(e, t, l, Array.from(a.values()), o, !1) : void 0, d, s[c] ?? !1),
1026
+ schema: M(l ? j(e, t, l, Array.from(a.values()), o, !1) : void 0, d, s[c] ?? !1),
885
1027
  blockedBy: i.filter((e) => e.parameterIndex === c).map((e) => e.dependsOnIndex)
886
1028
  };
887
- }) : [], Oe = (t, n, r) => {
1029
+ }) : [], nt = (t, n, r) => {
888
1030
  if ((n.flags & e.TypeFlags.TypeParameter) !== 0) {
889
1031
  let r = n.symbol?.declarations?.[0];
890
1032
  return r && e.isTypeParameterDeclaration(r) && r.constraint ? t.getTypeFromTypeNode(r.constraint) : t.getAnyType();
@@ -899,13 +1041,13 @@ var xe = (t, n, r, i) => {
899
1041
  return t.getAnyType();
900
1042
  }
901
1043
  return n;
902
- }, $ = (t, n, r) => r.has(t) ? !1 : (r.add(t), !!((t.flags & e.TypeFlags.TypeParameter) !== 0 || (t.flags & e.TypeFlags.Object) !== 0 && (n.getTypeArguments(t).some((e) => $(e, n, r)) || t.aliasTypeArguments?.some((e) => $(e, n, r))))), ke = (t, n = []) => {
903
- let r = "index.ts", i = y(r, `${x(n)}\ntype MyType = ${t}`).languageService.getProgram(), a = i?.getSourceFile(r), o = i?.getTypeChecker();
1044
+ }, $ = (t, n, r) => r.has(t) ? !1 : (r.add(t), !!((t.flags & e.TypeFlags.TypeParameter) !== 0 || (t.flags & e.TypeFlags.Object) !== 0 && (n.getTypeArguments(t).some((e) => $(e, n, r)) || t.aliasTypeArguments?.some((e) => $(e, n, r))))), rt = (t, n = []) => {
1045
+ let r = "index.ts", i = z(r, `${B(n)}\ntype MyType = ${t}`).languageService.getProgram(), a = i?.getSourceFile(r), o = i?.getTypeChecker();
904
1046
  if (!a || !o) return;
905
1047
  let s = a.statements.filter((t) => e.isTypeAliasDeclaration(t) || e.isInterfaceDeclaration(t) || e.isClassDeclaration(t)).pop();
906
1048
  if (!s) return;
907
1049
  let c = o.getTypeAtLocation(s);
908
- if (c) return K(o, void 0, c, [], [], !1);
1050
+ if (c) return j(o, void 0, c, [], [], !1);
909
1051
  };
910
1052
  //#endregion
911
- export { O as getFlowValidation, xe as getSignatureSchema, w as getTypeFromValue, ke as getTypeSchema, ee as getValueFromType, k as getValueValidation };
1053
+ export { Ie as getFlowSchemas, qe as getFlowValidation, Ye as getSignatureSchema, Ae as getTypeFromValue, rt as getTypeSchema, je as getValueFromType, Je as getValueValidation };