@code0-tech/triangulum 0.14.1 → 0.14.3
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
CHANGED
|
@@ -52,4 +52,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
52
52
|
${D(n)}
|
|
53
53
|
const testValue: ${e} = ${r};
|
|
54
54
|
`,a=`index.ts`,o=T(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}},M=e=>e.isUnion()?e.types.flatMap(M):e.isStringLiteral()?[{value:e.value,__typename:`LiteralValue`}]:e.isNumberLiteral()?[{value:e.value.toString()}]:e.intrinsicName===`true`?[{value
|
|
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}},M=e=>e.isUnion()?e.types.flatMap(M):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`}]:[],N=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!P(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?F(i,o,e,n):i.startsWith(`p_`)?I(i,o,e,n):i.startsWith(`flow_`)?L(o,e,n):[]}),P=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),F=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=R(e.replace(`node_`,``));return B(t,n,r).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(t.referencePath=e),t})},I=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=z(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>B(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}))},L=(e,t,n)=>B(e,t,n).flatMap(({path:e})=>{let t={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(t.referencePath=e),t}),R=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),z=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:R(r),paramIndexFromName:i}},B=(e,t,n,r=[])=>{let i=[];if(t.isTypeAssignableTo(e,n)&&i.push({path:r,type:e}),V(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(...B(a,t,n,s))})}return i},V=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},H=(e,t,n,r)=>Q(r)?[]:t.flatMap(t=>{let i=U(e,t,n,r);return i?[i]:[]}),U=(e,t,n,r)=>{let i=e.getSignatureFromDeclaration(t),a=W(e,e.getReturnTypeOfSignature(i));if(!e.isTypeAssignableTo(a,r))return null;let o=G(t.name?.getText());return re(n.find(e=>e.identifier===o))},W=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,G=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,re=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=K(e?.parameterDefinitions?.nodes||[])),n},K=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>q(e))}),q=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),J=(e,t,n,r,i)=>{let a=M(n),o=N(e,t,n,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)),s=H(e,r,i,n),l={suggestions:[...a,...o,...s]};if(Y(n))return{input:`boolean`,...l};if(X(n))return{input:`number`,...l};if(Z(n))return{input:`text`,...l};if(ae(n))return{input:`select`,...l};if(Q(n))return{input:`sub-flow`,...l};if(oe(e,n)){let a=e.getTypeArguments(n)[0],o=(a.isUnion()?a.types:[a]).map(n=>J(e,t,n,r,i));return{input:`list`,items:o.length===1?o[0]:o,...l}}if((n.flags&c.default.TypeFlags.Object)!==0){let a={},o=[];for(let s of e.getPropertiesOfType(n)){let n=s.valueDeclaration??s.declarations?.[0];if(!n)continue;let l=e.getTypeOfSymbolAtLocation(s,n),u=(s.flags&c.default.SymbolFlags.Optional)!==0||l.isUnion()&&l.types.some(e=>(e.flags&c.default.TypeFlags.Undefined)!==0),d=(l.isUnion()?l.types.filter(e=>(e.flags&c.default.TypeFlags.Undefined)===0):[l]).map(n=>J(e,t,n,r,i));a[s.name]=d.length===1?d[0]:d,u||o.push(s.name)}return{input:`data`,properties:a,required:o,...l}}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 ie(e){return Z(e)||X(e)||Y(e)}function ae(e){return e.isUnion()?e.types.every(ie):!1}function oe(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Q(e){return e.getCallSignatures().length>0}var $=(e,t,n,r)=>{let i=k(e,n,t),a=`index.ts`,o=T(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_${O(r)}`:`flow_${O(e.id)}`,f=se(s),p=ce(s).get(d),m=f.get(u),h=le(c,p);return pe(r,c,p,de(c,ue(c,m,p),h),fe(m),r?f:new Map,r?n:[])},se=e=>new Map(e.statements.filter(c.default.isFunctionDeclaration).map(e=>[e.name.getText(),e])),ce=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)},le=(e,t)=>{if(!(!t?.initializer||!c.default.isCallExpression(t.initializer)))return e.getResolvedSignature(t.initializer)?.parameters.map(n=>e.getTypeOfSymbolAtLocation(n,t.initializer))},ue=(e,t,n)=>{if(!(!t||!n?.initializer))return t.parameters.map(t=>{let r=e.getSymbolAtLocation(t.name);return e.getTypeOfSymbolAtLocation(r,n.initializer)})},de=(e,t,n)=>{if(t)return t.map((t,r)=>{let i=n?.[r];if(!i)return t;let a=t.getSymbol(),o=i.getSymbol();if(a&&o&&a===o)return i;if(t.isTypeParameter()){let n=e.getBaseConstraintOfType(t);if(!n||e.isTypeAssignableTo(i,n))return i}return e.isTypeAssignableTo(i,t)?i:t})},fe=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()},pe=(e,t,n,r,i,a,o)=>r?r.map((r,s)=>({nodeId:e,schema:J(t,n,r,Array.from(a.values()),o),blockedBy:i.filter(e=>e.parameterIndex===s).map(e=>e.dependsOnIndex)})):[];exports.getFlowValidation=A,exports.getSignatureSchema=$,exports.getTypeFromValue=te,exports.getValueFromType=ne,exports.getValueValidation=j;
|
package/dist/triangulum.es.js
CHANGED
|
@@ -453,10 +453,10 @@ var w = (t, n) => {
|
|
|
453
453
|
value: e.value,
|
|
454
454
|
__typename: "LiteralValue"
|
|
455
455
|
}] : e.isNumberLiteral() ? [{ value: e.value.toString() }] : e.intrinsicName === "true" ? [{
|
|
456
|
-
value:
|
|
456
|
+
value: !0,
|
|
457
457
|
__typename: "LiteralValue"
|
|
458
458
|
}] : e.intrinsicName === "false" ? [{
|
|
459
|
-
value:
|
|
459
|
+
value: !1,
|
|
460
460
|
__typename: "LiteralValue"
|
|
461
461
|
}] : [], k = (e, t, n, r) => r.flatMap((r) => {
|
|
462
462
|
let i = r.getName();
|
|
@@ -532,7 +532,10 @@ var w = (t, n) => {
|
|
|
532
532
|
functionDefinition: {
|
|
533
533
|
__typename: "FunctionDefinition",
|
|
534
534
|
id: e?.id,
|
|
535
|
-
identifier: e?.identifier
|
|
535
|
+
identifier: e?.identifier,
|
|
536
|
+
names: e?.names,
|
|
537
|
+
descriptions: e?.descriptions,
|
|
538
|
+
displayIcon: e?.displayIcon
|
|
536
539
|
}
|
|
537
540
|
};
|
|
538
541
|
return t && (n.parameters = U(e?.parameterDefinitions?.nodes || [])), n;
|
|
@@ -556,10 +559,6 @@ var w = (t, n) => {
|
|
|
556
559
|
...s,
|
|
557
560
|
...c
|
|
558
561
|
] };
|
|
559
|
-
if (X(r)) return {
|
|
560
|
-
input: "select",
|
|
561
|
-
...l
|
|
562
|
-
};
|
|
563
562
|
if (K(r)) return {
|
|
564
563
|
input: "boolean",
|
|
565
564
|
...l
|
|
@@ -572,6 +571,10 @@ var w = (t, n) => {
|
|
|
572
571
|
input: "text",
|
|
573
572
|
...l
|
|
574
573
|
};
|
|
574
|
+
if (X(r)) return {
|
|
575
|
+
input: "select",
|
|
576
|
+
...l
|
|
577
|
+
};
|
|
575
578
|
if (Q(r)) return {
|
|
576
579
|
input: "sub-flow",
|
|
577
580
|
...l
|
|
@@ -14,14 +14,14 @@ interface Input {
|
|
|
14
14
|
* Represents a generic input type with no specific structure.
|
|
15
15
|
* Used as a fallback when the type cannot be determined.
|
|
16
16
|
*/
|
|
17
|
-
interface GenericInput {
|
|
17
|
+
interface GenericInput extends Input {
|
|
18
18
|
input?: "generic";
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Represents a sub-flow input type (callable/function type).
|
|
22
22
|
* Used for types that have call signatures.
|
|
23
23
|
*/
|
|
24
|
-
interface SubFlowInput {
|
|
24
|
+
interface SubFlowInput extends Input {
|
|
25
25
|
input?: "sub-flow";
|
|
26
26
|
}
|
|
27
27
|
/**
|