@code0-tech/triangulum 0.32.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-Cezd6toj.cjs");let t=require("typescript");t=e.d(t,1);var n=(n,r)=>{let i=e.u(n?.value);if(!i)return`any`;let a=`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-9-y-1aUm.cjs");let t=require("typescript");t=e.d(t,1);var n=(n,r)=>{let i=e.u(n?.value);if(!i)return`any`;let a=`
2
2
  ${e.r(r,`unknown`)}
3
3
  const tempValue = ${i??`any`};
4
4
  `,o=`index.ts`,s=e.t(o,a),c=s.getSourceFile(o),l=s.languageService.getProgram().getTypeChecker(),u=`any`,d=e=>{if(t.default.isVariableDeclaration(e)&&e.name.getText()===`tempValue`){let n=l.getTypeAtLocation(e),r=n=>{if(n.isUnion()){let e=n.types.map(r);return Array.from(new Set(e)).sort().join(` | `)}if(l.isArrayType(n)){let e=n.typeArguments||[],t=e.length>0?r(e[0]):`any`;return e[0]?.isUnion()?`(${t})[]`:`${t}[]`}if(n.getFlags()&t.default.TypeFlags.Object||n.isClassOrInterface()){let t=l.getPropertiesOfType(n);if(t.length>0)return`{ ${t.map(t=>{let n=l.getTypeOfSymbolAtLocation(t,e);return`${t.getName()}: ${r(n)}`}).join(`, `)} }`}let i=l.getBaseTypeOfLiteralType(n);return l.typeToString(i,e)};u=r(n)}t.default.forEachChild(e,d)};return d(c),u},r=(n,r)=>{let i=`
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "./utils-Cn-uViWS.js";
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "./utils-DHs93w48.js";
2
2
  import u, { flattenDiagnosticMessageText as d } from "typescript";
3
3
  //#region src/extraction/getTypeFromValue.ts
4
4
  var f = (e, t) => {
package/dist/server.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-Cezd6toj.cjs");let t=require("typescript");t=e.d(t,1);let n=require("ts-json-schema-generator");var r={...n.DEFAULT_CONFIG,expose:`none`,topRef:!1,jsDoc:`none`,skipTypeCheck:!0},i=(e,t)=>{let n=Object.keys(e);if(n.length===0)return{};let r=o(a(e,t)),i={};for(let e of n)try{i[e]=s(r.createSchema(e))}catch{i[e]={}}return i},a=(t,n)=>{let r=Object.entries(t).map(([e,t])=>`export type ${e} = ${t};`).join(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-9-y-1aUm.cjs");let t=require("typescript");t=e.d(t,1);let n=require("ts-json-schema-generator");var r={...n.DEFAULT_CONFIG,expose:`none`,topRef:!1,jsDoc:`none`,skipTypeCheck:!0},i=(e,t)=>{let n=Object.keys(e);if(n.length===0)return{};let r=o(a(e,t)),i={};for(let e of n)try{i[e]=s(r.createSchema(e))}catch{i[e]={}}return i},a=(t,n)=>{let r=Object.entries(t).map(([e,t])=>`export type ${e} = ${t};`).join(`
2
2
  `);return`${e.r(n)}\n${r}`},o=t=>{let i=e.t(`index.ts`,t).languageService.getProgram();return new n.SchemaGenerator(i,(0,n.createParser)(i,r),(0,n.createFormatter)(r),r)},s=e=>{let{$schema:t,definitions:n,...r}=e,i=n&&Object.keys(n).length>0?{...r,definitions:n}:r;return JSON.parse(JSON.stringify(i))},c=(t,n,r)=>{if(!t)return;let a=`index.ts`,o=e.n(t,n,r),s=e.t(a,o),c=s.getSourceFile(a),d=s.languageService.getProgram().getTypeChecker(),m=i({...f(d,c),...p(d,c,t)},r),h=(t.nodes?.nodes??[]).map(e=>e&&b(e,m));return{...t,inputSchema:m[l]??v(),outputSchema:m[u]??y(),nodes:{...t.nodes,nodes:h}}},l=`Flow_input`,u=`Flow_output`,d=(t,n,r)=>`Node_${e.i(t)}_${n}_${r}`,f=(e,n)=>{let r=n.statements.filter(t.default.isFunctionDeclaration).find(e=>e.name?.getText()===`flow`);if(!r)return{};let i=e.getSignatureFromDeclaration(r);if(!i)return{};let{input:a,output:o}=_(e,i,r);return{[l]:a,[u]:o}},p=(e,t,n)=>{let r=w(t),i={};for(let t of n.nodes?.nodes??[]){if(!t?.id)continue;let n=t.parameters?.nodes;if(!n?.some(x))continue;let a=C(r,t);a&&n.forEach((n,r)=>{if(!x(n))return;let o=a.arguments[r],s=o?e.getTypeAtLocation(o).getCallSignatures()[0]:void 0;if(!s)return;let{input:c,output:l}=m(e,s,o);i[d(t.id,r,`input`)]=c,i[d(t.id,r,`output`)]=l})}return i},m=(e,n,r)=>({input:`{ ${h(e,n,r).join(`; `)} }`,output:(n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation))(e.getReturnTypeOfSignature(n))}),h=(e,n,r)=>{let i=n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation),a=n.getParameters();if(a.length===1){let t=g(e,e.getTypeOfSymbolAtLocation(a[0],a[0].valueDeclaration??r),r);if(t)return t}return a.map(t=>{let n=e.getTypeOfSymbolAtLocation(t,t.valueDeclaration??r),a=S(t)?`?`:``;return`${t.getName()}${a}: ${i(n)}`})},g=(e,n,r)=>{let i=n,a=i.target;if(!(!a||(a.objectFlags&t.default.ObjectFlags.Tuple)===0))return e.getTypeArguments(i).map((n,i)=>{let o=a.labeledElementDeclarations?.[i];return`${o?.name&&t.default.isIdentifier(o.name)?o.name.text:`arg${i}`}${(a.elementFlags[i]&t.default.ElementFlags.Optional)===0?``:`?`}: ${e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation)}`})},_=(e,n,r)=>{let i=n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation);return{input:`{ ${n.parameters.map(t=>{let n=e.getTypeOfSymbolAtLocation(t,t.valueDeclaration??r),a=S(t)?`?`:``;return`${t.getName()}${a}: ${i(n)}`}).join(`; `)} }`,output:i(e.getReturnTypeOfSignature(n))}},v=()=>({type:`object`}),y=()=>({}),b=(e,t)=>{let n=e.parameters?.nodes;if(!n?.some(x))return e;let r=n.map((n,r)=>{if(!x(n))return n;let i={...n.value,inputSchema:t[d(e.id,r,`input`)]??v(),outputSchema:t[d(e.id,r,`output`)]??y()};return{...n,value:i}});return{...e,parameters:{...e.parameters,nodes:r}}},x=e=>e?.value?.__typename===`SubFlowValue`,S=e=>{let n=e.valueDeclaration;return!!n&&t.default.isParameter(n)&&(!!n.questionToken||!!n.initializer||!!n.dotDotDotToken)},C=(n,r)=>{let i=n.get(`node_${e.i(r.id)}`)?.initializer;return i&&t.default.isCallExpression(i)?i:void 0},w=e=>{let n=new Map;return e.statements.forEach(e=>{e.forEachChild(function e(r){t.default.isVariableDeclaration(r)&&(r.parent.flags&t.default.NodeFlags.Const)!==0&&n.set(r.name.getText(),r),r.forEachChild(e)})}),n};exports.getFlowSchemas=c;
package/dist/server.js CHANGED
@@ -1,4 +1,4 @@
1
- import { i as e, n as t, r as n, t as r } from "./utils-Cn-uViWS.js";
1
+ import { i as e, n as t, r as n, t as r } from "./utils-DHs93w48.js";
2
2
  import i from "typescript";
3
3
  import { DEFAULT_CONFIG as a, SchemaGenerator as o, createFormatter as s, createParser as c } from "ts-json-schema-generator";
4
4
  //#region src/util/jsonSchema.util.ts
@@ -0,0 +1,45 @@
1
+ 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,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,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=te(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=v(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 ee(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 v(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 te(e,t,n,r,i){var a=[].concat(t),o=v(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 ne(e){return re.test(e)}var re=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;function y(e,t,n,r){let i=ie(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`||!ne(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?`[
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),o+=s!==void 0&&typeof s!=`function`?a(s,r):`null`,n<e.length-1&&(o+=i?`,
4
+ `:`,`)}return o+=i?`\n${n}]`:`]`,o}function s(e,r){if(typeof e.toJSON==`function`)return y(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?`{
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?`,
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 ie(e){if(typeof e==`number`)return` `.repeat(e);if(typeof e==`string`&&e!==``)return e}var b=e=>{if(c.default.isUnionTypeNode(e))return e.types.flatMap(b);if(c.default.isLiteralTypeNode(e)){let t=e.literal;if(c.default.isStringLiteral(t))return[{value:t.text,__typename:`LiteralValue`}];if(c.default.isNumericLiteral(t))return[{value:Number(t.text)}];if(t.kind===c.default.SyntaxKind.TrueKeyword)return[{value:!0,__typename:`LiteralValue`}];if(t.kind===c.default.SyntaxKind.FalseKeyword)return[{value:!1,__typename:`LiteralValue`}]}return[]},x=(e,t)=>{if(t&&e.aliasSymbol){let t=e.aliasSymbol.declarations?.[0];if(t&&c.default.isTypeAliasDeclaration(t))return b(t.type)}return e.isUnion()?e.types.flatMap(e=>x(e,t)):e.isStringLiteral()?[{value:e.value,__typename:`LiteralValue`}]:e.isNumberLiteral()?[{value:e.value.toString()}]:e.intrinsicName===`true`?[{value:!0,__typename:`LiteralValue`}]:e.intrinsicName===`false`?[{value:!1,__typename:`LiteralValue`}]:[]},S=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!C(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?w(i,o,e,n):i.startsWith(`p_`)?ae(i,o,e,n):i.startsWith(`flow_`)?oe(o,e,n):[]}),C=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),w=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=T(e.replace(`node_`,``));return O(t,n,r).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(t.referencePath=e),t})},ae=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=se(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>O(e,n,r).flatMap(({path:e})=>{let n={__typename:`ReferenceValue`,nodeFunctionId:i,parameterIndex:isNaN(a)?0:a,inputIndex:t,inputTypeIdentifier:o.target.labeledElementDeclarations?.[t].name.getText()};return e.length>0&&(n.referencePath=e),n}))},oe=(e,t,n)=>O(e,t,n).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(t.referencePath=e),t}),T=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),se=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:T(r),paramIndexFromName:i}},ce=7,E=(e,t,n)=>{let r=n.get(e);if(r!==void 0)return r;let i=new Set,a=n=>{if(i.has(n)||!k(n))return!1;i.add(n);for(let r of n.getProperties()){if(!r.valueDeclaration)continue;let n=t.getNonNullableType(t.getTypeOfSymbolAtLocation(r,r.valueDeclaration));if(n===e||a(n))return!0}return!1},o=a(e);return n.set(e,o),o},D=(e,t,n)=>e.isUnion()?e.types.some(e=>D(t.getNonNullableType(e),t,n)):(e.flags&c.default.TypeFlags.Never)===0&&t.isTypeAssignableTo(e,n),le=(e,t)=>e.isUnion()?e.types.map(e=>t.getNonNullableType(e)).filter(k):k(e)?[e]:[],O=(e,t,n,r=[],i=new Set,a=new Map)=>{let o=[],s=t.getNonNullableType(e);return D(s,t,n)&&o.push({path:r,type:e}),le(s,t).forEach(e=>{if(i.has(e)||r.length>=ce&&E(e,t,a))return;let s=e.getProperties();s&&s.length>0&&(i.add(e),s.forEach(e=>{let s=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),c=e.getName(),l=[...r,{path:c}];o.push(...O(s,t,n,l,i,a))}),i.delete(e))}),o},k=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},ue=(e,t,n,r)=>J(r)?[]:t.flatMap(t=>{let i=de(e,t,n,r);return i?[i]:[]}),de=(e,t,n,r)=>{if(t.parameters.length>0)return null;let i=e.getSignatureFromDeclaration(t),a=fe(e,e.getReturnTypeOfSignature(i)),o=e.getNonNullableType(a);if((o.flags&c.default.TypeFlags.Never)!==0||!e.isTypeAssignableTo(o,r))return null;let s=pe(t.name?.getText());return A(n.find(e=>e.identifier===s))},fe=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,pe=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,A=e=>{let t=(e?.parameterDefinitions?.nodes?.length??0)>0,n={__typename:`NodeFunction`,id:`gid://sagittarius/NodeFunction/1`,functionDefinition:{__typename:`FunctionDefinition`,id:e?.id,identifier:e?.identifier,names:e?.names,descriptions:e?.descriptions,displayIcon:e?.displayIcon}};return t&&(n.parameters=j(e?.parameterDefinitions?.nodes||[])),n},j=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>M(e))}),M=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),N=(e,t,n,r)=>J(r)?t.flatMap(t=>{let i=P(e,t,n,r);return i?[i]:[]}):[],P=(e,t,n,r)=>{let i=e.getTypeAtLocation(t);if(!e.isTypeAssignableTo(i,r))return null;let a=F(t.name?.getText()),o=n.find(e=>e.identifier===a);return o?I(o):null},F=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,I=e=>({__typename:`SubFlowValue`,functionDefinition:e,signature:e.signature,settings:e.parameterDefinitions?.nodes?.map(e=>({__typename:`SubFlowValueSetting`,identifier:e?.identifier,defaultValue:e?.defaultValue??null,hidden:e?.hidden??!1,optional:e?.optional??!1}))}),L={DATE:`date`},R=e=>e!=null&&e in L,z=7,B=(e,t,n,r,i,a=!0,o,s=new Set,l=new Map)=>{if((n.flags&c.default.TypeFlags.TypeParameter)!==0){let u=n.symbol?.declarations?.[0];if(u&&c.default.isTypeParameterDeclaration(u)&&u.constraint)return B(e,t,e.getTypeFromTypeNode(u.constraint),r,i,a,o,s,l)}let u=e.typeToString(R(n.aliasSymbol?.getName())&&n.isIntersection()?n.types.find(e=>(e.flags&c.default.TypeFlags.Object)===0)??n:{...n,aliasSymbol:void 0}),d=o??n,f=a?{suggestions:[...x(d,e),...t?S(e,t,d,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...ue(e,r,i,d),...N(e,r,i,d)]}:{};if(n.isUnion()){let a=n.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);if(a.length===1)return{...B(e,t,a[0],r,i,!1,void 0,s,l),type:u,...f}}let p=ye(n);if(p)return{input:p,type:u,...f};if(H(e,n))return{input:`file`,type:u,mimetype:U(e,n),...f};if(be(e,n))return{input:`color`,type:u,...f};if(W(n))return{input:`boolean`,type:u,...f};if(q(n))return{input:`select`,type:u,...f};if(G(n))return{input:`number`,type:u,...f};if(K(n))return{input:`text`,type:u,...f};if(J(n))return{input:`sub-flow`,type:u,...f};if(we(e,n)){let o=e.getTypeArguments(n);if(o.length===1&&H(e,o[0]))return{input:`list-file`,type:u,mimetype:U(e,o[0]),...f};let c=o.flatMap(n=>(n.isUnion()?n.types:[n]).map(n=>B(e,t,n,r,i,a,void 0,s,l)));if(o.length===1&&q(o[0]))return{input:`list-select`,type:u,items:c,...f};if(o.length===1){let e=o[0];if(W(e))return{input:`list-boolean`,type:u,items:c,...f};if(G(e))return{input:`list-number`,type:u,items:c,...f};if(K(e))return{input:`list-text`,type:u,items:c,...f};if(J(e))return{input:`list-sub-flow`,type:u,items:c,...f}}return{input:`list`,type:u,items:c,...f}}if((n.flags&c.default.TypeFlags.Object)!==0){if(s.has(n)||s.size>=z&&E(n,e,l))return{input:`data`,type:u,...f};s.add(n);let o={},d=[];for(let u of e.getPropertiesOfType(n)){let n=u.valueDeclaration??u.declarations?.[0];if(!n)continue;let f=e.getTypeOfSymbolAtLocation(u,n),p=(u.flags&c.default.SymbolFlags.Optional)!==0||f.isUnion()&&f.types.some(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))!==0),m=(f.isUnion()?f.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0):[f]).map(n=>B(e,t,n,r,i,a,void 0,s,l));o[u.name]=m.length===1?m[0]:m,p||d.push(u.name)}return s.delete(n),{input:`data`,type:u,properties:o,required:d,...f}}return{input:`generic`,type:u,...f}},me=new Set([`list`,`list-select`,`list-boolean`,`list-number`,`list-text`,`list-sub-flow`]),V=(e,t,n=!1)=>{if(!e||e.input===`generic`)return _e(ve(t),n);let r=ge(e.suggestions,t.suggestions);if(e.input===`data`){let n=e.properties??{},i=t.input===`data`?t.properties??{}:{},a={},o=new Set([...Object.keys(n),...Object.keys(i)]);for(let e of o){let t=n[e],r=i[e];a[e]=he(t,r)}return{...e,properties:a,...r?{suggestions:r}:{}}}if(me.has(e.input)){let n=e.items??[],i=t.input===e.input?t.items??[]:[],a=n.length===i.length&&n.length>0?n.map((e,t)=>V(e,i[t])):n;return{...e,items:a,...r?{suggestions:r}:{}}}return{...e,...r?{suggestions:r}:{}}},he=(e,t)=>e&&!Array.isArray(e)&&t&&!Array.isArray(t)?V(e,t):e??t,ge=(e,t)=>{let n=[...e??[],...t??[]];if(n.length===0)return;let r=new Set,i=[];for(let e of n){let t=JSON.stringify(e);r.has(t)||(r.add(t),i.push(e))}return i},_e=(e,t)=>!t||e.input!==`generic`?e:{input:`data`,...e.type?{type:e.type}:{},properties:{},required:[],...e.suggestions?{suggestions:e.suggestions}:{}},ve=e=>{if(e.input!==`select`)return e;let t=e.suggestions??[],n=new Set;for(let e of t){let t=typeof e.value;(t===`string`||t===`number`||t===`boolean`)&&n.add(t)}return{input:n.size===1?{string:`text`,number:`number`,boolean:`boolean`}[[...n][0]]:`text`,...e.type?{type:e.type}:{},...t.length>0?{suggestions:t}:{}}};function ye(e){let t=e.aliasSymbol?.getName();return R(t)?L[t]:void 0}function H(e,t){if(t.aliasSymbol?.getName()!==`FILE`||(t.flags&c.default.TypeFlags.Object)===0)return!1;let n=e.getPropertiesOfType(t);if(n.length!==4)return!1;let r=new Map(n.map(e=>[e.name,e])),i=r.get(`valueType`);if(!r.has(`contentType`)||!r.has(`fileName`)||!r.has(`value`)||!i)return!1;let a=i.valueDeclaration??i.declarations?.[0];if(!a)return!1;let o=e.getTypeOfSymbolAtLocation(i,a);return o.isStringLiteral()&&o.value===`base64`}function be(e,t){if(t.aliasSymbol?.getName()!==`COLOR`||(t.flags&c.default.TypeFlags.Object)===0)return!1;let n=new Map(e.getPropertiesOfType(t).map(e=>[e.name,e]));return[`hue`,`saturation`,`lightness`].every(t=>{let r=n.get(t);if(!r)return!1;let i=r.valueDeclaration??r.declarations?.[0];return i?G(e.getTypeOfSymbolAtLocation(r,i)):!1})}function U(e,t){let n=/^(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)\/(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)$/,r=e.getPropertiesOfType(t).find(e=>e.name===`contentType`);if(!r)return`*/*`;let i=r.valueDeclaration??r.declarations?.[0];if(!i)return`*/*`;let a=e.getTypeOfSymbolAtLocation(r,i);return a.isStringLiteral()&&n.test(a.value)?a.value:`*/*`}function W(e){if((e.flags&c.default.TypeFlags.Boolean)!==0||(e.flags&c.default.TypeFlags.BooleanLiteral)!==0)return!0;if(e.isUnion()){let t=e.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);return t.length>0&&t.every(e=>(e.flags&c.default.TypeFlags.Boolean)!==0||(e.flags&c.default.TypeFlags.BooleanLiteral)!==0)}return!1}function G(e){return(e.flags&c.default.TypeFlags.Number)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function K(e){return(e.flags&c.default.TypeFlags.String)!==0||(e.flags&c.default.TypeFlags.StringLiteral)!==0}function xe(e){return K(e)||G(e)||W(e)}function Se(e){return(e.flags&c.default.TypeFlags.StringLiteral)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function q(e){return W(e)?!1:Ce(e)||Se(e)}function Ce(e){if(!e.isUnion())return!1;let t=e.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);return t.length>0&&t.every(xe)}function we(e,t){return e.isArrayType(t)||e.isTupleType(t)}function J(e){return e.getCallSignatures().length>0}var Te=`
7
+ interface Array<T> {
8
+ [n: number]: T;
9
+ length: number;
10
+ }
11
+ interface String { readonly length: number; }
12
+ interface Number { }
13
+ interface Boolean { }
14
+ interface Object { }
15
+ interface Function { }
16
+ interface CallableFunction extends Function {}
17
+ interface NewableFunction extends Function {}
18
+ interface IArguments { }
19
+ interface RegExp { }
20
+
21
+ declare namespace Utils {
22
+ type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;
23
+ }
24
+
25
+ import ReturnType = Utils.ReturnType;
26
+ `;function Ee(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,Te),p(ee(n),[e,`lib.codezero.d.ts`],c.default,De)}var De={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function Y(e){let t=[],n=0,r=null,i=``;for(let a of e){if(r)a===r&&(r=null);else if(a===`'`||a===`"`||a==="`")r=a;else if(a===`<`||a===`{`||a===`(`||a===`[`)n++;else if(a===`>`||a===`}`||a===`)`||a===`]`)n--;else if(a===`,`&&n===0){t.push(i),i=``;continue}i+=a}return t.push(i),t.map(e=>(e.trim().split(/\s+/).find(e=>e!==`const`&&e!==`in`&&e!==`out`)??``).match(/^[A-Za-z_$][A-Za-z0-9_$]*/)?.[0]??``).filter(e=>e.length>0)}function X(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]).flatMap(Y))).map(e=>`type ${e} = ${t};`).join(`
27
+ `),i=e?.map(e=>{let t=(e.genericKeys?.length??0)>0?`<${e.genericKeys?.join(`,`)}>`:``,n=R(e.identifier)?`${e.type} & {}`:e.type;return`type ${e.identifier}${t} = ${n};`}).join(`
28
+ `),a=e?.filter(e=>(e.genericKeys?.length??0)>0).map(e=>`declare const __widen_${e.identifier}: ${e.identifier}<${e.genericKeys.map(()=>`any`).join(`, `)}>;`).join(`
29
+ `)??``;return`${n?r:``}\n${i}\n${a}`}var Z=e=>e?.replace(/[^a-zA-Z0-9]/g,`_`),Q=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),Oe=(e,t)=>{let n=e.match(/^\$\{([^}]+)\}$/);if(n&&t.has(n[1]))return t.get(n[1]);let r=/\$\{([^}]+)\}/g,i=!1;for(let n of e.matchAll(r))if(t.has(n[1])){i=!0;break}if(!i)return y(e)??`""`;let a=``,o=0;for(let n of e.matchAll(r)){let[r,i]=n,s=n.index;a+=Q(e.slice(o,s)),a+=t.has(i)?"${"+t.get(i)+`}`:Q(r),o=s+r.length}return a+=Q(e.slice(o)),"`"+a+"`"},$=(e,t)=>typeof e==`string`?Oe(e,t):Array.isArray(e)?`[${e.map(e=>$(e,t)).join(`, `)}]`:typeof e==`object`&&e?`{${Object.entries(e).map(([e,n])=>`${y(e)}: ${$(n,t)}`).join(`, `)}}`:y(e)??`undefined`;function ke(e,t,n,r=!1,i=!0){let a=e?.nodes?.nodes||[],o=new Map(t?.map(e=>[e.identifier,e])),s=new Set,c=t=>{let n=typeof t.inputIndex==`number`?`p_${Z(t.nodeFunctionId??`undefined`)}_${t.parameterIndex}[${t.inputIndex}]`:t.nodeFunctionId?`node_${Z(t.nodeFunctionId)}`:`flow_${Z(e?.id??`undefined`)}`;return t.referencePath?.forEach(e=>{n+=`?.${e.path}`}),`(${n})${i?`!`:``}`},l=(e,t,n,r)=>!e.startingNodeId&&e.functionDefinition?.identifier?`fn_${e.functionDefinition.identifier.replace(/::/g,`_`)}`:`(...${`p_${Z(t)}_${n}`}) => {\n${d(e.startingNodeId||e.functionDefinition?.id,r+` `)}${r}}`,u=(e,t,n)=>{if(e==null)return;let r=new Map;for(let e of t??[]){if(!e?.signature)continue;let t=e.value;if(t?.__typename===`ReferenceValue`)r.set(e.signature,c(t));else if(t?.__typename===`LiteralValue`){let i=u(t.value,t.references,n);i!==void 0&&r.set(e.signature,i)}else t?.__typename===`SubFlowValue`&&r.set(e.signature,l(t,n.id,n.index,n.indent))}return r.size===0?y(e):$(e,r)},d=(e,t=``)=>{let n=a.find(t=>t?.id===e);if(!n||!n.functionDefinition)return``;if(e?.includes(`NodeFunction`)&&s.add(e),!o.get(n.functionDefinition.identifier))return`${t}// Error: Function ${n.functionDefinition.identifier} not found\n`;let i=(n.parameters?.nodes||[]).map((n,i)=>{let a=n.value;return a?a.__typename===`ReferenceValue`?`/* @pos ${e} ${i} */ ${c(a)}`:a.__typename===`LiteralValue`?`/* @pos ${e} ${i} */ ${u(a.value,a.references,{id:e,index:i,indent:t})}`:a.__typename===`SubFlowValue`?`/* @pos ${e} ${i} */ ${l(a,e,i,t)}`:r?`/* @pos ${e} ${i} */ {}`:`/* @pos ${e} ${i} */ undefined`:r?`/* @pos ${e} ${i} */ {}`:`/* @pos ${e} ${i} */ undefined`}),f=`node_${Z(n.id)}`,p=`fn_${n?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;i.includes(`undefined`);let m=`${t}`;return n.functionDefinition.identifier===`std::control::return`?(m+=`const ${f} = /* @pos ${e} null */ ${p}(${i.join(`, `)}) ;\n`,m+=`return ${f};\n`):n.functionDefinition.identifier===`std::control::if`?(m+=`const ${f} = /* @pos ${e} null */ ${p}(${i.join(`, `)}) ;\n`,m+=`if(${i[0]}) {
30
+ ${d(n.parameters?.nodes?.[1]?.value?.startingNodeId||(n.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,t+` `)}
31
+ }`):n.functionDefinition.identifier===`std::control::if_else`?(m+=`const ${f} = /* @pos ${e} null */ ${p}(${i.join(`, `)}) ;\n`,m+=`if(${i[0]}) {
32
+ ${d(n.parameters?.nodes?.[1]?.value?.startingNodeId||(n.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,t+` `)}
33
+ } else {
34
+ ${d(n.parameters?.nodes?.[2]?.value?.startingNodeId||(n.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier,t+` `)}
35
+ }`):m+=`const ${f} = /* @pos ${e} null */ ${p}(${i.join(`, `)}) ;\n`,n.nextNodeId&&(m+=d(n.nextNodeId,t)),m},f=X(n),p=`declare function flow${e?.signature??`(): void`}`,m=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
36
+ `),h=new Set(a.map(e=>e?.nextNodeId).filter(e=>!!e)),g=new Set;return a.forEach(e=>e?.parameters?.nodes?.forEach(e=>{e?.value?.__typename===`SubFlowValue`&&(e.value.startingNodeId||e.value.functionDefinition?.id)&&g.add(e.value.startingNodeId||e.value.functionDefinition?.id)})),`
37
+ ${f}\n
38
+ ${p}\n
39
+ ${m}\n
40
+ (() =>
41
+ ${e?`const flow_${Z(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>`/* @pos null ${t} */ ${e?.value!==null&&e?.value!==void 0?y(e?.value):void 0}`).join(`, `)??``});`:``}
42
+ ${a.filter(e=>e?.id&&!h.has(e.id)&&!g.has(e.id)).map(e=>d(e.id)).join(`
43
+ `)}
44
+ )();
45
+ `}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return y}});
@@ -284,22 +284,22 @@ var _ = (t) => {
284
284
  let a = r.getDeclarations()?.[0];
285
285
  if (!a || a.getEnd() >= t.getEnd()) return [];
286
286
  let o = e.getTypeOfSymbolAtLocation(r, t);
287
- return i.startsWith("node_") ? ee(i, o, e, n) : i.startsWith("p_") ? te(i, o, e, n) : i.startsWith("flow_") ? ne(o, e, n) : [];
288
- }), b = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), ee = (t, n, r, i) => {
287
+ return i.startsWith("node_") ? x(i, o, e, n) : i.startsWith("p_") ? ee(i, o, e, n) : i.startsWith("flow_") ? te(o, e, n) : [];
288
+ }), b = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), x = (t, n, r, i) => {
289
289
  if ((n.flags & e.TypeFlags.Void) !== 0) return [];
290
- let a = x(t.replace("node_", ""));
291
- return E(n, r, i).flatMap(({ path: e }) => {
290
+ let a = S(t.replace("node_", ""));
291
+ return D(n, r, i).flatMap(({ path: e }) => {
292
292
  let t = {
293
293
  __typename: "ReferenceValue",
294
294
  nodeFunctionId: a
295
295
  };
296
296
  return e.length > 0 && (t.referencePath = e), t;
297
297
  });
298
- }, te = (e, t, n, r) => {
299
- let { nodeFunctionId: i, paramIndexFromName: a } = S(e);
298
+ }, ee = (e, t, n, r) => {
299
+ let { nodeFunctionId: i, paramIndexFromName: a } = C(e);
300
300
  if (!n.isTupleType(t)) return [];
301
301
  let o = t;
302
- return n.getTypeArguments(o).flatMap((e, t) => E(e, n, r).flatMap(({ path: e }) => {
302
+ return n.getTypeArguments(o).flatMap((e, t) => D(e, n, r).flatMap(({ path: e }) => {
303
303
  let n = {
304
304
  __typename: "ReferenceValue",
305
305
  nodeFunctionId: i,
@@ -309,23 +309,23 @@ var _ = (t) => {
309
309
  };
310
310
  return e.length > 0 && (n.referencePath = e), n;
311
311
  }));
312
- }, ne = (e, t, n) => E(e, t, n).flatMap(({ path: e }) => {
312
+ }, te = (e, t, n) => D(e, t, n).flatMap(({ path: e }) => {
313
313
  let t = {
314
314
  __typename: "ReferenceValue",
315
315
  nodeFunctionId: null
316
316
  };
317
317
  return e.length > 0 && (t.referencePath = e), t;
318
- }), x = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), S = (e) => {
318
+ }), S = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), C = (e) => {
319
319
  let t = e.replace("p_", ""), n = t.lastIndexOf("_"), r = t.substring(0, n), i = parseInt(t.substring(n + 1), 10);
320
320
  return {
321
- nodeFunctionId: x(r),
321
+ nodeFunctionId: S(r),
322
322
  paramIndexFromName: i
323
323
  };
324
- }, C = 7, w = (e, t, n) => {
324
+ }, w = 7, T = (e, t, n) => {
325
325
  let r = n.get(e);
326
326
  if (r !== void 0) return r;
327
327
  let i = /* @__PURE__ */ new Set(), a = (n) => {
328
- if (i.has(n) || !D(n)) return !1;
328
+ if (i.has(n) || !O(n)) return !1;
329
329
  i.add(n);
330
330
  for (let r of n.getProperties()) {
331
331
  if (!r.valueDeclaration) continue;
@@ -335,32 +335,32 @@ var _ = (t) => {
335
335
  return !1;
336
336
  }, o = a(e);
337
337
  return n.set(e, o), o;
338
- }, T = (t, n, r) => t.isUnion() ? t.types.some((e) => T(n.getNonNullableType(e), n, r)) : (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r), re = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(D) : D(e) ? [e] : [], E = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
338
+ }, E = (t, n, r) => t.isUnion() ? t.types.some((e) => E(n.getNonNullableType(e), n, r)) : (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r), ne = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(O) : O(e) ? [e] : [], D = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
339
339
  let o = [], s = t.getNonNullableType(e);
340
- return T(s, t, n) && o.push({
340
+ return E(s, t, n) && o.push({
341
341
  path: r,
342
342
  type: e
343
- }), re(s, t).forEach((e) => {
344
- if (i.has(e) || r.length >= C && w(e, t, a)) return;
343
+ }), ne(s, t).forEach((e) => {
344
+ if (i.has(e) || r.length >= w && T(e, t, a)) return;
345
345
  let s = e.getProperties();
346
346
  s && s.length > 0 && (i.add(e), s.forEach((e) => {
347
347
  let s = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration), c = e.getName(), l = [...r, { path: c }];
348
- o.push(...E(s, t, n, l, i, a));
348
+ o.push(...D(s, t, n, l, i, a));
349
349
  }), i.delete(e));
350
350
  }), o;
351
- }, D = (t) => {
351
+ }, O = (t) => {
352
352
  let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
353
353
  return (t.flags & n) === 0;
354
- }, ie = (e, t, n, r) => X(r) ? [] : t.flatMap((t) => {
355
- let i = ae(e, t, n, r);
354
+ }, re = (e, t, n, r) => J(r) ? [] : t.flatMap((t) => {
355
+ let i = ie(e, t, n, r);
356
356
  return i ? [i] : [];
357
- }), ae = (t, n, r, i) => {
357
+ }), ie = (t, n, r, i) => {
358
358
  if (n.parameters.length > 0) return null;
359
- let a = t.getSignatureFromDeclaration(n), o = oe(t, t.getReturnTypeOfSignature(a)), s = t.getNonNullableType(o);
359
+ let a = t.getSignatureFromDeclaration(n), o = ae(t, t.getReturnTypeOfSignature(a)), s = t.getNonNullableType(o);
360
360
  if ((s.flags & e.TypeFlags.Never) !== 0 || !t.isTypeAssignableTo(s, i)) return null;
361
- let c = se(n.name?.getText());
362
- return ce(r.find((e) => e.identifier === c));
363
- }, oe = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, se = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", ce = (e) => {
361
+ let c = oe(n.name?.getText());
362
+ return se(r.find((e) => e.identifier === c));
363
+ }, ae = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, oe = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", se = (e) => {
364
364
  let t = (e?.parameterDefinitions?.nodes?.length ?? 0) > 0, n = {
365
365
  __typename: "NodeFunction",
366
366
  id: "gid://sagittarius/NodeFunction/1",
@@ -373,11 +373,11 @@ var _ = (t) => {
373
373
  displayIcon: e?.displayIcon
374
374
  }
375
375
  };
376
- return t && (n.parameters = le(e?.parameterDefinitions?.nodes || [])), n;
377
- }, le = (e) => ({
376
+ return t && (n.parameters = ce(e?.parameterDefinitions?.nodes || [])), n;
377
+ }, ce = (e) => ({
378
378
  __typename: "NodeParameterConnection",
379
- nodes: e.map((e) => O(e))
380
- }), O = (e) => ({
379
+ nodes: e.map((e) => le(e))
380
+ }), le = (e) => ({
381
381
  __typename: "NodeParameter",
382
382
  parameterDefinition: {
383
383
  __typename: "ParameterDefinition",
@@ -388,15 +388,15 @@ var _ = (t) => {
388
388
  __typename: "LiteralValue",
389
389
  value: e.defaultValue.value
390
390
  } : null
391
- }), k = (e, t, n, r) => X(r) ? t.flatMap((t) => {
392
- let i = A(e, t, n, r);
391
+ }), ue = (e, t, n, r) => J(r) ? t.flatMap((t) => {
392
+ let i = de(e, t, n, r);
393
393
  return i ? [i] : [];
394
- }) : [], A = (e, t, n, r) => {
394
+ }) : [], de = (e, t, n, r) => {
395
395
  let i = e.getTypeAtLocation(t);
396
396
  if (!e.isTypeAssignableTo(i, r)) return null;
397
- let a = j(t.name?.getText()), o = n.find((e) => e.identifier === a);
398
- return o ? M(o) : null;
399
- }, j = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", M = (e) => ({
397
+ let a = k(t.name?.getText()), o = n.find((e) => e.identifier === a);
398
+ return o ? A(o) : null;
399
+ }, k = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", A = (e) => ({
400
400
  __typename: "SubFlowValue",
401
401
  functionDefinition: e,
402
402
  signature: e.signature,
@@ -407,80 +407,80 @@ var _ = (t) => {
407
407
  hidden: e?.hidden ?? !1,
408
408
  optional: e?.optional ?? !1
409
409
  }))
410
- }), N = { DATE: "date" }, P = (e) => e != null && e in N, F = 7, I = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map()) => {
410
+ }), j = { DATE: "date" }, M = (e) => e != null && e in j, N = 7, P = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map()) => {
411
411
  if ((r.flags & e.TypeFlags.TypeParameter) !== 0) {
412
412
  let u = r.symbol?.declarations?.[0];
413
- if (u && e.isTypeParameterDeclaration(u) && u.constraint) return I(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
413
+ if (u && e.isTypeParameterDeclaration(u) && u.constraint) return P(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
414
414
  }
415
- let u = t.typeToString(P(r.aliasSymbol?.getName()) && r.isIntersection() ? r.types.find((t) => (t.flags & e.TypeFlags.Object) === 0) ?? r : {
415
+ let u = t.typeToString(M(r.aliasSymbol?.getName()) && r.isIntersection() ? r.types.find((t) => (t.flags & e.TypeFlags.Object) === 0) ?? r : {
416
416
  ...r,
417
417
  aliasSymbol: void 0
418
418
  }), d = s ?? r, f = o ? { suggestions: [
419
419
  ...v(d, t),
420
420
  ...n ? y(t, n, d, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
421
- ...ie(t, i, a, d),
422
- ...k(t, i, a, d)
421
+ ...re(t, i, a, d),
422
+ ...ue(t, i, a, d)
423
423
  ] } : {};
424
424
  if (r.isUnion()) {
425
425
  let o = r.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
426
426
  if (o.length === 1) return {
427
- ...I(t, n, o[0], i, a, !1, void 0, c, l),
427
+ ...P(t, n, o[0], i, a, !1, void 0, c, l),
428
428
  type: u,
429
429
  ...f
430
430
  };
431
431
  }
432
- let p = U(r);
432
+ let p = V(r);
433
433
  if (p) return {
434
434
  input: p,
435
435
  type: u,
436
436
  ...f
437
437
  };
438
- if (W(t, r)) return {
438
+ if (H(t, r)) return {
439
439
  input: "file",
440
440
  type: u,
441
- mimetype: G(t, r),
441
+ mimetype: U(t, r),
442
442
  ...f
443
443
  };
444
- if (ue(t, r)) return {
444
+ if (fe(t, r)) return {
445
445
  input: "color",
446
446
  type: u,
447
447
  ...f
448
448
  };
449
- if (K(r)) return {
449
+ if (W(r)) return {
450
450
  input: "boolean",
451
451
  type: u,
452
452
  ...f
453
453
  };
454
- if (Y(r)) return {
454
+ if (q(r)) return {
455
455
  input: "select",
456
456
  type: u,
457
457
  ...f
458
458
  };
459
- if (q(r)) return {
459
+ if (G(r)) return {
460
460
  input: "number",
461
461
  type: u,
462
462
  ...f
463
463
  };
464
- if (J(r)) return {
464
+ if (K(r)) return {
465
465
  input: "text",
466
466
  type: u,
467
467
  ...f
468
468
  };
469
- if (X(r)) return {
469
+ if (J(r)) return {
470
470
  input: "sub-flow",
471
471
  type: u,
472
472
  ...f
473
473
  };
474
- if (me(t, r)) {
474
+ if (ge(t, r)) {
475
475
  let e = t.getTypeArguments(r);
476
- if (e.length === 1 && W(t, e[0])) return {
476
+ if (e.length === 1 && H(t, e[0])) return {
477
477
  input: "list-file",
478
478
  type: u,
479
- mimetype: G(t, e[0]),
479
+ mimetype: U(t, e[0]),
480
480
  ...f
481
481
  };
482
- let s = e.flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => I(t, n, e, i, a, o, void 0, c, l)));
483
- if (e.length === 1 && Y(e[0])) return {
482
+ let s = e.flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => P(t, n, e, i, a, o, void 0, c, l)));
483
+ if (e.length === 1 && q(e[0])) return {
484
484
  input: "list-select",
485
485
  type: u,
486
486
  items: s,
@@ -488,25 +488,25 @@ var _ = (t) => {
488
488
  };
489
489
  if (e.length === 1) {
490
490
  let t = e[0];
491
- if (K(t)) return {
491
+ if (W(t)) return {
492
492
  input: "list-boolean",
493
493
  type: u,
494
494
  items: s,
495
495
  ...f
496
496
  };
497
- if (q(t)) return {
497
+ if (G(t)) return {
498
498
  input: "list-number",
499
499
  type: u,
500
500
  items: s,
501
501
  ...f
502
502
  };
503
- if (J(t)) return {
503
+ if (K(t)) return {
504
504
  input: "list-text",
505
505
  type: u,
506
506
  items: s,
507
507
  ...f
508
508
  };
509
- if (X(t)) return {
509
+ if (J(t)) return {
510
510
  input: "list-sub-flow",
511
511
  type: u,
512
512
  items: s,
@@ -521,7 +521,7 @@ var _ = (t) => {
521
521
  };
522
522
  }
523
523
  if ((r.flags & e.TypeFlags.Object) !== 0) {
524
- if (c.has(r) || c.size >= F && w(r, t, l)) return {
524
+ if (c.has(r) || c.size >= N && T(r, t, l)) return {
525
525
  input: "data",
526
526
  type: u,
527
527
  ...f
@@ -531,7 +531,7 @@ var _ = (t) => {
531
531
  for (let u of t.getPropertiesOfType(r)) {
532
532
  let r = u.valueDeclaration ?? u.declarations?.[0];
533
533
  if (!r) continue;
534
- let f = t.getTypeOfSymbolAtLocation(u, r), p = (u.flags & e.SymbolFlags.Optional) !== 0 || f.isUnion() && f.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), m = (f.isUnion() ? f.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0) : [f]).map((e) => I(t, n, e, i, a, o, void 0, c, l));
534
+ let f = t.getTypeOfSymbolAtLocation(u, r), p = (u.flags & e.SymbolFlags.Optional) !== 0 || f.isUnion() && f.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), m = (f.isUnion() ? f.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0) : [f]).map((e) => P(t, n, e, i, a, o, void 0, c, l));
535
535
  s[u.name] = m.length === 1 ? m[0] : m, p || d.push(u.name);
536
536
  }
537
537
  return c.delete(r), {
@@ -547,21 +547,21 @@ var _ = (t) => {
547
547
  type: u,
548
548
  ...f
549
549
  };
550
- }, L = /* @__PURE__ */ new Set([
550
+ }, F = /* @__PURE__ */ new Set([
551
551
  "list",
552
552
  "list-select",
553
553
  "list-boolean",
554
554
  "list-number",
555
555
  "list-text",
556
556
  "list-sub-flow"
557
- ]), R = (e, t, n = !1) => {
558
- if (!e || e.input === "generic") return V(H(t), n);
559
- let r = B(e.suggestions, t.suggestions);
557
+ ]), I = (e, t, n = !1) => {
558
+ if (!e || e.input === "generic") return z(B(t), n);
559
+ let r = R(e.suggestions, t.suggestions);
560
560
  if (e.input === "data") {
561
561
  let n = e.properties ?? {}, i = t.input === "data" ? t.properties ?? {} : {}, a = {}, o = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(i)]);
562
562
  for (let e of o) {
563
563
  let t = n[e], r = i[e];
564
- a[e] = z(t, r);
564
+ a[e] = L(t, r);
565
565
  }
566
566
  return {
567
567
  ...e,
@@ -569,8 +569,8 @@ var _ = (t) => {
569
569
  ...r ? { suggestions: r } : {}
570
570
  };
571
571
  }
572
- if (L.has(e.input)) {
573
- let n = e.items ?? [], i = t.input === e.input ? t.items ?? [] : [], a = n.length === i.length && n.length > 0 ? n.map((e, t) => R(e, i[t])) : n;
572
+ if (F.has(e.input)) {
573
+ let n = e.items ?? [], i = t.input === e.input ? t.items ?? [] : [], a = n.length === i.length && n.length > 0 ? n.map((e, t) => I(e, i[t])) : n;
574
574
  return {
575
575
  ...e,
576
576
  items: a,
@@ -581,7 +581,7 @@ var _ = (t) => {
581
581
  ...e,
582
582
  ...r ? { suggestions: r } : {}
583
583
  };
584
- }, z = (e, t) => e && !Array.isArray(e) && t && !Array.isArray(t) ? R(e, t) : e ?? t, B = (e, t) => {
584
+ }, L = (e, t) => e && !Array.isArray(e) && t && !Array.isArray(t) ? I(e, t) : e ?? t, R = (e, t) => {
585
585
  let n = [...e ?? [], ...t ?? []];
586
586
  if (n.length === 0) return;
587
587
  let r = /* @__PURE__ */ new Set(), i = [];
@@ -590,13 +590,13 @@ var _ = (t) => {
590
590
  r.has(t) || (r.add(t), i.push(e));
591
591
  }
592
592
  return i;
593
- }, V = (e, t) => !t || e.input !== "generic" ? e : {
593
+ }, z = (e, t) => !t || e.input !== "generic" ? e : {
594
594
  input: "data",
595
595
  ...e.type ? { type: e.type } : {},
596
596
  properties: {},
597
597
  required: [],
598
598
  ...e.suggestions ? { suggestions: e.suggestions } : {}
599
- }, H = (e) => {
599
+ }, B = (e) => {
600
600
  if (e.input !== "select") return e;
601
601
  let t = e.suggestions ?? [], n = /* @__PURE__ */ new Set();
602
602
  for (let e of t) {
@@ -613,11 +613,11 @@ var _ = (t) => {
613
613
  ...t.length > 0 ? { suggestions: t } : {}
614
614
  };
615
615
  };
616
- function U(e) {
616
+ function V(e) {
617
617
  let t = e.aliasSymbol?.getName();
618
- return P(t) ? N[t] : void 0;
618
+ return M(t) ? j[t] : void 0;
619
619
  }
620
- function W(t, n) {
620
+ function H(t, n) {
621
621
  if (n.aliasSymbol?.getName() !== "FILE" || (n.flags & e.TypeFlags.Object) === 0) return !1;
622
622
  let r = t.getPropertiesOfType(n);
623
623
  if (r.length !== 4) return !1;
@@ -628,7 +628,7 @@ function W(t, n) {
628
628
  let s = t.getTypeOfSymbolAtLocation(a, o);
629
629
  return s.isStringLiteral() && s.value === "base64";
630
630
  }
631
- function ue(t, n) {
631
+ function fe(t, n) {
632
632
  if (n.aliasSymbol?.getName() !== "COLOR" || (n.flags & e.TypeFlags.Object) === 0) return !1;
633
633
  let r = new Map(t.getPropertiesOfType(n).map((e) => [e.name, e]));
634
634
  return [
@@ -639,10 +639,10 @@ function ue(t, n) {
639
639
  let n = r.get(e);
640
640
  if (!n) return !1;
641
641
  let i = n.valueDeclaration ?? n.declarations?.[0];
642
- return i ? q(t.getTypeOfSymbolAtLocation(n, i)) : !1;
642
+ return i ? G(t.getTypeOfSymbolAtLocation(n, i)) : !1;
643
643
  });
644
644
  }
645
- function G(e, t) {
645
+ function U(e, t) {
646
646
  let n = /^(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)\/(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)$/, r = e.getPropertiesOfType(t).find((e) => e.name === "contentType");
647
647
  if (!r) return "*/*";
648
648
  let i = r.valueDeclaration ?? r.declarations?.[0];
@@ -650,7 +650,7 @@ function G(e, t) {
650
650
  let a = e.getTypeOfSymbolAtLocation(r, i);
651
651
  return a.isStringLiteral() && n.test(a.value) ? a.value : "*/*";
652
652
  }
653
- function K(t) {
653
+ function W(t) {
654
654
  if ((t.flags & e.TypeFlags.Boolean) !== 0 || (t.flags & e.TypeFlags.BooleanLiteral) !== 0) return !0;
655
655
  if (t.isUnion()) {
656
656
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
@@ -658,46 +658,46 @@ function K(t) {
658
658
  }
659
659
  return !1;
660
660
  }
661
- function q(t) {
661
+ function G(t) {
662
662
  return (t.flags & e.TypeFlags.Number) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
663
663
  }
664
- function J(t) {
664
+ function K(t) {
665
665
  return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
666
666
  }
667
- function de(e) {
668
- return J(e) || q(e) || K(e);
667
+ function pe(e) {
668
+ return K(e) || G(e) || W(e);
669
669
  }
670
- function fe(t) {
670
+ function me(t) {
671
671
  return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
672
672
  }
673
- function Y(e) {
674
- return K(e) ? !1 : pe(e) || fe(e);
673
+ function q(e) {
674
+ return W(e) ? !1 : he(e) || me(e);
675
675
  }
676
- function pe(t) {
676
+ function he(t) {
677
677
  if (!t.isUnion()) return !1;
678
678
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
679
- return n.length > 0 && n.every(de);
679
+ return n.length > 0 && n.every(pe);
680
680
  }
681
- function me(e, t) {
681
+ function ge(e, t) {
682
682
  return e.isArrayType(t) || e.isTupleType(t);
683
683
  }
684
- function X(e) {
684
+ function J(e) {
685
685
  return e.getCallSignatures().length > 0;
686
686
  }
687
687
  //#endregion
688
688
  //#region src/utils.ts
689
- var he = "\n interface Array<T> { \n [n: number]: T; \n length: number; \n }\n interface String { readonly length: number; }\n interface Number { }\n interface Boolean { }\n interface Object { }\n interface Function { }\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n interface IArguments { }\n interface RegExp { }\n \n declare namespace Utils {\n type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\n }\n\n import ReturnType = Utils.ReturnType;\n";
690
- function Z(t, n) {
689
+ var _e = "\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";
690
+ function Y(t, n) {
691
691
  let r = /* @__PURE__ */ new Map();
692
- return r.set(t, n), r.set("lib.codezero.d.ts", he), a(u(r), [t, "lib.codezero.d.ts"], e, ge);
692
+ return r.set(t, n), r.set("lib.codezero.d.ts", _e), a(u(r), [t, "lib.codezero.d.ts"], e, ve);
693
693
  }
694
- var ge = {
694
+ var ve = {
695
695
  target: e.ScriptTarget.Latest,
696
696
  lib: ["lib.codezero.d.ts"],
697
697
  noEmit: !0,
698
698
  strictNullChecks: !0
699
699
  };
700
- function _e(e) {
700
+ function ye(e) {
701
701
  let t = [], n = 0, r = null, i = "";
702
702
  for (let a of e) {
703
703
  if (r) a === r && (r = null);
@@ -712,56 +712,81 @@ function _e(e) {
712
712
  }
713
713
  return t.push(i), t.map((e) => (e.trim().split(/\s+/).find((e) => e !== "const" && e !== "in" && e !== "out") ?? "").match(/^[A-Za-z_$][A-Za-z0-9_$]*/)?.[0] ?? "").filter((e) => e.length > 0);
714
714
  }
715
- function Q(e, t = "any", n = !0) {
716
- let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(_e))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
717
- let t = (e.genericKeys?.length ?? 0) > 0 ? `<${e.genericKeys?.join(",")}>` : "", n = P(e.identifier) ? `${e.type} & {}` : e.type;
715
+ function X(e, t = "any", n = !0) {
716
+ let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(ye))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
717
+ let t = (e.genericKeys?.length ?? 0) > 0 ? `<${e.genericKeys?.join(",")}>` : "", n = M(e.identifier) ? `${e.type} & {}` : e.type;
718
718
  return `type ${e.identifier}${t} = ${n};`;
719
719
  }).join("\n"), a = e?.filter((e) => (e.genericKeys?.length ?? 0) > 0).map((e) => `declare const __widen_${e.identifier}: ${e.identifier}<${e.genericKeys.map(() => "any").join(", ")}>;`).join("\n") ?? "";
720
720
  return `${n ? r : ""}\n${i}\n${a}`;
721
721
  }
722
- var $ = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_");
723
- function ve(e, t, n, r = !1, i = !0) {
724
- let a = e?.nodes?.nodes || [], o = new Map(t?.map((e) => [e.identifier, e])), s = /* @__PURE__ */ new Set(), c = (t, n = "") => {
725
- let l = a.find((e) => e?.id === t);
726
- if (!l || !l.functionDefinition) return "";
727
- if (t?.includes("NodeFunction") && s.add(t), !o.get(l.functionDefinition.identifier)) return `${n}// Error: Function ${l.functionDefinition.identifier} not found\n`;
728
- let u = (l.parameters?.nodes || []).map((a, o) => {
729
- let s = a.value;
730
- if (!s) return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
731
- if (s.__typename === "ReferenceValue") {
732
- let n = s, r = typeof n.inputIndex == "number" ? `p_${$(n.nodeFunctionId ?? "undefined")}_${n.parameterIndex}[${n.inputIndex}]` : n.nodeFunctionId ? `node_${$(n.nodeFunctionId)}` : `flow_${$(e?.id ?? "undefined")}`;
733
- return n.referencePath?.forEach((e) => {
734
- r += `?.${e.path}`;
735
- }), `/* @pos ${t} ${o} */ (${r})${i ? "!" : ""}`;
736
- }
737
- if (s.__typename === "LiteralValue") return `/* @pos ${t} ${o} */ ${s?.value !== null && s?.value !== void 0 ? h(s?.value) : void 0}`;
738
- if (s.__typename === "SubFlowValue") {
739
- let e = s;
740
- return !e.startingNodeId && e.functionDefinition?.identifier ? `/* @pos ${t} ${o} */ ${`fn_${e.functionDefinition.identifier.replace(/::/g, "_")}`}` : `/* @pos ${t} ${o} */ (...${`p_${$(t)}_${o}`}) => {\n${c(e.startingNodeId || e.functionDefinition?.id, n + " ")}${n}}`;
741
- }
742
- return r ? `/* @pos ${t} ${o} */ {}` : `/* @pos ${t} ${o} */ undefined`;
743
- }), d = `node_${$(l.id)}`, f = `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
744
- u.includes("undefined");
745
- let p = `${n}`;
746
- return l.functionDefinition.identifier === "std::control::return" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `return ${d};\n`) : l.functionDefinition.identifier === "std::control::if" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `if(${u[0]}) {
747
- ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId || (l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, n + " ")}
748
- }`) : l.functionDefinition.identifier === "std::control::if_else" ? (p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, p += `if(${u[0]}) {
749
- ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId || (l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, n + " ")}
722
+ var Z = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_"), Q = (e) => e.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"), be = (e, t) => {
723
+ let n = e.match(/^\$\{([^}]+)\}$/);
724
+ if (n && t.has(n[1])) return t.get(n[1]);
725
+ let r = /\$\{([^}]+)\}/g, i = !1;
726
+ for (let n of e.matchAll(r)) if (t.has(n[1])) {
727
+ i = !0;
728
+ break;
729
+ }
730
+ if (!i) return h(e) ?? "\"\"";
731
+ let a = "", o = 0;
732
+ for (let n of e.matchAll(r)) {
733
+ let [r, i] = n, s = n.index;
734
+ a += Q(e.slice(o, s)), a += t.has(i) ? "${" + t.get(i) + "}" : Q(r), o = s + r.length;
735
+ }
736
+ return a += Q(e.slice(o)), "`" + a + "`";
737
+ }, $ = (e, t) => typeof e == "string" ? be(e, t) : Array.isArray(e) ? `[${e.map((e) => $(e, t)).join(", ")}]` : typeof e == "object" && e ? `{${Object.entries(e).map(([e, n]) => `${h(e)}: ${$(n, t)}`).join(", ")}}` : h(e) ?? "undefined";
738
+ function xe(e, t, n, r = !1, i = !0) {
739
+ let a = e?.nodes?.nodes || [], o = new Map(t?.map((e) => [e.identifier, e])), s = /* @__PURE__ */ new Set(), c = (t) => {
740
+ let n = typeof t.inputIndex == "number" ? `p_${Z(t.nodeFunctionId ?? "undefined")}_${t.parameterIndex}[${t.inputIndex}]` : t.nodeFunctionId ? `node_${Z(t.nodeFunctionId)}` : `flow_${Z(e?.id ?? "undefined")}`;
741
+ return t.referencePath?.forEach((e) => {
742
+ n += `?.${e.path}`;
743
+ }), `(${n})${i ? "!" : ""}`;
744
+ }, l = (e, t, n, r) => !e.startingNodeId && e.functionDefinition?.identifier ? `fn_${e.functionDefinition.identifier.replace(/::/g, "_")}` : `(...${`p_${Z(t)}_${n}`}) => {\n${d(e.startingNodeId || e.functionDefinition?.id, r + " ")}${r}}`, u = (e, t, n) => {
745
+ if (e == null) return;
746
+ let r = /* @__PURE__ */ new Map();
747
+ for (let e of t ?? []) {
748
+ if (!e?.signature) continue;
749
+ let t = e.value;
750
+ if (t?.__typename === "ReferenceValue") r.set(e.signature, c(t));
751
+ else if (t?.__typename === "LiteralValue") {
752
+ let i = u(t.value, t.references, n);
753
+ i !== void 0 && r.set(e.signature, i);
754
+ } else t?.__typename === "SubFlowValue" && r.set(e.signature, l(t, n.id, n.index, n.indent));
755
+ }
756
+ return r.size === 0 ? h(e) : $(e, r);
757
+ }, d = (e, t = "") => {
758
+ let n = a.find((t) => t?.id === e);
759
+ if (!n || !n.functionDefinition) return "";
760
+ if (e?.includes("NodeFunction") && s.add(e), !o.get(n.functionDefinition.identifier)) return `${t}// Error: Function ${n.functionDefinition.identifier} not found\n`;
761
+ let i = (n.parameters?.nodes || []).map((n, i) => {
762
+ let a = n.value;
763
+ return a ? a.__typename === "ReferenceValue" ? `/* @pos ${e} ${i} */ ${c(a)}` : a.__typename === "LiteralValue" ? `/* @pos ${e} ${i} */ ${u(a.value, a.references, {
764
+ id: e,
765
+ index: i,
766
+ indent: t
767
+ })}` : a.__typename === "SubFlowValue" ? `/* @pos ${e} ${i} */ ${l(a, e, i, t)}` : r ? `/* @pos ${e} ${i} */ {}` : `/* @pos ${e} ${i} */ undefined` : r ? `/* @pos ${e} ${i} */ {}` : `/* @pos ${e} ${i} */ undefined`;
768
+ }), f = `node_${Z(n.id)}`, p = `fn_${n?.functionDefinition?.identifier?.replace(/::/g, "_")}`;
769
+ i.includes("undefined");
770
+ let m = `${t}`;
771
+ return n.functionDefinition.identifier === "std::control::return" ? (m += `const ${f} = /* @pos ${e} null */ ${p}(${i.join(", ")}) ;\n`, m += `return ${f};\n`) : n.functionDefinition.identifier === "std::control::if" ? (m += `const ${f} = /* @pos ${e} null */ ${p}(${i.join(", ")}) ;\n`, m += `if(${i[0]}) {
772
+ ${d(n.parameters?.nodes?.[1]?.value?.startingNodeId || (n.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, t + " ")}
773
+ }`) : n.functionDefinition.identifier === "std::control::if_else" ? (m += `const ${f} = /* @pos ${e} null */ ${p}(${i.join(", ")}) ;\n`, m += `if(${i[0]}) {
774
+ ${d(n.parameters?.nodes?.[1]?.value?.startingNodeId || (n.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier, t + " ")}
750
775
  } else {
751
- ${c(l.parameters?.nodes?.[2]?.value?.startingNodeId || (l.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier, n + " ")}
752
- }`) : p += `const ${d} = /* @pos ${t} null */ ${f}(${u.join(", ")}) ;\n`, l.nextNodeId && (p += c(l.nextNodeId, n)), p;
753
- }, l = Q(n), u = `declare function flow${e?.signature ?? "(): void"}`, d = t?.map((e) => `declare function fn_${e.identifier?.replace(/::/g, "_")}${e.signature}`).join("\n"), f = new Set(a.map((e) => e?.nextNodeId).filter((e) => !!e)), p = /* @__PURE__ */ new Set();
776
+ ${d(n.parameters?.nodes?.[2]?.value?.startingNodeId || (n.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier, t + " ")}
777
+ }`) : m += `const ${f} = /* @pos ${e} null */ ${p}(${i.join(", ")}) ;\n`, n.nextNodeId && (m += d(n.nextNodeId, t)), m;
778
+ }, f = X(n), p = `declare function flow${e?.signature ?? "(): void"}`, m = t?.map((e) => `declare function fn_${e.identifier?.replace(/::/g, "_")}${e.signature}`).join("\n"), g = new Set(a.map((e) => e?.nextNodeId).filter((e) => !!e)), _ = /* @__PURE__ */ new Set();
754
779
  return a.forEach((e) => e?.parameters?.nodes?.forEach((e) => {
755
- e?.value?.__typename === "SubFlowValue" && (e.value.startingNodeId || e.value.functionDefinition?.id) && p.add(e.value.startingNodeId || e.value.functionDefinition?.id);
780
+ e?.value?.__typename === "SubFlowValue" && (e.value.startingNodeId || e.value.functionDefinition?.id) && _.add(e.value.startingNodeId || e.value.functionDefinition?.id);
756
781
  })), `
757
- ${l}\n
758
- ${u}\n
759
- ${d}\n
782
+ ${f}\n
783
+ ${p}\n
784
+ ${m}\n
760
785
  (() =>
761
- ${e ? `const flow_${$(e.id ?? "")} = /* @pos null null */ flow(${e.settings?.nodes?.map((e, t) => `/* @pos null ${t} */ ${e?.value !== null && e?.value !== void 0 ? h(e?.value) : void 0}`).join(", ") ?? ""});` : ""}
762
- ${a.filter((e) => e?.id && !f.has(e.id) && !p.has(e.id)).map((e) => c(e.id)).join("\n")}
786
+ ${e ? `const flow_${Z(e.id ?? "")} = /* @pos null null */ flow(${e.settings?.nodes?.map((e, t) => `/* @pos null ${t} */ ${e?.value !== null && e?.value !== void 0 ? h(e?.value) : void 0}`).join(", ") ?? ""});` : ""}
787
+ ${a.filter((e) => e?.id && !g.has(e.id) && !_.has(e.id)).map((e) => d(e.id)).join("\n")}
763
788
  )();
764
789
  `;
765
790
  }
766
791
  //#endregion
767
- export { N as a, X as c, $ as i, R as l, ve as n, I as o, Q as r, P as s, Z as t, h as u };
792
+ export { j as a, J as c, Z as i, I as l, xe as n, P as o, X as r, M as s, Y as t, h as u };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code0-tech/triangulum",
3
- "version": "0.32.0",
3
+ "version": "0.33.0",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/code0-tech/triangulum#readme",
6
6
  "bugs": {
@@ -35,7 +35,7 @@
35
35
  "build": "vite build"
36
36
  },
37
37
  "devDependencies": {
38
- "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2744343400-55133b9bb6062772c50f83d945a22a531a6e48e2",
38
+ "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2780674370-053799e843870f117430b3b00f75ffec35767193",
39
39
  "@types/node": "^25.6.0",
40
40
  "@typescript/vfs": "^1.6.4",
41
41
  "lossless-json": "^4.3.1",
@@ -46,7 +46,7 @@
46
46
  "vitest": "^4.1.8"
47
47
  },
48
48
  "peerDependencies": {
49
- "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2744343400-55133b9bb6062772c50f83d945a22a531a6e48e2",
49
+ "@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2780674370-053799e843870f117430b3b00f75ffec35767193",
50
50
  "@typescript/vfs": "^1.6.4",
51
51
  "lossless-json": "^4.3.0",
52
52
  "ts-json-schema-generator": "^2.9.0",
@@ -1,45 +0,0 @@
1
- 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,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,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=te(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=v(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 ee(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 v(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 te(e,t,n,r,i){var a=[].concat(t),o=v(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 ne(e){return re.test(e)}var re=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;function y(e,t,n,r){let i=ie(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`||!ne(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?`[
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),o+=s!==void 0&&typeof s!=`function`?a(s,r):`null`,n<e.length-1&&(o+=i?`,
4
- `:`,`)}return o+=i?`\n${n}]`:`]`,o}function s(e,r){if(typeof e.toJSON==`function`)return y(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?`{
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?`,
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 ie(e){if(typeof e==`number`)return` `.repeat(e);if(typeof e==`string`&&e!==``)return e}var b=e=>{if(c.default.isUnionTypeNode(e))return e.types.flatMap(b);if(c.default.isLiteralTypeNode(e)){let t=e.literal;if(c.default.isStringLiteral(t))return[{value:t.text,__typename:`LiteralValue`}];if(c.default.isNumericLiteral(t))return[{value:Number(t.text)}];if(t.kind===c.default.SyntaxKind.TrueKeyword)return[{value:!0,__typename:`LiteralValue`}];if(t.kind===c.default.SyntaxKind.FalseKeyword)return[{value:!1,__typename:`LiteralValue`}]}return[]},x=(e,t)=>{if(t&&e.aliasSymbol){let t=e.aliasSymbol.declarations?.[0];if(t&&c.default.isTypeAliasDeclaration(t))return b(t.type)}return e.isUnion()?e.types.flatMap(e=>x(e,t)):e.isStringLiteral()?[{value:e.value,__typename:`LiteralValue`}]:e.isNumberLiteral()?[{value:e.value.toString()}]:e.intrinsicName===`true`?[{value:!0,__typename:`LiteralValue`}]:e.intrinsicName===`false`?[{value:!1,__typename:`LiteralValue`}]:[]},S=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!C(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?w(i,o,e,n):i.startsWith(`p_`)?ae(i,o,e,n):i.startsWith(`flow_`)?oe(o,e,n):[]}),C=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),w=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=T(e.replace(`node_`,``));return O(t,n,r).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(t.referencePath=e),t})},ae=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=se(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>O(e,n,r).flatMap(({path:e})=>{let n={__typename:`ReferenceValue`,nodeFunctionId:i,parameterIndex:isNaN(a)?0:a,inputIndex:t,inputTypeIdentifier:o.target.labeledElementDeclarations?.[t].name.getText()};return e.length>0&&(n.referencePath=e),n}))},oe=(e,t,n)=>O(e,t,n).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(t.referencePath=e),t}),T=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),se=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:T(r),paramIndexFromName:i}},ce=7,E=(e,t,n)=>{let r=n.get(e);if(r!==void 0)return r;let i=new Set,a=n=>{if(i.has(n)||!k(n))return!1;i.add(n);for(let r of n.getProperties()){if(!r.valueDeclaration)continue;let n=t.getNonNullableType(t.getTypeOfSymbolAtLocation(r,r.valueDeclaration));if(n===e||a(n))return!0}return!1},o=a(e);return n.set(e,o),o},D=(e,t,n)=>e.isUnion()?e.types.some(e=>D(t.getNonNullableType(e),t,n)):(e.flags&c.default.TypeFlags.Never)===0&&t.isTypeAssignableTo(e,n),le=(e,t)=>e.isUnion()?e.types.map(e=>t.getNonNullableType(e)).filter(k):k(e)?[e]:[],O=(e,t,n,r=[],i=new Set,a=new Map)=>{let o=[],s=t.getNonNullableType(e);return D(s,t,n)&&o.push({path:r,type:e}),le(s,t).forEach(e=>{if(i.has(e)||r.length>=ce&&E(e,t,a))return;let s=e.getProperties();s&&s.length>0&&(i.add(e),s.forEach(e=>{let s=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),c=e.getName(),l=[...r,{path:c}];o.push(...O(s,t,n,l,i,a))}),i.delete(e))}),o},k=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},ue=(e,t,n,r)=>X(r)?[]:t.flatMap(t=>{let i=de(e,t,n,r);return i?[i]:[]}),de=(e,t,n,r)=>{if(t.parameters.length>0)return null;let i=e.getSignatureFromDeclaration(t),a=A(e,e.getReturnTypeOfSignature(i)),o=e.getNonNullableType(a);if((o.flags&c.default.TypeFlags.Never)!==0||!e.isTypeAssignableTo(o,r))return null;let s=j(t.name?.getText());return M(n.find(e=>e.identifier===s))},A=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,j=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,M=e=>{let t=(e?.parameterDefinitions?.nodes?.length??0)>0,n={__typename:`NodeFunction`,id:`gid://sagittarius/NodeFunction/1`,functionDefinition:{__typename:`FunctionDefinition`,id:e?.id,identifier:e?.identifier,names:e?.names,descriptions:e?.descriptions,displayIcon:e?.displayIcon}};return t&&(n.parameters=N(e?.parameterDefinitions?.nodes||[])),n},N=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>P(e))}),P=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),F=(e,t,n,r)=>X(r)?t.flatMap(t=>{let i=I(e,t,n,r);return i?[i]:[]}):[],I=(e,t,n,r)=>{let i=e.getTypeAtLocation(t);if(!e.isTypeAssignableTo(i,r))return null;let a=L(t.name?.getText()),o=n.find(e=>e.identifier===a);return o?R(o):null},L=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,R=e=>({__typename:`SubFlowValue`,functionDefinition:e,signature:e.signature,settings:e.parameterDefinitions?.nodes?.map(e=>({__typename:`SubFlowValueSetting`,identifier:e?.identifier,defaultValue:e?.defaultValue??null,hidden:e?.hidden??!1,optional:e?.optional??!1}))}),z={DATE:`date`},B=e=>e!=null&&e in z,V=7,H=(e,t,n,r,i,a=!0,o,s=new Set,l=new Map)=>{if((n.flags&c.default.TypeFlags.TypeParameter)!==0){let u=n.symbol?.declarations?.[0];if(u&&c.default.isTypeParameterDeclaration(u)&&u.constraint)return H(e,t,e.getTypeFromTypeNode(u.constraint),r,i,a,o,s,l)}let u=e.typeToString(B(n.aliasSymbol?.getName())&&n.isIntersection()?n.types.find(e=>(e.flags&c.default.TypeFlags.Object)===0)??n:{...n,aliasSymbol:void 0}),d=o??n,f=a?{suggestions:[...x(d,e),...t?S(e,t,d,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...ue(e,r,i,d),...F(e,r,i,d)]}:{};if(n.isUnion()){let a=n.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);if(a.length===1)return{...H(e,t,a[0],r,i,!1,void 0,s,l),type:u,...f}}let p=_e(n);if(p)return{input:p,type:u,...f};if(W(e,n))return{input:`file`,type:u,mimetype:G(e,n),...f};if(ve(e,n))return{input:`color`,type:u,...f};if(K(n))return{input:`boolean`,type:u,...f};if(Y(n))return{input:`select`,type:u,...f};if(q(n))return{input:`number`,type:u,...f};if(J(n))return{input:`text`,type:u,...f};if(X(n))return{input:`sub-flow`,type:u,...f};if(Se(e,n)){let o=e.getTypeArguments(n);if(o.length===1&&W(e,o[0]))return{input:`list-file`,type:u,mimetype:G(e,o[0]),...f};let c=o.flatMap(n=>(n.isUnion()?n.types:[n]).map(n=>H(e,t,n,r,i,a,void 0,s,l)));if(o.length===1&&Y(o[0]))return{input:`list-select`,type:u,items:c,...f};if(o.length===1){let e=o[0];if(K(e))return{input:`list-boolean`,type:u,items:c,...f};if(q(e))return{input:`list-number`,type:u,items:c,...f};if(J(e))return{input:`list-text`,type:u,items:c,...f};if(X(e))return{input:`list-sub-flow`,type:u,items:c,...f}}return{input:`list`,type:u,items:c,...f}}if((n.flags&c.default.TypeFlags.Object)!==0){if(s.has(n)||s.size>=V&&E(n,e,l))return{input:`data`,type:u,...f};s.add(n);let o={},d=[];for(let u of e.getPropertiesOfType(n)){let n=u.valueDeclaration??u.declarations?.[0];if(!n)continue;let f=e.getTypeOfSymbolAtLocation(u,n),p=(u.flags&c.default.SymbolFlags.Optional)!==0||f.isUnion()&&f.types.some(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))!==0),m=(f.isUnion()?f.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0):[f]).map(n=>H(e,t,n,r,i,a,void 0,s,l));o[u.name]=m.length===1?m[0]:m,p||d.push(u.name)}return s.delete(n),{input:`data`,type:u,properties:o,required:d,...f}}return{input:`generic`,type:u,...f}},fe=new Set([`list`,`list-select`,`list-boolean`,`list-number`,`list-text`,`list-sub-flow`]),U=(e,t,n=!1)=>{if(!e||e.input===`generic`)return he(ge(t),n);let r=me(e.suggestions,t.suggestions);if(e.input===`data`){let n=e.properties??{},i=t.input===`data`?t.properties??{}:{},a={},o=new Set([...Object.keys(n),...Object.keys(i)]);for(let e of o){let t=n[e],r=i[e];a[e]=pe(t,r)}return{...e,properties:a,...r?{suggestions:r}:{}}}if(fe.has(e.input)){let n=e.items??[],i=t.input===e.input?t.items??[]:[],a=n.length===i.length&&n.length>0?n.map((e,t)=>U(e,i[t])):n;return{...e,items:a,...r?{suggestions:r}:{}}}return{...e,...r?{suggestions:r}:{}}},pe=(e,t)=>e&&!Array.isArray(e)&&t&&!Array.isArray(t)?U(e,t):e??t,me=(e,t)=>{let n=[...e??[],...t??[]];if(n.length===0)return;let r=new Set,i=[];for(let e of n){let t=JSON.stringify(e);r.has(t)||(r.add(t),i.push(e))}return i},he=(e,t)=>!t||e.input!==`generic`?e:{input:`data`,...e.type?{type:e.type}:{},properties:{},required:[],...e.suggestions?{suggestions:e.suggestions}:{}},ge=e=>{if(e.input!==`select`)return e;let t=e.suggestions??[],n=new Set;for(let e of t){let t=typeof e.value;(t===`string`||t===`number`||t===`boolean`)&&n.add(t)}return{input:n.size===1?{string:`text`,number:`number`,boolean:`boolean`}[[...n][0]]:`text`,...e.type?{type:e.type}:{},...t.length>0?{suggestions:t}:{}}};function _e(e){let t=e.aliasSymbol?.getName();return B(t)?z[t]:void 0}function W(e,t){if(t.aliasSymbol?.getName()!==`FILE`||(t.flags&c.default.TypeFlags.Object)===0)return!1;let n=e.getPropertiesOfType(t);if(n.length!==4)return!1;let r=new Map(n.map(e=>[e.name,e])),i=r.get(`valueType`);if(!r.has(`contentType`)||!r.has(`fileName`)||!r.has(`value`)||!i)return!1;let a=i.valueDeclaration??i.declarations?.[0];if(!a)return!1;let o=e.getTypeOfSymbolAtLocation(i,a);return o.isStringLiteral()&&o.value===`base64`}function ve(e,t){if(t.aliasSymbol?.getName()!==`COLOR`||(t.flags&c.default.TypeFlags.Object)===0)return!1;let n=new Map(e.getPropertiesOfType(t).map(e=>[e.name,e]));return[`hue`,`saturation`,`lightness`].every(t=>{let r=n.get(t);if(!r)return!1;let i=r.valueDeclaration??r.declarations?.[0];return i?q(e.getTypeOfSymbolAtLocation(r,i)):!1})}function G(e,t){let n=/^(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)\/(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)$/,r=e.getPropertiesOfType(t).find(e=>e.name===`contentType`);if(!r)return`*/*`;let i=r.valueDeclaration??r.declarations?.[0];if(!i)return`*/*`;let a=e.getTypeOfSymbolAtLocation(r,i);return a.isStringLiteral()&&n.test(a.value)?a.value:`*/*`}function K(e){if((e.flags&c.default.TypeFlags.Boolean)!==0||(e.flags&c.default.TypeFlags.BooleanLiteral)!==0)return!0;if(e.isUnion()){let t=e.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);return t.length>0&&t.every(e=>(e.flags&c.default.TypeFlags.Boolean)!==0||(e.flags&c.default.TypeFlags.BooleanLiteral)!==0)}return!1}function q(e){return(e.flags&c.default.TypeFlags.Number)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function J(e){return(e.flags&c.default.TypeFlags.String)!==0||(e.flags&c.default.TypeFlags.StringLiteral)!==0}function ye(e){return J(e)||q(e)||K(e)}function be(e){return(e.flags&c.default.TypeFlags.StringLiteral)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function Y(e){return K(e)?!1:xe(e)||be(e)}function xe(e){if(!e.isUnion())return!1;let t=e.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);return t.length>0&&t.every(ye)}function Se(e,t){return e.isArrayType(t)||e.isTupleType(t)}function X(e){return e.getCallSignatures().length>0}var Ce=`
7
- interface Array<T> {
8
- [n: number]: T;
9
- length: number;
10
- }
11
- interface String { readonly length: number; }
12
- interface Number { }
13
- interface Boolean { }
14
- interface Object { }
15
- interface Function { }
16
- interface CallableFunction extends Function {}
17
- interface NewableFunction extends Function {}
18
- interface IArguments { }
19
- interface RegExp { }
20
-
21
- declare namespace Utils {
22
- type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;
23
- }
24
-
25
- import ReturnType = Utils.ReturnType;
26
- `;function we(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,Ce),p(ee(n),[e,`lib.codezero.d.ts`],c.default,Te)}var Te={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function Z(e){let t=[],n=0,r=null,i=``;for(let a of e){if(r)a===r&&(r=null);else if(a===`'`||a===`"`||a==="`")r=a;else if(a===`<`||a===`{`||a===`(`||a===`[`)n++;else if(a===`>`||a===`}`||a===`)`||a===`]`)n--;else if(a===`,`&&n===0){t.push(i),i=``;continue}i+=a}return t.push(i),t.map(e=>(e.trim().split(/\s+/).find(e=>e!==`const`&&e!==`in`&&e!==`out`)??``).match(/^[A-Za-z_$][A-Za-z0-9_$]*/)?.[0]??``).filter(e=>e.length>0)}function Q(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]).flatMap(Z))).map(e=>`type ${e} = ${t};`).join(`
27
- `),i=e?.map(e=>{let t=(e.genericKeys?.length??0)>0?`<${e.genericKeys?.join(`,`)}>`:``,n=B(e.identifier)?`${e.type} & {}`:e.type;return`type ${e.identifier}${t} = ${n};`}).join(`
28
- `),a=e?.filter(e=>(e.genericKeys?.length??0)>0).map(e=>`declare const __widen_${e.identifier}: ${e.identifier}<${e.genericKeys.map(()=>`any`).join(`, `)}>;`).join(`
29
- `)??``;return`${n?r:``}\n${i}\n${a}`}var $=e=>e?.replace(/[^a-zA-Z0-9]/g,`_`);function Ee(e,t,n,r=!1,i=!0){let a=e?.nodes?.nodes||[],o=new Map(t?.map(e=>[e.identifier,e])),s=new Set,c=(t,n=``)=>{let l=a.find(e=>e?.id===t);if(!l||!l.functionDefinition)return``;if(t?.includes(`NodeFunction`)&&s.add(t),!o.get(l.functionDefinition.identifier))return`${n}// Error: Function ${l.functionDefinition.identifier} not found\n`;let u=(l.parameters?.nodes||[]).map((a,o)=>{let s=a.value;if(!s)return r?`/* @pos ${t} ${o} */ {}`:`/* @pos ${t} ${o} */ undefined`;if(s.__typename===`ReferenceValue`){let n=s,r=typeof n.inputIndex==`number`?`p_${$(n.nodeFunctionId??`undefined`)}_${n.parameterIndex}[${n.inputIndex}]`:n.nodeFunctionId?`node_${$(n.nodeFunctionId)}`:`flow_${$(e?.id??`undefined`)}`;return n.referencePath?.forEach(e=>{r+=`?.${e.path}`}),`/* @pos ${t} ${o} */ (${r})${i?`!`:``}`}if(s.__typename===`LiteralValue`)return`/* @pos ${t} ${o} */ ${s?.value!==null&&s?.value!==void 0?y(s?.value):void 0}`;if(s.__typename===`SubFlowValue`){let e=s;return!e.startingNodeId&&e.functionDefinition?.identifier?`/* @pos ${t} ${o} */ ${`fn_${e.functionDefinition.identifier.replace(/::/g,`_`)}`}`:`/* @pos ${t} ${o} */ (...${`p_${$(t)}_${o}`}) => {\n${c(e.startingNodeId||e.functionDefinition?.id,n+` `)}${n}}`}return r?`/* @pos ${t} ${o} */ {}`:`/* @pos ${t} ${o} */ undefined`}),d=`node_${$(l.id)}`,f=`fn_${l?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;u.includes(`undefined`);let p=`${n}`;return l.functionDefinition.identifier===`std::control::return`?(p+=`const ${d} = /* @pos ${t} null */ ${f}(${u.join(`, `)}) ;\n`,p+=`return ${d};\n`):l.functionDefinition.identifier===`std::control::if`?(p+=`const ${d} = /* @pos ${t} null */ ${f}(${u.join(`, `)}) ;\n`,p+=`if(${u[0]}) {
30
- ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId||(l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,n+` `)}
31
- }`):l.functionDefinition.identifier===`std::control::if_else`?(p+=`const ${d} = /* @pos ${t} null */ ${f}(${u.join(`, `)}) ;\n`,p+=`if(${u[0]}) {
32
- ${c(l.parameters?.nodes?.[1]?.value?.startingNodeId||(l.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,n+` `)}
33
- } else {
34
- ${c(l.parameters?.nodes?.[2]?.value?.startingNodeId||(l.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier,n+` `)}
35
- }`):p+=`const ${d} = /* @pos ${t} null */ ${f}(${u.join(`, `)}) ;\n`,l.nextNodeId&&(p+=c(l.nextNodeId,n)),p},l=Q(n),u=`declare function flow${e?.signature??`(): void`}`,d=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
36
- `),f=new Set(a.map(e=>e?.nextNodeId).filter(e=>!!e)),p=new Set;return a.forEach(e=>e?.parameters?.nodes?.forEach(e=>{e?.value?.__typename===`SubFlowValue`&&(e.value.startingNodeId||e.value.functionDefinition?.id)&&p.add(e.value.startingNodeId||e.value.functionDefinition?.id)})),`
37
- ${l}\n
38
- ${u}\n
39
- ${d}\n
40
- (() =>
41
- ${e?`const flow_${$(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>`/* @pos null ${t} */ ${e?.value!==null&&e?.value!==void 0?y(e?.value):void 0}`).join(`, `)??``});`:``}
42
- ${a.filter(e=>e?.id&&!f.has(e.id)&&!p.has(e.id)).map(e=>c(e.id)).join(`
43
- `)}
44
- )();
45
- `}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return y}});