@code0-tech/triangulum 0.38.1 → 0.38.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.
@@ -35,7 +35,11 @@ export type SchematizedFlow = Flow & SignatureSchemas;
35
35
  *
36
36
  * The schemas are computed from the real signatures, resolved through the same
37
37
  * virtual TypeScript program that {@link generateFlowSourceCode} builds:
38
- * - For the flow, the schemas come from the flow's own `signature`.
38
+ * - For the flow, the schemas come from the flow's own `signature`, resolved at
39
+ * the generated `flow(<settings>)` call so the flow settings instantiate its
40
+ * type parameters — a generic link between input and output (as a REST flow's
41
+ * `<T extends TYPE>(input_schema: T, …): REST_ADAPTER_INPUT<T>`) therefore
42
+ * carries the shape the settings actually supply.
39
43
  * - For a sub-flow, the schemas come from the *value* generated at that argument
40
44
  * position — the lambda `(...p) => { …body… }` emitted by
41
45
  * {@link generateFlowSourceCode} — not from the callback parameter the
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-BftsgxoV.cjs");let t=require("typescript");t=e.b(t,1);var n=(n,r)=>{let i=e.y(n?.value);if(!i)return`any`;let a=`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-B9Q45S9v.cjs");let t=require("typescript");t=e.b(t,1);var n=(n,r)=>{let i=e.y(n?.value);if(!i)return`any`;let a=`
2
2
  ${e.r(r,`unknown`)}
3
3
  const tempValue = ${i??`any`};
4
4
  `,o=`index.ts`,s=e.t(o,a),c=s.getSourceFile(o),l=s.languageService.getProgram().getTypeChecker(),u=`any`,d=e=>{if(t.default.isVariableDeclaration(e)&&e.name.getText()===`tempValue`){let n=l.getTypeAtLocation(e),r=n=>{if(n.isUnion()){let e=n.types.map(r);return Array.from(new Set(e)).sort().join(` | `)}if(l.isArrayType(n)){let e=n.typeArguments||[],t=e.length>0?r(e[0]):`any`;return e[0]?.isUnion()?`(${t})[]`:`${t}[]`}if(n.getFlags()&t.default.TypeFlags.Object||n.isClassOrInterface()){let t=l.getPropertiesOfType(n);if(t.length>0)return`{ ${t.map(t=>{let n=l.getTypeOfSymbolAtLocation(t,e);return`${t.getName()}: ${r(n)}`}).join(`, `)} }`}let i=l.getBaseTypeOfLiteralType(n);return l.typeToString(i,e)};u=r(n)}t.default.forEachChild(e,d)};return d(c),u},r=(n,r)=>{let i=`
5
5
  ${e.r(r)}
6
6
  type Target = ${n};
7
- `,a=`index.ts`,o=e.t(a,i),s=o.getSourceFile(a),c=o.languageService.getProgram().getTypeChecker(),l=s.statements.find(e=>t.default.isTypeAliasDeclaration(e)&&e.name.text===`Target`);if(!l)return{__typename:`LiteralValue`,value:null};let u=c.getTypeAtLocation(l.type),d=(e,n,r=new Set)=>{let i=new Set(r);if(i.has(e))return null;let a=e.getFlags();if(e.isUnion()){if(n.type,t.default.isTypeAliasDeclaration(n)&&n.type&&t.default.isUnionTypeNode(n.type)){let e=c.getTypeFromTypeNode(n.type.types[0]);return d(e,n,i)}let r=e.types.filter(e=>{let n=e.getFlags();return!(n&t.default.TypeFlags.Undefined)&&!(n&t.default.TypeFlags.Null)}),a=r.length>0?r[0]:e.types[0];return d(a,n,i)}if(e.isIntersection()){let r=e.types.find(e=>e.getFlags()&(t.default.TypeFlags.StringLike|t.default.TypeFlags.NumberLike|t.default.TypeFlags.BooleanLike));if(r)return i.add(e),d(r,n,i)}if(a&t.default.TypeFlags.StringLiteral)return e.value;if(a&t.default.TypeFlags.String)return``;if(a&t.default.TypeFlags.NumberLiteral)return e.value;if(a&t.default.TypeFlags.Number)return 0;if(a&t.default.TypeFlags.BooleanLiteral)return e.intrinsicName===`true`;if(a&t.default.TypeFlags.Boolean)return!1;if(c.isArrayType(e)){i.add(e);let t=e.typeArguments?.[0]||c.getAnyType(),r=d(t,n,i);return r===null?[]:[r]}if(e.isClassOrInterface()||a&t.default.TypeFlags.Object||e.getProperties().length>0){i.add(e);let t={};return e.getProperties().forEach(e=>{let r=c.getTypeOfSymbolAtLocation(e,n),a=e.valueDeclaration;r&&(t[e.getName()]=d(r,a||n,i))}),t}return null};return{__typename:`LiteralValue`,value:d(u,l)}},i=2345,a=2322,o=2339,s=(e,t,n)=>{if(e.getStart()>t||e.getEnd()<n)return;let r=e;return e.forEachChild(e=>{let i=s(e,t,n);i&&(r=i)}),r},c=(e,n,r)=>{if(e.start===void 0||e.length===void 0)return!1;let c=s(n,e.start,e.start+e.length);if(!c)return!1;if((e.code===i||e.code===a)&&t.default.isExpression(c)){let e=r.getTypeAtLocation(c);if(!e.isUnion())return!1;let n=r.getContextualType(c);return n?e.types.some(e=>(e.flags&(t.default.TypeFlags.Null|t.default.TypeFlags.Undefined))===0&&r.isTypeAssignableTo(e,n)):!1}if(e.code===o&&t.default.isPropertyAccessExpression(c.parent)){let e=r.getNonNullableType(r.getTypeAtLocation(c.parent.expression));if(!e.isUnion())return!1;let t=c.getText();return e.types.some(e=>e.getProperty(t)!==void 0)}return!1},l=(n,r,i)=>{if(!n?.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(!n.nodes?.nodes?.find(e=>e?.id==n.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 a=new Set(r?.map(e=>e.identifier)),o=(n.nodes?.nodes??[]).filter(e=>e?.functionDefinition&&!a.has(e.functionDefinition.identifier)).map(e=>({nodeId:e.id,parameterIndex:null,code:0,message:`The function definition "${e.functionDefinition.identifier}" is not reachable.`,severity:`error`}));if(o.length>0)return{isValid:!1,returnType:`void`,diagnostics:o};let s=e.n(n,r,i,!1,!1),l=`index.ts`,u=e.t(l,s),d=u.getSourceFile(l),f=u.languageService.getProgram(),p=f.getTypeChecker(),m=f.getSemanticDiagnostics(d).map(e=>{let n=(0,t.flattenDiagnosticMessageText)(e.messageText,`
7
+ `,a=`index.ts`,o=e.t(a,i),s=o.getSourceFile(a),c=o.languageService.getProgram().getTypeChecker(),l=s.statements.find(e=>t.default.isTypeAliasDeclaration(e)&&e.name.text===`Target`);if(!l)return{__typename:`LiteralValue`,value:null};let u=c.getTypeAtLocation(l.type),d=(e,n,r=new Set)=>{let i=new Set(r);if(i.has(e))return null;let a=e.getFlags();if(e.isUnion()){if(n.type,t.default.isTypeAliasDeclaration(n)&&n.type&&t.default.isUnionTypeNode(n.type)){let e=c.getTypeFromTypeNode(n.type.types[0]);return d(e,n,i)}let r=e.types.filter(e=>{let n=e.getFlags();return!(n&t.default.TypeFlags.Undefined)&&!(n&t.default.TypeFlags.Null)}),a=r.length>0?r[0]:e.types[0];return d(a,n,i)}if(e.isIntersection()){let r=e.types.find(e=>e.getFlags()&(t.default.TypeFlags.StringLike|t.default.TypeFlags.NumberLike|t.default.TypeFlags.BooleanLike));if(r)return i.add(e),d(r,n,i)}if(a&t.default.TypeFlags.StringLiteral)return e.value;if(a&t.default.TypeFlags.String)return``;if(a&t.default.TypeFlags.NumberLiteral)return e.value;if(a&t.default.TypeFlags.Number)return 0;if(a&t.default.TypeFlags.BooleanLiteral)return e.intrinsicName===`true`;if(a&t.default.TypeFlags.Boolean)return!1;if(c.isArrayType(e)){i.add(e);let t=e.typeArguments?.[0]||c.getAnyType(),r=d(t,n,i);return r===null?[]:[r]}if(e.isClassOrInterface()||a&t.default.TypeFlags.Object||e.getProperties().length>0){i.add(e);let t={};return e.getProperties().forEach(e=>{let r=c.getTypeOfSymbolAtLocation(e,n),a=e.valueDeclaration;r&&(t[e.getName()]=d(r,a||n,i))}),t}return null};return{__typename:`LiteralValue`,value:d(u,l)}},i=2345,a=2322,o=2339,s=(e,t,n)=>{if(e.getStart()>t||e.getEnd()<n)return;let r=e;return e.forEachChild(e=>{let i=s(e,t,n);i&&(r=i)}),r},c=(e,n,r)=>{if(e.start===void 0||e.length===void 0)return!1;let c=s(n,e.start,e.start+e.length);if(!c)return!1;if((e.code===i||e.code===a)&&t.default.isExpression(c)){let e=r.getTypeAtLocation(c);if(!e.isUnion())return!1;let n=r.getContextualType(c);return n?e.types.some(e=>(e.flags&(t.default.TypeFlags.Null|t.default.TypeFlags.Undefined))===0&&r.isTypeAssignableTo(e,n)):!1}if(e.code===o&&t.default.isPropertyAccessExpression(c.parent)){let e=r.getNonNullableType(r.getTypeAtLocation(c.parent.expression));if(!e.isUnion())return!1;let t=c.getText();return e.types.some(e=>e.getProperty(t)!==void 0)}return!1},l=(n,r,i)=>{if(!n?.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(!n.nodes?.nodes?.find(e=>e?.id==n.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 a=new Set(r?.map(e=>e.identifier)),o=(n.nodes?.nodes??[]).filter(e=>e?.functionDefinition&&!a.has(e.functionDefinition.identifier)).map(e=>({nodeId:e.id,parameterIndex:null,code:0,message:`The function definition "${e.functionDefinition.identifier}" is not reachable.`,severity:`error`}));if(o.length>0)return{isValid:!1,returnType:`void`,diagnostics:o};let s=e.n(n,r,i,!1),l=`index.ts`,u=e.t(l,s),d=u.getSourceFile(l),f=u.languageService.getProgram(),p=f.getTypeChecker(),m=f.getSemanticDiagnostics(d).map(e=>{let n=(0,t.flattenDiagnosticMessageText)(e.messageText,`
8
8
  `),r,i=null;if(e.start!==void 0){let t=d.getFullText(),n=Math.max(0,e.start-300),a=Math.min(t.length,e.start),o=t.substring(n,a),s=/\/\* @pos ([^ ]+) (\d+|null) \*\//g,c,l=null,u=-1;for(;(c=s.exec(o))!==null;){let t=n+c.index+c[0].length;t<=e.start&&t>u&&(u=t,l=c)}l&&(r=l[1]===`null`?null:l[1],i=parseInt(l[2],10))}let a=c(e,d,p)?`warning`:`error`;return{message:n,code:e.code,severity:a,nodeId:r,parameterIndex:typeof i==`number`&&Number.isSafeInteger(i)?i:null}}).filter(e=>e!==null);return{isValid:!m.some(e=>e?.severity===`error`),returnType:`void`,diagnostics:m}},u=(n,r,i)=>{let a=e.y(r?.value),o=`
9
9
  ${e.r(i)}
10
10
  const testValue: ${n} = ${a};
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "./utils-A--QqsC6.js";
1
+ import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "./utils-Cn7ms2WG.js";
2
2
  import y, { flattenDiagnosticMessageText as b } from "typescript";
3
3
  //#region src/extraction/getTypeFromValue.ts
4
4
  var x = (e, t) => {
@@ -145,7 +145,7 @@ var x = (e, t) => {
145
145
  returnType: "void",
146
146
  diagnostics: i
147
147
  };
148
- let a = u(e, t, n, !1, !1), o = "index.ts", s = h(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram(), d = l.getTypeChecker(), f = l.getSemanticDiagnostics(c).map((e) => {
148
+ let a = u(e, t, n, !1), o = "index.ts", s = h(o, a), c = s.getSourceFile(o), l = s.languageService.getProgram(), d = l.getTypeChecker(), f = l.getSemanticDiagnostics(c).map((e) => {
149
149
  let t = b(e.messageText, "\n"), n, r = null;
150
150
  if (e.start !== void 0) {
151
151
  let t = c.getFullText(), i = Math.max(0, e.start - 300), a = Math.min(t.length, e.start), o = t.substring(i, a), s = /\/\* @pos ([^ ]+) (\d+|null) \*\//g, l, u = null, d = -1;
package/dist/server.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-BftsgxoV.cjs");let t=require("typescript");t=e.b(t,1);let n=require("ts-json-schema-generator");var r={...n.DEFAULT_CONFIG,expose:`none`,topRef:!1,jsDoc:`none`,skipTypeCheck:!0},i=(e,t)=>{let n=Object.keys(e);if(n.length===0)return{};let r=o(a(e,t)),i={};for(let e of n)try{i[e]=s(r.createSchema(e))}catch{i[e]={}}return i},a=(t,n)=>{let r=Object.entries(t).map(([e,t])=>`export type ${e} = ${t};`).join(`
2
- `);return`${e.r(n)}\n${r}`},o=t=>{let i=e.t(`index.ts`,t).languageService.getProgram();return new n.SchemaGenerator(i,(0,n.createParser)(i,r),(0,n.createFormatter)(r),r)},s=e=>{let{$schema:t,definitions:n,...r}=e,i=n&&Object.keys(n).length>0?{...r,definitions:n}:r;return JSON.parse(JSON.stringify(i))},c=(t,n,r)=>{if(!t)return;let a=`index.ts`,o=e.n(t,n,r),s=e.t(a,o),c=s.getSourceFile(a),d=s.languageService.getProgram().getTypeChecker(),m=i({...f(d,c),...p(d,c,t)},r),h=(t.nodes?.nodes??[]).map(e=>e&&b(e,m));return{...t,inputSchema:m[l]??v(),outputSchema:m[u]??y(),nodes:{...t.nodes,nodes:h}}},l=`Flow_input`,u=`Flow_output`,d=(t,n,r)=>`Node_${e.i(t)}_${n}_${r}`,f=(e,n)=>{let r=n.statements.filter(t.default.isFunctionDeclaration).find(e=>e.name?.getText()===`flow`);if(!r)return{};let i=e.getSignatureFromDeclaration(r);if(!i)return{};let{input:a,output:o}=_(e,i,r);return{[l]:a,[u]:o}},p=(e,t,n)=>{let r=w(t),i={};for(let t of n.nodes?.nodes??[]){if(!t?.id)continue;let n=t.parameters?.nodes;if(!n?.some(x))continue;let a=C(r,t);a&&n.forEach((n,r)=>{if(!x(n))return;let o=a.arguments[r],s=o?e.getTypeAtLocation(o).getCallSignatures()[0]:void 0;if(!s)return;let{input:c,output:l}=m(e,s,o);i[d(t.id,r,`input`)]=c,i[d(t.id,r,`output`)]=l})}return i},m=(e,n,r)=>({input:`{ ${h(e,n,r).join(`; `)} }`,output:(n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation))(e.getReturnTypeOfSignature(n))}),h=(e,n,r)=>{let i=n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation),a=n.getParameters();if(a.length===1){let t=g(e,e.getTypeOfSymbolAtLocation(a[0],a[0].valueDeclaration??r),r);if(t)return t}return a.map(t=>{let n=e.getTypeOfSymbolAtLocation(t,t.valueDeclaration??r),a=S(t)?`?`:``;return`${t.getName()}${a}: ${i(n)}`})},g=(e,n,r)=>{let i=n,a=i.target;if(a&&(a.objectFlags&t.default.ObjectFlags.Tuple)!==0)return e.getTypeArguments(i).map((n,i)=>{let o=a.labeledElementDeclarations?.[i];return`${o?.name&&t.default.isIdentifier(o.name)?o.name.text:`arg${i}`}${(a.elementFlags[i]&t.default.ElementFlags.Optional)===0?``:`?`}: ${e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation)}`})},_=(e,n,r)=>{let i=n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation);return{input:`{ ${n.parameters.map(t=>{let n=e.getTypeOfSymbolAtLocation(t,t.valueDeclaration??r),a=S(t)?`?`:``;return`${t.getName()}${a}: ${i(n)}`}).join(`; `)} }`,output:i(e.getReturnTypeOfSignature(n))}},v=()=>({type:`object`}),y=()=>({}),b=(e,t)=>{let n=e.parameters?.nodes;if(!n?.some(x))return e;let r=n.map((n,r)=>{if(!x(n))return n;let i={...n.value,inputSchema:t[d(e.id,r,`input`)]??v(),outputSchema:t[d(e.id,r,`output`)]??y()};return{...n,value:i}});return{...e,parameters:{...e.parameters,nodes:r}}},x=e=>e?.value?.__typename===`SubFlowValue`,S=e=>{let n=e.valueDeclaration;return!!n&&t.default.isParameter(n)&&(!!n.questionToken||!!n.initializer||!!n.dotDotDotToken)},C=(n,r)=>{let i=n.get(`node_${e.i(r.id)}`)?.initializer;return i&&t.default.isCallExpression(i)?i:void 0},w=e=>{let n=new Map;return e.statements.forEach(e=>{e.forEachChild(function e(r){t.default.isVariableDeclaration(r)&&(r.parent.flags&t.default.NodeFlags.Const)!==0&&n.set(r.name.getText(),r),r.forEachChild(e)})}),n};exports.getFlowSchemas=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-B9Q45S9v.cjs");let t=require("typescript");t=e.b(t,1);let n=require("ts-json-schema-generator");var r={...n.DEFAULT_CONFIG,expose:`none`,topRef:!1,jsDoc:`none`,skipTypeCheck:!0},i=(e,t)=>{let n=Object.keys(e);if(n.length===0)return{};let r=o(a(e,t)),i={};for(let e of n)try{i[e]=s(r.createSchema(e))}catch{i[e]={}}return i},a=(t,n)=>{let r=Object.entries(t).map(([e,t])=>`export type ${e} = ${t};`).join(`
2
+ `);return`${e.r(n)}\n${r}`},o=t=>{let i=e.t(`index.ts`,t).languageService.getProgram();return new n.SchemaGenerator(i,(0,n.createParser)(i,r),(0,n.createFormatter)(r),r)},s=e=>{let{$schema:t,definitions:n,...r}=e,i=n&&Object.keys(n).length>0?{...r,definitions:n}:r;return JSON.parse(JSON.stringify(i))},c=(t,n,r)=>{if(!t)return;let a=`index.ts`,o=e.n(t,n,r),s=e.t(a,o),c=s.getSourceFile(a),d=s.languageService.getProgram().getTypeChecker(),p=i({...f(d,c),...m(d,c,t)},r),h=(t.nodes?.nodes??[]).map(e=>e&&x(e,p));return{...t,inputSchema:p[l]??y(),outputSchema:p[u]??b(),nodes:{...t.nodes,nodes:h}}},l=`Flow_input`,u=`Flow_output`,d=(t,n,r)=>`Node_${e.i(t)}_${n}_${r}`,f=(e,n)=>{let r=n.statements.filter(t.default.isFunctionDeclaration).find(e=>e.name?.getText()===`flow`);if(!r)return{};let i=p(n),a=(i?e.getResolvedSignature(i):void 0)??e.getSignatureFromDeclaration(r);if(!a)return{};let{input:o,output:s}=v(e,a,i??r);return{[l]:o,[u]:s}},p=e=>{let n;return e.forEachChild(function e(r){if(!n){if(t.default.isCallExpression(r)&&t.default.isIdentifier(r.expression)&&r.expression.text===`flow`){n=r;return}r.forEachChild(e)}}),n},m=(e,t,n)=>{let r=T(t),i={};for(let t of n.nodes?.nodes??[]){if(!t?.id)continue;let n=t.parameters?.nodes;if(!n?.some(S))continue;let a=w(r,t);a&&n.forEach((n,r)=>{if(!S(n))return;let o=a.arguments[r],s=o?e.getTypeAtLocation(o).getCallSignatures()[0]:void 0;if(!s)return;let{input:c,output:l}=h(e,s,o);i[d(t.id,r,`input`)]=c,i[d(t.id,r,`output`)]=l})}return i},h=(e,n,r)=>({input:`{ ${g(e,n,r).join(`; `)} }`,output:(n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation))(e.getReturnTypeOfSignature(n))}),g=(e,n,r)=>{let i=n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation),a=n.getParameters();if(a.length===1){let t=_(e,e.getTypeOfSymbolAtLocation(a[0],a[0].valueDeclaration??r),r);if(t)return t}return a.map(t=>{let n=e.getTypeOfSymbolAtLocation(t,t.valueDeclaration??r),a=C(t)?`?`:``;return`${t.getName()}${a}: ${i(n)}`})},_=(e,n,r)=>{let i=n,a=i.target;if(a&&(a.objectFlags&t.default.ObjectFlags.Tuple)!==0)return e.getTypeArguments(i).map((n,i)=>{let o=a.labeledElementDeclarations?.[i];return`${o?.name&&t.default.isIdentifier(o.name)?o.name.text:`arg${i}`}${(a.elementFlags[i]&t.default.ElementFlags.Optional)===0?``:`?`}: ${e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation)}`})},v=(e,n,r)=>{let i=n=>e.typeToString(n,r,t.default.TypeFormatFlags.NoTruncation);return{input:`{ ${n.parameters.map(t=>{let n=e.getTypeOfSymbolAtLocation(t,t.valueDeclaration??r),a=C(t)?`?`:``;return`${t.getName()}${a}: ${i(n)}`}).join(`; `)} }`,output:i(e.getReturnTypeOfSignature(n))}},y=()=>({type:`object`}),b=()=>({}),x=(e,t)=>{let n=e.parameters?.nodes;if(!n?.some(S))return e;let r=n.map((n,r)=>{if(!S(n))return n;let i={...n.value,inputSchema:t[d(e.id,r,`input`)]??y(),outputSchema:t[d(e.id,r,`output`)]??b()};return{...n,value:i}});return{...e,parameters:{...e.parameters,nodes:r}}},S=e=>e?.value?.__typename===`SubFlowValue`,C=e=>{let n=e.valueDeclaration;return!!n&&t.default.isParameter(n)&&(!!n.questionToken||!!n.initializer||!!n.dotDotDotToken)},w=(n,r)=>{let i=n.get(`node_${e.i(r.id)}`)?.initializer;return i&&t.default.isCallExpression(i)?i:void 0},T=e=>{let n=new Map;return e.statements.forEach(e=>{e.forEachChild(function e(r){t.default.isVariableDeclaration(r)&&(r.parent.flags&t.default.NodeFlags.Const)!==0&&n.set(r.name.getText(),r),r.forEachChild(e)})}),n};exports.getFlowSchemas=c;
package/dist/server.js CHANGED
@@ -1,4 +1,4 @@
1
- import { i as e, n as t, r as n, t as r } from "./utils-A--QqsC6.js";
1
+ import { i as e, n as t, r as n, t as r } from "./utils-Cn7ms2WG.js";
2
2
  import i from "typescript";
3
3
  import { DEFAULT_CONFIG as a, SchemaGenerator as o, createFormatter as s, createParser as c } from "ts-json-schema-generator";
4
4
  //#region src/util/jsonSchema.util.ts
@@ -34,12 +34,12 @@ var l = {
34
34
  if (!e) return;
35
35
  let a = "index.ts", o = t(e, n, i), s = r(a, o), c = s.getSourceFile(a), l = s.languageService.getProgram().getTypeChecker(), d = u({
36
36
  ...v(l, c),
37
- ...y(l, c, e)
38
- }, i), f = (e.nodes?.nodes ?? []).map((e) => e && E(e, d));
37
+ ...b(l, c, e)
38
+ }, i), f = (e.nodes?.nodes ?? []).map((e) => e && D(e, d));
39
39
  return {
40
40
  ...e,
41
- inputSchema: d[h] ?? w(),
42
- outputSchema: d[g] ?? T(),
41
+ inputSchema: d[h] ?? T(),
42
+ outputSchema: d[g] ?? E(),
43
43
  nodes: {
44
44
  ...e.nodes,
45
45
  nodes: f
@@ -48,66 +48,77 @@ var l = {
48
48
  }, h = "Flow_input", g = "Flow_output", _ = (t, n, r) => `Node_${e(t)}_${n}_${r}`, v = (e, t) => {
49
49
  let n = t.statements.filter(i.isFunctionDeclaration).find((e) => e.name?.getText() === "flow");
50
50
  if (!n) return {};
51
- let r = e.getSignatureFromDeclaration(n);
52
- if (!r) return {};
53
- let { input: a, output: o } = C(e, r, n);
51
+ let r = y(t), a = (r ? e.getResolvedSignature(r) : void 0) ?? e.getSignatureFromDeclaration(n);
52
+ if (!a) return {};
53
+ let { input: o, output: s } = w(e, a, r ?? n);
54
54
  return {
55
- [h]: a,
56
- [g]: o
55
+ [h]: o,
56
+ [g]: s
57
57
  };
58
- }, y = (e, t, n) => {
59
- let r = A(t), i = {};
58
+ }, y = (e) => {
59
+ let t;
60
+ return e.forEachChild(function e(n) {
61
+ if (!t) {
62
+ if (i.isCallExpression(n) && i.isIdentifier(n.expression) && n.expression.text === "flow") {
63
+ t = n;
64
+ return;
65
+ }
66
+ n.forEachChild(e);
67
+ }
68
+ }), t;
69
+ }, b = (e, t, n) => {
70
+ let r = j(t), i = {};
60
71
  for (let t of n.nodes?.nodes ?? []) {
61
72
  if (!t?.id) continue;
62
73
  let n = t.parameters?.nodes;
63
- if (!n?.some(D)) continue;
64
- let a = k(r, t);
74
+ if (!n?.some(O)) continue;
75
+ let a = A(r, t);
65
76
  a && n.forEach((n, r) => {
66
- if (!D(n)) return;
77
+ if (!O(n)) return;
67
78
  let o = a.arguments[r], s = o ? e.getTypeAtLocation(o).getCallSignatures()[0] : void 0;
68
79
  if (!s) return;
69
- let { input: c, output: l } = b(e, s, o);
80
+ let { input: c, output: l } = x(e, s, o);
70
81
  i[_(t.id, r, "input")] = c, i[_(t.id, r, "output")] = l;
71
82
  });
72
83
  }
73
84
  return i;
74
- }, b = (e, t, n) => ({
75
- input: `{ ${x(e, t, n).join("; ")} }`,
85
+ }, x = (e, t, n) => ({
86
+ input: `{ ${S(e, t, n).join("; ")} }`,
76
87
  output: ((t) => e.typeToString(t, n, i.TypeFormatFlags.NoTruncation))(e.getReturnTypeOfSignature(t))
77
- }), x = (e, t, n) => {
88
+ }), S = (e, t, n) => {
78
89
  let r = (t) => e.typeToString(t, n, i.TypeFormatFlags.NoTruncation), a = t.getParameters();
79
90
  if (a.length === 1) {
80
- let t = S(e, e.getTypeOfSymbolAtLocation(a[0], a[0].valueDeclaration ?? n), n);
91
+ let t = C(e, e.getTypeOfSymbolAtLocation(a[0], a[0].valueDeclaration ?? n), n);
81
92
  if (t) return t;
82
93
  }
83
94
  return a.map((t) => {
84
- let i = e.getTypeOfSymbolAtLocation(t, t.valueDeclaration ?? n), a = O(t) ? "?" : "";
95
+ let i = e.getTypeOfSymbolAtLocation(t, t.valueDeclaration ?? n), a = k(t) ? "?" : "";
85
96
  return `${t.getName()}${a}: ${r(i)}`;
86
97
  });
87
- }, S = (e, t, n) => {
98
+ }, C = (e, t, n) => {
88
99
  let r = t, a = r.target;
89
100
  if (a && (a.objectFlags & i.ObjectFlags.Tuple) !== 0) return e.getTypeArguments(r).map((t, r) => {
90
101
  let o = a.labeledElementDeclarations?.[r];
91
102
  return `${o?.name && i.isIdentifier(o.name) ? o.name.text : `arg${r}`}${(a.elementFlags[r] & i.ElementFlags.Optional) === 0 ? "" : "?"}: ${e.typeToString(t, n, i.TypeFormatFlags.NoTruncation)}`;
92
103
  });
93
- }, C = (e, t, n) => {
104
+ }, w = (e, t, n) => {
94
105
  let r = (t) => e.typeToString(t, n, i.TypeFormatFlags.NoTruncation);
95
106
  return {
96
107
  input: `{ ${t.parameters.map((t) => {
97
- let i = e.getTypeOfSymbolAtLocation(t, t.valueDeclaration ?? n), a = O(t) ? "?" : "";
108
+ let i = e.getTypeOfSymbolAtLocation(t, t.valueDeclaration ?? n), a = k(t) ? "?" : "";
98
109
  return `${t.getName()}${a}: ${r(i)}`;
99
110
  }).join("; ")} }`,
100
111
  output: r(e.getReturnTypeOfSignature(t))
101
112
  };
102
- }, w = () => ({ type: "object" }), T = () => ({}), E = (e, t) => {
113
+ }, T = () => ({ type: "object" }), E = () => ({}), D = (e, t) => {
103
114
  let n = e.parameters?.nodes;
104
- if (!n?.some(D)) return e;
115
+ if (!n?.some(O)) return e;
105
116
  let r = n.map((n, r) => {
106
- if (!D(n)) return n;
117
+ if (!O(n)) return n;
107
118
  let i = {
108
119
  ...n.value,
109
- inputSchema: t[_(e.id, r, "input")] ?? w(),
110
- outputSchema: t[_(e.id, r, "output")] ?? T()
120
+ inputSchema: t[_(e.id, r, "input")] ?? T(),
121
+ outputSchema: t[_(e.id, r, "output")] ?? E()
111
122
  };
112
123
  return {
113
124
  ...n,
@@ -121,13 +132,13 @@ var l = {
121
132
  nodes: r
122
133
  }
123
134
  };
124
- }, D = (e) => e?.value?.__typename === "SubFlowValue", O = (e) => {
135
+ }, O = (e) => e?.value?.__typename === "SubFlowValue", k = (e) => {
125
136
  let t = e.valueDeclaration;
126
137
  return !!t && i.isParameter(t) && (!!t.questionToken || !!t.initializer || !!t.dotDotDotToken);
127
- }, k = (t, n) => {
138
+ }, A = (t, n) => {
128
139
  let r = t.get(`node_${e(n.id)}`)?.initializer;
129
140
  return r && i.isCallExpression(r) ? r : void 0;
130
- }, A = (e) => {
141
+ }, j = (e) => {
131
142
  let t = /* @__PURE__ */ new Map();
132
143
  return e.statements.forEach((e) => {
133
144
  e.forEachChild(function e(n) {
@@ -96,12 +96,42 @@ export declare const weakestCertainty: (...certainties: SuggestionCertainty[]) =
96
96
  * the one that would otherwise report a hundred exact "producers" for a slot
97
97
  * that simply accepts anything.
98
98
  *
99
- * A callable, an array and anything with properties is excluded: those
100
- * constrain their values. An index signature is inspected only `depth` levels
101
- * deep (one, from the outside) because an index type may refer back to its own
102
- * container (`type Json = {[key: string]: Json}`).
99
+ * A *weak* object — one whose every property is optional — counts as
100
+ * unconstrained too: its set of required properties is empty, so structurally
101
+ * almost any object satisfies it, and TypeScript's "no properties in common"
102
+ * check cannot be relied on to reject the rest (it needs the source to have
103
+ * apparent members, which the minimal lib this runs against does not give
104
+ * primitives — see MINIMAL_LIB). A slot like `{messages?: …; jump_to?: …}` is
105
+ * therefore served by nearly every candidate, which is exactly the vacuous match
106
+ * this predicate exists to report.
107
+ *
108
+ * A callable, an array and anything with a *required* property is excluded:
109
+ * those constrain their values. An index signature is inspected only `depth`
110
+ * levels deep (one, from the outside) because an index type may refer back to
111
+ * its own container (`type Json = {[key: string]: Json}`).
103
112
  */
104
113
  export declare const isUnconstrainedType: (type: ts.Type | undefined, depth?: number) => boolean;
114
+ /**
115
+ * True for the *return* type of a slot that says nothing about what a binding
116
+ * produces, so matching against it is vacuous.
117
+ *
118
+ * Everything {@link isUnconstrainedType} reports counts here, plus `void`: a
119
+ * `void` return accepts a binding of *any* return type, because TypeScript
120
+ * discards the result when the target signature returns `void`. A `RUNNABLE`
121
+ * (`() => void`) slot is therefore fitted by every function that happens to be
122
+ * callable with no arguments — the set of those is decided by whether a
123
+ * function's parameters are optional, which has nothing to do with whether it
124
+ * belongs in that slot. Reporting them as `exact` producers hands the consumer
125
+ * an arbitrary handful of actions (`stripe::createCustomer`, `std::number::pi`)
126
+ * as the dedicated bindings for an `if` body.
127
+ *
128
+ * `void` is deliberately *not* folded into {@link isUnconstrainedType}, which is
129
+ * applied to both sides of a match: as a *candidate* type `void` is the opposite
130
+ * of open — it is assignable almost nowhere — so calling it unconstrained there
131
+ * would weaken matches it has no business weakening. Only the slot's return
132
+ * position has this property, which is why it lives in its own predicate.
133
+ */
134
+ export declare const isUnconstrainedReturn: (type: ts.Type | undefined) => boolean;
105
135
  /**
106
136
  * Decides whether a candidate type fits an expected (slot) type, and how
107
137
  * certainly — the shared rule behind every assignability-based suggestion
@@ -116,7 +146,13 @@ export declare const isUnconstrainedType: (type: ts.Type | undefined, depth?: nu
116
146
  * producer *of this type*, which is the whole point of the distinction. This
117
147
  * only *weakens* the verdict — whether the candidate fits at all is still
118
148
  * decided by assignability, so an open candidate is not waved through into a
119
- * slot that would reject it;
149
+ * slot that would reject it. The slot is stripped of its nullish part for this
150
+ * test alone: an *optional* parameter arrives as `T | undefined`, a union, and
151
+ * a union carries no object flag — so without stripping, `headers?: OBJECT<{}>`
152
+ * would report a wall of exact producers that the required `headers:
153
+ * OBJECT<{}>` correctly reports as vacuous. Accepting `undefined` makes a slot
154
+ * wider, never its candidates less certain. A union slot is vacuous as soon as
155
+ * *one* member constrains nothing, since everything fits that member;
120
156
  * - the candidate is a union and only some members fit → `union-member`. A
121
157
  * union is only assignable as a whole when *every* member is, so the partial
122
158
  * case is exactly the one strict assignability would reject while the slot can
@@ -0,0 +1,45 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));let c=require("typescript");c=s(c,1);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(null,arguments)}var u=!1;try{u=typeof localStorage<`u`}catch{}var d=typeof process<`u`,f=u&&typeof localStorage.getItem==`function`&&localStorage.getItem(`DEBUG`)||d&&process.env.DEBUG?console.log:function(e){return``};function p(e,t,n,r,i){r===void 0&&(r={});var a=l({},g(n),r),o=ee(e,t,a,n,i),s=o.languageServiceHost,c=o.updateFile,u=o.deleteFile,d=n.createLanguageService(s),f=d.getCompilerOptionsDiagnostics();if(f.length){var p=y(e,r,n);throw Error(n.formatDiagnostics(f,p.compilerHost))}return{name:`vfs`,sys:e,languageService:d,getSourceFile:function(e){return d.getProgram()?.getSourceFile(e)},createFile:function(e,t){c(n.createSourceFile(e,t,a.target,!1))},updateFile:function(e,t,r){var i=d.getProgram().getSourceFile(e);if(!i)throw Error(`Did not find a source file for `+e);var a=i.text,o=r??n.createTextSpan(0,a.length),s=a.slice(0,o.start)+t+a.slice(o.start+o.length);c(n.updateSourceFile(i,s,{span:o,newLength:t.length}))},deleteFile:function(e){var t=d.getProgram().getSourceFile(e);t&&u(t)}}}function m(e){throw Error(`Method '`+e+`' is not implemented.`)}function h(e,t){return function(){for(var n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];var a=t.apply(void 0,r),o=typeof a==`string`?a.slice(0,80)+`...`:a;return f.apply(void 0,[`> `+e].concat(r)),f(`< `+o),a}}var g=function(e){return l({},e.getDefaultCompilerOptions(),{jsx:e.JsxEmit.React,strict:!0,esModuleInterop:!0,module:e.ModuleKind.ESNext,suppressOutputPathCheck:!0,skipLibCheck:!0,skipDefaultLibCheck:!0},e.versionMajorMinor&&Number(e.versionMajorMinor.split(`.`)[0])>=6?{ignoreDeprecations:`6.0`}:{moduleResolution:e.ModuleResolutionKind.NodeJs})},_=function(e){return e.replace(`/`,`/lib.`).toLowerCase()};function v(e){return{args:[],createDirectory:function(){return m(`createDirectory`)},directoryExists:h(`directoryExists`,function(t){return Array.from(e.keys()).some(function(e){return e.startsWith(t)})}),exit:function(){return m(`exit`)},fileExists:h(`fileExists`,function(t){return e.has(t)||e.has(_(t))}),getCurrentDirectory:function(){return`/`},getDirectories:function(){return[]},getExecutingFilePath:function(){return m(`getExecutingFilePath`)},readDirectory:h(`readDirectory`,function(t){return t===`/`?Array.from(e.keys()):[]}),readFile:h(`readFile`,function(t){return e.get(t)??e.get(_(t))}),resolvePath:function(e){return e},newLine:`
2
+ `,useCaseSensitiveFileNames:!0,write:function(){return m(`write`)},writeFile:function(t,n){e.set(t,n)},deleteFile:function(t){e.delete(t)}}}function y(e,t,n){var r=new Map,i=function(e){return r.set(e.fileName,e),e};return{compilerHost:l({},e,{getCanonicalFileName:function(e){return e},getDefaultLibFileName:function(){return`/`+n.getDefaultLibFileName(t)},getNewLine:function(){return e.newLine},getSourceFile:function(a,o){return r.get(a)||i(n.createSourceFile(a,e.readFile(a),o??t.target??g(n).target,!1))},useCaseSensitiveFileNames:function(){return e.useCaseSensitiveFileNames}}),updateFile:function(t){var n=r.has(t.fileName);return e.writeFile(t.fileName,t.text),r.set(t.fileName,t),n},deleteFile:function(t){var n=r.has(t.fileName);return r.delete(t.fileName),e.deleteFile(t.fileName),n}}}function ee(e,t,n,r,i){var a=[].concat(t),o=y(e,n,r),s=o.compilerHost,c=o.updateFile,u=o.deleteFile,d=new Map,f=0;return{languageServiceHost:l({},s,{getProjectVersion:function(){return f.toString()},getCompilationSettings:function(){return n},getCustomTransformers:function(){return i},getScriptFileNames:function(){return a.slice()},getScriptSnapshot:function(t){var n=e.readFile(t);if(n&&typeof n==`string`)return r.ScriptSnapshot.fromString(n)},getScriptVersion:function(e){return d.get(e)||`0`},writeFile:e.writeFile}),updateFile:function(e){f++,d.set(e.fileName,f.toString()),a.includes(e.fileName)||a.push(e.fileName),c(e)},deleteFile:function(e){f++,d.set(e.fileName,f.toString());var t=a.indexOf(e.fileName);t!==-1&&a.splice(t,1),u(e)}}}function te(e){return ne.test(e)}var ne=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;function b(e,t,n,r){let i=re(n);return a(typeof t==`function`?t.call({"":e},``,e):e,``);function a(e,t){if(Array.isArray(r)){let t=r.find(t=>t.test(e));if(t){let n=t.stringify(e);if(typeof n!=`string`||!te(n))throw Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${n})`);return n}}if(typeof e==`boolean`||typeof e==`number`||typeof e==`string`||e===null||e instanceof Date||e instanceof Boolean||e instanceof Number||e instanceof String)return JSON.stringify(e);if(e?.isLosslessNumber||typeof e==`bigint`)return e.toString();if(Array.isArray(e))return o(e,t);if(e&&typeof e==`object`)return s(e,t)}function o(e,n){if(e.length===0)return`[]`;let r=i?n+i:void 0,o=i?`[
3
+ `:`[`;for(let n=0;n<e.length;n++){let s=typeof t==`function`?t.call(e,String(n),e[n]):e[n];i&&(o+=r),o+=s!==void 0&&typeof s!=`function`?a(s,r):`null`,n<e.length-1&&(o+=i?`,
4
+ `:`,`)}return o+=i?`\n${n}]`:`]`,o}function s(e,r){if(typeof e.toJSON==`function`)return b(e.toJSON(),t,n,void 0);let o=Array.isArray(t)?t.map(String):Object.keys(e);if(o.length===0)return`{}`;let s=i?r+i:void 0,l=!0,u=i?`{
5
+ `:`{`;for(let n of o){let r=typeof t==`function`?t.call(e,n,e[n]):e[n];if(c(n,r)){l?l=!1:u+=i?`,
6
+ `:`,`;let e=JSON.stringify(n);u+=i?`${s+e}: `:`${e}:`,u+=a(r,s)}}return u+=i?`\n${r}}`:`}`,u}function c(e,t){return t!==void 0&&typeof t!=`function`&&typeof t!=`symbol`}}function re(e){if(typeof e==`number`)return` `.repeat(e);if(typeof e==`string`&&e!==``)return e}var x=e=>{if(c.default.isUnionTypeNode(e))return e.types.flatMap(x);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[]},ie=(e,t)=>{if(t&&e.aliasSymbol){let t=e.aliasSymbol.declarations?.[0];if(t&&c.default.isTypeAliasDeclaration(t))return x(t.type)}return e.isUnion()?e.types.flatMap(e=>ie(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`}]:[]},ae=[`unconstrained`,`generic`,`union-member`,`nullable`],S={match:`exact`},C=e=>({match:`possible`,reason:e}),oe=e=>e.map(e=>({value:e,certainty:S})),se=(e,t)=>e.match===`exact`||t.match!==`exact`?e:t,w=(...e)=>{let t=ae.find(t=>e.some(e=>e.reason===t));return t?C(t):S},T=(e,t=1)=>e===void 0||(e.flags&(c.default.TypeFlags.Any|c.default.TypeFlags.Unknown))!==0||(e.flags&c.default.TypeFlags.Object)!==0&&e.getProperties().every(e=>(e.flags&c.default.SymbolFlags.Optional)!==0)&&e.getCallSignatures().length===0&&e.getConstructSignatures().length===0&&(t===0?e.getNumberIndexType()===void 0&&e.getStringIndexType()===void 0:T(e.getNumberIndexType(),t-1)&&T(e.getStringIndexType(),t-1)),ce=e=>e!==void 0&&(e.flags&c.default.TypeFlags.Void)!==0||T(e),le=e=>e.isUnion()?e.types.some(e=>T(e)):T(e),E=(e,t,n)=>{let r=t.getNonNullableType(e),i=t.getNonNullableType(n);if((r.flags&c.default.TypeFlags.Never)!==0)return null;let a=r.isUnion()?r.types.map(e=>t.getNonNullableType(e)):[r],o=a.filter(e=>(e.flags&c.default.TypeFlags.Never)===0&&t.isTypeAssignableTo(e,n));return o.length===0?null:w(T(r)||le(i)?C(`unconstrained`):S,r!==e&&!t.isTypeAssignableTo(e,n)?C(`nullable`):S,o.length<a.length?C(`union-member`):S)},D=e=>(e.suggestions??[]).map((t,n)=>({value:t,certainty:e.suggestionCertainty?.[n]??S})),ue=e=>({suggestions:e.map(e=>e.value),suggestionCertainty:e.map(e=>e.certainty)}),de=e=>e&&e.length>0?ue(e):{},fe=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!pe(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?me(i,o,e,n):i.startsWith(`p_`)?he(i,o,e,n):i.startsWith(`flow_`)?ge(o,e,n):[]}),pe=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),me=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=_e(e.replace(`node_`,``));return O(t,n,r).map(({path:e,certainty:t})=>{let n={__typename:`ReferenceValue`,nodeFunctionId:i};return e.length>0&&(n.referencePath=e),{value:n,certainty:t}})},he=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=ve(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>O(e,n,r).map(({path:e,certainty:n})=>{let r={__typename:`ReferenceValue`,nodeFunctionId:i,parameterIndex:isNaN(a)?0:a,inputIndex:t,inputTypeIdentifier:o.target.labeledElementDeclarations?.[t].name.getText()};return e.length>0&&(r.referencePath=e),{value:r,certainty:n}}))},ge=(e,t,n)=>O(e,t,n).map(({path:e,certainty:t})=>{let n={__typename:`ReferenceValue`,nodeFunctionId:null};return e.length>0&&(n.referencePath=e),{value:n,certainty:t}}),_e=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),ve=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:_e(r),paramIndexFromName:i}},ye=7,be=(e,t,n)=>{let r=n.get(e);if(r!==void 0)return r;let i=new Set,a=n=>{if(i.has(n)||!k(n))return!1;i.add(n);for(let r of n.getProperties()){if(!r.valueDeclaration)continue;let n=t.getNonNullableType(t.getTypeOfSymbolAtLocation(r,r.valueDeclaration));if(n===e||a(n))return!0}return!1},o=a(e);return n.set(e,o),o},xe=(e,t)=>e.isUnion()?e.types.map(e=>t.getNonNullableType(e)).filter(k):k(e)?[e]:[],O=(e,t,n,r=[],i=new Set,a=new Map)=>{let o=[],s=t.getNonNullableType(e),c=E(e,t,n);return c&&o.push({path:r,type:e,certainty:c}),xe(s,t).forEach(e=>{if(i.has(e)||r.length>=ye&&be(e,t,a))return;let s=e.getProperties();s&&s.length>0&&(i.add(e),s.forEach(e=>{let s=t.getTypeOfSymbolAtLocation(e,e.valueDeclaration),c=e.getName(),l=[...r,{path:c}];o.push(...O(s,t,n,l,i,a))}),i.delete(e))}),o},k=e=>{let t=c.default.TypeFlags.String|c.default.TypeFlags.Number|c.default.TypeFlags.Boolean|c.default.TypeFlags.Undefined|c.default.TypeFlags.Null|c.default.TypeFlags.BigInt|c.default.TypeFlags.ESSymbol;return(e.flags&t)===0},Se=(e,t,n,r)=>t.flatMap(t=>{let i=Ce(e,t,n,r);return i?[i]:[]}),Ce=(e,t,n,r)=>{let i=e.getSignatureFromDeclaration(t),a=e.getReturnTypeOfSignature(i),o=E(we(e,a),e,r);if(!o)return null;let s=a.isTypeParameter()?w(o,C(`generic`)):o,c=Te(t.name?.getText());return{value:Ee(n.find(e=>e.identifier===c)),certainty:s}},we=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,Te=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,Ee=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=De(e?.parameterDefinitions?.nodes||[])),n},De=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>Oe(e))}),Oe=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),A=(e,t)=>t.getCallSignatures().map(t=>e.getReturnTypeOfSignature(t)),ke=(e,t,n,r)=>Y(r)?t.flatMap(t=>{let i=Ae(e,t,n,r);return i?[i]:[]}):[],Ae=(e,t,n,r)=>{let i=e.getTypeAtLocation(t),a=E(i,e,r);if(!a)return null;let o=A(e,r),s=o.length>0&&o.every(ce),c=A(e,i).some(e=>e.isTypeParameter()),l=w(a,s?C(`unconstrained`):S,c?C(`generic`):S),u=je(t.name?.getText()),d=n.find(e=>e.identifier===u);return d?{value:Me(d),certainty:l}:null},je=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,Me=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={DATE:`date`,TYPE:`type`},M=e=>e!=null&&e in j,Ne=new Set(Object.values(j)),N=e=>e!=null&&Ne.has(e),Pe=7,P=(e,t,n,r,i,a=!0,o,s=new Set,l=new Map,u)=>{if((n.flags&c.default.TypeFlags.TypeParameter)!==0){let u=n.symbol?.declarations?.[0];if(u&&c.default.isTypeParameterDeclaration(u)&&u.constraint)return P(e,t,e.getTypeFromTypeNode(u.constraint),r,i,a,o,s,l)}let d=M(n.aliasSymbol?.getName()),f=d&&n.isIntersection()?e.typeToString(n.types.find(e=>(e.flags&c.default.TypeFlags.Object)===0)??n):d?`object`:e.typeToString({...n,aliasSymbol:void 0}),p=o??n,m=Y(p)?p:n,h=a?[...oe(ie(p,e)),...t?fe(e,t,p,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...Se(e,r,i,p),...ke(e,r,i,m)]:[],g=a?ue(h):{};if(u){let t=Ve(e,u);if(t)return{input:t,type:f,...g}}if(n.isUnion()){let o=n.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);if(o.length===1)return{...P(e,t,o[0],r,i,a,void 0,s,l),type:f,...g}}let _=H(n);if(_)return{input:_,type:f,...g};if(U(e,n))return{input:`file`,type:f,mimetype:W(e,n),...g};if(Ue(e,n))return{input:`color`,type:f,...g};if(G(n))return{input:`boolean`,type:f,...g};if(J(n))return{input:`select`,type:f,...g};if(K(n))return{input:`number`,type:f,...g};if(q(n))return{input:`text`,type:f,...g};if(Y(n))return{input:`sub-flow`,type:f,...g};if(Je(e,n)){let o=e.getTypeArguments(n);if(o.length===1&&U(e,o[0]))return{input:`list-file`,type:f,mimetype:W(e,o[0]),...g};let c=o.flatMap(n=>{let o=n.isUnion()?n.types:[n],c=o.length>1?n:void 0;return o.map(n=>P(e,t,n,r,i,a,c,s,l))}),u=a?{declaredItems:c}:{};if(o.length===1&&J(o[0]))return{input:`list-select`,type:f,items:c,...u,...g};if(o.length===1){let e=o[0];if(G(e))return{input:`list-boolean`,type:f,items:c,...u,...g};if(K(e))return{input:`list-number`,type:f,items:c,...u,...g};if(q(e))return{input:`list-text`,type:f,items:c,...u,...g};if(Y(e))return{input:`list-sub-flow`,type:f,items:c,...u,...g}}return{input:`list`,type:f,items:c,...u,...g}}if((n.flags&c.default.TypeFlags.Object)!==0){if(s.has(n)||s.size>=Pe&&be(n,e,l))return{input:`data`,type:f,...g};s.add(n);let o={},d=[];for(let f of e.getPropertiesOfType(n)){let n=f.valueDeclaration??f.declarations?.[0];if(!n)continue;let p=e.getTypeOfSymbolAtLocation(f,n),m=(f.flags&c.default.SymbolFlags.Optional)!==0||p.isUnion()&&p.types.some(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))!==0),h=e.getNonNullableType(p),g=h.isUnion()&&!J(h)&&!G(h)?h.types:[h],_=u?He(e,u,f.name):void 0,v=g.map(n=>P(e,t,n,r,i,a,void 0,s,l,_));o[f.name]=v.length===1?v[0]:v,m||d.push(f.name)}return s.delete(n),{input:`data`,type:f,properties:o,required:d,...g}}return{input:`generic`,type:f,...g}},F=new Set([`list`,`list-select`,`list-boolean`,`list-number`,`list-text`,`list-sub-flow`]),Fe=new Set([`list-select`,`list-boolean`,`list-number`,`list-text`,`list-sub-flow`,`list-file`]),I=e=>{let t=e,n=e.items;n&&(t={...t,items:n.map(I)});let r=e.declaredItems;r&&(t={...t,declaredItems:r.map(I)});let i=e.properties;if(i){let e={};for(let[t,n]of Object.entries(i))e[t]=Array.isArray(n)?n.map(I):I(n);t={...t,properties:e}}if(Fe.has(t.input)){let{mimetype:e,...n}=t;t={...n,input:`list`}}if(t.suggestions&&t.suggestions.length===0){let{suggestions:e,suggestionCertainty:n,...r}=t;t=r}return t},Ie=e=>{if(!e.isUnion())return e;let t=e.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);return t.length===1?t[0]:e},L=(e,t)=>{if(t&&t.length>0)return{...e,...de(t)};if(e.suggestions===void 0)return e;let{suggestions:n,suggestionCertainty:r,...i}=e;return i},R=(e,t=void 0)=>{let n=e,r=n.items;r&&(n={...n,items:r.map(e=>R(e,t))});let i=n.declaredItems;i&&(n={...n,declaredItems:i.map(e=>R(e,t))});let a=n.properties;if(a){let e={};for(let[n,r]of Object.entries(a))e[n]=Array.isArray(r)?r.map(e=>R(e,t)):R(r,t);n={...n,properties:e}}return n.input===`generic`?L(n,t):L(n,D(n))},z=(e,t=void 0)=>e&&e.length>0?e.map(e=>R(e,t)):[L({input:`generic`},t)],B=(e,t=void 0,n=!0)=>{let r=Be(e),i=r.items;i&&(r={...r,items:i.map(e=>B(e,t))});let a=r.declaredItems;a&&(r={...r,declaredItems:a.map(e=>B(e,t))});let o=r.properties;if(o){let e={};for(let[n,r]of Object.entries(o))e[n]=Array.isArray(r)?r.map(e=>B(e,t)):B(r,t);r={...r,properties:e}}return n&&(r=L(r,t)),r},V=(e,t,n=!1,r=void 0,i=!0)=>{if(!e||e.input===`generic`)return ze(B(t,r,!i),n);let a=Re(D(i||e.suggestions===void 0?t:e));if(e.input===`data`){let n=e.properties??{},i=t.input===`data`?t.properties??{}:{},o={},s=new Set([...Object.keys(n),...Object.keys(i)]);for(let e of s)o[e]=Le(n[e],i[e],r);return L({...e,properties:o},a)}if(F.has(e.input)){let n=e.items??[],i=F.has(t.input)?t.items??[]:[],o=n.length>0&&n.every(e=>e.input===`generic`)&&i.length>0?i.map(e=>B(e,r)):n.length===i.length&&n.length>0?n.map((e,t)=>V(e,i[t],!1,r,!1)):z(n,r);return L({...e,items:o,declaredItems:z(n,r)},a)}return N(e.input)?L({...e,...t.type===void 0?{}:{type:t.type}},a):L({...e},a)},Le=(e,t,n=void 0)=>e===void 0&&t!==void 0?Array.isArray(t)?t.map(e=>B(e,n)):B(t,n):e&&!Array.isArray(e)&&t&&!Array.isArray(t)?V(e,t,!1,n,!1):Array.isArray(e)&&Array.isArray(t)&&e.length===t.length?e.map((e,r)=>V(e,t[r],!1,n,!1)):Array.isArray(e)?e.map(e=>R(e,n)):R(e,n),Re=e=>{if(!e||e.length===0)return;let t=new Map;for(let n of e){let e=JSON.stringify(n.value),r=t.get(e);t.set(e,r?{...r,certainty:se(r.certainty,n.certainty)}:n)}return[...t.values()]},ze=(e,t)=>!t||e.input!==`generic`?e:L({input:`data`,...e.type?{type:e.type}:{},properties:{},required:[]},D(e)),Be=e=>{if(e.input!==`select`)return e;let t=D(e),n=new Set;for(let e of t){let t=typeof e.value.value;(t===`string`||t===`number`||t===`boolean`)&&n.add(t)}return L({input:n.size===1?{string:`text`,number:`number`,boolean:`boolean`}[[...n][0]]:`text`,...e.type?{type:e.type}:{}},t)};function H(e){let t=e.aliasSymbol?.getName();return M(t)?j[t]:void 0}function Ve(e,t){if((t.flags&c.default.TypeFlags.TypeParameter)===0)return;let n=t.symbol?.declarations?.[0];if(n&&c.default.isTypeParameterDeclaration(n)&&n.constraint)return H(e.getTypeFromTypeNode(n.constraint))}function He(e,t,n){let r=e.getPropertyOfType(t,n),i=r?.valueDeclaration??r?.declarations?.[0];return i?e.getTypeOfSymbolAtLocation(r,i):void 0}function U(e,t){if(t.aliasSymbol?.getName()!==`FILE`||(t.flags&c.default.TypeFlags.Object)===0)return!1;let n=e.getPropertiesOfType(t);if(n.length!==4)return!1;let r=new Map(n.map(e=>[e.name,e])),i=r.get(`valueType`);if(!r.has(`contentType`)||!r.has(`fileName`)||!r.has(`value`)||!i)return!1;let a=i.valueDeclaration??i.declarations?.[0];if(!a)return!1;let o=e.getTypeOfSymbolAtLocation(i,a);return o.isStringLiteral()&&o.value===`base64`}function Ue(e,t){if(t.aliasSymbol?.getName()!==`COLOR`||(t.flags&c.default.TypeFlags.Object)===0)return!1;let n=new Map(e.getPropertiesOfType(t).map(e=>[e.name,e]));return[`hue`,`saturation`,`lightness`].every(t=>{let r=n.get(t);if(!r)return!1;let i=r.valueDeclaration??r.declarations?.[0];return i?K(e.getTypeOfSymbolAtLocation(r,i)):!1})}function W(e,t){let n=/^(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)\/(\*|[a-zA-Z0-9][a-zA-Z0-9!#$&^_.+-]*)$/,r=e.getPropertiesOfType(t).find(e=>e.name===`contentType`);if(!r)return`*/*`;let i=r.valueDeclaration??r.declarations?.[0];if(!i)return`*/*`;let a=e.getTypeOfSymbolAtLocation(r,i);return a.isStringLiteral()&&n.test(a.value)?a.value:`*/*`}function G(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 K(e){return(e.flags&c.default.TypeFlags.Number)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function q(e){return(e.flags&c.default.TypeFlags.String)!==0||(e.flags&c.default.TypeFlags.StringLiteral)!==0}function We(e){return q(e)||K(e)||G(e)}function Ge(e){return(e.flags&c.default.TypeFlags.StringLiteral)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function J(e){return G(e)?!1:qe(e)||Ge(e)}function Ke(e){if(!e.isUnion())return!1;if(G(e))return!0;let t=e.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0);return t.length>0&&t.every(Ge)}function qe(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(We)}function Je(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Y(e){return e.getCallSignatures().length>0}var Ye=`
7
+ interface Array<T> {
8
+ [n: number]: T;
9
+ length: number;
10
+ }
11
+ interface String { readonly length: number; }
12
+ interface Number { }
13
+ interface Boolean { }
14
+ interface Object { }
15
+ interface Function { }
16
+ interface CallableFunction extends Function {}
17
+ interface NewableFunction extends Function {}
18
+ interface IArguments { }
19
+ interface RegExp { }
20
+
21
+ declare namespace Utils {
22
+ type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;
23
+ }
24
+
25
+ import ReturnType = Utils.ReturnType;
26
+ `;function Xe(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,Ye),p(v(n),[e,`lib.codezero.d.ts`],c.default,Ze)}var Ze={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function Qe(e){let t=[],n=0,r=null,i=``;for(let a of e){if(r)a===r&&(r=null);else if(a===`'`||a===`"`||a==="`")r=a;else if(a===`<`||a===`{`||a===`(`||a===`[`)n++;else if(a===`>`||a===`}`||a===`)`||a===`]`)n--;else if(a===`,`&&n===0){t.push(i),i=``;continue}i+=a}return t.push(i),t.map(e=>(e.trim().split(/\s+/).find(e=>e!==`const`&&e!==`in`&&e!==`out`)??``).match(/^[A-Za-z_$][A-Za-z0-9_$]*/)?.[0]??``).filter(e=>e.length>0)}var $e=new Set([`number`,`string`,`boolean`]);function et(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]).flatMap(Qe))).map(e=>`type ${e} = ${t};`).join(`
27
+ `),i=e?.map(e=>{let t=M(e.identifier),n=(e.genericKeys?.length??0)>0?t?`<${e.genericKeys.map(e=>e.includes(`=`)?e:`${e} = any`).join(`, `)}>`:`<${e.genericKeys?.join(`,`)}>`:``,r=e.type?.trim()??``,i=t?$e.has(r)?`${e.type} & {}`:`{}`:e.type;return`type ${e.identifier}${n} = ${i};`}).join(`
28
+ `),a=e?.filter(e=>(e.genericKeys?.length??0)>0).map(e=>`declare const __widen_${e.identifier}: ${e.identifier}<${e.genericKeys.map(()=>`any`).join(`, `)}>;`).join(`
29
+ `)??``;return`${n?r:``}\n${i}\n${a}`}var tt=/^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/,nt=e=>{if(!tt.test(e))return!1;let t={"<":`>`,"[":`]`,"{":`}`,"(":`)`},n=[],r=null;for(let i of e){if(r){i===r&&(r=null);continue}if(i===`'`||i===`"`)r=i;else if(t[i])n.push(t[i]);else if((i===`>`||i===`]`||i===`}`||i===`)`)&&n.pop()!==i)return!1}return r===null&&n.length===0},X=(e,t)=>{let n=t?.trim();return!n||!nt(n)?e:`(${e}) as unknown as ${n}`},Z=e=>e?.replace(/[^a-zA-Z0-9]/g,`_`),Q=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),rt=(e,t)=>{let n=e.match(/^\$\{([^}]+)\}$/);if(n&&t.has(n[1]))return t.get(n[1]);let r=/\$\{([^}]+)\}/g,i=!1;for(let n of e.matchAll(r))if(t.has(n[1])){i=!0;break}if(!i)return b(e)??`""`;let a=``,o=0;for(let n of e.matchAll(r)){let[r,i]=n,s=n.index;a+=Q(e.slice(o,s)),a+=t.has(i)?"${"+t.get(i)+`}`:Q(r),o=s+r.length}return a+=Q(e.slice(o)),"`"+a+"`"},$=(e,t)=>typeof e==`string`?rt(e,t):Array.isArray(e)?`[${e.map(e=>$(e,t)).join(`, `)}]`:typeof e==`object`&&e?`{${Object.entries(e).map(([e,n])=>`${b(e)}: ${$(n,t)}`).join(`, `)}}`:b(e)??`undefined`;function it(e,t,n,r=!0){let i=e?.nodes?.nodes||[],a=new Map(t?.map(e=>[e.identifier,e])),o=new Set,s=t=>{let n=typeof t.inputIndex==`number`?`p_${Z(t.nodeFunctionId??`undefined`)}_${t.parameterIndex}[${t.inputIndex}]`:t.nodeFunctionId?`node_${Z(t.nodeFunctionId)}`:`flow_${Z(e?.id??`undefined`)}`;return t.referencePath?.forEach(e=>{n+=`?.${e.path}`}),`(${n})${r?`!`:``}`},c=(e,t,n,r)=>!e.startingNodeId&&e.functionDefinition?.identifier?`fn_${e.functionDefinition.identifier.replace(/::/g,`_`)}`:`(...${`p_${Z(t)}_${n}`}) => {\n${u(e.startingNodeId||e.functionDefinition?.id,r+` `)}${r}}`,l=(e,t,n)=>{if(e==null)return;let r=new Map;for(let e of t??[]){if(!e?.signature)continue;let t=e.value;if(t?.__typename===`ReferenceValue`)r.set(e.signature,s(t));else if(t?.__typename===`LiteralValue`){let i=l(t.value,t.references,n);i!==void 0&&r.set(e.signature,i)}else t?.__typename===`SubFlowValue`&&r.set(e.signature,c(t,n.id,n.index,n.indent))}return r.size===0?b(e):$(e,r)},u=(e,t=``)=>{let n=i.find(t=>t?.id===e);if(!n||!n.functionDefinition)return``;if(e?.includes(`NodeFunction`)&&o.add(e),!a.get(n.functionDefinition.identifier))return`${t}// Error: Function ${n.functionDefinition.identifier} not found\n`;let r=(n.parameters?.nodes||[]).map((n,r)=>{let i=n.value,a=`/* @pos ${e} ${r} */ undefined`;if(!i)return a;if(i.__typename===`ReferenceValue`)return`/* @pos ${e} ${r} */ ${X(s(i),n.cast)}`;if(i.__typename===`LiteralValue`){let a=l(i.value,i.references,{id:e,index:r,indent:t});return a===void 0?`/* @pos ${e} ${r} */ undefined`:`/* @pos ${e} ${r} */ ${X(a,n.cast)}`}return i.__typename===`SubFlowValue`?`/* @pos ${e} ${r} */ ${c(i,e,r,t)}`:a}),d=`node_${Z(n.id)}`,f=`fn_${n?.functionDefinition?.identifier?.replace(/::/g,`_`)}`;r.includes(`undefined`);let p=`${t}`;return n.functionDefinition.identifier===`std::control::return`?(p+=`const ${d} = /* @pos ${e} null */ ${f}(${r.join(`, `)}) ;\n`,p+=`return ${d};\n`):n.functionDefinition.identifier===`std::control::if`?(p+=`const ${d} = /* @pos ${e} null */ ${f}(${r.join(`, `)}) ;\n`,p+=`if(${r[0]}) {
30
+ ${u(n.parameters?.nodes?.[1]?.value?.startingNodeId||(n.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,t+` `)}
31
+ }`):n.functionDefinition.identifier===`std::control::if_else`?(p+=`const ${d} = /* @pos ${e} null */ ${f}(${r.join(`, `)}) ;\n`,p+=`if(${r[0]}) {
32
+ ${u(n.parameters?.nodes?.[1]?.value?.startingNodeId||(n.parameters?.nodes?.[1]?.value)?.functionDefinition?.identifier,t+` `)}
33
+ } else {
34
+ ${u(n.parameters?.nodes?.[2]?.value?.startingNodeId||(n.parameters?.nodes?.[2]?.value)?.functionDefinition?.identifier,t+` `)}
35
+ }`):p+=`const ${d} = /* @pos ${e} null */ ${f}(${r.join(`, `)}) ;\n`,n.nextNodeId&&(p+=u(n.nextNodeId,t)),p},d=et(n),f=`declare function flow${e?.signature??`(): void`}`,p=t?.map(e=>`declare function fn_${e.identifier?.replace(/::/g,`_`)}${e.signature}`).join(`
36
+ `),m=new Set(i.map(e=>e?.nextNodeId).filter(e=>!!e)),h=new Set;return i.forEach(e=>e?.parameters?.nodes?.forEach(e=>{e?.value?.__typename===`SubFlowValue`&&(e.value.startingNodeId||e.value.functionDefinition?.id)&&h.add(e.value.startingNodeId||e.value.functionDefinition?.id)})),`
37
+ ${d}\n
38
+ ${f}\n
39
+ ${p}\n
40
+ (() =>
41
+ ${e?`const flow_${Z(e.id??``)} = /* @pos null null */ flow(${e.settings?.nodes?.map((e,t)=>{let n=e?.value!==null&&e?.value!==void 0?b(e.value):void 0;return`/* @pos null ${t} */ ${n===void 0?`undefined`:X(n,e?.cast)}`}).join(`, `)??``});`:``}
42
+ ${i.filter(e=>e?.id&&!m.has(e.id)&&!h.has(e.id)).map(e=>u(e.id)).join(`
43
+ `)}
44
+ )();
45
+ `}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return b}});