@code0-tech/triangulum 0.25.0 → 0.25.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/triangulum.cjs.js +3 -3
- package/dist/triangulum.es.js +51 -28
- package/package.json +1 -1
package/dist/triangulum.cjs.js
CHANGED
|
@@ -25,7 +25,7 @@ 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`,C),p(v(n),[e,`lib.codezero.d.ts`],c.default,T)}var T={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function E(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 D=e=>e?.replace(/[^a-zA-Z0-9]/g,`_`);function O(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_${D(n.nodeFunctionId??`undefined`)}_${n.parameterIndex}[${n.inputIndex}]`:n.nodeFunctionId?`node_${D(n.nodeFunctionId)}`:`flow_${D(e?.id??`undefined`)}`;return n.referencePath?.forEach(e=>{r+=`?.${e.path}`}),`/* @pos ${t} ${a} */ ${r}`}if(o.__typename===`LiteralValue`)return`/* @pos ${t} ${a} */ ${S(o?.value)}`;if(o.__typename===`SubFlowValue`){let e=o;return`/* @pos ${t} ${a} */ (...${`p_${D(t)}_${a}`}) => {\n${s(e.startingNodeId||e.functionDefinition?.id,n+` `)}${n}}`}return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`}),u=`node_${D(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 D=e=>e?.replace(/[^a-zA-Z0-9]/g,`_`);function O(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_${D(n.nodeFunctionId??`undefined`)}_${n.parameterIndex}[${n.inputIndex}]`:n.nodeFunctionId?`node_${D(n.nodeFunctionId)}`:`flow_${D(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_${D(t)}_${a}`}) => {\n${s(e.startingNodeId||e.functionDefinition?.id,n+` `)}${n}}`}return r?`/* @pos ${t} ${a} */ {}`:`/* @pos ${t} ${a} */ undefined`}),u=`node_${D(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+` `)}
|
|
@@ -37,7 +37,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
37
37
|
${l}\n
|
|
38
38
|
${u}\n
|
|
39
39
|
(() =>
|
|
40
|
-
${e?`const flow_${D(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>`/* @pos null ${t} */ ${S(e?.value)}`).join(`, `)??``});`:``}
|
|
40
|
+
${e?`const flow_${D(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>`/* @pos null ${t} */ ${e?.value!==null&&e?.value!==void 0?S(e?.value):void 0}`).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
|
)();
|
|
@@ -52,4 +52,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
52
52
|
${E(n)}
|
|
53
53
|
const testValue: ${e} = ${r};
|
|
54
54
|
`,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}},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 W(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(`_`,`::`):``,W=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=oe(e?.parameterDefinitions?.nodes||[])),n},oe=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(
|
|
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 W(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(`_`,`::`):``,W=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=oe(e?.parameterDefinitions?.nodes||[])),n},oe=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|c.default.TypeFlags.Null))===0);if(a.length===1)return{...J(e,t,a[0],r,i,!1),...o}}if(de(n)||ue(n))return{input:`select`,...o};if(Y(n))return{input:`boolean`,...o};if(X(n))return{input:`number`,...o};if(Z(n))return{input:`text`,...o};if(Q(n))return{input:`sub-flow`,...o};if(fe(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|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=>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.flags&c.default.TypeFlags.StringLiteral)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function de(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(le)}function fe(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Q(e){return e.getCallSignatures().length>0}var pe=(e,t,n,r)=>{let i=O(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_${D(r)}`:`flow_${D(e.id)}`,p=$(s),m=me(s).get(f),h=p.get(d),g=he(l,m),_=ge(l,h,m),v=g?.map((e,t)=>(e.flags&c.default.TypeFlags.Undefined)===0?e:_?.[t]??e);return ve(r,l,m,v,_,_e(h,g),r?p:new Map,r?n:[])},$=e=>new Map(e.statements.filter(c.default.isFunctionDeclaration).map(e=>[e.name.getText(),e])),me=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)},he=(e,t)=>{if(!(!t?.initializer||!c.default.isCallExpression(t.initializer)))return e.getResolvedSignature(t.initializer)?.parameters.map(n=>e.getTypeOfSymbolAtLocation(n,t.initializer))},ge=(e,t,n)=>{if(!(!t||!n?.initializer))return t.parameters.map(t=>{let r=e.getSymbolAtLocation(t.name);return e.getTypeOfSymbolAtLocation(r,n.initializer)})},_e=(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},ve=(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)})):[],ye=(e,t=[])=>{let n=`index.ts`,r=w(n,`${E(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=ie,exports.getSignatureSchema=pe,exports.getTypeFromValue=ne,exports.getTypeSchema=ye,exports.getValueFromType=re,exports.getValueValidation=ae;
|
package/dist/triangulum.es.js
CHANGED
|
@@ -274,7 +274,7 @@ function C(e, t, n, r = !1) {
|
|
|
274
274
|
r += `?.${e.path}`;
|
|
275
275
|
}), `/* @pos ${t} ${a} */ ${r}`;
|
|
276
276
|
}
|
|
277
|
-
if (o.__typename === "LiteralValue") return `/* @pos ${t} ${a} */ ${g(o?.value)}`;
|
|
277
|
+
if (o.__typename === "LiteralValue") return `/* @pos ${t} ${a} */ ${o?.value !== null && o?.value !== void 0 ? g(o?.value) : void 0}`;
|
|
278
278
|
if (o.__typename === "SubFlowValue") {
|
|
279
279
|
let e = o;
|
|
280
280
|
return `/* @pos ${t} ${a} */ (...${`p_${S(t)}_${a}`}) => {\n${s(e.startingNodeId || e.functionDefinition?.id, n + " ")}${n}}`;
|
|
@@ -298,7 +298,7 @@ function C(e, t, n, r = !1) {
|
|
|
298
298
|
${l}\n
|
|
299
299
|
${u}\n
|
|
300
300
|
(() =>
|
|
301
|
-
${e ? `const flow_${S(e.id ?? "")} = /* @pos null null */ flow(${e.settings?.nodes?.map((e, t) => `/* @pos null ${t} */ ${g(e?.value)}`).join(", ") ?? ""});` : ""}
|
|
301
|
+
${e ? `const flow_${S(e.id ?? "")} = /* @pos null null */ flow(${e.settings?.nodes?.map((e, t) => `/* @pos null ${t} */ ${e?.value !== null && e?.value !== void 0 ? g(e?.value) : void 0}`).join(", ") ?? ""});` : ""}
|
|
302
302
|
${i.filter((e) => e?.id && !d.has(e.id) && !f.has(e.id)).map((e) => s(e.id)).join("\n")}
|
|
303
303
|
)();
|
|
304
304
|
`;
|
|
@@ -622,12 +622,16 @@ var w = (t, n) => {
|
|
|
622
622
|
...W(t, i, a, r)
|
|
623
623
|
] } : {};
|
|
624
624
|
if (r.isUnion()) {
|
|
625
|
-
let o = r.types.filter((t) => (t.flags & e.TypeFlags.Undefined) === 0);
|
|
625
|
+
let o = r.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
|
|
626
626
|
if (o.length === 1) return {
|
|
627
627
|
...q(t, n, o[0], i, a, !1),
|
|
628
628
|
...s
|
|
629
629
|
};
|
|
630
630
|
}
|
|
631
|
+
if (ie(r) || re(r)) return {
|
|
632
|
+
input: "select",
|
|
633
|
+
...s
|
|
634
|
+
};
|
|
631
635
|
if (J(r)) return {
|
|
632
636
|
input: "boolean",
|
|
633
637
|
...s
|
|
@@ -640,15 +644,11 @@ var w = (t, n) => {
|
|
|
640
644
|
input: "text",
|
|
641
645
|
...s
|
|
642
646
|
};
|
|
643
|
-
if (re(r)) return {
|
|
644
|
-
input: "select",
|
|
645
|
-
...s
|
|
646
|
-
};
|
|
647
647
|
if (Q(r)) return {
|
|
648
648
|
input: "sub-flow",
|
|
649
649
|
...s
|
|
650
650
|
};
|
|
651
|
-
if (
|
|
651
|
+
if (ae(t, r)) return {
|
|
652
652
|
input: "list",
|
|
653
653
|
items: t.getTypeArguments(r).flatMap((e) => (e.isUnion() ? e.types : [e]).map((e) => q(t, n, e, i, a, o))),
|
|
654
654
|
...s
|
|
@@ -658,7 +658,7 @@ var w = (t, n) => {
|
|
|
658
658
|
for (let s of t.getPropertiesOfType(r)) {
|
|
659
659
|
let r = s.valueDeclaration ?? s.declarations?.[0];
|
|
660
660
|
if (!r) continue;
|
|
661
|
-
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));
|
|
661
|
+
let u = t.getTypeOfSymbolAtLocation(s, r), d = (s.flags & e.SymbolFlags.Optional) !== 0 || u.isUnion() && u.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), f = (u.isUnion() ? u.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0) : [u]).map((e) => q(t, n, e, i, a, o));
|
|
662
662
|
c[s.name] = f.length === 1 ? f[0] : f, d || l.push(s.name);
|
|
663
663
|
}
|
|
664
664
|
return {
|
|
@@ -682,10 +682,15 @@ function X(t) {
|
|
|
682
682
|
function Z(e) {
|
|
683
683
|
return X(e) || Y(e) || J(e);
|
|
684
684
|
}
|
|
685
|
-
function re(
|
|
686
|
-
return e.
|
|
685
|
+
function re(t) {
|
|
686
|
+
return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
|
|
687
|
+
}
|
|
688
|
+
function ie(t) {
|
|
689
|
+
if (!t.isUnion()) return !1;
|
|
690
|
+
let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
|
|
691
|
+
return n.length > 0 && n.every(Z);
|
|
687
692
|
}
|
|
688
|
-
function
|
|
693
|
+
function ae(e, t) {
|
|
689
694
|
return e.isArrayType(t) || e.isTupleType(t);
|
|
690
695
|
}
|
|
691
696
|
function Q(e) {
|
|
@@ -693,40 +698,58 @@ function Q(e) {
|
|
|
693
698
|
}
|
|
694
699
|
//#endregion
|
|
695
700
|
//#region src/schema/getSignatureSchema.ts
|
|
696
|
-
var
|
|
697
|
-
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 =
|
|
698
|
-
return
|
|
699
|
-
},
|
|
701
|
+
var oe = (t, n, r, i) => {
|
|
702
|
+
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 = $(c), m = se(c).get(f), h = p.get(d), g = ce(l, m), _ = le(l, h, m), v = g?.map((t, n) => (t.flags & e.TypeFlags.Undefined) === 0 ? t : _?.[n] ?? t);
|
|
703
|
+
return de(i, l, m, v, _, ue(h, g), i ? p : /* @__PURE__ */ new Map(), i ? r : []);
|
|
704
|
+
}, $ = (t) => new Map(t.statements.filter(e.isFunctionDeclaration).map((e) => [e.name.getText(), e])), se = (t) => {
|
|
700
705
|
let n = [];
|
|
701
706
|
return t.statements.forEach((t) => {
|
|
702
707
|
t.forEachChild(function t(r) {
|
|
703
708
|
e.isVariableDeclaration(r) && (r.parent.flags & e.NodeFlags.Const) !== 0 && n.push([r.name.getText(), r]), r.forEachChild(t);
|
|
704
709
|
});
|
|
705
710
|
}), new Map(n);
|
|
706
|
-
},
|
|
711
|
+
}, ce = (t, n) => {
|
|
707
712
|
if (!(!n?.initializer || !e.isCallExpression(n.initializer))) return t.getResolvedSignature(n.initializer)?.parameters.map((e) => t.getTypeOfSymbolAtLocation(e, n.initializer));
|
|
708
|
-
},
|
|
713
|
+
}, le = (e, t, n) => {
|
|
709
714
|
if (!(!t || !n?.initializer)) return t.parameters.map((t) => {
|
|
710
715
|
let r = e.getSymbolAtLocation(t.name);
|
|
711
716
|
return e.getTypeOfSymbolAtLocation(r, n.initializer);
|
|
712
717
|
});
|
|
713
|
-
},
|
|
714
|
-
let
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
718
|
+
}, ue = (t, n) => {
|
|
719
|
+
let r = t.typeParameters?.map((e) => e.name.getText()) || [], i = {};
|
|
720
|
+
t.parameters.forEach((t, n) => {
|
|
721
|
+
if (!t.type) return;
|
|
722
|
+
let a = /* @__PURE__ */ new Set();
|
|
723
|
+
t.type.forEachChild(function n(i) {
|
|
724
|
+
if (e.isTypeReferenceNode(i) && e.isIdentifier(i.typeName)) {
|
|
725
|
+
let e = i.typeName.text;
|
|
726
|
+
r.includes(e) && a.add(e);
|
|
727
|
+
}
|
|
728
|
+
if (e.isTypeReferenceNode(t.type) && e.isIdentifier(t.type.typeName)) {
|
|
729
|
+
let e = t.type.typeName.text;
|
|
730
|
+
r.includes(e) && a.add(e);
|
|
731
|
+
}
|
|
732
|
+
i.forEachChild(n);
|
|
733
|
+
}), a.forEach((e) => {
|
|
734
|
+
i[e] || (i[e] = []), i[e].push(n);
|
|
719
735
|
});
|
|
720
|
-
})
|
|
736
|
+
});
|
|
737
|
+
let a = Object.values(i).filter((e) => e.length > 1).map(([e, ...t]) => t.map((t) => ({
|
|
721
738
|
parameterIndex: t,
|
|
722
739
|
dependsOnIndex: e
|
|
723
740
|
}))).flat();
|
|
724
|
-
|
|
741
|
+
return n ? a.filter((t) => {
|
|
742
|
+
let r = n[t.parameterIndex];
|
|
743
|
+
if (!r) return !0;
|
|
744
|
+
let i = (r.flags & e.TypeFlags.Null) !== 0, a = (r.flags & e.TypeFlags.Undefined) !== 0;
|
|
745
|
+
return i || a;
|
|
746
|
+
}) : a;
|
|
747
|
+
}, de = (e, t, n, r, i, a, o, s) => r ? r.map((r, c) => ({
|
|
725
748
|
nodeId: e,
|
|
726
749
|
schema: q(t, n, r, Array.from(o.values()), s),
|
|
727
750
|
functionSchema: q(t, n, i?.[c], Array.from(o.values()), s, !1),
|
|
728
751
|
blockedBy: a.filter((e) => e.parameterIndex === c).map((e) => e.dependsOnIndex)
|
|
729
|
-
})) : [],
|
|
752
|
+
})) : [], fe = (t, n = []) => {
|
|
730
753
|
let r = "index.ts", i = y(r, `${x(n)}\ntype MyType = ${t}`).languageService.getProgram(), a = i?.getSourceFile(r), o = i?.getTypeChecker();
|
|
731
754
|
if (!a || !o) return;
|
|
732
755
|
let s = a.statements.filter((t) => e.isTypeAliasDeclaration(t) || e.isInterfaceDeclaration(t) || e.isClassDeclaration(t)).pop();
|
|
@@ -735,4 +758,4 @@ var ae = (t, n, r, i) => {
|
|
|
735
758
|
if (c) return q(o, void 0, c, [], [], !1);
|
|
736
759
|
};
|
|
737
760
|
//#endregion
|
|
738
|
-
export { E as getFlowValidation,
|
|
761
|
+
export { E as getFlowValidation, oe as getSignatureSchema, w as getTypeFromValue, fe as getTypeSchema, T as getValueFromType, D as getValueValidation };
|