@code0-tech/triangulum 0.29.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.
- package/dist/extraction/getFlowSchemas.d.ts +57 -0
- package/dist/index.d.ts +2 -0
- package/dist/triangulum.cjs.js +19 -18
- package/dist/triangulum.es.js +321 -189
- package/dist/util/jsonSchema.util.d.ts +18 -0
- package/package.json +9 -7
package/dist/triangulum.es.js
CHANGED
|
@@ -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
|
|
4
|
-
return
|
|
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
|
-
},
|
|
11
|
+
}, o.apply(null, arguments);
|
|
11
12
|
}
|
|
12
|
-
var
|
|
13
|
+
var s = !1;
|
|
13
14
|
try {
|
|
14
|
-
|
|
15
|
+
s = typeof localStorage < "u";
|
|
15
16
|
} catch {}
|
|
16
|
-
var
|
|
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
|
|
20
|
-
|
|
21
|
-
var
|
|
22
|
-
if (
|
|
23
|
-
var
|
|
24
|
-
throw Error(
|
|
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:
|
|
30
|
+
languageService: d,
|
|
30
31
|
getSourceFile: function(e) {
|
|
31
|
-
return
|
|
32
|
+
return d.getProgram()?.getSourceFile(e);
|
|
32
33
|
},
|
|
33
34
|
createFile: function(e, t) {
|
|
34
|
-
|
|
35
|
+
l(n.createSourceFile(e, t, a.target, !1));
|
|
35
36
|
},
|
|
36
|
-
updateFile: function(e, t,
|
|
37
|
-
var i =
|
|
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 =
|
|
40
|
-
|
|
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 =
|
|
47
|
-
t &&
|
|
47
|
+
var t = d.getProgram().getSourceFile(e);
|
|
48
|
+
t && u(t);
|
|
48
49
|
}
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
|
-
function
|
|
52
|
+
function d(e) {
|
|
52
53
|
throw Error("Method '" + e + "' is not implemented.");
|
|
53
54
|
}
|
|
54
|
-
function
|
|
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
|
|
58
|
+
return l.apply(void 0, ["> " + e].concat(n)), l("< " + i), r;
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
|
-
var
|
|
61
|
-
return
|
|
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
|
-
},
|
|
71
|
+
}, m = function(e) {
|
|
71
72
|
return e.replace("/", "/lib.").toLowerCase();
|
|
72
73
|
};
|
|
73
|
-
function
|
|
74
|
+
function h(e) {
|
|
74
75
|
return {
|
|
75
76
|
args: [],
|
|
76
77
|
createDirectory: function() {
|
|
77
|
-
return
|
|
78
|
+
return d("createDirectory");
|
|
78
79
|
},
|
|
79
|
-
directoryExists:
|
|
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
|
|
86
|
+
return d("exit");
|
|
86
87
|
},
|
|
87
|
-
fileExists:
|
|
88
|
-
return e.has(t) || e.has(
|
|
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
|
|
98
|
+
return d("getExecutingFilePath");
|
|
98
99
|
},
|
|
99
|
-
readDirectory:
|
|
100
|
+
readDirectory: f("readDirectory", function(t) {
|
|
100
101
|
return t === "/" ? Array.from(e.keys()) : [];
|
|
101
102
|
}),
|
|
102
|
-
readFile:
|
|
103
|
-
return e.get(t) ?? e.get(
|
|
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
|
|
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
|
|
122
|
-
var
|
|
123
|
-
return
|
|
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:
|
|
127
|
+
compilerHost: o({}, e, {
|
|
127
128
|
getCanonicalFileName: function(e) {
|
|
128
129
|
return e;
|
|
129
130
|
},
|
|
130
131
|
getDefaultLibFileName: function() {
|
|
131
|
-
return "/" +
|
|
132
|
+
return "/" + n.getDefaultLibFileName(t);
|
|
132
133
|
},
|
|
133
134
|
getNewLine: function() {
|
|
134
135
|
return e.newLine;
|
|
135
136
|
},
|
|
136
|
-
getSourceFile: function(
|
|
137
|
-
return
|
|
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 =
|
|
145
|
-
return e.writeFile(t.fileName, t.text),
|
|
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 =
|
|
149
|
-
return
|
|
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
|
|
154
|
-
var
|
|
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:
|
|
157
|
+
languageServiceHost: o({}, c, {
|
|
157
158
|
getProjectVersion: function() {
|
|
158
|
-
return
|
|
159
|
+
return f.toString();
|
|
159
160
|
},
|
|
160
161
|
getCompilationSettings: function() {
|
|
161
|
-
return
|
|
162
|
+
return n;
|
|
162
163
|
},
|
|
163
164
|
getCustomTransformers: function() {
|
|
164
|
-
return
|
|
165
|
+
return i;
|
|
165
166
|
},
|
|
166
167
|
getScriptFileNames: function() {
|
|
167
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
183
|
-
var t =
|
|
184
|
-
t !== -1 &&
|
|
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
|
|
191
|
-
return
|
|
191
|
+
function v(e) {
|
|
192
|
+
return y.test(e);
|
|
192
193
|
}
|
|
193
|
-
var
|
|
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
|
|
197
|
-
let i =
|
|
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" || !
|
|
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
|
|
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,14 +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
|
|
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
247
|
//#region src/util/values.util.ts
|
|
247
|
-
var
|
|
248
|
-
if (e.isUnionTypeNode(t)) return t.types.flatMap(
|
|
248
|
+
var S = (t) => {
|
|
249
|
+
if (e.isUnionTypeNode(t)) return t.types.flatMap(S);
|
|
249
250
|
if (e.isLiteralTypeNode(t)) {
|
|
250
251
|
let n = t.literal;
|
|
251
252
|
if (e.isStringLiteral(n)) return [{
|
|
@@ -263,12 +264,12 @@ var v = (t) => {
|
|
|
263
264
|
}];
|
|
264
265
|
}
|
|
265
266
|
return [];
|
|
266
|
-
},
|
|
267
|
+
}, C = (t, n) => {
|
|
267
268
|
if (n && t.aliasSymbol) {
|
|
268
269
|
let n = t.aliasSymbol.declarations?.[0];
|
|
269
|
-
if (n && e.isTypeAliasDeclaration(n)) return
|
|
270
|
+
if (n && e.isTypeAliasDeclaration(n)) return S(n.type);
|
|
270
271
|
}
|
|
271
|
-
return t.isUnion() ? t.types.flatMap((e) =>
|
|
272
|
+
return t.isUnion() ? t.types.flatMap((e) => C(e, n)) : t.isStringLiteral() ? [{
|
|
272
273
|
value: t.value,
|
|
273
274
|
__typename: "LiteralValue"
|
|
274
275
|
}] : t.isNumberLiteral() ? [{ value: t.value.toString() }] : t.intrinsicName === "true" ? [{
|
|
@@ -278,14 +279,14 @@ var v = (t) => {
|
|
|
278
279
|
value: !1,
|
|
279
280
|
__typename: "LiteralValue"
|
|
280
281
|
}] : [];
|
|
281
|
-
},
|
|
282
|
+
}, ee = (e, t, n, r) => r.flatMap((r) => {
|
|
282
283
|
let i = r.getName();
|
|
283
|
-
if (!
|
|
284
|
+
if (!te(i)) return [];
|
|
284
285
|
let a = r.getDeclarations()?.[0];
|
|
285
286
|
if (!a || a.getEnd() >= t.getEnd()) return [];
|
|
286
287
|
let o = e.getTypeOfSymbolAtLocation(r, t);
|
|
287
|
-
return i.startsWith("node_") ?
|
|
288
|
-
}),
|
|
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) => {
|
|
289
290
|
if ((n.flags & e.TypeFlags.Void) !== 0) return [];
|
|
290
291
|
let a = w(t.replace("node_", ""));
|
|
291
292
|
return D(n, r, i).flatMap(({ path: e }) => {
|
|
@@ -295,8 +296,8 @@ var v = (t) => {
|
|
|
295
296
|
};
|
|
296
297
|
return e.length > 0 && (t.referencePath = e), t;
|
|
297
298
|
});
|
|
298
|
-
},
|
|
299
|
-
let { nodeFunctionId: i, paramIndexFromName: a } =
|
|
299
|
+
}, re = (e, t, n, r) => {
|
|
300
|
+
let { nodeFunctionId: i, paramIndexFromName: a } = ae(e);
|
|
300
301
|
if (!n.isTupleType(t)) return [];
|
|
301
302
|
let o = t;
|
|
302
303
|
return n.getTypeArguments(o).flatMap((e, t) => D(e, n, r).flatMap(({ path: e }) => {
|
|
@@ -309,19 +310,19 @@ var v = (t) => {
|
|
|
309
310
|
};
|
|
310
311
|
return e.length > 0 && (n.referencePath = e), n;
|
|
311
312
|
}));
|
|
312
|
-
},
|
|
313
|
+
}, ie = (e, t, n) => D(e, t, n).flatMap(({ path: e }) => {
|
|
313
314
|
let t = {
|
|
314
315
|
__typename: "ReferenceValue",
|
|
315
316
|
nodeFunctionId: null
|
|
316
317
|
};
|
|
317
318
|
return e.length > 0 && (t.referencePath = e), t;
|
|
318
|
-
}), w = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"),
|
|
319
|
+
}), w = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), ae = (e) => {
|
|
319
320
|
let t = e.replace("p_", ""), n = t.lastIndexOf("_"), r = t.substring(0, n), i = parseInt(t.substring(n + 1), 10);
|
|
320
321
|
return {
|
|
321
322
|
nodeFunctionId: w(r),
|
|
322
323
|
paramIndexFromName: i
|
|
323
324
|
};
|
|
324
|
-
},
|
|
325
|
+
}, oe = 7, T = (e, t, n) => {
|
|
325
326
|
let r = n.get(e);
|
|
326
327
|
if (r !== void 0) return r;
|
|
327
328
|
let i = /* @__PURE__ */ new Set(), a = (n) => {
|
|
@@ -335,13 +336,13 @@ var v = (t) => {
|
|
|
335
336
|
return !1;
|
|
336
337
|
}, o = a(e);
|
|
337
338
|
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),
|
|
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()) => {
|
|
339
340
|
let o = [], s = t.getNonNullableType(e);
|
|
340
341
|
return E(s, t, n) && o.push({
|
|
341
342
|
path: r,
|
|
342
343
|
type: e
|
|
343
|
-
}),
|
|
344
|
-
if (i.has(e) || r.length >=
|
|
344
|
+
}), se(s, t).forEach((e) => {
|
|
345
|
+
if (i.has(e) || r.length >= oe && T(e, t, a)) return;
|
|
345
346
|
let s = e.getProperties();
|
|
346
347
|
s && s.length > 0 && (i.add(e), s.forEach((e) => {
|
|
347
348
|
let s = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration), c = e.getName(), l = [...r, { path: c }];
|
|
@@ -351,16 +352,16 @@ var v = (t) => {
|
|
|
351
352
|
}, O = (t) => {
|
|
352
353
|
let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
|
|
353
354
|
return (t.flags & n) === 0;
|
|
354
|
-
},
|
|
355
|
-
let i =
|
|
355
|
+
}, ce = (e, t, n, r) => R(r) ? [] : t.flatMap((t) => {
|
|
356
|
+
let i = le(e, t, n, r);
|
|
356
357
|
return i ? [i] : [];
|
|
357
|
-
}),
|
|
358
|
+
}), le = (t, n, r, i) => {
|
|
358
359
|
if (n.parameters.length > 0) return null;
|
|
359
|
-
let a = t.getSignatureFromDeclaration(n), o =
|
|
360
|
+
let a = t.getSignatureFromDeclaration(n), o = ue(t, t.getReturnTypeOfSignature(a)), s = t.getNonNullableType(o);
|
|
360
361
|
if ((s.flags & e.TypeFlags.Never) !== 0 || !t.isTypeAssignableTo(s, i)) return null;
|
|
361
|
-
let c =
|
|
362
|
-
return
|
|
363
|
-
},
|
|
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) => {
|
|
364
365
|
let t = (e?.parameterDefinitions?.nodes?.length ?? 0) > 0, n = {
|
|
365
366
|
__typename: "NodeFunction",
|
|
366
367
|
id: "gid://sagittarius/NodeFunction/1",
|
|
@@ -373,11 +374,11 @@ var v = (t) => {
|
|
|
373
374
|
displayIcon: e?.displayIcon
|
|
374
375
|
}
|
|
375
376
|
};
|
|
376
|
-
return t && (n.parameters =
|
|
377
|
-
},
|
|
377
|
+
return t && (n.parameters = pe(e?.parameterDefinitions?.nodes || [])), n;
|
|
378
|
+
}, pe = (e) => ({
|
|
378
379
|
__typename: "NodeParameterConnection",
|
|
379
|
-
nodes: e.map((e) =>
|
|
380
|
-
}),
|
|
380
|
+
nodes: e.map((e) => me(e))
|
|
381
|
+
}), me = (e) => ({
|
|
381
382
|
__typename: "NodeParameter",
|
|
382
383
|
parameterDefinition: {
|
|
383
384
|
__typename: "ParameterDefinition",
|
|
@@ -388,15 +389,15 @@ var v = (t) => {
|
|
|
388
389
|
__typename: "LiteralValue",
|
|
389
390
|
value: e.defaultValue.value
|
|
390
391
|
} : null
|
|
391
|
-
}),
|
|
392
|
-
let i =
|
|
392
|
+
}), he = (e, t, n, r) => R(r) ? t.flatMap((t) => {
|
|
393
|
+
let i = ge(e, t, n, r);
|
|
393
394
|
return i ? [i] : [];
|
|
394
|
-
}) : [],
|
|
395
|
+
}) : [], ge = (e, t, n, r) => {
|
|
395
396
|
let i = e.getTypeAtLocation(t);
|
|
396
397
|
if (!e.isTypeAssignableTo(i, r)) return null;
|
|
397
|
-
let a =
|
|
398
|
-
return o ?
|
|
399
|
-
},
|
|
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) => ({
|
|
400
401
|
__typename: "SubFlowValue",
|
|
401
402
|
functionDefinition: e,
|
|
402
403
|
signature: e.signature,
|
|
@@ -407,64 +408,64 @@ var v = (t) => {
|
|
|
407
408
|
hidden: e?.hidden ?? !1,
|
|
408
409
|
optional: e?.optional ?? !1
|
|
409
410
|
}))
|
|
410
|
-
}),
|
|
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()) => {
|
|
411
412
|
if ((r.flags & e.TypeFlags.TypeParameter) !== 0) {
|
|
412
413
|
let u = r.symbol?.declarations?.[0];
|
|
413
|
-
if (u && e.isTypeParameterDeclaration(u) && u.constraint) return
|
|
414
|
+
if (u && e.isTypeParameterDeclaration(u) && u.constraint) return j(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
|
|
414
415
|
}
|
|
415
416
|
let u = t.typeToString(r), d = s ?? r, f = o ? { suggestions: [
|
|
416
|
-
...
|
|
417
|
-
...n ?
|
|
418
|
-
...
|
|
419
|
-
...
|
|
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)
|
|
420
421
|
] } : {};
|
|
421
422
|
if (r.isUnion()) {
|
|
422
423
|
let o = r.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
|
|
423
424
|
if (o.length === 1) return {
|
|
424
|
-
...
|
|
425
|
+
...j(t, n, o[0], i, a, !1, void 0, c, l),
|
|
425
426
|
type: u,
|
|
426
427
|
...f
|
|
427
428
|
};
|
|
428
429
|
}
|
|
429
|
-
let p =
|
|
430
|
+
let p = Se(r);
|
|
430
431
|
if (p) return {
|
|
431
432
|
input: p,
|
|
432
433
|
type: u,
|
|
433
434
|
...f
|
|
434
435
|
};
|
|
435
|
-
if (
|
|
436
|
+
if (F(r)) return {
|
|
436
437
|
input: "boolean",
|
|
437
438
|
type: u,
|
|
438
439
|
...f
|
|
439
440
|
};
|
|
440
|
-
if (
|
|
441
|
+
if (Te(r) || we(r)) return {
|
|
441
442
|
input: "select",
|
|
442
443
|
type: u,
|
|
443
444
|
...f
|
|
444
445
|
};
|
|
445
|
-
if (
|
|
446
|
+
if (I(r)) return {
|
|
446
447
|
input: "number",
|
|
447
448
|
type: u,
|
|
448
449
|
...f
|
|
449
450
|
};
|
|
450
|
-
if (
|
|
451
|
+
if (L(r)) return {
|
|
451
452
|
input: "text",
|
|
452
453
|
type: u,
|
|
453
454
|
...f
|
|
454
455
|
};
|
|
455
|
-
if (
|
|
456
|
+
if (R(r)) return {
|
|
456
457
|
input: "sub-flow",
|
|
457
458
|
type: u,
|
|
458
459
|
...f
|
|
459
460
|
};
|
|
460
|
-
if (
|
|
461
|
+
if (Ee(t, r)) return {
|
|
461
462
|
input: "list",
|
|
462
463
|
type: u,
|
|
463
|
-
items: t.getTypeArguments(r).flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) =>
|
|
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))),
|
|
464
465
|
...f
|
|
465
466
|
};
|
|
466
467
|
if ((r.flags & e.TypeFlags.Object) !== 0) {
|
|
467
|
-
if (c.has(r) || c.size >=
|
|
468
|
+
if (c.has(r) || c.size >= ye && T(r, t, l)) return {
|
|
468
469
|
input: "data",
|
|
469
470
|
type: u,
|
|
470
471
|
...f
|
|
@@ -474,7 +475,7 @@ var v = (t) => {
|
|
|
474
475
|
for (let u of t.getPropertiesOfType(r)) {
|
|
475
476
|
let r = u.valueDeclaration ?? u.declarations?.[0];
|
|
476
477
|
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) =>
|
|
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));
|
|
478
479
|
s[u.name] = m.length === 1 ? m[0] : m, p || d.push(u.name);
|
|
479
480
|
}
|
|
480
481
|
return c.delete(r), {
|
|
@@ -490,14 +491,14 @@ var v = (t) => {
|
|
|
490
491
|
type: u,
|
|
491
492
|
...f
|
|
492
493
|
};
|
|
493
|
-
},
|
|
494
|
-
if (!e || e.input === "generic") return
|
|
495
|
-
let r =
|
|
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);
|
|
496
497
|
if (e.input === "data") {
|
|
497
498
|
let n = e.properties ?? {}, i = t.input === "data" ? t.properties ?? {} : {}, a = {}, o = new Set([...Object.keys(n), ...Object.keys(i)]);
|
|
498
499
|
for (let e of o) {
|
|
499
500
|
let t = n[e], r = i[e];
|
|
500
|
-
a[e] =
|
|
501
|
+
a[e] = N(t, r);
|
|
501
502
|
}
|
|
502
503
|
return {
|
|
503
504
|
...e,
|
|
@@ -506,7 +507,7 @@ var v = (t) => {
|
|
|
506
507
|
};
|
|
507
508
|
}
|
|
508
509
|
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) =>
|
|
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;
|
|
510
511
|
return {
|
|
511
512
|
...e,
|
|
512
513
|
items: a,
|
|
@@ -517,7 +518,7 @@ var v = (t) => {
|
|
|
517
518
|
...e,
|
|
518
519
|
...r ? { suggestions: r } : {}
|
|
519
520
|
};
|
|
520
|
-
},
|
|
521
|
+
}, N = (e, t) => e && !Array.isArray(e) && t && !Array.isArray(t) ? M(e, t) : e ?? t, P = (e, t) => {
|
|
521
522
|
let n = [...e ?? [], ...t ?? []];
|
|
522
523
|
if (n.length === 0) return;
|
|
523
524
|
let r = /* @__PURE__ */ new Set(), i = [];
|
|
@@ -526,13 +527,13 @@ var v = (t) => {
|
|
|
526
527
|
r.has(t) || (r.add(t), i.push(e));
|
|
527
528
|
}
|
|
528
529
|
return i;
|
|
529
|
-
},
|
|
530
|
+
}, be = (e, t) => !t || e.input !== "generic" ? e : {
|
|
530
531
|
input: "data",
|
|
531
532
|
...e.type ? { type: e.type } : {},
|
|
532
533
|
properties: {},
|
|
533
534
|
required: [],
|
|
534
535
|
...e.suggestions ? { suggestions: e.suggestions } : {}
|
|
535
|
-
},
|
|
536
|
+
}, xe = (e) => {
|
|
536
537
|
if (e.input !== "select") return e;
|
|
537
538
|
let t = e.suggestions ?? [], n = /* @__PURE__ */ new Set();
|
|
538
539
|
for (let e of t) {
|
|
@@ -549,11 +550,11 @@ var v = (t) => {
|
|
|
549
550
|
...t.length > 0 ? { suggestions: t } : {}
|
|
550
551
|
};
|
|
551
552
|
};
|
|
552
|
-
function
|
|
553
|
+
function Se(e) {
|
|
553
554
|
let t = e.aliasSymbol?.getName();
|
|
554
|
-
return
|
|
555
|
+
return A(t) ? k[t] : void 0;
|
|
555
556
|
}
|
|
556
|
-
function
|
|
557
|
+
function F(t) {
|
|
557
558
|
if ((t.flags & e.TypeFlags.Boolean) !== 0 || (t.flags & e.TypeFlags.BooleanLiteral) !== 0) return !0;
|
|
558
559
|
if (t.isUnion()) {
|
|
559
560
|
let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
|
|
@@ -561,51 +562,66 @@ function U(t) {
|
|
|
561
562
|
}
|
|
562
563
|
return !1;
|
|
563
564
|
}
|
|
564
|
-
function
|
|
565
|
+
function I(t) {
|
|
565
566
|
return (t.flags & e.TypeFlags.Number) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
|
|
566
567
|
}
|
|
567
|
-
function
|
|
568
|
+
function L(t) {
|
|
568
569
|
return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
|
|
569
570
|
}
|
|
570
|
-
function
|
|
571
|
-
return
|
|
571
|
+
function Ce(e) {
|
|
572
|
+
return L(e) || I(e) || F(e);
|
|
572
573
|
}
|
|
573
|
-
function
|
|
574
|
+
function we(t) {
|
|
574
575
|
return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
|
|
575
576
|
}
|
|
576
|
-
function
|
|
577
|
+
function Te(t) {
|
|
577
578
|
if (!t.isUnion()) return !1;
|
|
578
579
|
let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
|
|
579
|
-
return n.length > 0 && n.every(
|
|
580
|
+
return n.length > 0 && n.every(Ce);
|
|
580
581
|
}
|
|
581
|
-
function
|
|
582
|
+
function Ee(e, t) {
|
|
582
583
|
return e.isArrayType(t) || e.isTupleType(t);
|
|
583
584
|
}
|
|
584
|
-
function
|
|
585
|
+
function R(e) {
|
|
585
586
|
return e.getCallSignatures().length > 0;
|
|
586
587
|
}
|
|
587
588
|
//#endregion
|
|
588
589
|
//#region src/utils.ts
|
|
589
|
-
var
|
|
590
|
-
function
|
|
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) {
|
|
591
592
|
let r = /* @__PURE__ */ new Map();
|
|
592
|
-
return r.set(t, n), r.set("lib.codezero.d.ts",
|
|
593
|
+
return r.set(t, n), r.set("lib.codezero.d.ts", De), u(h(r), [t, "lib.codezero.d.ts"], e, Oe);
|
|
593
594
|
}
|
|
594
|
-
var
|
|
595
|
+
var Oe = {
|
|
595
596
|
target: e.ScriptTarget.Latest,
|
|
596
597
|
lib: ["lib.codezero.d.ts"],
|
|
597
598
|
noEmit: !0,
|
|
598
599
|
strictNullChecks: !0
|
|
599
600
|
};
|
|
600
|
-
function
|
|
601
|
-
let
|
|
602
|
-
|
|
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;
|
|
603
619
|
return `type ${e.identifier}${t} = ${n};`;
|
|
604
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") ?? "";
|
|
605
621
|
return `${n ? r : ""}\n${i}\n${a}`;
|
|
606
622
|
}
|
|
607
|
-
var
|
|
608
|
-
function
|
|
623
|
+
var V = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_");
|
|
624
|
+
function H(e, t, n, r = !1, i = !0) {
|
|
609
625
|
let a = e?.nodes?.nodes || [], o = new Map(t?.map((e) => [e.identifier, e])), s = /* @__PURE__ */ new Set(), c = (t, n = "") => {
|
|
610
626
|
let l = a.find((e) => e?.id === t);
|
|
611
627
|
if (!l || !l.functionDefinition) return "";
|
|
@@ -614,18 +630,18 @@ function X(e, t, n, r = !1, i = !0) {
|
|
|
614
630
|
let s = a.value;
|
|
615
631
|
if (!s) return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
|
|
616
632
|
if (s.__typename === "ReferenceValue") {
|
|
617
|
-
let n = s, r = typeof n.inputIndex == "number" ? `p_${
|
|
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")}`;
|
|
618
634
|
return n.referencePath?.forEach((e) => {
|
|
619
635
|
r += `?.${e.path}`;
|
|
620
636
|
}), `/* @pos ${t} ${o} */ (${r})${i ? "!" : ""}`;
|
|
621
637
|
}
|
|
622
|
-
if (s.__typename === "LiteralValue") return `/* @pos ${t} ${o} */ ${s?.value !== null && s?.value !== void 0 ?
|
|
638
|
+
if (s.__typename === "LiteralValue") return `/* @pos ${t} ${o} */ ${s?.value !== null && s?.value !== void 0 ? b(s?.value) : void 0}`;
|
|
623
639
|
if (s.__typename === "SubFlowValue") {
|
|
624
640
|
let e = s;
|
|
625
|
-
return `/* @pos ${t} ${o} */ (...${`p_${
|
|
641
|
+
return `/* @pos ${t} ${o} */ (...${`p_${V(t)}_${o}`}) => {\n${c(e.startingNodeId || e.functionDefinition?.id, n + " ")}${n}}`;
|
|
626
642
|
}
|
|
627
643
|
return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
|
|
628
|
-
}), d = `node_${
|
|
644
|
+
}), d = `node_${V(l.id)}`, f = `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
|
|
629
645
|
u.includes("undefined");
|
|
630
646
|
let p = `${n}`;
|
|
631
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]}) {
|
|
@@ -635,7 +651,7 @@ function X(e, t, n, r = !1, i = !0) {
|
|
|
635
651
|
} else {
|
|
636
652
|
${c(l.parameters?.nodes?.[2]?.value?.startingNodeId || (l.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier, n + " ")}
|
|
637
653
|
}`) : p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, l.nextNodeId && (p += c(l.nextNodeId, n)), p;
|
|
638
|
-
}, l =
|
|
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();
|
|
639
655
|
return a.forEach((e) => e?.parameters?.nodes?.forEach((e) => {
|
|
640
656
|
e?.value?.__typename === "SubFlowValue" && (e.value.startingNodeId || e.value.functionDefinition?.id) && p.add(e.value.startingNodeId || e.value.functionDefinition?.id);
|
|
641
657
|
})), `
|
|
@@ -643,20 +659,20 @@ function X(e, t, n, r = !1, i = !0) {
|
|
|
643
659
|
${u}\n
|
|
644
660
|
${d}\n
|
|
645
661
|
(() =>
|
|
646
|
-
${e ? `const flow_${
|
|
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(", ") ?? ""});` : ""}
|
|
647
663
|
${a.filter((e) => e?.id && !f.has(e.id) && !p.has(e.id)).map((e) => c(e.id)).join("\n")}
|
|
648
664
|
)();
|
|
649
665
|
`;
|
|
650
666
|
}
|
|
651
667
|
//#endregion
|
|
652
668
|
//#region src/extraction/getTypeFromValue.ts
|
|
653
|
-
var
|
|
654
|
-
let r =
|
|
669
|
+
var Ae = (t, n) => {
|
|
670
|
+
let r = b(t?.value);
|
|
655
671
|
if (!r) return "any";
|
|
656
672
|
let i = `
|
|
657
|
-
${
|
|
673
|
+
${B(n, "unknown")}
|
|
658
674
|
const tempValue = ${r ?? "any"};
|
|
659
|
-
`, a = "index.ts", o =
|
|
675
|
+
`, a = "index.ts", o = z(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = "any", u = (t) => {
|
|
660
676
|
if (e.isVariableDeclaration(t) && t.name.getText() === "tempValue") {
|
|
661
677
|
let n = c.getTypeAtLocation(t), r = (n) => {
|
|
662
678
|
if (n.isUnion()) {
|
|
@@ -682,11 +698,11 @@ var _e = (t, n) => {
|
|
|
682
698
|
e.forEachChild(t, u);
|
|
683
699
|
};
|
|
684
700
|
return u(s), l;
|
|
685
|
-
},
|
|
701
|
+
}, je = (t, n) => {
|
|
686
702
|
let r = `
|
|
687
|
-
${
|
|
703
|
+
${B(n)}
|
|
688
704
|
type Target = ${t};
|
|
689
|
-
`, i = "index.ts", a =
|
|
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");
|
|
690
706
|
if (!c) return {
|
|
691
707
|
__typename: "LiteralValue",
|
|
692
708
|
value: null
|
|
@@ -728,31 +744,147 @@ var _e = (t, n) => {
|
|
|
728
744
|
__typename: "LiteralValue",
|
|
729
745
|
value: u(l, c)
|
|
730
746
|
};
|
|
731
|
-
},
|
|
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) => {
|
|
732
864
|
if (e.getStart() > t || e.getEnd() < n) return;
|
|
733
865
|
let r = e;
|
|
734
866
|
return e.forEachChild((e) => {
|
|
735
867
|
let i = Z(e, t, n);
|
|
736
868
|
i && (r = i);
|
|
737
869
|
}), r;
|
|
738
|
-
},
|
|
870
|
+
}, Ke = (t, n, r) => {
|
|
739
871
|
if (t.start === void 0 || t.length === void 0) return !1;
|
|
740
872
|
let i = Z(n, t.start, t.start + t.length);
|
|
741
873
|
if (!i) return !1;
|
|
742
|
-
if (t.code ===
|
|
874
|
+
if (t.code === We && e.isExpression(i)) {
|
|
743
875
|
let t = r.getTypeAtLocation(i);
|
|
744
876
|
if (!t.isUnion()) return !1;
|
|
745
877
|
let n = r.getContextualType(i);
|
|
746
878
|
return n ? t.types.some((t) => (t.flags & (e.TypeFlags.Null | e.TypeFlags.Undefined)) === 0 && r.isTypeAssignableTo(t, n)) : !1;
|
|
747
879
|
}
|
|
748
|
-
if (t.code ===
|
|
880
|
+
if (t.code === Ge && e.isPropertyAccessExpression(i.parent)) {
|
|
749
881
|
let e = r.getNonNullableType(r.getTypeAtLocation(i.parent.expression));
|
|
750
882
|
if (!e.isUnion()) return !1;
|
|
751
883
|
let t = i.getText();
|
|
752
884
|
return e.types.some((e) => e.getProperty(t) !== void 0);
|
|
753
885
|
}
|
|
754
886
|
return !1;
|
|
755
|
-
},
|
|
887
|
+
}, qe = (e, n, r) => {
|
|
756
888
|
if (!e?.startingNodeId) return {
|
|
757
889
|
isValid: !1,
|
|
758
890
|
returnType: "void",
|
|
@@ -787,7 +919,7 @@ var _e = (t, n) => {
|
|
|
787
919
|
returnType: "void",
|
|
788
920
|
diagnostics: a
|
|
789
921
|
};
|
|
790
|
-
let o =
|
|
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) => {
|
|
791
923
|
let n = t(e.messageText, "\n"), r, i = null;
|
|
792
924
|
if (e.start !== void 0) {
|
|
793
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;
|
|
@@ -797,7 +929,7 @@ var _e = (t, n) => {
|
|
|
797
929
|
}
|
|
798
930
|
u && (r = u[1] === "null" ? null : u[1], i = parseInt(u[2], 10));
|
|
799
931
|
}
|
|
800
|
-
let a =
|
|
932
|
+
let a = Ke(e, l, d) ? "warning" : "error";
|
|
801
933
|
return {
|
|
802
934
|
message: n,
|
|
803
935
|
code: e.code,
|
|
@@ -811,11 +943,11 @@ var _e = (t, n) => {
|
|
|
811
943
|
returnType: "void",
|
|
812
944
|
diagnostics: f
|
|
813
945
|
};
|
|
814
|
-
},
|
|
815
|
-
let i =
|
|
816
|
-
${
|
|
946
|
+
}, Je = (t, n, r) => {
|
|
947
|
+
let i = b(n?.value), a = `
|
|
948
|
+
${B(r)}
|
|
817
949
|
const testValue: ${t} = ${i};
|
|
818
|
-
`, o = "index.ts", s =
|
|
950
|
+
`, o = "index.ts", s = z(o, a).languageService.getSemanticDiagnostics(o).map((t) => {
|
|
819
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");
|
|
820
952
|
return {
|
|
821
953
|
message: n,
|
|
@@ -828,14 +960,14 @@ var _e = (t, n) => {
|
|
|
828
960
|
returnType: "void",
|
|
829
961
|
diagnostics: s
|
|
830
962
|
};
|
|
831
|
-
},
|
|
832
|
-
let a =
|
|
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);
|
|
833
965
|
return {
|
|
834
966
|
nodeId: i,
|
|
835
967
|
parameters: b,
|
|
836
|
-
return: x ?
|
|
968
|
+
return: x ? j(l, m, x, Array.from(p.values()), r, !1) : { input: "generic" }
|
|
837
969
|
};
|
|
838
|
-
},
|
|
970
|
+
}, Q = (t, n, r) => {
|
|
839
971
|
if (n?.initializer && e.isCallExpression(n.initializer)) {
|
|
840
972
|
let e = t.getResolvedSignature(n.initializer);
|
|
841
973
|
if (e) return t.getReturnTypeOfSignature(e);
|
|
@@ -844,21 +976,21 @@ var _e = (t, n) => {
|
|
|
844
976
|
let e = t.getSignatureFromDeclaration(r);
|
|
845
977
|
if (e) return t.getReturnTypeOfSignature(e);
|
|
846
978
|
}
|
|
847
|
-
},
|
|
979
|
+
}, Xe = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), Ze = (t) => {
|
|
848
980
|
let n = [];
|
|
849
981
|
return t.statements.forEach((t) => {
|
|
850
982
|
t.forEachChild(function t(r) {
|
|
851
983
|
e.isVariableDeclaration(r) && (r.parent.flags & e.NodeFlags.Const) !== 0 && n.push([r.name.getText(), r]), r.forEachChild(t);
|
|
852
984
|
});
|
|
853
985
|
}), new Map(n);
|
|
854
|
-
},
|
|
986
|
+
}, Qe = (t, n) => {
|
|
855
987
|
if (!(!n?.initializer || !e.isCallExpression(n.initializer))) return t.getResolvedSignature(n.initializer)?.parameters.map((e) => t.getTypeOfSymbolAtLocation(e, n.initializer));
|
|
856
|
-
},
|
|
988
|
+
}, $e = (e, t, n) => {
|
|
857
989
|
if (!(!t || !n?.initializer)) return t.parameters.map((t) => {
|
|
858
990
|
let r = e.getSymbolAtLocation(t.name);
|
|
859
991
|
return e.getTypeOfSymbolAtLocation(r, n.initializer);
|
|
860
992
|
});
|
|
861
|
-
},
|
|
993
|
+
}, et = (t, n, r = []) => {
|
|
862
994
|
let i = t.typeParameters?.map((e) => e.name.getText()) || [], a = {};
|
|
863
995
|
t.parameters.forEach((t, n) => {
|
|
864
996
|
if (!t.type) return;
|
|
@@ -888,13 +1020,13 @@ var _e = (t, n) => {
|
|
|
888
1020
|
let a = (i.flags & e.TypeFlags.Null) !== 0, o = (i.flags & e.TypeFlags.Undefined) !== 0;
|
|
889
1021
|
return a || o;
|
|
890
1022
|
}) : o;
|
|
891
|
-
},
|
|
892
|
-
let l = r?.[c], u = l ?
|
|
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);
|
|
893
1025
|
return {
|
|
894
|
-
schema:
|
|
1026
|
+
schema: M(l ? j(e, t, l, Array.from(a.values()), o, !1) : void 0, d, s[c] ?? !1),
|
|
895
1027
|
blockedBy: i.filter((e) => e.parameterIndex === c).map((e) => e.dependsOnIndex)
|
|
896
1028
|
};
|
|
897
|
-
}) : [],
|
|
1029
|
+
}) : [], nt = (t, n, r) => {
|
|
898
1030
|
if ((n.flags & e.TypeFlags.TypeParameter) !== 0) {
|
|
899
1031
|
let r = n.symbol?.declarations?.[0];
|
|
900
1032
|
return r && e.isTypeParameterDeclaration(r) && r.constraint ? t.getTypeFromTypeNode(r.constraint) : t.getAnyType();
|
|
@@ -909,13 +1041,13 @@ var _e = (t, n) => {
|
|
|
909
1041
|
return t.getAnyType();
|
|
910
1042
|
}
|
|
911
1043
|
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))))),
|
|
913
|
-
let r = "index.ts", i =
|
|
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();
|
|
914
1046
|
if (!a || !o) return;
|
|
915
1047
|
let s = a.statements.filter((t) => e.isTypeAliasDeclaration(t) || e.isInterfaceDeclaration(t) || e.isClassDeclaration(t)).pop();
|
|
916
1048
|
if (!s) return;
|
|
917
1049
|
let c = o.getTypeAtLocation(s);
|
|
918
|
-
if (c) return
|
|
1050
|
+
if (c) return j(o, void 0, c, [], [], !1);
|
|
919
1051
|
};
|
|
920
1052
|
//#endregion
|
|
921
|
-
export {
|
|
1053
|
+
export { Ie as getFlowSchemas, qe as getFlowValidation, Ye as getSignatureSchema, Ae as getTypeFromValue, rt as getTypeSchema, je as getValueFromType, Je as getValueValidation };
|