@code0-tech/triangulum 0.13.0 → 0.13.2
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/LICENSE +1 -1
- package/dist/triangulum.cjs.js +33 -27
- package/dist/triangulum.es.js +177 -198
- package/package.json +3 -3
package/LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright 2023-2026 Code0 UG (haftungsbeschränkt)
|
|
1
|
+
Copyright 2023-2026 Code0 UG (haftungsbeschränkt)
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
4
|
|
package/dist/triangulum.cjs.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`typescript`);c=s(c,1);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(null,arguments)}var u=!1;try{u=typeof localStorage<`u`}catch{}var d=typeof process<`u`,f=u&&typeof localStorage.getItem==`function`&&localStorage.getItem(`DEBUG`)||d&&process.env.DEBUG?console.log:function(e){return``};function p(e,t,n,r,i){r===void 0&&(r={});var a=l({},g(n),r),o=b(e,t,a,n,i),s=o.languageServiceHost,c=o.updateFile,u=o.deleteFile,d=n.createLanguageService(s),f=d.getCompilerOptionsDiagnostics();if(f.length){var p=y(e,r,n);throw Error(n.formatDiagnostics(f,p.compilerHost))}return{name:`vfs`,sys:e,languageService:d,getSourceFile:function(e){return d.getProgram()?.getSourceFile(e)},createFile:function(e,t){c(n.createSourceFile(e,t,a.target,!1))},updateFile:function(e,t,r){var i=d.getProgram().getSourceFile(e);if(!i)throw Error(`Did not find a source file for `+e);var a=i.text,o=r??n.createTextSpan(0,a.length),s=a.slice(0,o.start)+t+a.slice(o.start+o.length);c(n.updateSourceFile(i,s,{span:o,newLength:t.length}))},deleteFile:function(e){var t=d.getProgram().getSourceFile(e);t&&u(t)}}}function m(e){throw Error(`Method '`+e+`' is not implemented.`)}function h(e,t){return function(){for(var n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];var a=t.apply(void 0,r),o=typeof a==`string`?a.slice(0,80)+`...`:a;return f.apply(void 0,[`> `+e].concat(r)),f(`< `+o),a}}var g=function(e){return l({},e.getDefaultCompilerOptions(),{jsx:e.JsxEmit.React,strict:!0,esModuleInterop:!0,module:e.ModuleKind.ESNext,suppressOutputPathCheck:!0,skipLibCheck:!0,skipDefaultLibCheck:!0},e.versionMajorMinor&&Number(e.versionMajorMinor.split(`.`)[0])>=6?{ignoreDeprecations:`6.0`}:{moduleResolution:e.ModuleResolutionKind.NodeJs})},_=function(e){return e.replace(`/`,`/lib.`).toLowerCase()};function v(e){return{args:[],createDirectory:function(){return m(`createDirectory`)},directoryExists:h(`directoryExists`,function(t){return Array.from(e.keys()).some(function(e){return e.startsWith(t)})}),exit:function(){return m(`exit`)},fileExists:h(`fileExists`,function(t){return e.has(t)||e.has(_(t))}),getCurrentDirectory:function(){return`/`},getDirectories:function(){return[]},getExecutingFilePath:function(){return m(`getExecutingFilePath`)},readDirectory:h(`readDirectory`,function(t){return t===`/`?Array.from(e.keys()):[]}),readFile:h(`readFile`,function(t){return e.get(t)??e.get(_(t))}),resolvePath:function(e){return e},newLine:`
|
|
2
|
-
`,useCaseSensitiveFileNames:!0,write:function(){return m(`write`)},writeFile:function(t,n){e.set(t,n)},deleteFile:function(t){e.delete(t)}}}function y(e,t,n){var r=new Map,i=function(e){return r.set(e.fileName,e),e};return{compilerHost:l({},e,{getCanonicalFileName:function(e){return e},getDefaultLibFileName:function(){return`/`+n.getDefaultLibFileName(t)},getNewLine:function(){return e.newLine},getSourceFile:function(a,o){return r.get(a)||i(n.createSourceFile(a,e.readFile(a),o??t.target??g(n).target,!1))},useCaseSensitiveFileNames:function(){return e.useCaseSensitiveFileNames}}),updateFile:function(t){var n=r.has(t.fileName);return e.writeFile(t.fileName,t.text),r.set(t.fileName,t),n},deleteFile:function(t){var n=r.has(t.fileName);return r.delete(t.fileName),e.deleteFile(t.fileName),n}}}function b(e,t,n,r,i){var a=[].concat(t),o=y(e,n,r),s=o.compilerHost,c=o.updateFile,u=o.deleteFile,d=new Map,f=0;return{languageServiceHost:l({},s,{getProjectVersion:function(){return f.toString()},getCompilationSettings:function(){return n},getCustomTransformers:function(){return i},getScriptFileNames:function(){return a.slice()},getScriptSnapshot:function(t){var n=e.readFile(t);if(n&&typeof n==`string`)return r.ScriptSnapshot.fromString(n)},getScriptVersion:function(e){return d.get(e)||`0`},writeFile:e.writeFile}),updateFile:function(e){f++,d.set(e.fileName,f.toString()),a.includes(e.fileName)||a.push(e.fileName),c(e)},deleteFile:function(e){f++,d.set(e.fileName,f.toString());var t=a.indexOf(e.fileName);t!==-1&&a.splice(t,1),u(e)}}}
|
|
3
|
-
${n}
|
|
4
|
-
${u?`type TargetType = ${u};`:``}
|
|
5
|
-
const val: TargetType = {} as any;
|
|
6
|
-
`,f=`index.ts`,p=k(f,d),m=p.getSourceFile(f),h=p.languageService.getProgram().getTypeChecker(),g=x.TYPE,_=e=>{if(c.default.isVariableDeclaration(e)&&e.name.getText()===`val`){let t=h.getTypeAtLocation(e);g=t.getCallSignatures().length>0?x.NODE:h.isArrayType(t)?x.ARRAY:t.isStringLiteral()||t.isNumberLiteral()||(t.getFlags()&(c.default.TypeFlags.String|c.default.TypeFlags.Number|c.default.TypeFlags.Boolean|c.default.TypeFlags.EnumLiteral|c.default.TypeFlags.BigInt|c.default.TypeFlags.ESSymbol))!==0?x.PRIMITIVE:t.isClassOrInterface()||(t.getFlags()&c.default.TypeFlags.Object)!==0?x.OBJECT:x.TYPE}c.default.forEachChild(e,_)};_(m),s.push({identifier:l,variant:g})}return s},C=e=>{let t=e.signature;if(!t)return{parameters:[],returnType:`any`};let n=0;if(t.trim().startsWith(`<`)){let e=0;for(let r=0;r<t.length;r++){let i=t[r];if(i===`<`)e++;else if(i===`>`&&(e--,e===0)){n=r+1;break}}}let r=t.indexOf(`(`,n);if(r===-1)return{parameters:[],returnType:`any`};let i=-1,a=0;for(let e=r;e<t.length;e++){let n=t[e];if(n===`(`)a++;else if(n===`)`&&(a--,a===0)){i=e;break}}if(i===-1)return{parameters:[],returnType:`any`};let o=t.substring(r+1,i),s=t.substring(i+1).trim();s.startsWith(`:`)&&(s=s.substring(1).trim());let c=s||`void`,l=[];if(o.trim()){let e=``,t=0,n=0,r=0,i=0,a=e=>{let t=-1,n=0,r=0,i=0,a=0;for(let o=0;o<e.length;o++){let s=e[o];if(s===`{`)n++;else if(s===`}`)n--;else if(s===`[`)r++;else if(s===`]`)r--;else if(s===`(`)i++;else if(s===`)`)i--;else if(s===`<`)a++;else if(s===`>`)a--;else if(s===`:`&&n===0&&r===0&&i===0&&a===0){t=o;break}}t===-1?l.push(`any`):l.push(e.substring(t+1).trim())};for(let s of o){if(s===`(`)t++;else if(s===`)`)t--;else if(s===`<`)n++;else if(s===`>`)n--;else if(s===`{`)r++;else if(s===`}`)r--;else if(s===`[`)i++;else if(s===`]`)i--;else if(s===`,`&&t===0&&n===0&&r===0&&i===0){a(e.trim()),e=``;continue}e+=s}e.trim()&&a(e.trim())}return{parameters:l,returnType:c}};function w(e){return T.test(e)}var T=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;function E(e,t,n,r){let i=D(n);return a(typeof t==`function`?t.call({"":e},``,e):e,``);function a(e,t){if(Array.isArray(r)){let t=r.find(t=>t.test(e));if(t){let n=t.stringify(e);if(typeof n!=`string`||!w(n))throw Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${n})`);return n}}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);if(e?.isLosslessNumber||typeof e==`bigint`)return e.toString();if(Array.isArray(e))return o(e,t);if(e&&typeof e==`object`)return s(e,t)}function o(e,n){if(e.length===0)return`[]`;let r=i?n+i:void 0,o=i?`[
|
|
2
|
+
`,useCaseSensitiveFileNames:!0,write:function(){return m(`write`)},writeFile:function(t,n){e.set(t,n)},deleteFile:function(t){e.delete(t)}}}function y(e,t,n){var r=new Map,i=function(e){return r.set(e.fileName,e),e};return{compilerHost:l({},e,{getCanonicalFileName:function(e){return e},getDefaultLibFileName:function(){return`/`+n.getDefaultLibFileName(t)},getNewLine:function(){return e.newLine},getSourceFile:function(a,o){return r.get(a)||i(n.createSourceFile(a,e.readFile(a),o??t.target??g(n).target,!1))},useCaseSensitiveFileNames:function(){return e.useCaseSensitiveFileNames}}),updateFile:function(t){var n=r.has(t.fileName);return e.writeFile(t.fileName,t.text),r.set(t.fileName,t),n},deleteFile:function(t){var n=r.has(t.fileName);return r.delete(t.fileName),e.deleteFile(t.fileName),n}}}function b(e,t,n,r,i){var a=[].concat(t),o=y(e,n,r),s=o.compilerHost,c=o.updateFile,u=o.deleteFile,d=new Map,f=0;return{languageServiceHost:l({},s,{getProjectVersion:function(){return f.toString()},getCompilationSettings:function(){return n},getCustomTransformers:function(){return i},getScriptFileNames:function(){return a.slice()},getScriptSnapshot:function(t){var n=e.readFile(t);if(n&&typeof n==`string`)return r.ScriptSnapshot.fromString(n)},getScriptVersion:function(e){return d.get(e)||`0`},writeFile:e.writeFile}),updateFile:function(e){f++,d.set(e.fileName,f.toString()),a.includes(e.fileName)||a.push(e.fileName),c(e)},deleteFile:function(e){f++,d.set(e.fileName,f.toString());var t=a.indexOf(e.fileName);t!==-1&&a.splice(t,1),u(e)}}}function x(e){return S.test(e)}var S=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;function C(e,t,n,r){let i=w(n);return a(typeof t==`function`?t.call({"":e},``,e):e,``);function a(e,t){if(Array.isArray(r)){let t=r.find(t=>t.test(e));if(t){let n=t.stringify(e);if(typeof n!=`string`||!x(n))throw Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${n})`);return n}}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);if(e?.isLosslessNumber||typeof e==`bigint`)return e.toString();if(Array.isArray(e))return o(e,t);if(e&&typeof e==`object`)return s(e,t)}function o(e,n){if(e.length===0)return`[]`;let r=i?n+i:void 0,o=i?`[
|
|
7
3
|
`:`[`;for(let n=0;n<e.length;n++){let s=typeof t==`function`?t.call(e,String(n),e[n]):e[n];i&&(o+=r),s!==void 0&&typeof s!=`function`?o+=a(s,r):o+=`null`,n<e.length-1&&(o+=i?`,
|
|
8
|
-
`:`,`)}return o+=i?`\n${n}]`:`]`,o}function s(e,r){if(typeof e.toJSON==`function`)return
|
|
4
|
+
`:`,`)}return o+=i?`\n${n}]`:`]`,o}function s(e,r){if(typeof e.toJSON==`function`)return C(e.toJSON(),t,n,void 0);let o=Array.isArray(t)?t.map(String):Object.keys(e);if(o.length===0)return`{}`;let s=i?r+i:void 0,l=!0,u=i?`{
|
|
9
5
|
`:`{`;for(let n of o){let r=typeof t==`function`?t.call(e,n,e[n]):e[n];if(c(n,r)){l?l=!1:u+=i?`,
|
|
10
|
-
`:`,`;let e=JSON.stringify(n);u+=i?`${s+e}: `:`${e}:`,u+=a(r,s)}}return u+=i?`\n${r}}`:`}`,u}function c(e,t){return t!==void 0&&typeof t!=`function`&&typeof t!=`symbol`}}function
|
|
6
|
+
`:`,`;let e=JSON.stringify(n);u+=i?`${s+e}: `:`${e}:`,u+=a(r,s)}}return u+=i?`\n${r}}`:`}`,u}function c(e,t){return t!==void 0&&typeof t!=`function`&&typeof t!=`symbol`}}function w(e){if(typeof e==`number`)return` `.repeat(e);if(typeof e==`string`&&e!==``)return e}var T=`
|
|
11
7
|
interface Array<T> {
|
|
12
8
|
[n: number]: T;
|
|
13
9
|
length: number;
|
|
@@ -27,26 +23,36 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
27
23
|
}
|
|
28
24
|
|
|
29
25
|
import ReturnType = Utils.ReturnType;
|
|
30
|
-
`;function
|
|
26
|
+
`;function E(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,T),p(v(n),[e,`lib.codezero.d.ts`],c.default,D)}var D={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function O(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]))).map(e=>`type ${e} = ${t};`).join(`
|
|
31
27
|
`),i=e?.map(e=>`type ${e.identifier}${(e.genericKeys?.length??0)>0?`<${e.genericKeys?.join(`,`)}>`:``} = ${e.type};`).join(`
|
|
32
|
-
`);return`${n?r:``}\n${i}`}var
|
|
33
|
-
|
|
28
|
+
`);return`${n?r:``}\n${i}`}var k=e=>e.replace(/[^a-zA-Z0-9]/g,`_`);function A(e,t,n,r=!1){let i=e?.nodes?.nodes||[],a=new Map(t?.map(e=>[e.identifier,e])),o=new Set,s=(t,n=``)=>{let c=i.find(e=>e?.id===t);if(!c||!c.functionDefinition)return``;if(o.add(t),!a.get(c.functionDefinition.identifier))return`${n}// Error: Function ${c.functionDefinition.identifier} not found\n`;let l=(c.parameters?.nodes||[]).map((i,a)=>{let o=i.value;if(!o)return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`;if(o.__typename===`ReferenceValue`){let n=o,r=typeof n.inputIndex==`number`?`p_${k(n.nodeFunctionId??`undefined`)}_${n.parameterIndex}[${n.inputIndex}]`:n.nodeFunctionId?`node_${k(n.nodeFunctionId)}`:`flow_${k(e?.id??`undefined`)}`;return n.referencePath?.forEach(e=>{r+=`?.${e.path}`}),`/* @pos ${t} ${a} */ ${r}`}if(o.__typename===`LiteralValue`)return`/* @pos ${t} ${a} */ ${C(o?.value)}`;if(o.__typename===`NodeFunctionIdWrapper`){let e=o;return`/* @pos ${t} ${a} */ (...${`p_${k(t)}_${a}`}) => {\n${s(e.id,n+` `)}${n}}`}return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`}),u=`node_${k(c.id)}`,d=`fn_${c?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;l.includes(`undefined`);let f=`${n}`;return c.functionDefinition.identifier===`std::control::return`?f+=`return /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`:c.functionDefinition.identifier===`std::control::if`?f+=`/* @pos ${t} null */ if(${l[0]}) {
|
|
29
|
+
${s(c.parameters?.nodes?.[1]?.value?.id,n+` `)}
|
|
30
|
+
}`:c.functionDefinition.identifier===`std::control::if_else`?f+=`/* @pos ${t} null */ if(${l[0]}) {
|
|
31
|
+
${s(c.parameters?.nodes?.[1]?.value?.id,n+` `)}
|
|
32
|
+
} else {
|
|
33
|
+
${s(c.parameters?.nodes?.[2]?.value?.id,n+` `)}
|
|
34
|
+
}`:f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,c.nextNodeId&&(f+=s(c.nextNodeId,n)),f},c=O(n),l=`declare function flow${e?.signature??`(): void`}`,u=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
|
|
35
|
+
`),d=new Set(i.map(e=>e?.nextNodeId).filter(e=>!!e)),f=new Set;return i.forEach(e=>e?.parameters?.nodes?.forEach(e=>{e?.value?.__typename===`NodeFunctionIdWrapper`&&e.value.id&&f.add(e.value.id)})),`
|
|
36
|
+
${c}\n
|
|
34
37
|
${l}\n
|
|
35
38
|
${u}\n
|
|
36
|
-
${d}\n
|
|
37
39
|
(() =>
|
|
38
|
-
${e?`const flow_${
|
|
39
|
-
${i.filter(e=>e?.id&&!
|
|
40
|
+
${e?`const flow_${k(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>`/* @pos null ${t} */ ${C(e?.value)}`).join(`, `)??``});`:``}
|
|
41
|
+
${i.filter(e=>e?.id&&!d.has(e.id)&&!f.has(e.id)).map(e=>s(e.id)).join(`
|
|
40
42
|
`)}
|
|
41
43
|
)();
|
|
42
|
-
`}function
|
|
43
|
-
${
|
|
44
|
+
`}function j(e,t,n){let r=A(e,t,n,!0),i=`index.ts`,a=E(i,r),o=a.getSourceFile(i),s=a.languageService.getProgram().getTypeChecker(),l=new Map,u=new Map,d=new Map;(e?.nodes?.nodes||[]).forEach(e=>{e?.id&&d.set(k(e.id),e)});let f=e=>{if(c.default.isVariableDeclaration(e)&&e.name.getText().startsWith(`node_`)){let t=e.name.getText().replace(`node_`,``),n=s.getTypeAtLocation(e);if(l.set(t,s.typeToString(n,e,c.default.TypeFormatFlags.NoTruncation)),e.initializer&&c.default.isCallExpression(e.initializer)){let n=s.getResolvedSignature(e.initializer);if(n){let r=n.getParameters().map(t=>{let n=s.getTypeOfSymbolAtLocation(t,e.initializer);return s.typeToString(n,e.initializer,c.default.TypeFormatFlags.NoTruncation)});u.set(t,r)}}}if(c.default.isReturnStatement(e)&&e.expression&&c.default.isCallExpression(e.expression)){let t=e.expression;s.getResolvedSignature(t)}c.default.forEachChild(e,f)};return f(o),{nodes:l,parameters:u}}var M=(e,t)=>{let n=C(e?.value);if(!n)return`any`;let r=`
|
|
45
|
+
${O(t,`unknown`)}
|
|
44
46
|
const tempValue = ${n??`any`};
|
|
45
|
-
`,i=`index.ts`,a=
|
|
46
|
-
|
|
47
|
+
`,i=`index.ts`,a=E(i,r),o=a.getSourceFile(i),s=a.languageService.getProgram().getTypeChecker(),l=`any`,u=e=>{if(c.default.isVariableDeclaration(e)&&e.name.getText()===`tempValue`){let t=s.getTypeAtLocation(e),n=s.getSymbolsInScope(e,c.default.SymbolFlags.TypeAlias),r=t=>{if(t.isUnion()){let e=t.types.map(r);return Array.from(new Set(e)).sort().join(` | `)}if(s.isArrayType(t)){let e=t.typeArguments||[],n=e.length>0?r(e[0]):`any`;return e[0]?.isUnion()?`(${n})[]`:`${n}[]`}if(t.getFlags()&c.default.TypeFlags.Object||t.isClassOrInterface()){let n=s.getPropertiesOfType(t);if(n.length>0)return`{ ${n.map(t=>{let n=s.getTypeOfSymbolAtLocation(t,e);return`${t.getName()}: ${r(n)}`}).join(`, `)} }`}let i=n.filter(e=>s.isTypeAssignableTo(t,s.getDeclaredTypeOfSymbol(e)));return i.length>0?i.sort((e,t)=>{let n=s.getDeclaredTypeOfSymbol(e),r=s.getDeclaredTypeOfSymbol(t),i=s.isTypeAssignableTo(n,r),a=s.isTypeAssignableTo(r,n);return i&&!a?-1:a&&!i?1:e.getName().length-t.getName().length||e.getName().localeCompare(t.getName())})[0].getName():s.typeToString(t,e)};l=r(t)}c.default.forEachChild(e,u)};return u(o),l},N=function(e){return e[e.PRIMITIVE=0]=`PRIMITIVE`,e[e.TYPE=1]=`TYPE`,e[e.ARRAY=2]=`ARRAY`,e[e.OBJECT=3]=`OBJECT`,e[e.NODE=4]=`NODE`,e}({}),P=(e,t)=>{let n=O(t),r=typeof e==`string`,i=Array.isArray(e),a=i?e:r?[{identifier:e,type:e}]:[e],o=i?e.map(e=>e.identifier):r?[e]:[e.identifier],s=[];for(let t=0;t<a.length;t++){let i=a[t],l=o[t],u=r?e:i.type,d=`
|
|
48
|
+
${n}
|
|
49
|
+
${u?`type TargetType = ${u};`:``}
|
|
50
|
+
const val: TargetType = {} as any;
|
|
51
|
+
`,f=`index.ts`,p=E(f,d),m=p.getSourceFile(f),h=p.languageService.getProgram().getTypeChecker(),g=N.TYPE,_=e=>{if(c.default.isVariableDeclaration(e)&&e.name.getText()===`val`){let t=h.getTypeAtLocation(e);g=t.getCallSignatures().length>0?N.NODE:h.isArrayType(t)?N.ARRAY:t.isStringLiteral()||t.isNumberLiteral()||(t.getFlags()&(c.default.TypeFlags.String|c.default.TypeFlags.Number|c.default.TypeFlags.Boolean|c.default.TypeFlags.EnumLiteral|c.default.TypeFlags.BigInt|c.default.TypeFlags.ESSymbol))!==0?N.PRIMITIVE:t.isClassOrInterface()||(t.getFlags()&c.default.TypeFlags.Object)!==0?N.OBJECT:N.TYPE}c.default.forEachChild(e,_)};_(m),s.push({identifier:l,variant:g})}return s},F=(e,t)=>{let n=`
|
|
52
|
+
${O(t)}
|
|
47
53
|
type Target = ${e};
|
|
48
|
-
`,r=`index.ts`,i=
|
|
49
|
-
${
|
|
54
|
+
`,r=`index.ts`,i=E(r,n),a=i.getSourceFile(r),o=i.languageService.getProgram().getTypeChecker(),s=a.statements.find(e=>c.default.isTypeAliasDeclaration(e)&&e.name.text===`Target`);if(!s)return{__typename:`LiteralValue`,value:null};let l=o.getTypeAtLocation(s.type),u=(e,t,n=new Set)=>{let r=new Set(n);if(r.has(e))return null;let i=e.getFlags();if(e.isUnion()){if(t.type,c.default.isTypeAliasDeclaration(t)&&t.type&&c.default.isUnionTypeNode(t.type))return u(o.getTypeFromTypeNode(t.type.types[0]),t,r);let n=e.types.filter(e=>{let t=e.getFlags();return!(t&c.default.TypeFlags.Undefined)&&!(t&c.default.TypeFlags.Null)});return u(n.length>0?n[0]:e.types[0],t,r)}if(i&c.default.TypeFlags.StringLiteral)return e.value;if(i&c.default.TypeFlags.String)return``;if(i&c.default.TypeFlags.NumberLiteral)return e.value;if(i&c.default.TypeFlags.Number)return 0;if(i&c.default.TypeFlags.BooleanLiteral)return e.intrinsicName===`true`;if(i&c.default.TypeFlags.Boolean)return!1;if(o.isArrayType(e)){r.add(e);let n=u(e.typeArguments?.[0]||o.getAnyType(),t,r);return n===null?[]:[n]}if(e.isClassOrInterface()||i&c.default.TypeFlags.Object||e.getProperties().length>0){r.add(e);let n={};return e.getProperties().forEach(e=>{let i=o.getTypeOfSymbolAtLocation(e,t),a=e.valueDeclaration;i&&(n[e.getName()]=u(i,a||t,r))}),n}return null};return{__typename:`LiteralValue`,value:u(l,s)}},I=(e,t,n)=>{if(!e)return{parameters:[],returnType:`any`};let r=e.id||`temp_node_id`,i={...e,id:r,parameters:{...e.parameters,nodes:e.parameters?.nodes?.map(e=>e?.value?e:{...e,value:null})||[]}},a=r+`_params`,o=j({id:`gid://sagittarius/Flow/0`,nodes:{__typename:`NodeFunctionConnection`,nodes:[i,{...i,id:a,parameters:{...i.parameters,nodes:i.parameters.nodes.map(e=>e.value?.__typename===`LiteralValue`&&e.value.value!==null&&typeof e.value.value!=`object`?{...e,value:null}:e)}}]}},t,n),s=k(r),c=k(a),l=o.parameters.get(s)||[],u=o.parameters.get(c)||[];return{parameters:l.map((e,t)=>{let n=u[t];return n&&n!==`any`&&n!==`unknown`?n:e}),returnType:o.nodes.get(s)||`any`}},L=e=>{let t=e.signature;if(!t)return{parameters:[],returnType:`any`};let n=0;if(t.trim().startsWith(`<`)){let e=0;for(let r=0;r<t.length;r++){let i=t[r];if(i===`<`)e++;else if(i===`>`&&(e--,e===0)){n=r+1;break}}}let r=t.indexOf(`(`,n);if(r===-1)return{parameters:[],returnType:`any`};let i=-1,a=0;for(let e=r;e<t.length;e++){let n=t[e];if(n===`(`)a++;else if(n===`)`&&(a--,a===0)){i=e;break}}if(i===-1)return{parameters:[],returnType:`any`};let o=t.substring(r+1,i),s=t.substring(i+1).trim();s.startsWith(`:`)&&(s=s.substring(1).trim());let c=s||`void`,l=[];if(o.trim()){let e=``,t=0,n=0,r=0,i=0,a=e=>{let t=-1,n=0,r=0,i=0,a=0;for(let o=0;o<e.length;o++){let s=e[o];if(s===`{`)n++;else if(s===`}`)n--;else if(s===`[`)r++;else if(s===`]`)r--;else if(s===`(`)i++;else if(s===`)`)i--;else if(s===`<`)a++;else if(s===`>`)a--;else if(s===`:`&&n===0&&r===0&&i===0&&a===0){t=o;break}}t===-1?l.push(`any`):l.push(e.substring(t+1).trim())};for(let s of o){if(s===`(`)t++;else if(s===`)`)t--;else if(s===`<`)n++;else if(s===`>`)n--;else if(s===`{`)r++;else if(s===`}`)r--;else if(s===`[`)i++;else if(s===`]`)i--;else if(s===`,`&&t===0&&n===0&&r===0&&i===0){a(e.trim()),e=``;continue}e+=s}e.trim()&&a(e.trim())}return{parameters:l,returnType:c}},R=(e,t,n)=>{let r=t,i=e?P(e,n)[0].variant:null;if(e&&t&&i!==N.NODE){function a(e){let t=e.trim().match(/^<([^>]+)>/);return t?t[1].split(`,`).map(e=>e.trim()).filter(Boolean).length:0}let i=`
|
|
55
|
+
${O(n)}
|
|
50
56
|
type TargetType = ${e};
|
|
51
57
|
${t?.map((e,t)=>`
|
|
52
58
|
declare function Fu${t}${e.signature};
|
|
@@ -55,13 +61,13 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
55
61
|
`)}
|
|
56
62
|
${t?.map((e,t)=>`const check${t}: TargetType = {} as F${t};`).join(`
|
|
57
63
|
`)}
|
|
58
|
-
`,o=`index.ts`,s=
|
|
59
|
-
`).findIndex(e=>e.includes(n));return r!==-1&&!u.has(r)})}return r?.map(e=>({__typename:`NodeFunction`,id:`gid://sagittarius/NodeFunction/1`,functionDefinition:{__typename:`FunctionDefinition`,id:e.id,identifier:e.identifier},parameters:{__typename:`NodeParameterConnection`,nodes:(e.parameterDefinitions?.nodes||[]).map(e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}))}})).filter(e=>e!==null)??[]},z=e=>{let t=c.default.TypeFlags.String|c.default.TypeFlags.Number|c.default.TypeFlags.Boolean|c.default.TypeFlags.Undefined|c.default.TypeFlags.Null|c.default.TypeFlags.BigInt|c.default.TypeFlags.ESSymbol;return(e.flags&t)===0},B=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),z(e)){let a=e.getProperties();a&&a.length>0&&a.forEach(e=>{let a=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),o=e.getName(),s=[...r,{path:o}];i.push(...B(a,t,n,s))})}return i},V=(e,t,n,r,i)=>{let a=e?.nodes?.nodes?.findIndex(e=>e?.id==t);typeof a==`number`&&a>=0&&typeof n==`number`&&n>=0&&e?.nodes?.nodes?.[a]?.parameters?.nodes?.[n]&&(e.nodes.nodes[a].parameters.nodes[n].value=null);let o=
|
|
60
|
-
${
|
|
64
|
+
`,o=`index.ts`,s=E(o,i),c=s.getSourceFile(o),l=s.languageService.getProgram().getSemanticDiagnostics(),u=new Set;l.forEach(e=>{e.file===c&&e.start!==void 0&&u.add(c.getLineAndCharacterOfPosition(e.start).line)}),r=t.filter((e,t)=>{let n=`const check${t}: TargetType = {} as F${t};`,r=i.split(`
|
|
65
|
+
`).findIndex(e=>e.includes(n));return r!==-1&&!u.has(r)})}return r?.map(e=>({__typename:`NodeFunction`,id:`gid://sagittarius/NodeFunction/1`,functionDefinition:{__typename:`FunctionDefinition`,id:e.id,identifier:e.identifier},parameters:{__typename:`NodeParameterConnection`,nodes:(e.parameterDefinitions?.nodes||[]).map(e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}))}})).filter(e=>e!==null)??[]},z=e=>{let t=c.default.TypeFlags.String|c.default.TypeFlags.Number|c.default.TypeFlags.Boolean|c.default.TypeFlags.Undefined|c.default.TypeFlags.Null|c.default.TypeFlags.BigInt|c.default.TypeFlags.ESSymbol;return(e.flags&t)===0},B=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),z(e)){let a=e.getProperties();a&&a.length>0&&a.forEach(e=>{let a=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),o=e.getName(),s=[...r,{path:o}];i.push(...B(a,t,n,s))})}return i},V=(e,t,n,r,i)=>{let a=e?.nodes?.nodes?.findIndex(e=>e?.id==t);typeof a==`number`&&a>=0&&typeof n==`number`&&n>=0&&e?.nodes?.nodes?.[a]?.parameters?.nodes?.[n]&&(e.nodes.nodes[a].parameters.nodes[n].value=null);let o=A(e,r,i,!0),s=`index.ts`,l=E(s,o),u=l.getSourceFile(s),d=l.languageService.getProgram().getTypeChecker(),f=u.getFullText(),p=`/* @pos ${t} ${n} */`,m=f.indexOf(p)+p.length;function h(e,t){let n=e;return c.default.forEachChild(e,e=>{e.getStart(u,!0)<=t&&e.getEnd()>=t&&(n=h(e,t))}),n}let g=h(u,m),_;if(c.default.isCallExpression(g)&&(_=g),!_)return[];let v=d.getResolvedSignature(_);if(!v)return[];let y=v.getParameters(),b=y[n]||y[y.length-1],x=d.getTypeOfSymbolAtLocation(b,g),S=d.getSymbolsInScope(g,c.default.SymbolFlags.Variable),C=[];return S.forEach(e=>{let t=e.getName();if(!t.startsWith(`node_`)&&!t.startsWith(`p_`)&&!t.startsWith(`flow_`))return;let n=e.valueDeclaration||e.declarations?.[0];if(!n||n.getEnd()>=m)return;let r=d.getTypeOfSymbolAtLocation(e,g);if(t.startsWith(`node_`)){if((r.flags&c.default.TypeFlags.Void)===0){let e=t.replace(`node_`,``).replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`);B(r,d,x).forEach(({path:t})=>{let n={__typename:`ReferenceValue`,nodeFunctionId:e};t.length>0&&(n.referencePath=t),C.push(n)})}}else if(t.startsWith(`p_`)){let e=t.replace(`p_`,``),n=e.lastIndexOf(`_`),i=e.substring(0,n),a=parseInt(e.substring(n+1),10),o=i.replace(`p_`,``).replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`);if(d.isTupleType(r)){let e=r;d.getTypeArguments(e).forEach((t,n)=>{B(t,d,x).forEach(({path:t})=>{let r={__typename:`ReferenceValue`,nodeFunctionId:o,parameterIndex:isNaN(a)?0:a,inputIndex:n,inputTypeIdentifier:e.target.labeledElementDeclarations?.[n].name.getText()};t.length>0&&(r.referencePath=t),C.push(r)})})}}else t.startsWith(`flow_`)&&B(r,d,x).forEach(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};e.length>0&&(t.referencePath=e),C.push(t)})}),C},H=(e,t)=>{if(!e)return[];let n=`
|
|
66
|
+
${O(t)}
|
|
61
67
|
type VALUE = ${e}; const val: VALUE = {} as any;
|
|
62
|
-
`,r=`index.ts`,i=
|
|
63
|
-
`),n,r=null;if(e.start!==void 0){let t=o.getFullText(),i=Math.max(0,e.start-300),a=Math.min(t.length,e.start),s=t.substring(i,a),c=/\/\* @pos ([^ ]+) (\d+|null) \*\//g,l,u=null,d=-1;for(;(l=c.exec(s))!==null;){let t=i+l.index+l[0].length;t<=e.start&&t>d&&(d=t,u=l)}u&&(n=u[1]===`null`?null:u[1],r=parseInt(u[2],10))}return{message:t,code:e.code,severity:`error`,nodeId:n,parameterIndex:typeof r==`number`&&Number.isSafeInteger(r)?r:null}}).filter(e=>e!==null);return{isValid:!s.some(e=>e?.severity===`error`),returnType:`void`,diagnostics:s}},W=(e,t,n)=>{let r=
|
|
64
|
-
${
|
|
68
|
+
`,r=`index.ts`,i=E(r,n),a=i.getSourceFile(r),o=i.languageService.getProgram().getTypeChecker(),s=a.statements.find(e=>c.default.isTypeAliasDeclaration(e)&&e.name.text===`VALUE`);if(!s||!c.default.isTypeAliasDeclaration(s))return[];let l=o.getTypeAtLocation(s),u=e=>e.isUnion()?e.types.flatMap(u):e.isStringLiteral()?[e.value]:e.isNumberLiteral()?[e.value.toString()]:e.intrinsicName===`true`?[`true`]:e.intrinsicName===`false`?[`false`]:[];return Array.from(new Set(u(l))).map(e=>({__typename:`LiteralValue`,value:e}))},U=(e,t,n)=>{if(!e?.startingNodeId)return{isValid:!1,returnType:`void`,diagnostics:[{nodeId:null,parameterIndex:null,code:0,message:`You need to provide a starting node to be able to execute this flow.`,severity:`error`}]};if(!e.nodes?.nodes?.find(t=>t?.id==e.startingNodeId))return{isValid:!1,returnType:`void`,diagnostics:[{nodeId:null,parameterIndex:null,code:0,message:`The starting node is not linked within the flow. Please make sure the starting node is connected to the rest of the flow.`,severity:`error`}]};let r=A(e,t,n),i=`index.ts`,a=E(i,r),o=a.getSourceFile(i),s=a.languageService.getProgram().getSemanticDiagnostics(o).map(e=>{let t=(0,c.flattenDiagnosticMessageText)(e.messageText,`
|
|
69
|
+
`),n,r=null;if(e.start!==void 0){let t=o.getFullText(),i=Math.max(0,e.start-300),a=Math.min(t.length,e.start),s=t.substring(i,a),c=/\/\* @pos ([^ ]+) (\d+|null) \*\//g,l,u=null,d=-1;for(;(l=c.exec(s))!==null;){let t=i+l.index+l[0].length;t<=e.start&&t>d&&(d=t,u=l)}u&&(n=u[1]===`null`?null:u[1],r=parseInt(u[2],10))}return{message:t,code:e.code,severity:`error`,nodeId:n,parameterIndex:typeof r==`number`&&Number.isSafeInteger(r)?r:null}}).filter(e=>e!==null);return{isValid:!s.some(e=>e?.severity===`error`),returnType:`void`,diagnostics:s}},W=(e,t,n)=>{let r=C(t?.value),i=`
|
|
70
|
+
${O(n)}
|
|
65
71
|
const testValue: ${e} = ${r};
|
|
66
|
-
`,a=`index.ts`,o=
|
|
67
|
-
`),n=t.includes(`not assignable to parameter of type`)&&(t.includes(`'{}'`)||t.includes(`undefined`))||t.includes(`not assignable to type 'undefined'`)||t.includes(`not assignable to type 'void'`)||t.includes(`may be a mistake because neither type sufficiently overlaps`);return{message:t,code:e.code,severity:n?`warning`:`error`}});return{isValid:!o.some(e=>e.severity===`error`),returnType:`void`,diagnostics:o}};exports.DataTypeVariant=
|
|
72
|
+
`,a=`index.ts`,o=E(a,i).languageService.getSemanticDiagnostics(a).map(e=>{let t=c.default.flattenDiagnosticMessageText(e.messageText,`
|
|
73
|
+
`),n=t.includes(`not assignable to parameter of type`)&&(t.includes(`'{}'`)||t.includes(`undefined`))||t.includes(`not assignable to type 'undefined'`)||t.includes(`not assignable to type 'void'`)||t.includes(`may be a mistake because neither type sufficiently overlaps`);return{message:t,code:e.code,severity:n?`warning`:`error`}});return{isValid:!o.some(e=>e.severity===`error`),returnType:`void`,diagnostics:o}};exports.DataTypeVariant=N,exports.getFlowValidation=U,exports.getNodeSuggestions=R,exports.getReferenceSuggestions=V,exports.getTypeFromValue=M,exports.getTypeVariant=P,exports.getTypesFromFunction=L,exports.getTypesFromNode=I,exports.getValueFromType=F,exports.getValueSuggestions=H,exports.getValueValidation=W;
|
package/dist/triangulum.es.js
CHANGED
|
@@ -186,130 +186,22 @@ function p(e, t, r, i, a) {
|
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
188
|
//#endregion
|
|
189
|
-
//#region src/extraction/getTypeVariant.ts
|
|
190
|
-
var m = /* @__PURE__ */ function(e) {
|
|
191
|
-
return e[e.PRIMITIVE = 0] = "PRIMITIVE", e[e.TYPE = 1] = "TYPE", e[e.ARRAY = 2] = "ARRAY", e[e.OBJECT = 3] = "OBJECT", e[e.NODE = 4] = "NODE", e;
|
|
192
|
-
}({}), h = (t, n) => {
|
|
193
|
-
let r = w(n), i = typeof t == "string", a = Array.isArray(t), o = a ? t : i ? [{
|
|
194
|
-
identifier: t,
|
|
195
|
-
type: t
|
|
196
|
-
}] : [t], s = a ? t.map((e) => e.identifier) : i ? [t] : [t.identifier], c = [];
|
|
197
|
-
for (let n = 0; n < o.length; n++) {
|
|
198
|
-
let a = o[n], l = s[n], u = i ? t : a.type, d = `
|
|
199
|
-
${r}
|
|
200
|
-
${u ? `type TargetType = ${u};` : ""}
|
|
201
|
-
const val: TargetType = {} as any;
|
|
202
|
-
`, f = "index.ts", p = S(f, d), h = p.getSourceFile(f), g = p.languageService.getProgram().getTypeChecker(), _ = m.TYPE, v = (t) => {
|
|
203
|
-
if (e.isVariableDeclaration(t) && t.name.getText() === "val") {
|
|
204
|
-
let n = g.getTypeAtLocation(t);
|
|
205
|
-
_ = n.getCallSignatures().length > 0 ? m.NODE : g.isArrayType(n) ? m.ARRAY : n.isStringLiteral() || n.isNumberLiteral() || (n.getFlags() & (e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.EnumLiteral | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol)) !== 0 ? m.PRIMITIVE : n.isClassOrInterface() || (n.getFlags() & e.TypeFlags.Object) !== 0 ? m.OBJECT : m.TYPE;
|
|
206
|
-
}
|
|
207
|
-
e.forEachChild(t, v);
|
|
208
|
-
};
|
|
209
|
-
v(h), c.push({
|
|
210
|
-
identifier: l,
|
|
211
|
-
variant: _
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
return c;
|
|
215
|
-
}, g = (e) => {
|
|
216
|
-
let t = e.signature;
|
|
217
|
-
if (!t) return {
|
|
218
|
-
parameters: [],
|
|
219
|
-
returnType: "any"
|
|
220
|
-
};
|
|
221
|
-
let n = 0;
|
|
222
|
-
if (t.trim().startsWith("<")) {
|
|
223
|
-
let e = 0;
|
|
224
|
-
for (let r = 0; r < t.length; r++) {
|
|
225
|
-
let i = t[r];
|
|
226
|
-
if (i === "<") e++;
|
|
227
|
-
else if (i === ">" && (e--, e === 0)) {
|
|
228
|
-
n = r + 1;
|
|
229
|
-
break;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
let r = t.indexOf("(", n);
|
|
234
|
-
if (r === -1) return {
|
|
235
|
-
parameters: [],
|
|
236
|
-
returnType: "any"
|
|
237
|
-
};
|
|
238
|
-
let i = -1, a = 0;
|
|
239
|
-
for (let e = r; e < t.length; e++) {
|
|
240
|
-
let n = t[e];
|
|
241
|
-
if (n === "(") a++;
|
|
242
|
-
else if (n === ")" && (a--, a === 0)) {
|
|
243
|
-
i = e;
|
|
244
|
-
break;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
if (i === -1) return {
|
|
248
|
-
parameters: [],
|
|
249
|
-
returnType: "any"
|
|
250
|
-
};
|
|
251
|
-
let o = t.substring(r + 1, i), s = t.substring(i + 1).trim();
|
|
252
|
-
s.startsWith(":") && (s = s.substring(1).trim());
|
|
253
|
-
let c = s || "void", l = [];
|
|
254
|
-
if (o.trim()) {
|
|
255
|
-
let e = "", t = 0, n = 0, r = 0, i = 0, a = (e) => {
|
|
256
|
-
let t = -1, n = 0, r = 0, i = 0, a = 0;
|
|
257
|
-
for (let o = 0; o < e.length; o++) {
|
|
258
|
-
let s = e[o];
|
|
259
|
-
if (s === "{") n++;
|
|
260
|
-
else if (s === "}") n--;
|
|
261
|
-
else if (s === "[") r++;
|
|
262
|
-
else if (s === "]") r--;
|
|
263
|
-
else if (s === "(") i++;
|
|
264
|
-
else if (s === ")") i--;
|
|
265
|
-
else if (s === "<") a++;
|
|
266
|
-
else if (s === ">") a--;
|
|
267
|
-
else if (s === ":" && n === 0 && r === 0 && i === 0 && a === 0) {
|
|
268
|
-
t = o;
|
|
269
|
-
break;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
t === -1 ? l.push("any") : l.push(e.substring(t + 1).trim());
|
|
273
|
-
};
|
|
274
|
-
for (let s of o) {
|
|
275
|
-
if (s === "(") t++;
|
|
276
|
-
else if (s === ")") t--;
|
|
277
|
-
else if (s === "<") n++;
|
|
278
|
-
else if (s === ">") n--;
|
|
279
|
-
else if (s === "{") r++;
|
|
280
|
-
else if (s === "}") r--;
|
|
281
|
-
else if (s === "[") i++;
|
|
282
|
-
else if (s === "]") i--;
|
|
283
|
-
else if (s === "," && t === 0 && n === 0 && r === 0 && i === 0) {
|
|
284
|
-
a(e.trim()), e = "";
|
|
285
|
-
continue;
|
|
286
|
-
}
|
|
287
|
-
e += s;
|
|
288
|
-
}
|
|
289
|
-
e.trim() && a(e.trim());
|
|
290
|
-
}
|
|
291
|
-
return {
|
|
292
|
-
parameters: l,
|
|
293
|
-
returnType: c
|
|
294
|
-
};
|
|
295
|
-
};
|
|
296
|
-
//#endregion
|
|
297
189
|
//#region node_modules/lossless-json/lib/esm/utils.js
|
|
298
|
-
function
|
|
299
|
-
return
|
|
190
|
+
function m(e) {
|
|
191
|
+
return h.test(e);
|
|
300
192
|
}
|
|
301
|
-
var
|
|
193
|
+
var h = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
|
|
302
194
|
//#endregion
|
|
303
195
|
//#region node_modules/lossless-json/lib/esm/stringify.js
|
|
304
|
-
function
|
|
305
|
-
let i =
|
|
196
|
+
function g(e, t, n, r) {
|
|
197
|
+
let i = _(n);
|
|
306
198
|
return a(typeof t == "function" ? t.call({ "": e }, "", e) : e, "");
|
|
307
199
|
function a(e, t) {
|
|
308
200
|
if (Array.isArray(r)) {
|
|
309
201
|
let t = r.find((t) => t.test(e));
|
|
310
202
|
if (t) {
|
|
311
203
|
let n = t.stringify(e);
|
|
312
|
-
if (typeof n != "string" || !
|
|
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})`);
|
|
313
205
|
return n;
|
|
314
206
|
}
|
|
315
207
|
}
|
|
@@ -328,7 +220,7 @@ function y(e, t, n, r) {
|
|
|
328
220
|
return o += i ? `\n${n}]` : "]", o;
|
|
329
221
|
}
|
|
330
222
|
function s(e, r) {
|
|
331
|
-
if (typeof e.toJSON == "function") return
|
|
223
|
+
if (typeof e.toJSON == "function") return g(e.toJSON(), t, n, void 0);
|
|
332
224
|
let o = Array.isArray(t) ? t.map(String) : Object.keys(e);
|
|
333
225
|
if (o.length === 0) return "{}";
|
|
334
226
|
let s = i ? r + i : void 0, l = !0, u = i ? "{\n" : "{";
|
|
@@ -346,93 +238,75 @@ function y(e, t, n, r) {
|
|
|
346
238
|
return t !== void 0 && typeof t != "function" && typeof t != "symbol";
|
|
347
239
|
}
|
|
348
240
|
}
|
|
349
|
-
function
|
|
241
|
+
function _(e) {
|
|
350
242
|
if (typeof e == "number") return " ".repeat(e);
|
|
351
243
|
if (typeof e == "string" && e !== "") return e;
|
|
352
244
|
}
|
|
353
245
|
//#endregion
|
|
354
246
|
//#region src/utils.ts
|
|
355
|
-
var
|
|
356
|
-
function
|
|
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) {
|
|
357
249
|
let r = /* @__PURE__ */ new Map();
|
|
358
|
-
return r.set(t, n), r.set("lib.codezero.d.ts",
|
|
250
|
+
return r.set(t, n), r.set("lib.codezero.d.ts", v), o(d(r), [t, "lib.codezero.d.ts"], e, b);
|
|
359
251
|
}
|
|
360
|
-
var
|
|
252
|
+
var b = {
|
|
361
253
|
target: e.ScriptTarget.Latest,
|
|
362
254
|
lib: ["lib.codezero.d.ts"],
|
|
363
255
|
noEmit: !0,
|
|
364
256
|
strictNullChecks: !0
|
|
365
257
|
};
|
|
366
|
-
function
|
|
258
|
+
function x(e, t = "any", n = !0) {
|
|
367
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");
|
|
368
260
|
return `${n ? r : ""}\n${i}`;
|
|
369
261
|
}
|
|
370
|
-
var
|
|
371
|
-
function
|
|
372
|
-
let i = e?.nodes?.nodes || [], a = new Map(t?.map((e) => [e.identifier, e])), o = /* @__PURE__ */ new Set(), s = (t, n
|
|
373
|
-
let
|
|
374
|
-
if (!
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
if (!a) return r ? `/* @pos ${t} ${i} */ {}` : `/* @pos ${t} ${i} */ undefined`;
|
|
378
|
-
if (a.__typename === "ReferenceValue") {
|
|
379
|
-
let n = a, r = typeof n.inputIndex == "number" ? `p_${T(n.nodeFunctionId ?? "undefined")}_${n.parameterIndex}[${n.inputIndex}]` : n.nodeFunctionId ? `node_${T(n.nodeFunctionId)}` : `flow_${T(e?.id ?? "undefined")}`;
|
|
380
|
-
return n.referencePath?.forEach((e) => {
|
|
381
|
-
r += `?.${e.path}`;
|
|
382
|
-
}), `/* @pos ${t} ${i} */ ${r}`;
|
|
383
|
-
}
|
|
384
|
-
return a.__typename === "LiteralValue" ? `/* @pos ${t} ${i} */ ${y(a?.value)}` : a.__typename === "NodeFunctionIdWrapper" ? s(a.id, t, i) : r ? `/* @pos ${t} ${i} */ ({} as any)` : `/* @pos ${t} ${i} */ undefined`;
|
|
385
|
-
}).join(", "), l = `${`/* @pos ${t} null */ fn_${o.functionDefinition.identifier.replace(/::/g, "_")}`}(${c})`;
|
|
386
|
-
return n !== void 0 && a !== void 0 ? `${l}` : l;
|
|
387
|
-
}, c = (t, l = "") => {
|
|
388
|
-
if (o.has(t)) return "";
|
|
389
|
-
let u = i.find((e) => e?.id === t);
|
|
390
|
-
if (!u || !u.functionDefinition) return "";
|
|
391
|
-
o.add(t);
|
|
392
|
-
let d = a.get(u.functionDefinition.identifier);
|
|
393
|
-
if (!d) return `${l}// Error: Function ${u.functionDefinition.identifier} not found\n`;
|
|
394
|
-
let f = { parameters: [] };
|
|
395
|
-
r || (f = g(d));
|
|
396
|
-
let p = (u.parameters?.nodes || []).map((i, a) => {
|
|
262
|
+
var S = (e) => e.replace(/[^a-zA-Z0-9]/g, "_");
|
|
263
|
+
function C(e, t, n, r = !1) {
|
|
264
|
+
let i = e?.nodes?.nodes || [], a = new Map(t?.map((e) => [e.identifier, e])), o = /* @__PURE__ */ new Set(), s = (t, n = "") => {
|
|
265
|
+
let c = i.find((e) => e?.id === t);
|
|
266
|
+
if (!c || !c.functionDefinition) return "";
|
|
267
|
+
if (o.add(t), !a.get(c.functionDefinition.identifier)) return `${n}// Error: Function ${c.functionDefinition.identifier} not found\n`;
|
|
268
|
+
let l = (c.parameters?.nodes || []).map((i, a) => {
|
|
397
269
|
let o = i.value;
|
|
398
270
|
if (!o) return r ? `/* @pos ${t} ${a} */ {}` : `/* @pos ${t} ${a} */ undefined`;
|
|
399
271
|
if (o.__typename === "ReferenceValue") {
|
|
400
|
-
let n = o, r = typeof n.inputIndex == "number" ? `p_${
|
|
272
|
+
let n = o, 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")}`;
|
|
401
273
|
return n.referencePath?.forEach((e) => {
|
|
402
274
|
r += `?.${e.path}`;
|
|
403
275
|
}), `/* @pos ${t} ${a} */ ${r}`;
|
|
404
276
|
}
|
|
405
|
-
if (o.__typename === "LiteralValue") return `/* @pos ${t} ${a} */ ${
|
|
277
|
+
if (o.__typename === "LiteralValue") return `/* @pos ${t} ${a} */ ${g(o?.value)}`;
|
|
406
278
|
if (o.__typename === "NodeFunctionIdWrapper") {
|
|
407
279
|
let e = o;
|
|
408
|
-
|
|
409
|
-
{
|
|
410
|
-
let r = f.parameters[a];
|
|
411
|
-
return r && h(r, n)[0].variant === m.NODE ? `/* @pos ${t} ${a} */ (...${`p_${T(t)}_${a}`}) => {\n${c(e.id, l + " ")}${l}}` : `/* @pos ${t} ${a} */ ${s(e.id, t, a)}`;
|
|
412
|
-
}
|
|
280
|
+
return `/* @pos ${t} ${a} */ (...${`p_${S(t)}_${a}`}) => {\n${s(e.id, n + " ")}${n}}`;
|
|
413
281
|
}
|
|
414
282
|
return r ? `/* @pos ${t} ${a} */ {}` : `/* @pos ${t} ${a} */ undefined`;
|
|
415
|
-
})
|
|
416
|
-
|
|
417
|
-
let
|
|
418
|
-
return
|
|
419
|
-
|
|
283
|
+
}), u = `node_${S(c.id)}`, d = `fn_${c?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
|
|
284
|
+
l.includes("undefined");
|
|
285
|
+
let f = `${n}`;
|
|
286
|
+
return c.functionDefinition.identifier === "std::control::return" ? f += `return /* @pos ${t} null */ ${d}(${l.join(", ")}) ;\n` : c.functionDefinition.identifier === "std::control::if" ? f += `/* @pos ${t} null */ if(${l[0]}) {
|
|
287
|
+
${s(c.parameters?.nodes?.[1]?.value?.id, n + " ")}
|
|
288
|
+
}` : c.functionDefinition.identifier === "std::control::if_else" ? f += `/* @pos ${t} null */ if(${l[0]}) {
|
|
289
|
+
${s(c.parameters?.nodes?.[1]?.value?.id, n + " ")}
|
|
290
|
+
} else {
|
|
291
|
+
${s(c.parameters?.nodes?.[2]?.value?.id, n + " ")}
|
|
292
|
+
}` : f += `const ${u} = /* @pos ${t} null */ ${d}(${l.join(", ")}) ;\n`, c.nextNodeId && (f += s(c.nextNodeId, n)), f;
|
|
293
|
+
}, c = x(n), l = `declare function flow${e?.signature ?? "(): void"}`, u = t?.map((e) => `declare function fn_${e.identifier?.replace(/::/g, "_")}${e.signature}`).join("\n"), d = new Set(i.map((e) => e?.nextNodeId).filter((e) => !!e)), f = /* @__PURE__ */ new Set();
|
|
420
294
|
return i.forEach((e) => e?.parameters?.nodes?.forEach((e) => {
|
|
421
|
-
e?.value?.__typename === "NodeFunctionIdWrapper" && e.value.id &&
|
|
295
|
+
e?.value?.__typename === "NodeFunctionIdWrapper" && e.value.id && f.add(e.value.id);
|
|
422
296
|
})), `
|
|
297
|
+
${c}\n
|
|
423
298
|
${l}\n
|
|
424
299
|
${u}\n
|
|
425
|
-
${d}\n
|
|
426
300
|
(() =>
|
|
427
|
-
${e ? `const flow_${
|
|
428
|
-
${i.filter((e) => e?.id && !
|
|
301
|
+
${e ? `const flow_${S(e.id ?? "")} = /* @pos null null */ flow(${e.settings?.nodes?.map((e, t) => `/* @pos null ${t} */ ${g(e?.value)}`).join(", ") ?? ""});` : ""}
|
|
302
|
+
${i.filter((e) => e?.id && !d.has(e.id) && !f.has(e.id)).map((e) => s(e.id)).join("\n")}
|
|
429
303
|
)();
|
|
430
304
|
`;
|
|
431
305
|
}
|
|
432
|
-
function
|
|
433
|
-
let i =
|
|
306
|
+
function w(t, n, r) {
|
|
307
|
+
let i = C(t, n, r, !0), a = "index.ts", o = y(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map();
|
|
434
308
|
(t?.nodes?.nodes || []).forEach((e) => {
|
|
435
|
-
e?.id && d.set(
|
|
309
|
+
e?.id && d.set(S(e.id), e);
|
|
436
310
|
});
|
|
437
311
|
let f = (t) => {
|
|
438
312
|
if (e.isVariableDeclaration(t) && t.name.getText().startsWith("node_")) {
|
|
@@ -461,13 +335,13 @@ function D(t, n, r) {
|
|
|
461
335
|
}
|
|
462
336
|
//#endregion
|
|
463
337
|
//#region src/extraction/getTypeFromValue.ts
|
|
464
|
-
var
|
|
465
|
-
let r =
|
|
338
|
+
var T = (t, n) => {
|
|
339
|
+
let r = g(t?.value);
|
|
466
340
|
if (!r) return "any";
|
|
467
341
|
let i = `
|
|
468
|
-
${
|
|
342
|
+
${x(n, "unknown")}
|
|
469
343
|
const tempValue = ${r ?? "any"};
|
|
470
|
-
`, a = "index.ts", o =
|
|
344
|
+
`, a = "index.ts", o = y(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = "any", u = (t) => {
|
|
471
345
|
if (e.isVariableDeclaration(t) && t.name.getText() === "tempValue") {
|
|
472
346
|
let n = c.getTypeAtLocation(t), r = c.getSymbolsInScope(t, e.SymbolFlags.TypeAlias), i = (n) => {
|
|
473
347
|
if (n.isUnion()) {
|
|
@@ -496,11 +370,36 @@ var O = (t, n) => {
|
|
|
496
370
|
e.forEachChild(t, u);
|
|
497
371
|
};
|
|
498
372
|
return u(s), l;
|
|
499
|
-
},
|
|
373
|
+
}, E = /* @__PURE__ */ function(e) {
|
|
374
|
+
return e[e.PRIMITIVE = 0] = "PRIMITIVE", e[e.TYPE = 1] = "TYPE", e[e.ARRAY = 2] = "ARRAY", e[e.OBJECT = 3] = "OBJECT", e[e.NODE = 4] = "NODE", e;
|
|
375
|
+
}({}), D = (t, n) => {
|
|
376
|
+
let r = x(n), i = typeof t == "string", a = Array.isArray(t), o = a ? t : i ? [{
|
|
377
|
+
identifier: t,
|
|
378
|
+
type: t
|
|
379
|
+
}] : [t], s = a ? t.map((e) => e.identifier) : i ? [t] : [t.identifier], c = [];
|
|
380
|
+
for (let n = 0; n < o.length; n++) {
|
|
381
|
+
let a = o[n], l = s[n], u = i ? t : a.type, d = `
|
|
382
|
+
${r}
|
|
383
|
+
${u ? `type TargetType = ${u};` : ""}
|
|
384
|
+
const val: TargetType = {} as any;
|
|
385
|
+
`, f = "index.ts", p = y(f, d), m = p.getSourceFile(f), h = p.languageService.getProgram().getTypeChecker(), g = E.TYPE, _ = (t) => {
|
|
386
|
+
if (e.isVariableDeclaration(t) && t.name.getText() === "val") {
|
|
387
|
+
let n = h.getTypeAtLocation(t);
|
|
388
|
+
g = n.getCallSignatures().length > 0 ? E.NODE : h.isArrayType(n) ? E.ARRAY : n.isStringLiteral() || n.isNumberLiteral() || (n.getFlags() & (e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.EnumLiteral | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol)) !== 0 ? E.PRIMITIVE : n.isClassOrInterface() || (n.getFlags() & e.TypeFlags.Object) !== 0 ? E.OBJECT : E.TYPE;
|
|
389
|
+
}
|
|
390
|
+
e.forEachChild(t, _);
|
|
391
|
+
};
|
|
392
|
+
_(m), c.push({
|
|
393
|
+
identifier: l,
|
|
394
|
+
variant: g
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
return c;
|
|
398
|
+
}, O = (t, n) => {
|
|
500
399
|
let r = `
|
|
501
|
-
${
|
|
400
|
+
${x(n)}
|
|
502
401
|
type Target = ${t};
|
|
503
|
-
`, i = "index.ts", a =
|
|
402
|
+
`, 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");
|
|
504
403
|
if (!c) return {
|
|
505
404
|
__typename: "LiteralValue",
|
|
506
405
|
value: null
|
|
@@ -542,7 +441,7 @@ var O = (t, n) => {
|
|
|
542
441
|
__typename: "LiteralValue",
|
|
543
442
|
value: u(l, c)
|
|
544
443
|
};
|
|
545
|
-
},
|
|
444
|
+
}, k = (e, t, n) => {
|
|
546
445
|
if (!e) return {
|
|
547
446
|
parameters: [],
|
|
548
447
|
returnType: "any"
|
|
@@ -557,7 +456,7 @@ var O = (t, n) => {
|
|
|
557
456
|
value: null
|
|
558
457
|
}) || []
|
|
559
458
|
}
|
|
560
|
-
}, a = r + "_params", o =
|
|
459
|
+
}, a = r + "_params", o = w({
|
|
561
460
|
id: "gid://sagittarius/Flow/0",
|
|
562
461
|
nodes: {
|
|
563
462
|
__typename: "NodeFunctionConnection",
|
|
@@ -573,7 +472,7 @@ var O = (t, n) => {
|
|
|
573
472
|
}
|
|
574
473
|
}]
|
|
575
474
|
}
|
|
576
|
-
}, t, n), s =
|
|
475
|
+
}, t, n), s = S(r), c = S(a), l = o.parameters.get(s) || [], u = o.parameters.get(c) || [];
|
|
577
476
|
return {
|
|
578
477
|
parameters: l.map((e, t) => {
|
|
579
478
|
let n = u[t];
|
|
@@ -581,22 +480,102 @@ var O = (t, n) => {
|
|
|
581
480
|
}),
|
|
582
481
|
returnType: o.nodes.get(s) || "any"
|
|
583
482
|
};
|
|
483
|
+
}, A = (e) => {
|
|
484
|
+
let t = e.signature;
|
|
485
|
+
if (!t) return {
|
|
486
|
+
parameters: [],
|
|
487
|
+
returnType: "any"
|
|
488
|
+
};
|
|
489
|
+
let n = 0;
|
|
490
|
+
if (t.trim().startsWith("<")) {
|
|
491
|
+
let e = 0;
|
|
492
|
+
for (let r = 0; r < t.length; r++) {
|
|
493
|
+
let i = t[r];
|
|
494
|
+
if (i === "<") e++;
|
|
495
|
+
else if (i === ">" && (e--, e === 0)) {
|
|
496
|
+
n = r + 1;
|
|
497
|
+
break;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
let r = t.indexOf("(", n);
|
|
502
|
+
if (r === -1) return {
|
|
503
|
+
parameters: [],
|
|
504
|
+
returnType: "any"
|
|
505
|
+
};
|
|
506
|
+
let i = -1, a = 0;
|
|
507
|
+
for (let e = r; e < t.length; e++) {
|
|
508
|
+
let n = t[e];
|
|
509
|
+
if (n === "(") a++;
|
|
510
|
+
else if (n === ")" && (a--, a === 0)) {
|
|
511
|
+
i = e;
|
|
512
|
+
break;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
if (i === -1) return {
|
|
516
|
+
parameters: [],
|
|
517
|
+
returnType: "any"
|
|
518
|
+
};
|
|
519
|
+
let o = t.substring(r + 1, i), s = t.substring(i + 1).trim();
|
|
520
|
+
s.startsWith(":") && (s = s.substring(1).trim());
|
|
521
|
+
let c = s || "void", l = [];
|
|
522
|
+
if (o.trim()) {
|
|
523
|
+
let e = "", t = 0, n = 0, r = 0, i = 0, a = (e) => {
|
|
524
|
+
let t = -1, n = 0, r = 0, i = 0, a = 0;
|
|
525
|
+
for (let o = 0; o < e.length; o++) {
|
|
526
|
+
let s = e[o];
|
|
527
|
+
if (s === "{") n++;
|
|
528
|
+
else if (s === "}") n--;
|
|
529
|
+
else if (s === "[") r++;
|
|
530
|
+
else if (s === "]") r--;
|
|
531
|
+
else if (s === "(") i++;
|
|
532
|
+
else if (s === ")") i--;
|
|
533
|
+
else if (s === "<") a++;
|
|
534
|
+
else if (s === ">") a--;
|
|
535
|
+
else if (s === ":" && n === 0 && r === 0 && i === 0 && a === 0) {
|
|
536
|
+
t = o;
|
|
537
|
+
break;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
t === -1 ? l.push("any") : l.push(e.substring(t + 1).trim());
|
|
541
|
+
};
|
|
542
|
+
for (let s of o) {
|
|
543
|
+
if (s === "(") t++;
|
|
544
|
+
else if (s === ")") t--;
|
|
545
|
+
else if (s === "<") n++;
|
|
546
|
+
else if (s === ">") n--;
|
|
547
|
+
else if (s === "{") r++;
|
|
548
|
+
else if (s === "}") r--;
|
|
549
|
+
else if (s === "[") i++;
|
|
550
|
+
else if (s === "]") i--;
|
|
551
|
+
else if (s === "," && t === 0 && n === 0 && r === 0 && i === 0) {
|
|
552
|
+
a(e.trim()), e = "";
|
|
553
|
+
continue;
|
|
554
|
+
}
|
|
555
|
+
e += s;
|
|
556
|
+
}
|
|
557
|
+
e.trim() && a(e.trim());
|
|
558
|
+
}
|
|
559
|
+
return {
|
|
560
|
+
parameters: l,
|
|
561
|
+
returnType: c
|
|
562
|
+
};
|
|
584
563
|
}, j = (e, t, n) => {
|
|
585
|
-
let r = t, i = e ?
|
|
586
|
-
if (e && t && i !==
|
|
564
|
+
let r = t, i = e ? D(e, n)[0].variant : null;
|
|
565
|
+
if (e && t && i !== E.NODE) {
|
|
587
566
|
function i(e) {
|
|
588
567
|
let t = e.trim().match(/^<([^>]+)>/);
|
|
589
568
|
return t ? t[1].split(",").map((e) => e.trim()).filter(Boolean).length : 0;
|
|
590
569
|
}
|
|
591
570
|
let a = `
|
|
592
|
-
${
|
|
571
|
+
${x(n)}
|
|
593
572
|
type TargetType = ${e};
|
|
594
573
|
${t?.map((e, t) => `
|
|
595
574
|
declare function Fu${t}${e.signature};
|
|
596
575
|
type F${t} = ReturnType<typeof Fu${t}${i(e.signature) > 0 ? `<${Array(i(e.signature)).fill("any").join(", ")}>` : ""}>;
|
|
597
576
|
`).join("\n")}
|
|
598
577
|
${t?.map((e, t) => `const check${t}: TargetType = {} as F${t};`).join("\n")}
|
|
599
|
-
`, o = "index.ts", s =
|
|
578
|
+
`, o = "index.ts", s = y(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram().getSemanticDiagnostics(), u = /* @__PURE__ */ new Set();
|
|
600
579
|
l.forEach((e) => {
|
|
601
580
|
e.file === c && e.start !== void 0 && u.add(c.getLineAndCharacterOfPosition(e.start).line);
|
|
602
581
|
}), r = t.filter((e, t) => {
|
|
@@ -647,7 +626,7 @@ var O = (t, n) => {
|
|
|
647
626
|
}, P = (t, n, r, i, a) => {
|
|
648
627
|
let o = t?.nodes?.nodes?.findIndex((e) => e?.id == n);
|
|
649
628
|
typeof o == "number" && o >= 0 && typeof r == "number" && r >= 0 && t?.nodes?.nodes?.[o]?.parameters?.nodes?.[r] && (t.nodes.nodes[o].parameters.nodes[r].value = null);
|
|
650
|
-
let s =
|
|
629
|
+
let s = C(t, i, a, !0), c = "index.ts", l = y(c, s), u = l.getSourceFile(c), d = l.languageService.getProgram().getTypeChecker(), f = u.getFullText(), p = `/* @pos ${n} ${r} */`, m = f.indexOf(p) + p.length;
|
|
651
630
|
function h(t, n) {
|
|
652
631
|
let r = t;
|
|
653
632
|
return e.forEachChild(t, (e) => {
|
|
@@ -658,8 +637,8 @@ var O = (t, n) => {
|
|
|
658
637
|
if (e.isCallExpression(g) && (_ = g), !_) return [];
|
|
659
638
|
let v = d.getResolvedSignature(_);
|
|
660
639
|
if (!v) return [];
|
|
661
|
-
let
|
|
662
|
-
return
|
|
640
|
+
let b = v.getParameters(), x = b[r] || b[b.length - 1], S = d.getTypeOfSymbolAtLocation(x, g), w = d.getSymbolsInScope(g, e.SymbolFlags.Variable), T = [];
|
|
641
|
+
return w.forEach((t) => {
|
|
663
642
|
let n = t.getName();
|
|
664
643
|
if (!n.startsWith("node_") && !n.startsWith("p_") && !n.startsWith("flow_")) return;
|
|
665
644
|
let r = t.valueDeclaration || t.declarations?.[0];
|
|
@@ -668,12 +647,12 @@ var O = (t, n) => {
|
|
|
668
647
|
if (n.startsWith("node_")) {
|
|
669
648
|
if ((i.flags & e.TypeFlags.Void) === 0) {
|
|
670
649
|
let e = n.replace("node_", "").replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/");
|
|
671
|
-
N(i, d,
|
|
650
|
+
N(i, d, S).forEach(({ path: t }) => {
|
|
672
651
|
let n = {
|
|
673
652
|
__typename: "ReferenceValue",
|
|
674
653
|
nodeFunctionId: e
|
|
675
654
|
};
|
|
676
|
-
t.length > 0 && (n.referencePath = t),
|
|
655
|
+
t.length > 0 && (n.referencePath = t), T.push(n);
|
|
677
656
|
});
|
|
678
657
|
}
|
|
679
658
|
} else if (n.startsWith("p_")) {
|
|
@@ -681,7 +660,7 @@ var O = (t, n) => {
|
|
|
681
660
|
if (d.isTupleType(i)) {
|
|
682
661
|
let e = i;
|
|
683
662
|
d.getTypeArguments(e).forEach((t, n) => {
|
|
684
|
-
N(t, d,
|
|
663
|
+
N(t, d, S).forEach(({ path: t }) => {
|
|
685
664
|
let r = {
|
|
686
665
|
__typename: "ReferenceValue",
|
|
687
666
|
nodeFunctionId: o,
|
|
@@ -689,24 +668,24 @@ var O = (t, n) => {
|
|
|
689
668
|
inputIndex: n,
|
|
690
669
|
inputTypeIdentifier: e.target.labeledElementDeclarations?.[n].name.getText()
|
|
691
670
|
};
|
|
692
|
-
t.length > 0 && (r.referencePath = t),
|
|
671
|
+
t.length > 0 && (r.referencePath = t), T.push(r);
|
|
693
672
|
});
|
|
694
673
|
});
|
|
695
674
|
}
|
|
696
|
-
} else n.startsWith("flow_") && N(i, d,
|
|
675
|
+
} else n.startsWith("flow_") && N(i, d, S).forEach(({ path: e }) => {
|
|
697
676
|
let t = {
|
|
698
677
|
__typename: "ReferenceValue",
|
|
699
678
|
nodeFunctionId: null
|
|
700
679
|
};
|
|
701
|
-
e.length > 0 && (t.referencePath = e),
|
|
680
|
+
e.length > 0 && (t.referencePath = e), T.push(t);
|
|
702
681
|
});
|
|
703
|
-
}),
|
|
682
|
+
}), T;
|
|
704
683
|
}, F = (t, n) => {
|
|
705
684
|
if (!t) return [];
|
|
706
685
|
let r = `
|
|
707
|
-
${
|
|
686
|
+
${x(n)}
|
|
708
687
|
type VALUE = ${t}; const val: VALUE = {} as any;
|
|
709
|
-
`, i = "index.ts", a =
|
|
688
|
+
`, 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 === "VALUE");
|
|
710
689
|
if (!c || !e.isTypeAliasDeclaration(c)) return [];
|
|
711
690
|
let l = s.getTypeAtLocation(c), u = (e) => e.isUnion() ? e.types.flatMap(u) : e.isStringLiteral() ? [e.value] : e.isNumberLiteral() ? [e.value.toString()] : e.intrinsicName === "true" ? ["true"] : e.intrinsicName === "false" ? ["false"] : [];
|
|
712
691
|
return Array.from(new Set(u(l))).map((e) => ({
|
|
@@ -736,7 +715,7 @@ var O = (t, n) => {
|
|
|
736
715
|
severity: "error"
|
|
737
716
|
}]
|
|
738
717
|
};
|
|
739
|
-
let i =
|
|
718
|
+
let i = C(e, n, r), a = "index.ts", o = y(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getSemanticDiagnostics(s).map((e) => {
|
|
740
719
|
let n = t(e.messageText, "\n"), r, i = null;
|
|
741
720
|
if (e.start !== void 0) {
|
|
742
721
|
let t = s.getFullText(), n = Math.max(0, e.start - 300), a = Math.min(t.length, e.start), o = t.substring(n, a), c = /\/\* @pos ([^ ]+) (\d+|null) \*\//g, l, u = null, d = -1;
|
|
@@ -760,10 +739,10 @@ var O = (t, n) => {
|
|
|
760
739
|
diagnostics: c
|
|
761
740
|
};
|
|
762
741
|
}, L = (t, n, r) => {
|
|
763
|
-
let i =
|
|
764
|
-
${
|
|
742
|
+
let i = g(n?.value), a = `
|
|
743
|
+
${x(r)}
|
|
765
744
|
const testValue: ${t} = ${i};
|
|
766
|
-
`, o = "index.ts", s =
|
|
745
|
+
`, o = "index.ts", s = y(o, a).languageService.getSemanticDiagnostics(o).map((t) => {
|
|
767
746
|
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");
|
|
768
747
|
return {
|
|
769
748
|
message: n,
|
|
@@ -778,4 +757,4 @@ var O = (t, n) => {
|
|
|
778
757
|
};
|
|
779
758
|
};
|
|
780
759
|
//#endregion
|
|
781
|
-
export {
|
|
760
|
+
export { E as DataTypeVariant, I as getFlowValidation, j as getNodeSuggestions, P as getReferenceSuggestions, T as getTypeFromValue, D as getTypeVariant, A as getTypesFromFunction, k as getTypesFromNode, O as getValueFromType, F as getValueSuggestions, L as getValueValidation };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code0-tech/triangulum",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"homepage": "https://github.com/code0-tech/triangulum#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"build": "vite build"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-
|
|
26
|
+
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2462825049-b5d5dce99ef9bf2f81df41d896ec36fa5e28559c",
|
|
27
27
|
"@types/node": "^25.6.0",
|
|
28
28
|
"@typescript/vfs": "^1.6.4",
|
|
29
29
|
"typescript": "^6.0.2",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"lossless-json": "^4.3.0"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-
|
|
36
|
+
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2462825049-b5d5dce99ef9bf2f81df41d896ec36fa5e28559c",
|
|
37
37
|
"@typescript/vfs": "^1.6.4",
|
|
38
38
|
"typescript": "^5.9.3 || ^6.0.2",
|
|
39
39
|
"lossless-json": "^4.3.0"
|