@code0-tech/triangulum 0.24.0 → 0.24.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.
@@ -23,33 +23,33 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
23
23
  }
24
24
 
25
25
  import ReturnType = Utils.ReturnType;
26
- `;function C(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,S),p(ee(n),[e,`lib.codezero.d.ts`],c.default,re)}var re={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function w(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]))).map(e=>`type ${e} = ${t};`).join(`
26
+ `;function C(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,S),p(ee(n),[e,`lib.codezero.d.ts`],c.default,w)}var w={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function T(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]))).map(e=>`type ${e} = ${t};`).join(`
27
27
  `),i=e?.map(e=>`type ${e.identifier}${(e.genericKeys?.length??0)>0?`<${e.genericKeys?.join(`,`)}>`:``} = ${e.type};`).join(`
28
- `);return`${n?r:``}\n${i}`}var T=e=>e?.replace(/[^a-zA-Z0-9]/g,`_`);function E(e,t,n,r=!1){let i=e?.nodes?.nodes||[],a=new Map(t?.map(e=>[e.identifier,e])),o=new Set,s=(t,n=``)=>{let c=i.find(e=>e?.id===t);if(!c||!c.functionDefinition)return``;if(t?.includes(`NodeFunction`)&&o.add(t),!a.get(c.functionDefinition.identifier))return`${n}// Error: Function ${c.functionDefinition.identifier} not found\n`;let l=(c.parameters?.nodes||[]).map((i,a)=>{let o=i.value;if(!o)return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`;if(o.__typename===`ReferenceValue`){let n=o,r=typeof n.inputIndex==`number`?`p_${T(n.nodeFunctionId??`undefined`)}_${n.parameterIndex}[${n.inputIndex}]`:n.nodeFunctionId?`node_${T(n.nodeFunctionId)}`:`flow_${T(e?.id??`undefined`)}`;return n.referencePath?.forEach(e=>{r+=`?.${e.path}`}),`/* @pos ${t} ${a} */ ${r}`}if(o.__typename===`LiteralValue`)return`/* @pos ${t} ${a} */ ${b(o?.value)}`;if(o.__typename===`SubFlowValue`){let e=o;return`/* @pos ${t} ${a} */ (...${`p_${T(t)}_${a}`}) => {\n${s(e.startingNodeId||e.functionDefinition?.id,n+` `)}${n}}`}return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`}),u=`node_${T(c.id)}`,d=`fn_${c?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;l.includes(`undefined`);let f=`${n}`;return c.functionDefinition.identifier===`std::control::return`?(f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,f+=`return ${u};\n`):c.functionDefinition.identifier===`std::control::if`?(f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,f+=`if(${l[0]}) {
28
+ `);return`${n?r:``}\n${i}`}var E=e=>e?.replace(/[^a-zA-Z0-9]/g,`_`);function D(e,t,n,r=!1){let i=e?.nodes?.nodes||[],a=new Map(t?.map(e=>[e.identifier,e])),o=new Set,s=(t,n=``)=>{let c=i.find(e=>e?.id===t);if(!c||!c.functionDefinition)return``;if(t?.includes(`NodeFunction`)&&o.add(t),!a.get(c.functionDefinition.identifier))return`${n}// Error: Function ${c.functionDefinition.identifier} not found\n`;let l=(c.parameters?.nodes||[]).map((i,a)=>{let o=i.value;if(!o)return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`;if(o.__typename===`ReferenceValue`){let n=o,r=typeof n.inputIndex==`number`?`p_${E(n.nodeFunctionId??`undefined`)}_${n.parameterIndex}[${n.inputIndex}]`:n.nodeFunctionId?`node_${E(n.nodeFunctionId)}`:`flow_${E(e?.id??`undefined`)}`;return n.referencePath?.forEach(e=>{r+=`?.${e.path}`}),`/* @pos ${t} ${a} */ ${r}`}if(o.__typename===`LiteralValue`)return`/* @pos ${t} ${a} */ ${b(o?.value)}`;if(o.__typename===`SubFlowValue`){let e=o;return`/* @pos ${t} ${a} */ (...${`p_${E(t)}_${a}`}) => {\n${s(e.startingNodeId||e.functionDefinition?.id,n+` `)}${n}}`}return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`}),u=`node_${E(c.id)}`,d=`fn_${c?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;l.includes(`undefined`);let f=`${n}`;return c.functionDefinition.identifier===`std::control::return`?(f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,f+=`return ${u};\n`):c.functionDefinition.identifier===`std::control::if`?(f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,f+=`if(${l[0]}) {
29
29
  ${s(c.parameters?.nodes?.[1]?.value?.startingNodeId||(c.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,n+` `)}
30
30
  }`):c.functionDefinition.identifier===`std::control::if_else`?(f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,f+=`if(${l[0]}) {
31
31
  ${s(c.parameters?.nodes?.[1]?.value?.startingNodeId||(c.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,n+` `)}
32
32
  } else {
33
33
  ${s(c.parameters?.nodes?.[2]?.value?.startingNodeId||(c.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier,n+` `)}
34
- }`):f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,c.nextNodeId&&(f+=s(c.nextNodeId,n)),f},c=w(n),l=`declare function flow${e?.signature??`(): void`}`,u=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
34
+ }`):f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,c.nextNodeId&&(f+=s(c.nextNodeId,n)),f},c=T(n),l=`declare function flow${e?.signature??`(): void`}`,u=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
35
35
  `),d=new Set(i.map(e=>e?.nextNodeId).filter(e=>!!e)),f=new Set;return i.forEach(e=>e?.parameters?.nodes?.forEach(e=>{e?.value?.__typename===`SubFlowValue`&&(e.value.startingNodeId||e.value.functionDefinition?.id)&&f.add(e.value.startingNodeId||e.value.functionDefinition?.id)})),`
