@code0-tech/triangulum 0.25.4 → 0.25.6

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.
@@ -25,7 +25,8 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
25
25
  import ReturnType = Utils.ReturnType;
26
26
  `;function w(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,te),p(v(n),[e,`lib.codezero.d.ts`],c.default,ne)}var ne={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 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} */ ${o?.value!==null&&o?.value!==void 0?S(o?.value):void 0}`;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]}) {
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=>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} */ ${o?.value!==null&&o?.value!==void 0?S(o?.value):void 0}`;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
30
  ${s(c.parameters?.nodes?.[1]?.value?.startingNodeId||(c.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,n+` `)}
30
31
  }`):c.functionDefinition.identifier===`std::control::if_else`?(f+=`const ${u} = /* @pos ${t} null */ ${d}(${l.join(`, `)}) ;\n`,f+=`if(${l[0]}) {
31
32
  ${s(c.parameters?.nodes?.[1]?.value?.startingNodeId||(c.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,n+` `)}
@@ -52,4 +53,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
52
53
  ${T(n)}
53
54
  const testValue: ${e} = ${r};
54
55
  `,a=`index.ts`,o=w(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}},O=e=>{if(c.default.isUnionTypeNode(e))return e.types.flatMap(O);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[]},k=(e,t)=>{if(t&&e.aliasSymbol){let t=e.aliasSymbol.declarations?.[0];if(t&&c.default.isTypeAliasDeclaration(t))return O(t.type)}return e.isUnion()?e.types.flatMap(e=>k(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`}]:[]},se=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!A(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?j(i,o,e,n):i.startsWith(`p_`)?M(i,o,e,n):i.startsWith(`flow_`)?N(o,e,n):[]}),A=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),j=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=P(e.replace(`node_`,``));return I(t,n,r).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(t.referencePath=e),t})},M=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=F(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>I(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}))},N=(e,t,n)=>I(e,t,n).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(t.referencePath=e),t}),P=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),F=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:P(r),paramIndexFromName:i}},I=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),L(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(...I(a,t,n,s))})}return i},L=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},R=(e,t,n,r)=>Q(r)?[]:t.flatMap(t=>{let i=z(e,t,n,r);return i?[i]:[]}),z=(e,t,n,r)=>{if(t.parameters.length>0)return null;let i=e.getSignatureFromDeclaration(t),a=B(e,e.getReturnTypeOfSignature(i));if(!e.isTypeAssignableTo(a,r))return null;let o=V(t.name?.getText());return H(n.find(e=>e.identifier===o))},B=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,V=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,H=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=ce(t.name?.getText()),o=n.find(e=>e.identifier===a);return o?le(o):null},ce=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,le=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}))}),q=(e,t,n,r,i,a=!0,o)=>{if((n.flags&c.default.TypeFlags.TypeParameter)!==0){let s=n.symbol?.declarations?.[0];if(s&&c.default.isTypeParameterDeclaration(s)&&s.constraint)return q(e,t,e.getTypeFromTypeNode(s.constraint),r,i,a,o)}let s=o??n,l=a?{suggestions:[...k(s,e),...t?se(e,t,s,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...R(e,r,i,s),...G(e,r,i,s)]}:{};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{...q(e,t,a[0],r,i,!1),...l}}if(Y(n))return{input:`boolean`,...l};if(ge(n)||he(n))return{input:`select`,...l};if(X(n))return{input:`number`,...l};if(Z(n))return{input:`text`,...l};if(Q(n))return{input:`sub-flow`,...l};if(_e(e,n))return{input:`list`,items:e.getTypeArguments(n).flatMap(n=>(n.isUnion()?n.types:[n]).map(n=>q(e,t,n,r,i,a))),...l};if((n.flags&c.default.TypeFlags.Object)!==0){let o={},s=[];for(let l of e.getPropertiesOfType(n)){let n=l.valueDeclaration??l.declarations?.[0];if(!n)continue;let u=e.getTypeOfSymbolAtLocation(l,n),d=(l.flags&c.default.SymbolFlags.Optional)!==0||u.isUnion()&&u.types.some(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))!==0),f=(u.isUnion()?u.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0):[u]).map(n=>q(e,t,n,r,i,a));o[l.name]=f.length===1?f[0]:f,d||s.push(l.name)}return{input:`data`,properties:o,required:s,...l}}return{input:`generic`,...l}},J=(e,t,n=!1)=>{if(!e||e.input===`generic`)return fe(pe(t),n);let r=de(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]=ue(t,r)}return{...e,properties:a,...r?{suggestions:r}:{}}}if(e.input===`list`){let n=e.items??[],i=t.input===`list`?t.items??[]:[],a=n.length===i.length&&n.length>0?n.map((e,t)=>J(e,i[t])):n;return{...e,items:a,...r?{suggestions:r}:{}}}return{...e,...r?{suggestions:r}:{}}},ue=(e,t)=>e&&!Array.isArray(e)&&t&&!Array.isArray(t)?J(e,t):e??t,de=(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},fe=(e,t)=>!t||e.input!==`generic`?e:{input:`data`,properties:{},required:[],...e.suggestions?{suggestions:e.suggestions}:{}},pe=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`,...t.length>0?{suggestions:t}:{}}};function Y(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 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 me(e){return Z(e)||X(e)||Y(e)}function he(e){return(e.flags&c.default.TypeFlags.StringLiteral)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function ge(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(me)}function _e(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Q(e){return e.getCallSignatures().length>0}var ve=(e,t,n,r)=>{let i=D(e,n,t),a=`index.ts`,o=w(a,i),s=o.getSourceFile(a),l=o.languageService.getProgram().getTypeChecker(),u=e.nodes?.nodes?.find(e=>e?.id===r),d=r?`fn_${u?.functionDefinition?.identifier?.replace(/::/g,`_`)}`:`flow`,f=r?`node_${E(r)}`:`flow_${E(e.id)}`,p=ye(s),m=be(s).get(f),h=p.get(d),g=xe(l,m),_=Se(l,h,m),v=g?.map((e,t)=>(e.flags&c.default.TypeFlags.Undefined)===0?e:_?.[t]??e),y=Ce(h,g),b=(u?.parameters?.nodes??[]).map(e=>e?.value!=null);return $(r,l,m,v,_,y,r?p:new Map,r?n:[],b)},ye=e=>new Map(e.statements.filter(c.default.isFunctionDeclaration).map(e=>[e.name.getText(),e])),be=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)},xe=(e,t)=>{if(!(!t?.initializer||!c.default.isCallExpression(t.initializer)))return e.getResolvedSignature(t.initializer)?.parameters.map(n=>e.getTypeOfSymbolAtLocation(n,t.initializer))},Se=(e,t,n)=>{if(!(!t||!n?.initializer))return t.parameters.map(t=>{let r=e.getSymbolAtLocation(t.name);return e.getTypeOfSymbolAtLocation(r,n.initializer)})},Ce=(e,t)=>{let n=e.typeParameters?.map(e=>e.name.getText())||[],r={};e.parameters.forEach((e,t)=>{if(!e.type)return;let i=new Set;e.type.forEachChild(function t(r){if(c.default.isTypeReferenceNode(r)&&c.default.isIdentifier(r.typeName)){let e=r.typeName.text;n.includes(e)&&i.add(e)}if(c.default.isTypeReferenceNode(e.type)&&c.default.isIdentifier(e.type.typeName)){let t=e.type.typeName.text;n.includes(t)&&i.add(t)}r.forEachChild(t)}),i.forEach(e=>{r[e]||(r[e]=[]),r[e].push(t)})});let i=Object.values(r).filter(e=>e.length>1).map(([e,...t])=>t.map(t=>({parameterIndex:t,dependsOnIndex:e}))).flat();return t?i.filter(e=>{let n=t[e.parameterIndex];if(!n)return!0;let r=(n.flags&c.default.TypeFlags.Null)!==0,i=(n.flags&c.default.TypeFlags.Undefined)!==0;return r||i}):i},$=(e,t,n,r,i,a,o,s,c)=>r?r.map((r,l)=>{let u=i?.[l],d=u?we(t,u):void 0,f=q(t,n,r,Array.from(o.values()),s,!0,d);return{nodeId:e,schema:J(u?q(t,n,u,Array.from(o.values()),s,!1):void 0,f,c[l]??!1),blockedBy:a.filter(e=>e.parameterIndex===l).map(e=>e.dependsOnIndex)}}):[],we=(e,t)=>{if((t.flags&c.default.TypeFlags.TypeParameter)===0)return t;let n=t.symbol?.declarations?.[0];return n&&c.default.isTypeParameterDeclaration(n)&&n.constraint?e.getTypeFromTypeNode(n.constraint):e.getAnyType()},Te=(e,t=[])=>{let n=`index.ts`,r=w(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 q(a,void 0,s,[],[],!1)};exports.getFlowValidation=ae,exports.getSignatureSchema=ve,exports.getTypeFromValue=re,exports.getTypeSchema=Te,exports.getValueFromType=ie,exports.getValueValidation=oe;
56
+ `),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}},O=e=>{if(c.default.isUnionTypeNode(e))return e.types.flatMap(O);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[]},k=(e,t)=>{if(t&&e.aliasSymbol){let t=e.aliasSymbol.declarations?.[0];if(t&&c.default.isTypeAliasDeclaration(t))return O(t.type)}return e.isUnion()?e.types.flatMap(e=>k(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`}]:[]},se=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!ce(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?A(i,o,e,n):i.startsWith(`p_`)?j(i,o,e,n):i.startsWith(`flow_`)?M(o,e,n):[]}),ce=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),A=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=N(e.replace(`node_`,``));return F(t,n,r).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(t.referencePath=e),t})},j=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=P(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>F(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}))},M=(e,t,n)=>F(e,t,n).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(t.referencePath=e),t}),N=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),P=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:N(r),paramIndexFromName:i}},F=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),I(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(...F(a,t,n,s))})}return i},I=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},L=(e,t,n,r)=>Z(r)?[]:t.flatMap(t=>{let i=R(e,t,n,r);return i?[i]:[]}),R=(e,t,n,r)=>{if(t.parameters.length>0)return null;let i=e.getSignatureFromDeclaration(t),a=z(e,e.getReturnTypeOfSignature(i));if(!e.isTypeAssignableTo(a,r))return null;let o=B(t.name?.getText());return V(n.find(e=>e.identifier===o))},z=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,B=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,V=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=H(e?.parameterDefinitions?.nodes||[])),n},H=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>U(e))}),U=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),W=(e,t,n,r)=>Z(r)?t.flatMap(t=>{let i=G(e,t,n,r);return i?[i]:[]}):[],G=(e,t,n,r)=>{let i=e.getTypeAtLocation(t);if(!e.isTypeAssignableTo(i,r))return null;let a=le(t.name?.getText()),o=n.find(e=>e.identifier===a);return o?ue(o):null},le=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,ue=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}))}),K=(e,t,n,r,i,a=!0,o)=>{if((n.flags&c.default.TypeFlags.TypeParameter)!==0){let s=n.symbol?.declarations?.[0];if(s&&c.default.isTypeParameterDeclaration(s)&&s.constraint)return K(e,t,e.getTypeFromTypeNode(s.constraint),r,i,a,o)}let s=o??n,l=a?{suggestions:[...k(s,e),...t?se(e,t,s,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...L(e,r,i,s),...W(e,r,i,s)]}:{};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{...K(e,t,a[0],r,i,!1),...l}}if(J(n))return{input:`boolean`,...l};if(_e(n)||ge(n))return{input:`select`,...l};if(Y(n))return{input:`number`,...l};if(X(n))return{input:`text`,...l};if(Z(n))return{input:`sub-flow`,...l};if(ve(e,n))return{input:`list`,items:e.getTypeArguments(n).flatMap(n=>(n.isUnion()?n.types:[n]).map(n=>K(e,t,n,r,i,a))),...l};if((n.flags&c.default.TypeFlags.Object)!==0){let o={},s=[];for(let l of e.getPropertiesOfType(n)){let n=l.valueDeclaration??l.declarations?.[0];if(!n)continue;let u=e.getTypeOfSymbolAtLocation(l,n),d=(l.flags&c.default.SymbolFlags.Optional)!==0||u.isUnion()&&u.types.some(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))!==0),f=(u.isUnion()?u.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0):[u]).map(n=>K(e,t,n,r,i,a));o[l.name]=f.length===1?f[0]:f,d||s.push(l.name)}return{input:`data`,properties:o,required:s,...l}}return{input:`generic`,...l}},q=(e,t,n=!1)=>{if(!e||e.input===`generic`)return pe(me(t),n);let r=fe(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]=de(t,r)}return{...e,properties:a,...r?{suggestions:r}:{}}}if(e.input===`list`){let n=e.items??[],i=t.input===`list`?t.items??[]:[],a=n.length===i.length&&n.length>0?n.map((e,t)=>q(e,i[t])):n;return{...e,items:a,...r?{suggestions:r}:{}}}return{...e,...r?{suggestions:r}:{}}},de=(e,t)=>e&&!Array.isArray(e)&&t&&!Array.isArray(t)?q(e,t):e??t,fe=(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},pe=(e,t)=>!t||e.input!==`generic`?e:{input:`data`,properties:{},required:[],...e.suggestions?{suggestions:e.suggestions}:{}},me=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`,...t.length>0?{suggestions:t}:{}}};function J(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 Y(e){return(e.flags&c.default.TypeFlags.Number)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function X(e){return(e.flags&c.default.TypeFlags.String)!==0||(e.flags&c.default.TypeFlags.StringLiteral)!==0}function he(e){return X(e)||Y(e)||J(e)}function ge(e){return(e.flags&c.default.TypeFlags.StringLiteral)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function _e(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(he)}function ve(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Z(e){return e.getCallSignatures().length>0}var ye=(e,t,n,r)=>{let i=D(e,n,t),a=`index.ts`,o=w(a,i),s=o.getSourceFile(a),l=o.languageService.getProgram().getTypeChecker(),u=e.nodes?.nodes?.find(e=>e?.id===r),d=r?`fn_${u?.functionDefinition?.identifier?.replace(/::/g,`_`)}`:`flow`,f=r?`node_${E(r)}`:`flow_${E(e.id)}`,p=be(s),m=xe(s).get(f),h=p.get(d),g=Se(l,m),_=Ce(l,h,m),v=g?.map((e,t)=>(e.flags&c.default.TypeFlags.Undefined)===0?e:_?.[t]??e),y=we(h,g),b=(u?.parameters?.nodes??[]).map(e=>e?.value!=null);return Q(r,l,m,v,_,y,r?p:new Map,r?n:[],b)},be=e=>new Map(e.statements.filter(c.default.isFunctionDeclaration).map(e=>[e.name.getText(),e])),xe=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)},Se=(e,t)=>{if(!(!t?.initializer||!c.default.isCallExpression(t.initializer)))return e.getResolvedSignature(t.initializer)?.parameters.map(n=>e.getTypeOfSymbolAtLocation(n,t.initializer))},Ce=(e,t,n)=>{if(!(!t||!n?.initializer))return t.parameters.map(t=>{let r=e.getSymbolAtLocation(t.name);return e.getTypeOfSymbolAtLocation(r,n.initializer)})},we=(e,t)=>{let n=e.typeParameters?.map(e=>e.name.getText())||[],r={};e.parameters.forEach((e,t)=>{if(!e.type)return;let i=new Set;e.type.forEachChild(function t(r){if(c.default.isTypeReferenceNode(r)&&c.default.isIdentifier(r.typeName)){let e=r.typeName.text;n.includes(e)&&i.add(e)}if(c.default.isTypeReferenceNode(e.type)&&c.default.isIdentifier(e.type.typeName)){let t=e.type.typeName.text;n.includes(t)&&i.add(t)}r.forEachChild(t)}),i.forEach(e=>{r[e]||(r[e]=[]),r[e].push(t)})});let i=Object.values(r).filter(e=>e.length>1).map(([e,...t])=>t.map(t=>({parameterIndex:t,dependsOnIndex:e}))).flat();return t?i.filter(e=>{let n=t[e.parameterIndex];if(!n)return!0;let r=(n.flags&c.default.TypeFlags.Null)!==0,i=(n.flags&c.default.TypeFlags.Undefined)!==0;return r||i}):i},Q=(e,t,n,r,i,a,o,s,c)=>r?r.map((r,l)=>{let u=i?.[l],d=u?Te(t,u,n):void 0,f=K(t,n,r,Array.from(o.values()),s,!0,d);return{nodeId:e,schema:q(u?K(t,n,u,Array.from(o.values()),s,!1):void 0,f,c[l]??!1),blockedBy:a.filter(e=>e.parameterIndex===l).map(e=>e.dependsOnIndex)}}):[],Te=(e,t,n)=>{if((t.flags&c.default.TypeFlags.TypeParameter)!==0){let n=t.symbol?.declarations?.[0];return n&&c.default.isTypeParameterDeclaration(n)&&n.constraint?e.getTypeFromTypeNode(n.constraint):e.getAnyType()}if((t.flags&c.default.TypeFlags.Conditional)!==0)return e.getBaseConstraintOfType(t)??e.getAnyType();if((t.flags&c.default.TypeFlags.Object)!==0&&$(t,e,new Set)){let r=t.aliasSymbol?.getName();if(r){let t=e.getSymbolsInScope(n,c.default.SymbolFlags.Variable).find(e=>e.getName()===`__widen_${r}`);if(t)return e.getTypeOfSymbolAtLocation(t,n)}return e.getAnyType()}return t},$=(e,t,n)=>n.has(e)?!1:(n.add(e),!!((e.flags&c.default.TypeFlags.TypeParameter)!==0||(e.flags&c.default.TypeFlags.Object)!==0&&(t.getTypeArguments(e).some(e=>$(e,t,n))||e.aliasTypeArguments?.some(e=>$(e,t,n))))),Ee=(e,t=[])=>{let n=`index.ts`,r=w(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 K(a,void 0,s,[],[],!1)};exports.getFlowValidation=ae,exports.getSignatureSchema=ye,exports.getTypeFromValue=re,exports.getTypeSchema=Ee,exports.getValueFromType=ie,exports.getValueValidation=oe;
@@ -256,8 +256,8 @@ var b = {
256
256
  strictNullChecks: !0
257
257
  };
258
258
  function x(e, t = "any", n = !0) {
259
- let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => `type ${e.identifier}${(e.genericKeys?.length ?? 0) > 0 ? `<${e.genericKeys?.join(",")}>` : ""} = ${e.type};`).join("\n");
260
- return `${n ? r : ""}\n${i}`;
259
+ let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => `type ${e.identifier}${(e.genericKeys?.length ?? 0) > 0 ? `<${e.genericKeys?.join(",")}>` : ""} = ${e.type};`).join("\n"), 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") ?? "";
260
+ return `${n ? r : ""}\n${i}\n${a}`;
261
261
  }
262
262
  var S = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_");
263
263
  function C(e, t, n, r = !1) {
@@ -340,7 +340,7 @@ var w = (t, n) => {
340
340
  e.forEachChild(t, u);
341
341
  };
342
342
  return u(s), l;
343
- }, ee = (t, n) => {
343
+ }, T = (t, n) => {
344
344
  let r = `
