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