36
36
  ${c}\n
37
37
  ${l}\n
38
38
  ${u}\n
39
39
  (() =>
40
- ${e?`const flow_${T(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>`/* @pos null ${t} */ ${b(e?.value)}`).join(`, `)??``});`:``}
40
+ ${e?`const flow_${E(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>`/* @pos null ${t} */ ${b(e?.value)}`).join(`, `)??``});`:``}
41
41
  ${i.filter(e=>e?.id&&!d.has(e.id)&&!f.has(e.id)).map(e=>s(e.id)).join(`
42
42
  `)}
43
43
  )();
44
- `}var ie=(e,t)=>{let n=b(e?.value);if(!n)return`any`;let r=`
45
- ${w(t,`unknown`)}
44
+ `}var re=(e,t)=>{let n=b(e?.value);if(!n)return`any`;let r=`
45
+ ${T(t,`unknown`)}
46
46
  const tempValue = ${n??`any`};
47
- `,i=`index.ts`,a=C(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},ae=(e,t)=>{let n=`
48
- ${w(t)}
47
+ `,i=`index.ts`,a=C(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},ie=(e,t)=>{let n=`
48
+ ${T(t)}
49
49
  type Target = ${e};
50
- `,r=`index.ts`,i=C(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)}},D=(e,t,n)=>{if(!e?.startingNodeId)return{isValid:!1,returnType:`void`,diagnostics:[{nodeId:null,parameterIndex:null,code:0,message:`You need to provide a starting node to be able to execute this flow.`,severity:`error`}]};if(!e.nodes?.nodes?.find(t=>t?.id==e.startingNodeId))return{isValid:!1,returnType:`void`,diagnostics:[{nodeId:null,parameterIndex:null,code:0,message:`The starting node is not linked within the flow. Please make sure the starting node is connected to the rest of the flow.`,severity:`error`}]};let r=E(e,t,n),i=`index.ts`,a=C(i,r),o=a.getSourceFile(i),s=a.languageService.getProgram().getSemanticDiagnostics(o).map(e=>{let t=(0,c.flattenDiagnosticMessageText)(e.messageText,`
50
+ `,r=`index.ts`,i=C(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)}},ae=(e,t,n)=>{if(!e?.startingNodeId)return{isValid:!1,returnType:`void`,diagnostics:[{nodeId:null,parameterIndex:null,code:0,message:`You need to provide a starting node to be able to execute this flow.`,severity:`error`}]};if(!e.nodes?.nodes?.find(t=>t?.id==e.startingNodeId))return{isValid:!1,returnType:`void`,diagnostics:[{nodeId:null,parameterIndex:null,code:0,message:`The starting node is not linked within the flow. Please make sure the starting node is connected to the rest of the flow.`,severity:`error`}]};let r=D(e,t,n),i=`index.ts`,a=C(i,r),o=a.getSourceFile(i),s=a.languageService.getProgram().getSemanticDiagnostics(o).map(e=>{let t=(0,c.flattenDiagnosticMessageText)(e.messageText,`
51
51
  `),n,r=null;if(e.start!==void 0){let t=o.getFullText(),i=Math.max(0,e.start-300),a=Math.min(t.length,e.start),s=t.substring(i,a),c=/\/\* @pos ([^ ]+) (\d+|null) \*\//g,l,u=null,d=-1;for(;(l=c.exec(s))!==null;){let t=i+l.index+l[0].length;t<=e.start&&t>d&&(d=t,u=l)}u&&(n=u[1]===`null`?null:u[1],r=parseInt(u[2],10))}return{message:t,code:e.code,severity:`error`,nodeId:n,parameterIndex:typeof r==`number`&&Number.isSafeInteger(r)?r:null}}).filter(e=>e!==null);return{isValid:!s.some(e=>e?.severity===`error`),returnType:`void`,diagnostics:s}},O=(e,t,n)=>{let r=b(t?.value),i=`
52
- ${w(n)}
52
+ ${T(n)}
53
53
  const testValue: ${e} = ${r};
54
54
  `,a=`index.ts`,o=C(a,i).languageService.getSemanticDiagnostics(a).map(e=>{let t=c.default.flattenDiagnosticMessageText(e.messageText,`
