@code0-tech/triangulum 0.9.2 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,13 @@
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);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)}}}var x=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}({}),S=(e,t)=>{let n=D(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=`
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)}}}var x=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}({}),S=(e,t)=>{let n=j(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=`
3
3
  ${n}
4
4
  ${u?`type TargetType = ${u};`:``}
5
5
  const val: TargetType = {} as any;
6
- `,f=`index.ts`,p=T(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}},w=`
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?`[
7
+ `:`[`;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 E(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
+ `:`{`;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 D(e){if(typeof e==`number`)return` `.repeat(e);if(typeof e==`string`&&e!==``)return e}var O=`
7
11
  interface Array<T> {
8
12
  [n: number]: T;
9
13
  length: number;
@@ -17,18 +21,18 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
17
21
  interface NewableFunction extends Function {}
18
22
  interface IArguments { }
19
23
  interface RegExp { }
20
- `;function T(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,w),p(v(n),[e,`lib.codezero.d.ts`],c.default,E)}var E={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function D(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]))).map(e=>`type ${e} = ${t};`).join(`
24
+ `;function k(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,O),p(v(n),[e,`lib.codezero.d.ts`],c.default,A)}var A={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function j(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]))).map(e=>`type ${e} = ${t};`).join(`
21
25
  `),i=e?.map(e=>`type ${e.identifier}${(e.genericKeys?.length??0)>0?`<${e.genericKeys?.join(`,`)}>`:``} = ${e.type};`).join(`
22
- `);return`${n?r:``}\n${i}`}var O=e=>e.replace(/[^a-zA-Z0-9]/g,`_`);function k(e,t,n,r=!1){let i=e?.nodes?.nodes||[],a=new Map(t?.map(e=>[e.identifier,e])),o=new Set,s=(e,t,n)=>{let a=i.find(t=>t?.id===e);if(!a||!a.functionDefinition?.identifier)return`undefined`;let o=(a.parameters?.nodes||[]).map((t,n)=>{let i=t.value;if(!i)return r?`/* @pos ${e} ${n} */ {}`:`/* @pos ${e} ${n} */ undefined`;if(i.__typename===`ReferenceValue`){let t=i;if(!t.nodeFunctionId)return`/* @pos ${e} ${n} */ undefined`;let r=t.inputIndex===void 0?`node_${O(t.nodeFunctionId)}`:`p_${O(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;return t.referencePath?.forEach(e=>{r+=`?.${e.path}`}),`/* @pos ${e} ${n} */ ${r}`}return i.__typename===`LiteralValue`?`/* @pos ${e} ${n} */ ${JSON.stringify(i.value)}`:i.__typename===`NodeFunctionIdWrapper`?s(i.id,e,n):r?`/* @pos ${e} ${n} */ ({} as any)`:`/* @pos ${e} ${n} */ undefined`}).join(`, `),c=`${`fn_${a.functionDefinition.identifier.replace(/::/g,`_`)}`}(${o})`;return t!==void 0&&n!==void 0?`${c}`:c},c=(e,t=``)=>{if(o.has(e))return``;let l=i.find(t=>t?.id===e);if(!l||!l.functionDefinition)return``;o.add(e);let u=a.get(l.functionDefinition.identifier);if(!u)return`${t}// Error: Function ${l.functionDefinition.identifier} not found\n`;let d={parameters:[]};r||(d=C(u));let f=(l.parameters?.nodes||[]).map((i,a)=>{let o=i.value;if(!o)return r?`/* @pos ${e} ${a} */ {}`:`/* @pos ${e} ${a} */ undefined`;if(o.__typename===`ReferenceValue`){let t=o;if(!t.nodeFunctionId)return`/* @pos ${e} ${a} */ undefined`;let n=t.inputIndex===void 0?`node_${O(t.nodeFunctionId)}`:`p_${O(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;return t.referencePath?.forEach(e=>{n+=`?.${e.path}`}),`/* @pos ${e} ${a} */ ${n}`}if(o.__typename===`LiteralValue`)return`/* @pos ${e} ${a} */ ${JSON.stringify(o.value)}`;if(o.__typename===`NodeFunctionIdWrapper`){let i=o;if(r)return`/* @pos ${e} ${a} */ (...${`p_${O(e)}_${a}`}) => {\n${c(i.id,t+` `)}${t}}`;{let r=d.parameters[a];return r&&S(r,n)[0].variant===x.NODE?`/* @pos ${e} ${a} */ (...${`p_${O(e)}_${a}`}) => {\n${c(i.id,t+` `)}${t}}`:`/* @pos ${e} ${a} */ ${s(i.id,e,a)}`}}return r?`/* @pos ${e} ${a} */ {}`:`/* @pos ${e} ${a} */ undefined`}).join(`, `),p=`node_${O(l.id)}`,m=`fn_${l?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;f.includes(`undefined`);let h=`${t}${l.functionDefinition.identifier===`std::control::return`?`return `:`const ${p} = `}${m}(${f}) ;\n`;return l.nextNodeId&&(h+=c(l.nextNodeId,t)),h},l=D(n),u=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
23
- `),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)})),`${l}\n${u}\n\n// --- Flow ---\n${i.filter(e=>e?.id&&!d.has(e.id)&&!f.has(e.id)).map(e=>c(e.id)).join(`
24
- `)}`}function A(e,t,n){let r=k(e,t,n,!0),i=`index.ts`,a=T(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(O(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 j=(e,t)=>{let n=JSON.stringify(e?.value);if(!n)return`any`;let r=`
25
- ${D(t,`unknown`)}
26
+ `);return`${n?r:``}\n${i}`}var M=e=>e.replace(/[^a-zA-Z0-9]/g,`_`);function N(e,t,n,r=!1){let i=e?.nodes?.nodes||[],a=new Map(t?.map(e=>[e.identifier,e])),o=new Set,s=(e,t,n)=>{let a=i.find(t=>t?.id===e);if(!a||!a.functionDefinition?.identifier)return`undefined`;let o=(a.parameters?.nodes||[]).map((t,n)=>{let i=t.value;if(!i)return r?`/* @pos ${e} ${n} */ {}`:`/* @pos ${e} ${n} */ undefined`;if(i.__typename===`ReferenceValue`){let t=i;if(!t.nodeFunctionId)return`/* @pos ${e} ${n} */ undefined`;let r=t.inputIndex===void 0?`node_${M(t.nodeFunctionId)}`:`p_${M(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;return t.referencePath?.forEach(e=>{r+=`?.${e.path}`}),`/* @pos ${e} ${n} */ ${r}`}return i.__typename===`LiteralValue`?`/* @pos ${e} ${n} */ ${E(i?.value)}`:i.__typename===`NodeFunctionIdWrapper`?s(i.id,e,n):r?`/* @pos ${e} ${n} */ ({} as any)`:`/* @pos ${e} ${n} */ undefined`}).join(`, `),c=`${`fn_${a.functionDefinition.identifier.replace(/::/g,`_`)}`}(${o})`;return t!==void 0&&n!==void 0?`${c}`:c},c=(e,t=``)=>{if(o.has(e))return``;let l=i.find(t=>t?.id===e);if(!l||!l.functionDefinition)return``;o.add(e);let u=a.get(l.functionDefinition.identifier);if(!u)return`${t}// Error: Function ${l.functionDefinition.identifier} not found\n`;let d={parameters:[]};r||(d=C(u));let f=(l.parameters?.nodes||[]).map((i,a)=>{let o=i.value;if(!o)return r?`/* @pos ${e} ${a} */ {}`:`/* @pos ${e} ${a} */ undefined`;if(o.__typename===`ReferenceValue`){let t=o;if(!t.nodeFunctionId)return`/* @pos ${e} ${a} */ undefined`;let n=t.inputIndex===void 0?`node_${M(t.nodeFunctionId)}`:`p_${M(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;return t.referencePath?.forEach(e=>{n+=`?.${e.path}`}),`/* @pos ${e} ${a} */ ${n}`}if(o.__typename===`LiteralValue`)return`/* @pos ${e} ${a} */ ${E(o?.value)}`;if(o.__typename===`NodeFunctionIdWrapper`){let i=o;if(r)return`/* @pos ${e} ${a} */ (...${`p_${M(e)}_${a}`}) => {\n${c(i.id,t+` `)}${t}}`;{let r=d.parameters[a];return r&&S(r,n)[0].variant===x.NODE?`/* @pos ${e} ${a} */ (...${`p_${M(e)}_${a}`}) => {\n${c(i.id,t+` `)}${t}}`:`/* @pos ${e} ${a} */ ${s(i.id,e,a)}`}}return r?`/* @pos ${e} ${a} */ {}`:`/* @pos ${e} ${a} */ undefined`}).join(`, `),p=`node_${M(l.id)}`,m=`fn_${l?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;f.includes(`undefined`);let h=`${t}${l.functionDefinition.identifier===`std::control::return`?`return `:`const ${p} = `}${m}(${f}) ;\n`;return l.nextNodeId&&(h+=c(l.nextNodeId,t)),h},l=j(n),u=`declare function flow${e?.signature??`(): void`}`,d=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
27
+ `),f=new Set(i.map(e=>e?.nextNodeId).filter(e=>!!e)),p=new Set;return i.forEach(e=>e?.parameters?.nodes?.forEach(e=>{e?.value?.__typename===`NodeFunctionIdWrapper`&&e.value.id&&p.add(e.value.id)})),`${l}\n${u}\n${d}\n\n// --- Flow ---\n${e?`const flow_${M(e.id??``)} = flow(${e.settings?.nodes?.map((e,t)=>`/* @pos undefined ${t} */ ${E(e?.value)}`).join(`, `)??``});`:``}\n${i.filter(e=>e?.id&&!f.has(e.id)&&!p.has(e.id)).map(e=>c(e.id)).join(`
28
+ `)}`}function P(e,t,n){let r=N(e,t,n,!0),i=`index.ts`,a=k(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(M(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 F=(e,t)=>{let n=E(e?.value);if(!n)return`any`;let r=`
29
+ ${j(t,`unknown`)}
26
30
  const tempValue = ${n??`any`};
27
- `,i=`index.ts`,a=T(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},M=(e,t)=>{let n=`
28
- ${D(t)}
31
+ `,i=`index.ts`,a=k(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},I=(e,t)=>{let n=`
32
+ ${j(t)}
29
33
  type Target = ${e};
30
- `,r=`index.ts`,i=T(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)}},N=(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=A({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=O(r),c=O(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`}},P=(e,t,n)=>{let r=t,i=e?S(e,n)[0].variant:null;if(e&&t&&i!==x.NODE){function i(e){let t=e.trim().match(/^<([^>]+)>/);return t?t[1].split(`,`).map(e=>e.trim()).filter(Boolean).length:0}let a=`
31
- ${D(n)}
34
+ `,r=`index.ts`,i=k(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)}},L=(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=P({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=M(r),c=M(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`}},R=(e,t,n)=>{let r=t,i=e?S(e,n)[0].variant:null;if(e&&t&&i!==x.NODE){function i(e){let t=e.trim().match(/^<([^>]+)>/);return t?t[1].split(`,`).map(e=>e.trim()).filter(Boolean).length:0}let a=`
35
+ ${j(n)}
32
36
  type TargetType = ${e};
33
37
  ${t?.map((e,t)=>`
34
38
  declare function Fu${t}${e.signature};
@@ -37,13 +41,13 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
37
41
  `)}
38
42
  ${t?.map((e,t)=>`const check${t}: TargetType = {} as F${t};`).join(`
39
43
  `)}
40
- `,o=`index.ts`,s=T(o,a),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=a.split(`
41
- `).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:null}))}})).filter(e=>e!==null)??[]},F=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},I=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),F(e)){let a=e.getProperties();a&&a.length>0&&a.forEach(e=>{let a=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),o=e.getName(),s=[...r,o];i.push(...I(a,t,n,s))})}return i},L=(e,t,n,r,i)=>{let a=k(e,r,i,!0),o=`index.ts`,s=T(o,a),l=s.getSourceFile(o),u=s.languageService.getProgram().getTypeChecker(),d=l.getFullText(),f=`/* @pos ${t} ${n} */`,p=d.indexOf(f)+f.length;function m(e,t){let n=e;return c.default.forEachChild(e,e=>{e.getStart(l,!0)<=t&&e.getEnd()>=t&&(n=m(e,t))}),n}let h=m(l,p),g;if(c.default.isCallExpression(h)&&(g=h),!g)return[];let _=u.getResolvedSignature(g);if(!_)return[];let v=_.getParameters(),y=v[n]||v[v.length-1],b=u.getTypeOfSymbolAtLocation(y,h),x=u.getSymbolsInScope(h,c.default.SymbolFlags.Variable),S=[];return x.forEach(e=>{let t=e.getName();if(!t.startsWith(`node_`)&&!t.startsWith(`p_`))return;let n=e.valueDeclaration||e.declarations?.[0];if(!n||n.getEnd()>=p)return;let r=u.getTypeOfSymbolAtLocation(e,h);if(t.startsWith(`node_`)){if((r.flags&c.default.TypeFlags.Void)===0){let e=t.replace(`node_`,``).replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`);I(r,u,b).forEach(({path:t})=>{let n={__typename:`ReferenceValue`,nodeFunctionId:e};t.length>0&&(n.referencePath=t),S.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(u.isTupleType(r)){let e=r;u.getTypeArguments(e).forEach((t,n)=>{I(t,u,b).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),S.push(r)})})}}}),S},R=(e,t)=>{if(!e)return[];let n=`
42
- ${D(t)}
44
+ `,o=`index.ts`,s=k(o,a),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=a.split(`
45
+ `).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: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,o];i.push(...B(a,t,n,s))})}return i},V=(e,t,n,r,i)=>{let a=N(e,r,i,!0),o=`index.ts`,s=k(o,a),l=s.getSourceFile(o),u=s.languageService.getProgram().getTypeChecker(),d=l.getFullText(),f=`/* @pos ${t} ${n} */`,p=d.indexOf(f)+f.length;function m(e,t){let n=e;return c.default.forEachChild(e,e=>{e.getStart(l,!0)<=t&&e.getEnd()>=t&&(n=m(e,t))}),n}let h=m(l,p),g;if(c.default.isCallExpression(h)&&(g=h),!g)return[];let _=u.getResolvedSignature(g);if(!_)return[];let v=_.getParameters(),y=v[n]||v[v.length-1],b=u.getTypeOfSymbolAtLocation(y,h),x=u.getSymbolsInScope(h,c.default.SymbolFlags.Variable),S=[];return x.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()>=p)return;let r=u.getTypeOfSymbolAtLocation(e,h);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,u,b).forEach(({path:t})=>{let n={__typename:`ReferenceValue`,nodeFunctionId:e};t.length>0&&(n.referencePath=t),S.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(u.isTupleType(r)){let e=r;u.getTypeArguments(e).forEach((t,n)=>{B(t,u,b).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),S.push(r)})})}}else t.startsWith(`flow_`)&&B(r,u,b).forEach(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};e.length>0&&(t.referencePath=e),S.push(t)})}),S},H=(e,t)=>{if(!e)return[];let n=`
46
+ ${j(t)}
43
47
  type VALUE = ${e}; const val: VALUE = {} as any;
44
- `,r=`index.ts`,i=T(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}))},z=(e,t,n)=>{let r=k(e,t,n),i=`index.ts`,a=T(i,r),o=a.getSourceFile(i),s=a.languageService.getProgram().getSemanticDiagnostics(o).map(e=>{let t=(0,c.flattenDiagnosticMessageText)(e.messageText,`
45
- `),n,r;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+) \*\//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],r=parseInt(u[2],10))}return{message:t,code:e.code,severity:`error`,nodeId:n,parameterIndex:r}}).filter(e=>e!==null);return{isValid:!s.some(e=>e?.severity===`error`),returnType:`void`,diagnostics:s}},B=(e,t,n)=>{let r=JSON.stringify(t?.value),i=`
46
- ${D(n)}
48
+ `,r=`index.ts`,i=k(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)=>{let r=N(e,t,n),i=`index.ts`,a=k(i,r),o=a.getSourceFile(i),s=a.languageService.getProgram().getSemanticDiagnostics(o).map(e=>{let t=(0,c.flattenDiagnosticMessageText)(e.messageText,`
49
+ `),n,r;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+) \*\//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]===`undefined`?void 0:u[1],r=parseInt(u[2],10))}return{message:t,code:e.code,severity:`error`,nodeId:n,parameterIndex:r}}).filter(e=>e!==null);return{isValid:!s.some(e=>e?.severity===`error`),returnType:`void`,diagnostics:s}},W=(e,t,n)=>{let r=E(t?.value),i=`
50
+ ${j(n)}
47
51
  const testValue: ${e} = ${r};
48
- `,a=`index.ts`,o=T(a,i).languageService.getSemanticDiagnostics(a).map(e=>{let t=c.default.flattenDiagnosticMessageText(e.messageText,`
49
- `),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=x,exports.getFlowValidation=z,exports.getNodeSuggestions=P,exports.getReferenceSuggestions=L,exports.getTypeFromValue=j,exports.getTypeVariant=S,exports.getTypesFromFunction=C,exports.getTypesFromNode=N,exports.getValueFromType=M,exports.getValueSuggestions=R,exports.getValueValidation=B;
52
+ `,a=`index.ts`,o=k(a,i).languageService.getSemanticDiagnostics(a).map(e=>{let t=c.default.flattenDiagnosticMessageText(e.messageText,`
53
+ `),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=x,exports.getFlowValidation=U,exports.getNodeSuggestions=R,exports.getReferenceSuggestions=V,exports.getTypeFromValue=F,exports.getTypeVariant=S,exports.getTypesFromFunction=C,exports.getTypesFromNode=L,exports.getValueFromType=I,exports.getValueSuggestions=H,exports.getValueValidation=W;
@@ -190,7 +190,7 @@ function p(e, t, r, i, a) {
190
190
  var m = /* @__PURE__ */ function(e) {
191
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
192
  }({}), h = (t, n) => {
193
- let r = b(n), i = typeof t == "string", a = Array.isArray(t), o = a ? t : i ? [{
193
+ let r = w(n), i = typeof t == "string", a = Array.isArray(t), o = a ? t : i ? [{
194
194
  identifier: t,
195
195
  type: t
196
196
  }] : [t], s = a ? t.map((e) => e.identifier) : i ? [t] : [t.identifier], c = [];
@@ -199,14 +199,14 @@ var m = /* @__PURE__ */ function(e) {
199
199
  ${r}
200
200
  ${u ? `type TargetType = ${u};` : ""}
201
201
  const val: TargetType = {} as any;
202
- `, f = "index.ts", p = v(f, d), h = p.getSourceFile(f), g = p.languageService.getProgram().getTypeChecker(), _ = m.TYPE, y = (t) => {
202
+ `, f = "index.ts", p = S(f, d), h = p.getSourceFile(f), g = p.languageService.getProgram().getTypeChecker(), _ = m.TYPE, v = (t) => {
203
203
  if (e.isVariableDeclaration(t) && t.name.getText() === "val") {
204
204
  let n = g.getTypeAtLocation(t);
205
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
206
  }
207
- e.forEachChild(t, y);
207
+ e.forEachChild(t, v);
208
208
  };
209
- y(h), c.push({
209
+ v(h), c.push({
210
210
  identifier: l,
211
211
  variant: _
212
212
  });
@@ -292,23 +292,83 @@ var m = /* @__PURE__ */ function(e) {
292
292
  parameters: l,
293
293
  returnType: c
294
294
  };
295
- }, _ = "\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";
296
- function v(t, n) {
295
+ };
296
+ //#endregion
297
+ //#region node_modules/lossless-json/lib/esm/utils.js
298
+ function _(e) {
299
+ return v.test(e);
300
+ }
301
+ var v = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
302
+ //#endregion
303
+ //#region node_modules/lossless-json/lib/esm/stringify.js
304
+ function y(e, t, n, r) {
305
+ let i = b(n);
306
+ return a(typeof t == "function" ? t.call({ "": e }, "", e) : e, "");
307
+ function a(e, t) {
308
+ if (Array.isArray(r)) {
309
+ let t = r.find((t) => t.test(e));
310
+ if (t) {
311
+ let n = t.stringify(e);
312
+ if (typeof n != "string" || !_(n)) throw Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${n})`);
313
+ return n;
314
+ }
315
+ }
316
+ 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);
317
+ if (e?.isLosslessNumber || typeof e == "bigint") return e.toString();
318
+ if (Array.isArray(e)) return o(e, t);
319
+ if (e && typeof e == "object") return s(e, t);
320
+ }
321
+ function o(e, n) {
322
+ if (e.length === 0) return "[]";
323
+ let r = i ? n + i : void 0, o = i ? "[\n" : "[";
324
+ for (let n = 0; n < e.length; n++) {
325
+ let s = typeof t == "function" ? t.call(e, String(n), e[n]) : e[n];
326
+ i && (o += r), s !== void 0 && typeof s != "function" ? o += a(s, r) : o += "null", n < e.length - 1 && (o += i ? ",\n" : ",");
327
+ }
328
+ return o += i ? `\n${n}]` : "]", o;
329
+ }
330
+ function s(e, r) {
331
+ if (typeof e.toJSON == "function") return y(e.toJSON(), t, n, void 0);
332
+ let o = Array.isArray(t) ? t.map(String) : Object.keys(e);
333
+ if (o.length === 0) return "{}";
334
+ let s = i ? r + i : void 0, l = !0, u = i ? "{\n" : "{";
335
+ for (let n of o) {
336
+ let r = typeof t == "function" ? t.call(e, n, e[n]) : e[n];
337
+ if (c(n, r)) {
338
+ l ? l = !1 : u += i ? ",\n" : ",";
339
+ let e = JSON.stringify(n);
340
+ u += i ? `${s + e}: ` : `${e}:`, u += a(r, s);
341
+ }
342
+ }
343
+ return u += i ? `\n${r}}` : "}", u;
344
+ }
345
+ function c(e, t) {
346
+ return t !== void 0 && typeof t != "function" && typeof t != "symbol";
347
+ }
348
+ }
349
+ function b(e) {
350
+ if (typeof e == "number") return " ".repeat(e);
351
+ if (typeof e == "string" && e !== "") return e;
352
+ }
353
+ //#endregion
354
+ //#region src/utils.ts
355
+ var x = "\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";
356
+ function S(t, n) {
297
357
  let r = /* @__PURE__ */ new Map();
298
- return r.set(t, n), r.set("lib.codezero.d.ts", _), o(d(r), [t, "lib.codezero.d.ts"], e, y);
358
+ return r.set(t, n), r.set("lib.codezero.d.ts", x), o(d(r), [t, "lib.codezero.d.ts"], e, C);
299
359
  }
300
- var y = {
360
+ var C = {
301
361
  target: e.ScriptTarget.Latest,
302
362
  lib: ["lib.codezero.d.ts"],
303
363
  noEmit: !0,
304
364
  strictNullChecks: !0
305
365
  };
306
- function b(e, t = "any", n = !0) {
366
+ function w(e, t = "any", n = !0) {
307
367
  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");
308
368
  return `${n ? r : ""}\n${i}`;
309
369
  }
310
- var x = (e) => e.replace(/[^a-zA-Z0-9]/g, "_");
311
- function S(e, t, n, r = !1) {
370
+ var T = (e) => e.replace(/[^a-zA-Z0-9]/g, "_");
371
+ function E(e, t, n, r = !1) {
312
372
  let i = e?.nodes?.nodes || [], a = new Map(t?.map((e) => [e.identifier, e])), o = /* @__PURE__ */ new Set(), s = (e, t, n) => {
313
373
  let a = i.find((t) => t?.id === e);
314
374
  if (!a || !a.functionDefinition?.identifier) return "undefined";
@@ -318,12 +378,12 @@ function S(e, t, n, r = !1) {
318
378
  if (i.__typename === "ReferenceValue") {
319
379
  let t = i;
320
380
  if (!t.nodeFunctionId) return `/* @pos ${e} ${n} */ undefined`;
321
- let r = t.inputIndex === void 0 ? `node_${x(t.nodeFunctionId)}` : `p_${x(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;
381
+ let r = t.inputIndex === void 0 ? `node_${T(t.nodeFunctionId)}` : `p_${T(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;
322
382
  return t.referencePath?.forEach((e) => {
323
383
  r += `?.${e.path}`;
324
384
  }), `/* @pos ${e} ${n} */ ${r}`;
325
385
  }
326
- return i.__typename === "LiteralValue" ? `/* @pos ${e} ${n} */ ${JSON.stringify(i.value)}` : i.__typename === "NodeFunctionIdWrapper" ? s(i.id, e, n) : r ? `/* @pos ${e} ${n} */ ({} as any)` : `/* @pos ${e} ${n} */ undefined`;
386
+ return i.__typename === "LiteralValue" ? `/* @pos ${e} ${n} */ ${y(i?.value)}` : i.__typename === "NodeFunctionIdWrapper" ? s(i.id, e, n) : r ? `/* @pos ${e} ${n} */ ({} as any)` : `/* @pos ${e} ${n} */ undefined`;
327
387
  }).join(", "), c = `${`fn_${a.functionDefinition.identifier.replace(/::/g, "_")}`}(${o})`;
328
388
  return t !== void 0 && n !== void 0 ? `${c}` : c;
329
389
  }, c = (e, t = "") => {
@@ -341,34 +401,34 @@ function S(e, t, n, r = !1) {
341
401
  if (o.__typename === "ReferenceValue") {
342
402
  let t = o;
343
403
  if (!t.nodeFunctionId) return `/* @pos ${e} ${a} */ undefined`;
344
- let n = t.inputIndex === void 0 ? `node_${x(t.nodeFunctionId)}` : `p_${x(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;
404
+ let n = t.inputIndex === void 0 ? `node_${T(t.nodeFunctionId)}` : `p_${T(t.nodeFunctionId)}_${t.parameterIndex}[${t.inputIndex}]`;
345
405
  return t.referencePath?.forEach((e) => {
346
406
  n += `?.${e.path}`;
347
407
  }), `/* @pos ${e} ${a} */ ${n}`;
348
408
  }
349
- if (o.__typename === "LiteralValue") return `/* @pos ${e} ${a} */ ${JSON.stringify(o.value)}`;
409
+ if (o.__typename === "LiteralValue") return `/* @pos ${e} ${a} */ ${y(o?.value)}`;
350
410
  if (o.__typename === "NodeFunctionIdWrapper") {
351
411
  let i = o;
352
- if (r) return `/* @pos ${e} ${a} */ (...${`p_${x(e)}_${a}`}) => {\n${c(i.id, t + " ")}${t}}`;
412
+ if (r) return `/* @pos ${e} ${a} */ (...${`p_${T(e)}_${a}`}) => {\n${c(i.id, t + " ")}${t}}`;
353
413
  {
354
414
  let r = d.parameters[a];
355
- return r && h(r, n)[0].variant === m.NODE ? `/* @pos ${e} ${a} */ (...${`p_${x(e)}_${a}`}) => {\n${c(i.id, t + " ")}${t}}` : `/* @pos ${e} ${a} */ ${s(i.id, e, a)}`;
415
+ return r && h(r, n)[0].variant === m.NODE ? `/* @pos ${e} ${a} */ (...${`p_${T(e)}_${a}`}) => {\n${c(i.id, t + " ")}${t}}` : `/* @pos ${e} ${a} */ ${s(i.id, e, a)}`;
356
416
  }
357
417
  }
358
418
  return r ? `/* @pos ${e} ${a} */ {}` : `/* @pos ${e} ${a} */ undefined`;
359
- }).join(", "), p = `node_${x(l.id)}`, _ = `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
419
+ }).join(", "), p = `node_${T(l.id)}`, _ = `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
360
420
  f.includes("undefined");
361
421
  let v = `${t}${l.functionDefinition.identifier === "std::control::return" ? "return " : `const ${p} = `}${_}(${f}) ;\n`;
362
422
  return l.nextNodeId && (v += c(l.nextNodeId, t)), v;
363
- }, l = b(n), 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();
423
+ }, l = w(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(i.map((e) => e?.nextNodeId).filter((e) => !!e)), p = /* @__PURE__ */ new Set();
364
424
  return i.forEach((e) => e?.parameters?.nodes?.forEach((e) => {
365
- e?.value?.__typename === "NodeFunctionIdWrapper" && e.value.id && f.add(e.value.id);
366
- })), `${l}\n${u}\n\n// --- Flow ---\n${i.filter((e) => e?.id && !d.has(e.id) && !f.has(e.id)).map((e) => c(e.id)).join("\n")}`;
425
+ e?.value?.__typename === "NodeFunctionIdWrapper" && e.value.id && p.add(e.value.id);
426
+ })), `${l}\n${u}\n${d}\n\n// --- Flow ---\n${e ? `const flow_${T(e.id ?? "")} = flow(${e.settings?.nodes?.map((e, t) => `/* @pos undefined ${t} */ ${y(e?.value)}`).join(", ") ?? ""});` : ""}\n${i.filter((e) => e?.id && !f.has(e.id) && !p.has(e.id)).map((e) => c(e.id)).join("\n")}`;
367
427
  }
368
- function C(t, n, r) {
369
- let i = S(t, n, r, !0), a = "index.ts", o = v(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map();
428
+ function D(t, n, r) {
429
+ let i = E(t, n, r, !0), a = "index.ts", o = S(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map();
370
430
  (t?.nodes?.nodes || []).forEach((e) => {
371
- e?.id && d.set(x(e.id), e);
431
+ e?.id && d.set(T(e.id), e);
372
432
  });
373
433
  let f = (t) => {
374
434
  if (e.isVariableDeclaration(t) && t.name.getText().startsWith("node_")) {
@@ -397,13 +457,13 @@ function C(t, n, r) {
397
457
  }
398
458
  //#endregion
399
459
  //#region src/extraction/getTypeFromValue.ts
400
- var w = (t, n) => {
401
- let r = JSON.stringify(t?.value);
460
+ var O = (t, n) => {
461
+ let r = y(t?.value);
402
462
  if (!r) return "any";
403
463
  let i = `
404
- ${b(n, "unknown")}
464
+ ${w(n, "unknown")}
405
465
  const tempValue = ${r ?? "any"};
406
- `, a = "index.ts", o = v(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = "any", u = (t) => {
466
+ `, a = "index.ts", o = S(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = "any", u = (t) => {
407
467
  if (e.isVariableDeclaration(t) && t.name.getText() === "tempValue") {
408
468
  let n = c.getTypeAtLocation(t), r = c.getSymbolsInScope(t, e.SymbolFlags.TypeAlias), i = (n) => {
409
469
  if (n.isUnion()) {
@@ -432,11 +492,11 @@ var w = (t, n) => {
432
492
  e.forEachChild(t, u);
433
493
  };
434
494
  return u(s), l;
435
- }, T = (t, n) => {
495
+ }, k = (t, n) => {
436
496
  let r = `
437
- ${b(n)}
497
+ ${w(n)}
438
498
  type Target = ${t};
439
- `, i = "index.ts", a = v(i, r), o = a.getSourceFile(i), s = a.languageService.getProgram().getTypeChecker(), c = o.statements.find((t) => e.isTypeAliasDeclaration(t) && t.name.text === "Target");
499
+ `, i = "index.ts", a = S(i, r), o = a.getSourceFile(i), s = a.languageService.getProgram().getTypeChecker(), c = o.statements.find((t) => e.isTypeAliasDeclaration(t) && t.name.text === "Target");
440
500
  if (!c) return {
441
501
  __typename: "LiteralValue",
442
502
  value: null
@@ -478,7 +538,7 @@ var w = (t, n) => {
478
538
  __typename: "LiteralValue",
479
539
  value: u(l, c)
480
540
  };
481
- }, E = (e, t, n) => {
541
+ }, A = (e, t, n) => {
482
542
  if (!e) return {
483
543
  parameters: [],
484
544
  returnType: "any"
@@ -493,7 +553,7 @@ var w = (t, n) => {
493
553
  value: null
494
554
  }) || []
495
555
  }
496
- }, a = r + "_params", o = C({
556
+ }, a = r + "_params", o = D({
497
557
  id: "gid://sagittarius/Flow/0",
498
558
  nodes: {
499
559
  __typename: "NodeFunctionConnection",
@@ -509,7 +569,7 @@ var w = (t, n) => {
509
569
  }
510
570
  }]
511
571
  }
512
- }, t, n), s = x(r), c = x(a), l = o.parameters.get(s) || [], u = o.parameters.get(c) || [];
572
+ }, t, n), s = T(r), c = T(a), l = o.parameters.get(s) || [], u = o.parameters.get(c) || [];
513
573
  return {
514
574
  parameters: l.map((e, t) => {
515
575
  let n = u[t];
@@ -517,7 +577,7 @@ var w = (t, n) => {
517
577
  }),
518
578
  returnType: o.nodes.get(s) || "any"
519
579
  };
520
- }, D = (e, t, n) => {
580
+ }, j = (e, t, n) => {
521
581
  let r = t, i = e ? h(e, n)[0].variant : null;
522
582
  if (e && t && i !== m.NODE) {
523
583
  function i(e) {
@@ -525,14 +585,14 @@ var w = (t, n) => {
525
585
  return t ? t[1].split(",").map((e) => e.trim()).filter(Boolean).length : 0;
526
586
  }
527
587
  let a = `
528
- ${b(n)}
588
+ ${w(n)}
529
589
  type TargetType = ${e};
530
590
  ${t?.map((e, t) => `
531
591
  declare function Fu${t}${e.signature};
532
592
  type F${t} = ReturnType<typeof Fu${t}${i(e.signature) > 0 ? `<${Array(i(e.signature)).fill("any").join(", ")}>` : ""}>;
533
593
  `).join("\n")}
534
594
  ${t?.map((e, t) => `const check${t}: TargetType = {} as F${t};`).join("\n")}
535
- `, o = "index.ts", s = v(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram().getSemanticDiagnostics(), u = /* @__PURE__ */ new Set();
595
+ `, o = "index.ts", s = S(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram().getSemanticDiagnostics(), u = /* @__PURE__ */ new Set();
536
596
  l.forEach((e) => {
537
597
  e.file === c && e.start !== void 0 && u.add(c.getLineAndCharacterOfPosition(e.start).line);
538
598
  }), r = t.filter((e, t) => {
@@ -561,24 +621,24 @@ var w = (t, n) => {
561
621
  }))
562
622
  }
563
623
  })).filter((e) => e !== null) ?? [];
564
- }, O = (t) => {
624
+ }, M = (t) => {
565
625
  let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
566
626
  return (t.flags & n) === 0;
567
- }, k = (e, t, n, r = []) => {
627
+ }, N = (e, t, n, r = []) => {
568
628
  let i = [];
569
629
  if (t.isTypeAssignableTo(e, n) && i.push({
570
630
  path: r,
571
631
  type: e
572
- }), O(e)) {
632
+ }), M(e)) {
573
633
  let a = e.getProperties();
574
634
  a && a.length > 0 && a.forEach((e) => {
575
635
  let a = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration), o = e.getName(), s = [...r, o];
576
- i.push(...k(a, t, n, s));
636
+ i.push(...N(a, t, n, s));
577
637
  });
578
638
  }
579
639
  return i;
580
- }, A = (t, n, r, i, a) => {
581
- let o = S(t, i, a, !0), s = "index.ts", c = v(s, o), l = c.getSourceFile(s), u = c.languageService.getProgram().getTypeChecker(), d = l.getFullText(), f = `/* @pos ${n} ${r} */`, p = d.indexOf(f) + f.length;
640
+ }, P = (t, n, r, i, a) => {
641
+ let o = E(t, i, a, !0), s = "index.ts", c = S(s, o), l = c.getSourceFile(s), u = c.languageService.getProgram().getTypeChecker(), d = l.getFullText(), f = `/* @pos ${n} ${r} */`, p = d.indexOf(f) + f.length;
582
642
  function m(t, n) {
583
643
  let r = t;
584
644
  return e.forEachChild(t, (e) => {
@@ -589,22 +649,22 @@ var w = (t, n) => {
589
649
  if (e.isCallExpression(h) && (g = h), !g) return [];
590
650
  let _ = u.getResolvedSignature(g);
591
651
  if (!_) return [];
592
- let y = _.getParameters(), b = y[r] || y[y.length - 1], x = u.getTypeOfSymbolAtLocation(b, h), C = u.getSymbolsInScope(h, e.SymbolFlags.Variable), w = [];
593
- return C.forEach((t) => {
652
+ let v = _.getParameters(), y = v[r] || v[v.length - 1], b = u.getTypeOfSymbolAtLocation(y, h), x = u.getSymbolsInScope(h, e.SymbolFlags.Variable), C = [];
653
+ return x.forEach((t) => {
594
654
  let n = t.getName();
595
- if (!n.startsWith("node_") && !n.startsWith("p_")) return;
655
+ if (!n.startsWith("node_") && !n.startsWith("p_") && !n.startsWith("flow_")) return;
596
656
  let r = t.valueDeclaration || t.declarations?.[0];
597
657
  if (!r || r.getEnd() >= p) return;
598
658
  let i = u.getTypeOfSymbolAtLocation(t, h);
599
659
  if (n.startsWith("node_")) {
600
660
  if ((i.flags & e.TypeFlags.Void) === 0) {
601
661
  let e = n.replace("node_", "").replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/");
602
- k(i, u, x).forEach(({ path: t }) => {
662
+ N(i, u, b).forEach(({ path: t }) => {
603
663
  let n = {
604
664
  __typename: "ReferenceValue",
605
665
  nodeFunctionId: e
606
666
  };
607
- t.length > 0 && (n.referencePath = t), w.push(n);
667
+ t.length > 0 && (n.referencePath = t), C.push(n);
608
668
  });
609
669
  }
610
670
  } else if (n.startsWith("p_")) {
@@ -612,7 +672,7 @@ var w = (t, n) => {
612
672
  if (u.isTupleType(i)) {
613
673
  let e = i;
614
674
  u.getTypeArguments(e).forEach((t, n) => {
615
- k(t, u, x).forEach(({ path: t }) => {
675
+ N(t, u, b).forEach(({ path: t }) => {
616
676
  let r = {
617
677
  __typename: "ReferenceValue",
618
678
  nodeFunctionId: o,
@@ -620,26 +680,32 @@ var w = (t, n) => {
620
680
  inputIndex: n,
621
681
  inputTypeIdentifier: e.target.labeledElementDeclarations?.[n].name.getText()
622
682
  };
623
- t.length > 0 && (r.referencePath = t), w.push(r);
683
+ t.length > 0 && (r.referencePath = t), C.push(r);
624
684
  });
625
685
  });
626
686
  }
627
- }
628
- }), w;
629
- }, j = (t, n) => {
687
+ } else n.startsWith("flow_") && N(i, u, b).forEach(({ path: e }) => {
688
+ let t = {
689
+ __typename: "ReferenceValue",
690
+ nodeFunctionId: null
691
+ };
692
+ e.length > 0 && (t.referencePath = e), C.push(t);
693
+ });
694
+ }), C;
695
+ }, F = (t, n) => {
630
696
  if (!t) return [];
631
697
  let r = `
632
- ${b(n)}
698
+ ${w(n)}
633
699
  type VALUE = ${t}; const val: VALUE = {} as any;
634
- `, i = "index.ts", a = v(i, r), o = a.getSourceFile(i), s = a.languageService.getProgram().getTypeChecker(), c = o.statements.find((t) => e.isTypeAliasDeclaration(t) && t.name.text === "VALUE");
700
+ `, i = "index.ts", a = S(i, r), o = a.getSourceFile(i), s = a.languageService.getProgram().getTypeChecker(), c = o.statements.find((t) => e.isTypeAliasDeclaration(t) && t.name.text === "VALUE");
635
701
  if (!c || !e.isTypeAliasDeclaration(c)) return [];
636
702
  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"] : [];
637
703
  return Array.from(new Set(u(l))).map((e) => ({
638
704
  __typename: "LiteralValue",
639
705
  value: e
640
706
  }));
641
- }, M = (e, n, r) => {
642
- let i = S(e, n, r), a = "index.ts", o = v(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getSemanticDiagnostics(s).map((e) => {
707
+ }, I = (e, n, r) => {
708
+ let i = E(e, n, r), a = "index.ts", o = S(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getSemanticDiagnostics(s).map((e) => {
643
709
  let n = t(e.messageText, "\n"), r, i;
644
710
  if (e.start !== void 0) {
645
711
  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+) \*\//g, l, u = null, d = -1;
@@ -647,7 +713,7 @@ var w = (t, n) => {
647
713
  let t = n + l.index + l[0].length;
648
714
  t <= e.start && t > d && (d = t, u = l);
649
715
  }
650
- u && (r = u[1], i = parseInt(u[2], 10));
716
+ u && (r = u[1] === "undefined" ? void 0 : u[1], i = parseInt(u[2], 10));
651
717
  }
652
718
  return {
653
719
  message: n,
@@ -662,11 +728,11 @@ var w = (t, n) => {
662
728
  returnType: "void",
663
729
  diagnostics: c
664
730
  };
665
- }, N = (t, n, r) => {
666
- let i = JSON.stringify(n?.value), a = `
667
- ${b(r)}
731
+ }, L = (t, n, r) => {
732
+ let i = y(n?.value), a = `
733
+ ${w(r)}
668
734
  const testValue: ${t} = ${i};
669
- `, o = "index.ts", s = v(o, a).languageService.getSemanticDiagnostics(o).map((t) => {
735
+ `, o = "index.ts", s = S(o, a).languageService.getSemanticDiagnostics(o).map((t) => {
670
736
  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");
671
737
  return {
672
738
  message: n,
@@ -681,4 +747,4 @@ var w = (t, n) => {
681
747
  };
682
748
  };
683
749
  //#endregion
684
- export { m as DataTypeVariant, M as getFlowValidation, D as getNodeSuggestions, A as getReferenceSuggestions, w as getTypeFromValue, h as getTypeVariant, g as getTypesFromFunction, E as getTypesFromNode, T as getValueFromType, j as getValueSuggestions, N as getValueValidation };
750
+ export { m as DataTypeVariant, I as getFlowValidation, j as getNodeSuggestions, P as getReferenceSuggestions, O as getTypeFromValue, h as getTypeVariant, g as getTypesFromFunction, A as getTypesFromNode, k 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.9.2",
3
+ "version": "0.10.1",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/code0-tech/triangulum#readme",
6
6
  "bugs": {
@@ -23,17 +23,19 @@
23
23
  "build": "vite build"
24
24
  },
25
25
  "devDependencies": {
26
- "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2414125487-fbc8a5ec8a2dd07cc76957d4315281c246e98d57",
26
+ "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2432054881-32575715299651daa0758c145b8773a8f547330b",
27
27
  "@types/node": "^25.5.0",
28
+ "@typescript/vfs": "^1.6.4",
28
29
  "typescript": "^6.0.2",
29
30
  "vite": "^8.0.3",
30
31
  "vite-plugin-dts": "^4.5.4",
31
32
  "vitest": "^4.1.2",
32
- "@typescript/vfs": "^1.6.4"
33
+ "lossless-json": "^4.3.0"
33
34
  },
34
35
  "peerDependencies": {
35
- "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2414125487-fbc8a5ec8a2dd07cc76957d4315281c246e98d57",
36
+ "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2432054881-32575715299651daa0758c145b8773a8f547330b",
37
+ "@typescript/vfs": "^1.6.4",
36
38
  "typescript": "^5.9.3 || ^6.0.2",
37
- "@typescript/vfs": "^1.6.4"
39
+ "lossless-json": "^4.3.0"
38
40
  }
39
41
  }