345
345
  ${x(n)}
346
346
  type Target = ${t};
@@ -386,7 +386,7 @@ var w = (t, n) => {
386
386
  __typename: "LiteralValue",
387
387
  value: u(l, c)
388
388
  };
389
- }, T = (e, n, r) => {
389
+ }, ee = (e, n, r) => {
390
390
  if (!e?.startingNodeId) return {
391
391
  isValid: !1,
392
392
  returnType: "void",
@@ -554,7 +554,7 @@ var w = (t, n) => {
554
554
  }, M = (t) => {
555
555
  let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
556
556
  return (t.flags & n) === 0;
557
- }, N = (e, t, n, r) => Q(r) ? [] : t.flatMap((t) => {
557
+ }, N = (e, t, n, r) => Z(r) ? [] : t.flatMap((t) => {
558
558
  let i = P(e, t, n, r);
559
559
  return i ? [i] : [];
560
560
  }), P = (e, t, n, r) => {
@@ -591,7 +591,7 @@ var w = (t, n) => {
591
591
  __typename: "LiteralValue",
592
592
  value: e.defaultValue.value
593
593
  } : null
594
- }), B = (e, t, n, r) => Q(r) ? t.flatMap((t) => {
594
+ }), B = (e, t, n, r) => Z(r) ? t.flatMap((t) => {
595
595
  let i = V(e, t, n, r);
596
596
  return i ? [i] : [];
597
597
  }) : [], V = (e, t, n, r) => {
@@ -628,27 +628,27 @@ var w = (t, n) => {
628
628
  ...l
629
629
  };
630
630
  }
631
- if (Y(r)) return {
631
+ if (J(r)) return {
632
632
  input: "boolean",
633
633
  ...l
634
634
  };
635
- if (le(r) || ce(r)) return {
635
+ if (ue(r) || le(r)) return {
636
636
  input: "select",
637
637
  ...l
638
638
  };
639
- if (X(r)) return {
639
+ if (Y(r)) return {
640
640
  input: "number",
641
641
  ...l
642
642
  };
643
- if (Z(r)) return {
643
+ if (X(r)) return {
644
644
  input: "text",
645
645
  ...l
646
646
  };
647
- if (Q(r)) return {
647
+ if (Z(r)) return {
648
648
  input: "sub-flow",
649
649
  ...l
650
650
  };
651
- if (ue(t, r)) return {
651
+ if (de(t, r)) return {
652
652
  input: "list",
653
653
  items: t.getTypeArguments(r).flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => W(t, n, e, i, a, o))),
654
654
  ...l
@@ -673,13 +673,13 @@ var w = (t, n) => {
673
673
  ...l
674
674
  };
675
675
  }, G = (e, t, n = !1) => {
676
- if (!e || e.input === "generic") return J(oe(t), n);
677
- let r = q(e.suggestions, t.suggestions);
676
+ if (!e || e.input === "generic") return q(se(t), n);
677
+ let r = K(e.suggestions, t.suggestions);
678
678
  if (e.input === "data") {
679
679
  let n = e.properties ?? {}, i = t.input === "data" ? t.properties ?? {} : {}, a = {}, o = new Set([...Object.keys(n), ...Object.keys(i)]);
680
680
  for (let e of o) {
681
681
  let t = n[e], r = i[e];
682
- a[e] = K(t, r);
682
+ a[e] = oe(t, r);
683
683
  }
684
684
  return {
685
685
  ...e,
@@ -699,7 +699,7 @@ var w = (t, n) => {
699
699
  ...e,
700
700
  ...r ? { suggestions: r } : {}
701
701
  };
702
- }, K = (e, t) => e && !Array.isArray(e) && t && !Array.isArray(t) ? G(e, t) : e ?? t, q = (e, t) => {
702
+ }, oe = (e, t) => e && !Array.isArray(e) && t && !Array.isArray(t) ? G(e, t) : e ?? t, K = (e, t) => {
703
703
  let n = [...e ?? [], ...t ?? []];
704
704
  if (n.length === 0) return;
705
705
  let r = /* @__PURE__ */ new Set(), i = [];
@@ -708,12 +708,12 @@ var w = (t, n) => {
708
708
  r.has(t) || (r.add(t), i.push(e));
709
709
  }
710
710
  return i;
711
- }, J = (e, t) => !t || e.input !== "generic" ? e : {
711
+ }, q = (e, t) => !t || e.input !== "generic" ? e : {
712
712
  input: "data",
713
713
  properties: {},
714
714
  required: [],
715
715
  ...e.suggestions ? { suggestions: e.suggestions } : {}
716
- }, oe = (e) => {
716
+ }, se = (e) => {
717
717
  if (e.input !== "select") return e;
718
718
  let t = e.suggestions ?? [], n = /* @__PURE__ */ new Set();
719
719
  for (let e of t) {
@@ -729,7 +729,7 @@ var w = (t, n) => {
729
729
  ...t.length > 0 ? { suggestions: t } : {}
730
730
  };
731
731
  };
732
- function Y(t) {
732
+ function J(t) {
733
733
  if ((t.flags & e.TypeFlags.Boolean) !== 0 || (t.flags & e.TypeFlags.BooleanLiteral) !== 0) return !0;
734
734
  if (t.isUnion()) {
735
735
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
@@ -737,49 +737,49 @@ function Y(t) {
737
737
  }
738
738
  return !1;
739
739
  }
740
- function X(t) {
740
+ function Y(t) {
741
741
  return (t.flags & e.TypeFlags.Number) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
742
742
  }
743
- function Z(t) {
743
+ function X(t) {
744
744
  return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
745
745
  }
746
- function se(e) {
747
- return Z(e) || X(e) || Y(e);
746
+ function ce(e) {
747
+ return X(e) || Y(e) || J(e);
748
748
  }
749
- function ce(t) {
749
+ function le(t) {
750
750
  return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
751
751
  }
752
- function le(t) {
752
+ function ue(t) {
753
753
  if (!t.isUnion()) return !1;
754
754
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
755
- return n.length > 0 && n.every(se);
755
+ return n.length > 0 && n.every(ce);
756
756
  }
757
- function ue(e, t) {
757
+ function de(e, t) {
758
758
  return e.isArrayType(t) || e.isTupleType(t);
759
759
  }
760
- function Q(e) {
760
+ function Z(e) {
761
761
  return e.getCallSignatures().length > 0;
762
762
  }
763
763
  //#endregion
764
764
  //#region src/schema/getSignatureSchema.ts
765
- var de = (t, n, r, i) => {
766
- let a = C(t, r, n), o = "index.ts", s = y(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram().getTypeChecker(), u = t.nodes?.nodes?.find((e) => e?.id === i), d = i ? `fn_${u?.functionDefinition?.identifier?.replace(/::/g, "_")}` : "flow", f = i ? `node_${S(i)}` : `flow_${S(t.id)}`, p = fe(c), m = pe(c).get(f), h = p.get(d), g = me(l, m), _ = he(l, h, m), v = g?.map((t, n) => (t.flags & e.TypeFlags.Undefined) === 0 ? t : _?.[n] ?? t), b = ge(h, g), x = (u?.parameters?.nodes ?? []).map((e) => e?.value != null);
767
- return $(i, l, m, v, _, b, i ? p : /* @__PURE__ */ new Map(), i ? r : [], x);
768
- }, fe = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), pe = (t) => {
765
+ var fe = (t, n, r, i) => {
766
+ let a = C(t, r, n), o = "index.ts", s = y(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram().getTypeChecker(), u = t.nodes?.nodes?.find((e) => e?.id === i), d = i ? `fn_${u?.functionDefinition?.identifier?.replace(/::/g, "_")}` : "flow", f = i ? `node_${S(i)}` : `flow_${S(t.id)}`, p = pe(c), m = me(c).get(f), h = p.get(d), g = he(l, m), _ = ge(l, h, m), v = g?.map((t, n) => (t.flags & e.TypeFlags.Undefined) === 0 ? t : _?.[n] ?? t), b = _e(h, g), x = (u?.parameters?.nodes ?? []).map((e) => e?.value != null);
767
+ return Q(i, l, m, v, _, b, i ? p : /* @__PURE__ */ new Map(), i ? r : [], x);
768
+ }, pe = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), me = (t) => {
769
769
  let n = [];
770
770
  return t.statements.forEach((t) => {
771
771
  t.forEachChild(function t(r) {
772
772
  e.isVariableDeclaration(r) && (r.parent.flags & e.NodeFlags.Const) !== 0 && n.push([r.name.getText(), r]), r.forEachChild(t);
773
773
  });
774
774
  }), new Map(n);
775
- }, me = (t, n) => {
775
+ }, he = (t, n) => {
776
776
  if (!(!n?.initializer || !e.isCallExpression(n.initializer))) return t.getResolvedSignature(n.initializer)?.parameters.map((e) => t.getTypeOfSymbolAtLocation(e, n.initializer));
777
- }, he = (e, t, n) => {
777
+ }, ge = (e, t, n) => {
778
778
  if (!(!t || !n?.initializer)) return t.parameters.map((t) => {
779
779
  let r = e.getSymbolAtLocation(t.name);
780
780
  return e.getTypeOfSymbolAtLocation(r, n.initializer);
781
781
  });
782
- }, ge = (t, n) => {
782
+ }, _e = (t, n) => {
783
783
  let r = t.typeParameters?.map((e) => e.name.getText()) || [], i = {};
784
784
  t.parameters.forEach((t, n) => {
785
785
  if (!t.type) return;
@@ -808,18 +808,29 @@ var de = (t, n, r, i) => {
808
808
  let i = (r.flags & e.TypeFlags.Null) !== 0, a = (r.flags & e.TypeFlags.Undefined) !== 0;
809
809
  return i || a;
810
810
  }) : a;
811
- }, $ = (e, t, n, r, i, a, o, s, c) => r ? r.map((r, l) => {
812
- let u = i?.[l], d = u ? _e(t, u) : void 0, f = W(t, n, r, Array.from(o.values()), s, !0, d);
811
+ }, Q = (e, t, n, r, i, a, o, s, c) => r ? r.map((r, l) => {
812
+ let u = i?.[l], d = u ? ve(t, u, n) : void 0, f = W(t, n, r, Array.from(o.values()), s, !0, d);
813
813
  return {
814
814
  nodeId: e,
815
815
  schema: G(u ? W(t, n, u, Array.from(o.values()), s, !1) : void 0, f, c[l] ?? !1),
816
816
  blockedBy: a.filter((e) => e.parameterIndex === l).map((e) => e.dependsOnIndex)
817
817
  };
818
- }) : [], _e = (t, n) => {
819
- if ((n.flags & e.TypeFlags.TypeParameter) === 0) return n;
820
- let r = n.symbol?.declarations?.[0];
821
- return r && e.isTypeParameterDeclaration(r) && r.constraint ? t.getTypeFromTypeNode(r.constraint) : t.getAnyType();
822
- }, ve = (t, n = []) => {
818
+ }) : [], ve = (t, n, r) => {
819
+ if ((n.flags & e.TypeFlags.TypeParameter) !== 0) {
820
+ let r = n.symbol?.declarations?.[0];
821
+ return r && e.isTypeParameterDeclaration(r) && r.constraint ? t.getTypeFromTypeNode(r.constraint) : t.getAnyType();
822
+ }
823
+ if ((n.flags & e.TypeFlags.Conditional) !== 0) return t.getBaseConstraintOfType(n) ?? t.getAnyType();
824
+ if ((n.flags & e.TypeFlags.Object) !== 0 && $(n, t, /* @__PURE__ */ new Set())) {
825
+ let i = n.aliasSymbol?.getName();
826
+ if (i) {
827
+ let n = t.getSymbolsInScope(r, e.SymbolFlags.Variable).find((e) => e.getName() === `__widen_${i}`);
828
+ if (n) return t.getTypeOfSymbolAtLocation(n, r);
829
+ }
830
+ return t.getAnyType();
831
+ }
832
+ return n;
833
+ }, $ = (t, n, r) => r.has(t) ? !1 : (r.add(t), !!((t.flags & e.TypeFlags.TypeParameter) !== 0 || (t.flags & e.TypeFlags.Object) !== 0 && (n.getTypeArguments(t).some((e) => $(e, n, r)) || t.aliasTypeArguments?.some((e) => $(e, n, r))))), ye = (t, n = []) => {
823
834
  let r = "index.ts", i = y(r, `${x(n)}\ntype MyType = ${t}`).languageService.getProgram(), a = i?.getSourceFile(r), o = i?.getTypeChecker();
824
835
  if (!a || !o) return;
825
836
  let s = a.statements.filter((t) => e.isTypeAliasDeclaration(t) || e.isInterfaceDeclaration(t) || e.isClassDeclaration(t)).pop();
@@ -828,4 +839,4 @@ var de = (t, n, r, i) => {
828
839
  if (c) return W(o, void 0, c, [], [], !1);
829
840
  };
830
841
  //#endregion
831
- export { T as getFlowValidation, de as getSignatureSchema, w as getTypeFromValue, ve as getTypeSchema, ee as getValueFromType, E as getValueValidation };
842
+ export { ee as getFlowValidation, fe as getSignatureSchema, w as getTypeFromValue, ye as getTypeSchema, T as getValueFromType, E as getValueValidation };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code0-tech/triangulum",
3
- "version": "0.25.4",
3
+ "version": "0.25.6",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/code0-tech/triangulum#readme",
6
6
  "bugs": {