55
- `),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}},k=e=>e.isUnion()?e.types.flatMap(k):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`}]:[],A=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!j(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?M(i,o,e,n):i.startsWith(`p_`)?N(i,o,e,n):i.startsWith(`flow_`)?P(o,e,n):[]}),j=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),M=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=F(e.replace(`node_`,``));return L(t,n,r).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(t.referencePath=e),t})},N=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=I(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>L(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}))},P=(e,t,n)=>L(e,t,n).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(t.referencePath=e),t}),F=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),I=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:F(r),paramIndexFromName:i}},L=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),R(e)){let a=e.getProperties();a&&a.length>0&&a.forEach(e=>{let a=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),o=e.getName(),s=[...r,{path:o}];i.push(...L(a,t,n,s))})}return i},R=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},z=(e,t,n,r)=>Q(r)?[]:t.flatMap(t=>{let i=B(e,t,n,r);return i?[i]:[]}),B=(e,t,n,r)=>{if(t.parameters.length>0)return null;let i=e.getSignatureFromDeclaration(t),a=V(e,e.getReturnTypeOfSignature(i));if(!e.isTypeAssignableTo(a,r))return null;let o=H(t.name?.getText());return oe(n.find(e=>e.identifier===o))},V=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,H=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,oe=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=U(e?.parameterDefinitions?.nodes||[])),n},U=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>W(e))}),W=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),G=(e,t,n,r)=>Q(r)?t.flatMap(t=>{let i=K(e,t,n,r);return i?[i]:[]}):[],K=(e,t,n,r)=>{let i=e.getTypeAtLocation(t);if(!e.isTypeAssignableTo(i,r))return null;let a=q(t.name?.getText()),o=n.find(e=>e.identifier===a);return o?se(o):null},q=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,se=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}))}),J=(e,t,n,r,i,a=!0)=>{let o=a?{suggestions:[...k(n),...t?A(e,t,n,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...z(e,r,i,n),...G(e,r,i,n)]}:{};if(Y(n))return{input:`boolean`,...o};if(X(n))return{input:`number`,...o};if(Z(n))return{input:`text`,...o};if(le(n))return{input:`select`,...o};if(Q(n))return{input:`sub-flow`,...o};if(ue(e,n))return{input:`list`,items:e.getTypeArguments(n).flatMap(n=>(n.isUnion()?n.types:[n]).map(n=>J(e,t,n,r,i,a))),...o};if((n.flags&c.default.TypeFlags.Object)!==0){let s={},l=[];for(let o of e.getPropertiesOfType(n)){let n=o.valueDeclaration??o.declarations?.[0];if(!n)continue;let u=e.getTypeOfSymbolAtLocation(o,n),d=(o.flags&c.default.SymbolFlags.Optional)!==0||u.isUnion()&&u.types.some(e=>(e.flags&c.default.TypeFlags.Undefined)!==0),f=(u.isUnion()?u.types.filter(e=>(e.flags&c.default.TypeFlags.Undefined)===0):[u]).map(n=>J(e,t,n,r,i,a));s[o.name]=f.length===1?f[0]:f,d||l.push(o.name)}return{input:`data`,properties:s,required:l,...o}}return{input:`generic`}};function Y(e){return(e.flags&c.default.TypeFlags.Boolean)!==0||(e.flags&c.default.TypeFlags.BooleanLiteral)!==0}function X(e){return(e.flags&c.default.TypeFlags.Number)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function Z(e){return(e.flags&c.default.TypeFlags.String)!==0||(e.flags&c.default.TypeFlags.StringLiteral)!==0}function ce(e){return Z(e)||X(e)||Y(e)}function le(e){return e.isUnion()?e.types.every(ce):!1}function ue(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Q(e){return e.getCallSignatures().length>0}var de=(e,t,n,r)=>{let i=E(e,n,t),a=`index.ts`,o=C(a,i),s=o.getSourceFile(a),c=o.languageService.getProgram().getTypeChecker(),l=e.nodes?.nodes?.find(e=>e?.id===r),u=r?`fn_${l?.functionDefinition?.identifier?.replace(/::/g,`_`)}`:`flow`,d=r?`node_${T(r)}`:`flow_${T(e.id)}`,f=fe(s),p=pe(s).get(d),m=f.get(u);return $(r,c,p,me(c,p),he(c,m,p),ge(m),r?f:new Map,r?n:[])},fe=e=>new Map(e.statements.filter(c.default.isFunctionDeclaration).map(e=>[e.name.getText(),e])),pe=e=>{let t=[];return e.statements.forEach(e=>{e.forEachChild(function e(n){c.default.isVariableDeclaration(n)&&(n.parent.flags&c.default.NodeFlags.Const)!==0&&t.push([n.name.getText(),n]),n.forEachChild(e)})}),new Map(t)},me=(e,t)=>{if(!(!t?.initializer||!c.default.isCallExpression(t.initializer)))return e.getResolvedSignature(t.initializer)?.parameters.map(n=>e.getTypeOfSymbolAtLocation(n,t.initializer))},he=(e,t,n)=>{if(!(!t||!n?.initializer))return t.parameters.map(t=>{let r=e.getSymbolAtLocation(t.name);return e.getTypeOfSymbolAtLocation(r,n.initializer)})},ge=e=>{let t=e.typeParameters?.map(e=>e.name.getText())||[],n={};return e.parameters.forEach((e,r)=>{let i=e.type?.getText()||``;t.forEach(e=>{i.includes(e)&&(n[e]||(n[e]=[]),n[e].push(r))})}),Object.values(n).filter(e=>e.length>1).map(([e,...t])=>t.map(t=>({parameterIndex:t,dependsOnIndex:e}))).flat()},$=(e,t,n,r,i,a,o,s)=>r?r.map((r,c)=>({nodeId:e,schema:J(t,n,r,Array.from(o.values()),s),functionSchema:J(t,n,i?.[c],Array.from(o.values()),s,!1),blockedBy:a.filter(e=>e.parameterIndex===c).map(e=>e.dependsOnIndex)})):[],_e=(e,t=[])=>{let n=`index.ts`,r=C(n,`${w(t)}\ntype MyType = ${e}`).languageService.getProgram(),i=r?.getSourceFile(n),a=r?.getTypeChecker();if(!i||!a)return;let o=i.statements.filter(e=>c.default.isTypeAliasDeclaration(e)||c.default.isInterfaceDeclaration(e)||c.default.isClassDeclaration(e)).pop();if(!o)return;let s=a.getTypeAtLocation(o);if(s)return J(a,void 0,s,[],[],!1)};exports.getFlowValidation=D,exports.getSignatureSchema=de,exports.getTypeFromValue=ie,exports.getTypeSchema=_e,exports.getValueFromType=ae,exports.getValueValidation=O;
55
+ `),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}},k=e=>{if(c.default.isUnionTypeNode(e))return e.types.flatMap(k);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[]},A=(e,t)=>{if(t&&e.aliasSymbol){let t=e.aliasSymbol.declarations?.[0];if(t&&c.default.isTypeAliasDeclaration(t))return k(t.type)}return e.isUnion()?e.types.flatMap(e=>A(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`}]:[]},j=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!M(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?N(i,o,e,n):i.startsWith(`p_`)?P(i,o,e,n):i.startsWith(`flow_`)?F(o,e,n):[]}),M=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),N=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=I(e.replace(`node_`,``));return R(t,n,r).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(t.referencePath=e),t})},P=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=L(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>R(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}))},F=(e,t,n)=>R(e,t,n).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(t.referencePath=e),t}),I=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),L=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:I(r),paramIndexFromName:i}},R=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),z(e)){let a=e.getProperties();a&&a.length>0&&a.forEach(e=>{let a=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),o=e.getName(),s=[...r,{path:o}];i.push(...R(a,t,n,s))})}return i},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)=>Q(r)?[]:t.flatMap(t=>{let i=V(e,t,n,r);return i?[i]:[]}),V=(e,t,n,r)=>{if(t.parameters.length>0)return null;let i=e.getSignatureFromDeclaration(t),a=H(e,e.getReturnTypeOfSignature(i));if(!e.isTypeAssignableTo(a,r))return null;let o=U(t.name?.getText());return oe(n.find(e=>e.identifier===o))},H=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,U=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,oe=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=W(e?.parameterDefinitions?.nodes||[])),n},W=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>G(e))}),G=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),K=(e,t,n,r)=>Q(r)?t.flatMap(t=>{let i=q(e,t,n,r);return i?[i]:[]}):[],q=(e,t,n,r)=>{let i=e.getTypeAtLocation(t);if(!e.isTypeAssignableTo(i,r))return null;let a=se(t.name?.getText()),o=n.find(e=>e.identifier===a);return o?ce(o):null},se=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,ce=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}))}),J=(e,t,n,r,i,a=!0)=>{if((n.flags&c.default.TypeFlags.TypeParameter)!==0){let o=n.symbol?.declarations?.[0];if(o&&c.default.isTypeParameterDeclaration(o)&&o.constraint)return J(e,t,e.getTypeFromTypeNode(o.constraint),r,i,a)}let o=a?{suggestions:[...A(n,e),...t?j(e,t,n,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...B(e,r,i,n),...K(e,r,i,n)]}:{};if(n.isUnion()){let a=n.types.filter(e=>(e.flags&c.default.TypeFlags.Undefined)===0);if(a.length===1)return{...J(e,t,a[0],r,i,!1),...o}}if(Y(n))return{input:`boolean`,...o};if(X(n))return{input:`number`,...o};if(Z(n))return{input:`text`,...o};if(ue(n))return{input:`select`,...o};if(Q(n))return{input:`sub-flow`,...o};if(de(e,n))return{input:`list`,items:e.getTypeArguments(n).flatMap(n=>(n.isUnion()?n.types:[n]).map(n=>J(e,t,n,r,i,a))),...o};if((n.flags&c.default.TypeFlags.Object)!==0){let s={},l=[];for(let o of e.getPropertiesOfType(n)){let n=o.valueDeclaration??o.declarations?.[0];if(!n)continue;let u=e.getTypeOfSymbolAtLocation(o,n),d=(o.flags&c.default.SymbolFlags.Optional)!==0||u.isUnion()&&u.types.some(e=>(e.flags&c.default.TypeFlags.Undefined)!==0),f=(u.isUnion()?u.types.filter(e=>(e.flags&c.default.TypeFlags.Undefined)===0):[u]).map(n=>J(e,t,n,r,i,a));s[o.name]=f.length===1?f[0]:f,d||l.push(o.name)}return{input:`data`,properties:s,required:l,...o}}return{input:`generic`}};function Y(e){return(e.flags&c.default.TypeFlags.Boolean)!==0||(e.flags&c.default.TypeFlags.BooleanLiteral)!==0}function X(e){return(e.flags&c.default.TypeFlags.Number)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function Z(e){return(e.flags&c.default.TypeFlags.String)!==0||(e.flags&c.default.TypeFlags.StringLiteral)!==0}function le(e){return Z(e)||X(e)||Y(e)}function ue(e){return e.isUnion()?e.types.every(le):!1}function de(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Q(e){return e.getCallSignatures().length>0}var fe=(e,t,n,r)=>{let i=D(e,n,t),a=`index.ts`,o=C(a,i),s=o.getSourceFile(a),c=o.languageService.getProgram().getTypeChecker(),l=e.nodes?.nodes?.find(e=>e?.id===r),u=r?`fn_${l?.functionDefinition?.identifier?.replace(/::/g,`_`)}`:`flow`,d=r?`node_${E(r)}`:`flow_${E(e.id)}`,f=pe(s),p=$(s).get(d),m=f.get(u);return _e(r,c,p,me(c,p),he(c,m,p),ge(m),r?f:new Map,r?n:[])},pe=e=>new Map(e.statements.filter(c.default.isFunctionDeclaration).map(e=>[e.name.getText(),e])),$=e=>{let t=[];return e.statements.forEach(e=>{e.forEachChild(function e(n){c.default.isVariableDeclaration(n)&&(n.parent.flags&c.default.NodeFlags.Const)!==0&&t.push([n.name.getText(),n]),n.forEachChild(e)})}),new Map(t)},me=(e,t)=>{if(!(!t?.initializer||!c.default.isCallExpression(t.initializer)))return e.getResolvedSignature(t.initializer)?.parameters.map(n=>e.getTypeOfSymbolAtLocation(n,t.initializer))},he=(e,t,n)=>{if(!(!t||!n?.initializer))return t.parameters.map(t=>{let r=e.getSymbolAtLocation(t.name);return e.getTypeOfSymbolAtLocation(r,n.initializer)})},ge=e=>{let t=e.typeParameters?.map(e=>e.name.getText())||[],n={};return e.parameters.forEach((e,r)=>{let i=e.type?.getText()||``;t.forEach(e=>{i.includes(e)&&(n[e]||(n[e]=[]),n[e].push(r))})}),Object.values(n).filter(e=>e.length>1).map(([e,...t])=>t.map(t=>({parameterIndex:t,dependsOnIndex:e}))).flat()},_e=(e,t,n,r,i,a,o,s)=>r?r.map((r,c)=>({nodeId:e,schema:J(t,n,r,Array.from(o.values()),s),functionSchema:J(t,n,i?.[c],Array.from(o.values()),s,!1),blockedBy:a.filter(e=>e.parameterIndex===c).map(e=>e.dependsOnIndex)})):[],ve=(e,t=[])=>{let n=`index.ts`,r=C(n,`${T(t)}\ntype MyType = ${e}`).languageService.getProgram(),i=r?.getSourceFile(n),a=r?.getTypeChecker();if(!i||!a)return;let o=i.statements.filter(e=>c.default.isTypeAliasDeclaration(e)||c.default.isInterfaceDeclaration(e)||c.default.isClassDeclaration(e)).pop();if(!o)return;let s=a.getTypeAtLocation(o);if(s)return J(a,void 0,s,[],[],!1)};exports.getFlowValidation=ae,exports.getSignatureSchema=fe,exports.getTypeFromValue=re,exports.getTypeSchema=ve,exports.getValueFromType=ie,exports.getValueValidation=O;
@@ -194,7 +194,7 @@ var h = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
194
194
  //#endregion
195
195
  //#region node_modules/lossless-json/lib/esm/stringify.js
196
196
  function g(e, t, n, r) {
197
- let i = _(n);
197
+ let i = ee(n);
198
198
  return a(typeof t == "function" ? t.call({ "": e }, "", e) : e, "");
199
199
  function a(e, t) {
200
200
  if (Array.isArray(r)) {
@@ -238,16 +238,16 @@ function g(e, t, n, r) {
238
238
  return t !== void 0 && typeof t != "function" && typeof t != "symbol";
239
239
  }
240
240
  }
241
- function _(e) {
241
+ function ee(e) {
242
242
  if (typeof e == "number") return " ".repeat(e);
243
243
  if (typeof e == "string" && e !== "") return e;
244
244
  }
245
245
  //#endregion
246
246
  //#region src/utils.ts
247
- var ee = "\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";
247
+ var _ = "\n interface Array<T> { \n [n: number]: T; \n length: number; \n }\n interface String { readonly length: number; }\n interface Number { }\n interface Boolean { }\n interface Object { }\n interface Function { }\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n interface IArguments { }\n interface RegExp { }\n \n declare namespace Utils {\n type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\n }\n\n import ReturnType = Utils.ReturnType;\n";
248
248
  function v(t, n) {
249
249
  let r = /* @__PURE__ */ new Map();
250
- return r.set(t, n), r.set("lib.codezero.d.ts", ee), o(d(r), [t, "lib.codezero.d.ts"], e, y);
250
+ return r.set(t, n), r.set("lib.codezero.d.ts", _), o(d(r), [t, "lib.codezero.d.ts"], e, y);
251
251
  }
252
252
  var y = {
253
253
  target: e.ScriptTarget.Latest,
@@ -449,37 +449,62 @@ var C = (t, n) => {
449
449
  returnType: "void",
450
450
  diagnostics: s
451
451
  };
452
- }, D = (e) => e.isUnion() ? e.types.flatMap(D) : e.isStringLiteral() ? [{
453
- value: e.value,
454
- __typename: "LiteralValue"
455
- }] : e.isNumberLiteral() ? [{ value: e.value.toString() }] : e.intrinsicName === "true" ? [{
456
- value: !0,
457
- __typename: "LiteralValue"
458
- }] : e.intrinsicName === "false" ? [{
459
- value: !1,
460
- __typename: "LiteralValue"
461
- }] : [], te = (e, t, n, r) => r.flatMap((r) => {
452
+ }, D = (t) => {
453
+ if (e.isUnionTypeNode(t)) return t.types.flatMap(D);
454
+ if (e.isLiteralTypeNode(t)) {
455
+ let n = t.literal;
456
+ if (e.isStringLiteral(n)) return [{
457
+ value: n.text,
458
+ __typename: "LiteralValue"
459
+ }];
460
+ if (e.isNumericLiteral(n)) return [{ value: Number(n.text) }];
461
+ if (n.kind === e.SyntaxKind.TrueKeyword) return [{
462
+ value: !0,
463
+ __typename: "LiteralValue"
464
+ }];
465
+ if (n.kind === e.SyntaxKind.FalseKeyword) return [{
466
+ value: !1,
467
+ __typename: "LiteralValue"
468
+ }];
469
+ }
470
+ return [];
471
+ }, O = (t, n) => {
472
+ if (n && t.aliasSymbol) {
473
+ let n = t.aliasSymbol.declarations?.[0];
474
+ if (n && e.isTypeAliasDeclaration(n)) return D(n.type);
475
+ }
476
+ return t.isUnion() ? t.types.flatMap((e) => O(e, n)) : t.isStringLiteral() ? [{
477
+ value: t.value,
478
+ __typename: "LiteralValue"
479
+ }] : t.isNumberLiteral() ? [{ value: t.value.toString() }] : t.intrinsicName === "true" ? [{
480
+ value: !0,
481
+ __typename: "LiteralValue"
482
+ }] : t.intrinsicName === "false" ? [{
483
+ value: !1,
484
+ __typename: "LiteralValue"
485
+ }] : [];
486
+ }, te = (e, t, n, r) => r.flatMap((r) => {
462
487
  let i = r.getName();
463
- if (!O(i)) return [];
488
+ if (!k(i)) return [];
464
489
  let a = r.getDeclarations()?.[0];
465
490
  if (!a || a.getEnd() >= t.getEnd()) return [];
466
491
  let o = e.getTypeOfSymbolAtLocation(r, t);
467
- return i.startsWith("node_") ? k(i, o, e, n) : i.startsWith("p_") ? A(i, o, e, n) : i.startsWith("flow_") ? j(o, e, n) : [];
468
- }), O = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), k = (t, n, r, i) => {
492
+ return i.startsWith("node_") ? A(i, o, e, n) : i.startsWith("p_") ? j(i, o, e, n) : i.startsWith("flow_") ? M(o, e, n) : [];
493
+ }), k = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), A = (t, n, r, i) => {
469
494
  if ((n.flags & e.TypeFlags.Void) !== 0) return [];
470
- let a = M(t.replace("node_", ""));
471
- return P(n, r, i).flatMap(({ path: e }) => {
495
+ let a = N(t.replace("node_", ""));
496
+ return F(n, r, i).flatMap(({ path: e }) => {
472
497
  let t = {
473
498
  __typename: "ReferenceValue",
474
499
  nodeFunctionId: a
475
500
  };
476
501
  return e.length > 0 && (t.referencePath = e), t;
477
502
  });
478
- }, A = (e, t, n, r) => {
479
- let { nodeFunctionId: i, paramIndexFromName: a } = N(e);
503
+ }, j = (e, t, n, r) => {
504
+ let { nodeFunctionId: i, paramIndexFromName: a } = P(e);
480
505
  if (!n.isTupleType(t)) return [];
481
506
  let o = t;
482
- return n.getTypeArguments(o).flatMap((e, t) => P(e, n, r).flatMap(({ path: e }) => {
507
+ return n.getTypeArguments(o).flatMap((e, t) => F(e, n, r).flatMap(({ path: e }) => {
483
508
  let n = {
484
509
  __typename: "ReferenceValue",
485
510
  nodeFunctionId: i,
@@ -489,44 +514,44 @@ var C = (t, n) => {
489
514
  };
490
515
  return e.length > 0 && (n.referencePath = e), n;
491
516
  }));
492
- }, j = (e, t, n) => P(e, t, n).flatMap(({ path: e }) => {
517
+ }, M = (e, t, n) => F(e, t, n).flatMap(({ path: e }) => {
493
518
  let t = {
494
519
  __typename: "ReferenceValue",
495
520
  nodeFunctionId: null
496
521
  };
497
522
  return e.length > 0 && (t.referencePath = e), t;
498
- }), M = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), N = (e) => {
523
+ }), N = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), P = (e) => {
499
524
  let t = e.replace("p_", ""), n = t.lastIndexOf("_"), r = t.substring(0, n), i = parseInt(t.substring(n + 1), 10);
500
525
  return {
501
- nodeFunctionId: M(r),
526
+ nodeFunctionId: N(r),
502
527
  paramIndexFromName: i
503
528
  };
504
- }, P = (e, t, n, r = []) => {
529
+ }, F = (e, t, n, r = []) => {
505
530
  let i = [];
506
531
  if (t.isTypeAssignableTo(e, n) && i.push({
507
532
  path: r,
508
533
  type: e
509
- }), F(e)) {
534
+ }), I(e)) {
510
535
  let a = e.getProperties();
511
536
  a && a.length > 0 && a.forEach((e) => {
512
537
  let a = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration), o = e.getName(), s = [...r, { path: o }];
513
- i.push(...P(a, t, n, s));
538
+ i.push(...F(a, t, n, s));
514
539
  });
515
540
  }
516
541
  return i;
517
- }, F = (t) => {
542
+ }, I = (t) => {
518
543
  let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
519
544
  return (t.flags & n) === 0;
520
- }, I = (e, t, n, r) => Q(r) ? [] : t.flatMap((t) => {
521
- let i = L(e, t, n, r);
545
+ }, L = (e, t, n, r) => Q(r) ? [] : t.flatMap((t) => {
546
+ let i = R(e, t, n, r);
522
547
  return i ? [i] : [];
523
- }), L = (e, t, n, r) => {
548
+ }), R = (e, t, n, r) => {
524
549
  if (t.parameters.length > 0) return null;
525
- let i = e.getSignatureFromDeclaration(t), a = R(e, e.getReturnTypeOfSignature(i));
550
+ let i = e.getSignatureFromDeclaration(t), a = z(e, e.getReturnTypeOfSignature(i));
526
551
  if (!e.isTypeAssignableTo(a, r)) return null;
527
- let o = z(t.name?.getText());
528
- return B(n.find((e) => e.identifier === o));
529
- }, R = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, z = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", B = (e) => {
552
+ let o = B(t.name?.getText());
553
+ return V(n.find((e) => e.identifier === o));
554
+ }, z = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, B = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", V = (e) => {
530
555
  let t = (e?.parameterDefinitions?.nodes?.length ?? 0) > 0, n = {
531
556
  __typename: "NodeFunction",
532
557
  id: "gid://sagittarius/NodeFunction/1",
@@ -539,11 +564,11 @@ var C = (t, n) => {
539
564
  displayIcon: e?.displayIcon
540
565
  }
541
566
  };
542
- return t && (n.parameters = V(e?.parameterDefinitions?.nodes || [])), n;
543
- }, V = (e) => ({
567
+ return t && (n.parameters = H(e?.parameterDefinitions?.nodes || [])), n;
568
+ }, H = (e) => ({
544
569
  __typename: "NodeParameterConnection",
545
- nodes: e.map((e) => H(e))
546
- }), H = (e) => ({
570
+ nodes: e.map((e) => U(e))
571
+ }), U = (e) => ({
547
572
  __typename: "NodeParameter",
548
573
  parameterDefinition: {
549
574
  __typename: "ParameterDefinition",
@@ -554,15 +579,15 @@ var C = (t, n) => {
554
579
  __typename: "LiteralValue",
555
580
  value: e.defaultValue.value
556
581
  } : null
557
- }), U = (e, t, n, r) => Q(r) ? t.flatMap((t) => {
582
+ }), W = (e, t, n, r) => Q(r) ? t.flatMap((t) => {
558
583
  let i = ne(e, t, n, r);
559
584
  return i ? [i] : [];
560
585
  }) : [], ne = (e, t, n, r) => {
561
586
  let i = e.getTypeAtLocation(t);
562
587
  if (!e.isTypeAssignableTo(i, r)) return null;
563
- let a = W(t.name?.getText()), o = n.find((e) => e.identifier === a);
564
- return o ? G(o) : null;
565
- }, W = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", G = (e) => ({
588
+ let a = G(t.name?.getText()), o = n.find((e) => e.identifier === a);
589
+ return o ? K(o) : null;
590
+ }, G = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", K = (e) => ({
566
591
  __typename: "SubFlowValue",
567
592
  functionDefinition: e,
568
593
  signature: e.signature,
@@ -573,26 +598,37 @@ var C = (t, n) => {
573
598
  hidden: e?.hidden ?? !1,
574
599
  optional: e?.optional ?? !1
575
600
  }))
576
- }), K = (t, n, r, i, a, o = !0) => {
601
+ }), q = (t, n, r, i, a, o = !0) => {
602
+ if ((r.flags & e.TypeFlags.TypeParameter) !== 0) {
603
+ let s = r.symbol?.declarations?.[0];
604
+ if (s && e.isTypeParameterDeclaration(s) && s.constraint) return q(t, n, t.getTypeFromTypeNode(s.constraint), i, a, o);
605
+ }
577
606
  let s = o ? { suggestions: [
578
- ...D(r),
607
+ ...O(r, t),
579
608
  ...n ? te(t, n, r, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
580
- ...I(t, i, a, r),
581
- ...U(t, i, a, r)
609
+ ...L(t, i, a, r),
610
+ ...W(t, i, a, r)
582
611
  ] } : {};
583
- if (q(r)) return {
612
+ if (r.isUnion()) {
613
+ let o = r.types.filter((t) => (t.flags & e.TypeFlags.Undefined) === 0);
614
+ if (o.length === 1) return {
615
+ ...q(t, n, o[0], i, a, !1),
616
+ ...s
617
+ };
618
+ }
619
+ if (J(r)) return {
584
620
  input: "boolean",
585
621
  ...s
586
622
  };
587
- if (J(r)) return {
623
+ if (Y(r)) return {
588
624
  input: "number",
589
625
  ...s
590
626
  };
591
- if (Y(r)) return {
627
+ if (X(r)) return {
592
628
  input: "text",
593
629
  ...s
594
630
  };
595
- if (Z(r)) return {
631
+ if (re(r)) return {
596
632
  input: "select",
597
633
  ...s
598
634
  };
@@ -600,9 +636,9 @@ var C = (t, n) => {
600
636
  input: "sub-flow",
601
637
  ...s
602
638
  };
603
- if (re(t, r)) return {
639
+ if (ie(t, r)) return {
604
640
  input: "list",
605
- items: t.getTypeArguments(r).flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => K(t, n, e, i, a, o))),
641
+ items: t.getTypeArguments(r).flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => q(t, n, e, i, a, o))),
606
642
  ...s
607
643
  };
608
644
  if ((r.flags & e.TypeFlags.Object) !== 0) {
@@ -610,7 +646,7 @@ var C = (t, n) => {
610
646
  for (let s of t.getPropertiesOfType(r)) {
611
647
  let r = s.valueDeclaration ?? s.declarations?.[0];
612
648
  if (!r) continue;
613
- let u = t.getTypeOfSymbolAtLocation(s, r), d = (s.flags & e.SymbolFlags.Optional) !== 0 || u.isUnion() && u.types.some((t) => (t.flags & e.TypeFlags.Undefined) !== 0), f = (u.isUnion() ? u.types.filter((t) => (t.flags & e.TypeFlags.Undefined) === 0) : [u]).map((e) => K(t, n, e, i, a, o));
649
+ let u = t.getTypeOfSymbolAtLocation(s, r), d = (s.flags & e.SymbolFlags.Optional) !== 0 || u.isUnion() && u.types.some((t) => (t.flags & e.TypeFlags.Undefined) !== 0), f = (u.isUnion() ? u.types.filter((t) => (t.flags & e.TypeFlags.Undefined) === 0) : [u]).map((e) => q(t, n, e, i, a, o));
614
650
  c[s.name] = f.length === 1 ? f[0] : f, d || l.push(s.name);
615
651
  }
616
652
  return {
@@ -622,22 +658,22 @@ var C = (t, n) => {
622
658
  }
623
659
  return { input: "generic" };
624
660
  };
625
- function q(t) {
661
+ function J(t) {
626
662
  return (t.flags & e.TypeFlags.Boolean) !== 0 || (t.flags & e.TypeFlags.BooleanLiteral) !== 0;
627
663
  }
628
- function J(t) {
664
+ function Y(t) {
629
665
  return (t.flags & e.TypeFlags.Number) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
630
666
  }
631
- function Y(t) {
667
+ function X(t) {
632
668
  return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
633
669
  }
634
- function X(e) {
635
- return Y(e) || J(e) || q(e);
636
- }
637
670
  function Z(e) {
638
- return e.isUnion() ? e.types.every(X) : !1;
671
+ return X(e) || Y(e) || J(e);
672
+ }
673
+ function re(e) {
674
+ return e.isUnion() ? e.types.every(Z) : !1;
639
675
  }
640
- function re(e, t) {
676
+ function ie(e, t) {
641
677
  return e.isArrayType(t) || e.isTupleType(t);
642
678
  }
643
679
  function Q(e) {
@@ -645,10 +681,10 @@ function Q(e) {
645
681
  }
646
682
  //#endregion
647
683
  //#region src/schema/getSignatureSchema.ts
648
- var ie = (e, t, n, r) => {
649
- let i = S(e, n, t), a = "index.ts", o = v(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = e.nodes?.nodes?.find((e) => e?.id === r), u = r ? `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}` : "flow", d = r ? `node_${x(r)}` : `flow_${x(e.id)}`, f = ae(s), p = oe(s).get(d), m = f.get(u);
650
- return $(r, c, p, se(c, p), ce(c, m, p), le(m), r ? f : /* @__PURE__ */ new Map(), r ? n : []);
651
- }, ae = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), oe = (t) => {
684
+ var ae = (e, t, n, r) => {
685
+ let i = S(e, n, t), a = "index.ts", o = v(a, i), s = o.getSourceFile(a), c = o.languageService.getProgram().getTypeChecker(), l = e.nodes?.nodes?.find((e) => e?.id === r), u = r ? `fn_${l?.functionDefinition?.identifier?.replace(/::/g, "_")}` : "flow", d = r ? `node_${x(r)}` : `flow_${x(e.id)}`, f = oe(s), p = $(s).get(d), m = f.get(u);
686
+ return ue(r, c, p, se(c, p), ce(c, m, p), le(m), r ? f : /* @__PURE__ */ new Map(), r ? n : []);
687
+ }, oe = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), $ = (t) => {
652
688
  let n = [];
653
689
  return t.statements.forEach((t) => {
654
690
  t.forEachChild(function t(r) {
@@ -673,18 +709,18 @@ var ie = (e, t, n, r) => {
673
709
  parameterIndex: t,
674
710
  dependsOnIndex: e
675
711
  }))).flat();
676
- }, $ = (e, t, n, r, i, a, o, s) => r ? r.map((r, c) => ({
712
+ }, ue = (e, t, n, r, i, a, o, s) => r ? r.map((r, c) => ({
677
713
  nodeId: e,
678
- schema: K(t, n, r, Array.from(o.values()), s),
679
- functionSchema: K(t, n, i?.[c], Array.from(o.values()), s, !1),
714
+ schema: q(t, n, r, Array.from(o.values()), s),
715
+ functionSchema: q(t, n, i?.[c], Array.from(o.values()), s, !1),
680
716
  blockedBy: a.filter((e) => e.parameterIndex === c).map((e) => e.dependsOnIndex)
681
- })) : [], ue = (t, n = []) => {
717
+ })) : [], de = (t, n = []) => {
682
718
  let r = "index.ts", i = v(r, `${b(n)}\ntype MyType = ${t}`).languageService.getProgram(), a = i?.getSourceFile(r), o = i?.getTypeChecker();
683
719
  if (!a || !o) return;
684
720
  let s = a.statements.filter((t) => e.isTypeAliasDeclaration(t) || e.isInterfaceDeclaration(t) || e.isClassDeclaration(t)).pop();
685
721
  if (!s) return;
686
722
  let c = o.getTypeAtLocation(s);
687
- if (c) return K(o, void 0, c, [], [], !1);
723
+ if (c) return q(o, void 0, c, [], [], !1);
688
724
  };
689
725
  //#endregion
690
- export { T as getFlowValidation, ie as getSignatureSchema, C as getTypeFromValue, ue as getTypeSchema, w as getValueFromType, E as getValueValidation };
726
+ export { T as getFlowValidation, ae as getSignatureSchema, C as getTypeFromValue, de as getTypeSchema, w as getValueFromType, E as getValueValidation };
@@ -1,23 +1,3 @@
1
1
  import { default as ts } from 'typescript';
2
2
  import { LiteralValue } from '@code0-tech/sagittarius-graphql-types';
3
- /**
4
- * Extracts literal values from a TypeScript type.
5
- *
6
- * This function recursively processes TypeScript types and extracts all literal values,
7
- * including string literals, number literals, and boolean literals. For union types,
8
- * it flattens and combines all literal values from each constituent type.
9
- *
10
- * @param type - The TypeScript type to extract values from
11
- * @returns An array of LiteralValue objects representing all literal values found in the type
12
- *
13
- * @example
14
- * // For a type like "red" | "blue" | 42
15
- * const values = getValues(type);
16
- * // Returns:
17
- * // [
18
- * // { value: "red", __typename: "LiteralValue" },
19
- * // { value: "blue", __typename: "LiteralValue" },
20
- * // { value: "42" }
21
- * // ]
22
- */
23
- export declare const getValues: (type: ts.Type) => LiteralValue[];
3
+ export declare const getValues: (type: ts.Type, checker?: ts.TypeChecker) => LiteralValue[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code0-tech/triangulum",
3
- "version": "0.24.0",
3
+ "version": "0.24.1",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/code0-tech/triangulum#readme",
6
6
  "bugs": {