@code0-tech/triangulum 0.38.2 → 0.39.0

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/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-DdyNhGg7.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-RoGpr1Jk.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=`
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-DuhhcdtN.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-_WkJwqHY.js";
2
2
  import y, { flattenDiagnosticMessageText as b } from "typescript";
3
3
  //#region src/extraction/getTypeFromValue.ts
4
4
  var x = (e, t) => {
package/dist/server.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-DdyNhGg7.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(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-RoGpr1Jk.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
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-DuhhcdtN.js";
1
+ import { i as e, n as t, r as n, t as r } from "./utils-_WkJwqHY.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
@@ -248,6 +248,39 @@ export interface ListInput extends Input {
248
248
  */
249
249
  declaredItems?: Schema[];
250
250
  }
251
+ /**
252
+ * Represents a union of *alternative inputs* — a slot whose declared type is a
253
+ * union whose members are inputs in their own right (e.g. `TEXT | OBJECT<…>`,
254
+ * `BOOLEAN | COLOR`, `HTTP_METHOD | NUMBER`). The UI renders a choice between
255
+ * the alternatives in {@link UnionInput.items}, then the input of the one picked.
256
+ *
257
+ * Not every union surfaces as one: a union whose members are the *options of a
258
+ * single input* renders as that input instead — a literal union (`'GET' | 'POST'`)
259
+ * is one {@link PrimitiveInput} select offering both, and `boolean` (internally
260
+ * `true | false`) is one boolean input. See {@link isOptionsUnion}.
261
+ */
262
+ export interface UnionInput extends Input {
263
+ input?: "union";
264
+ /**
265
+ * One schema per alternative this slot accepts, in the union's own member
266
+ * order — the role {@link ListInput.declaredItems} plays for a list element.
267
+ *
268
+ * Each entry is one *input*, not one type: the string/number literal members
269
+ * are folded into a single `select` entry carrying all of them as its options,
270
+ * and `boolean`'s internal `true | false` members into a single `boolean`
271
+ * entry. `undefined` and `null` members are dropped — they make the slot
272
+ * optional, they are not alternatives to render.
273
+ *
274
+ * Every entry's suggestions are those of the whole union, not of the member
275
+ * alone: an entry describes one option of this one slot, and the slot accepts
276
+ * whatever any of its members accept. This mirrors a union list element, whose
277
+ * `declaredItems` scope each option's suggestions to the whole element type.
278
+ *
279
+ * Always at least two entries — a union with a single real member collapses to
280
+ * that member's own schema rather than surfacing as a union input.
281
+ */
282
+ items?: Schema[];
283
+ }
251
284
  /**
252
285
  * Represents a type input.
253
286
  * Emitted for the TYPE data type so the UI can render a dedicated type picker
@@ -261,7 +294,7 @@ export interface TypeInput extends Input {
261
294
  * Union type representing all possible schema input types.
262
295
  * Discriminated union based on the 'input' field.
263
296
  */
264
- export type Schema = PrimitiveInput | DateInput | ColorInput | FileInput | ListFileInput | ListSelectInput | ListBooleanInput | ListNumberInput | ListTextInput | ListSubFlowInput | DataInput | ListInput | TypeInput | SubFlowInput | GenericInput;
297
+ export type Schema = PrimitiveInput | DateInput | ColorInput | FileInput | ListFileInput | ListSelectInput | ListBooleanInput | ListNumberInput | ListTextInput | ListSubFlowInput | DataInput | ListInput | UnionInput | TypeInput | SubFlowInput | GenericInput;
265
298
  /**
266
299
  * Generates a schema definition for a given TypeScript type.
267
300
  *
@@ -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})),O=e=>({suggestions:e.map(e=>e.value),suggestionCertainty:e.map(e=>e.certainty)}),ue=e=>e&&e.length>0?O(e):{},de=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!fe(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?pe(i,o,e,n):i.startsWith(`p_`)?me(i,o,e,n):i.startsWith(`flow_`)?he(o,e,n):[]}),fe=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),pe=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=k(e.replace(`node_`,``));return j(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}})},me=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=ge(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>j(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}}))},he=(e,t,n)=>j(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}}),k=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),ge=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:k(r),paramIndexFromName:i}},_e=7,A=(e,t,n)=>{let r=n.get(e);if(r!==void 0)return r;let i=new Set,a=n=>{if(i.has(n)||!M(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},ve=(e,t)=>e.isUnion()?e.types.map(e=>t.getNonNullableType(e)).filter(M):M(e)?[e]:[],j=(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}),ve(s,t).forEach(e=>{if(i.has(e)||r.length>=_e&&A(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(...j(s,t,n,l,i,a))}),i.delete(e))}),o},M=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},ye=(e,t,n,r)=>t.flatMap(t=>{let i=be(e,t,n,r);return i?[i]:[]}),be=(e,t,n,r)=>{let i=e.getSignatureFromDeclaration(t),a=e.getReturnTypeOfSignature(i),o=E(xe(e,a),e,r);if(!o)return null;let s=a.isTypeParameter()?w(o,C(`generic`)):o,c=Se(t.name?.getText());return{value:Ce(n.find(e=>e.identifier===c)),certainty:s}},xe=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,Se=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,Ce=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=we(e?.parameterDefinitions?.nodes||[])),n},we=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>Te(e))}),Te=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),Ee=(e,t)=>t.getCallSignatures().map(t=>e.getReturnTypeOfSignature(t)),De=(e,t,n,r)=>Y(r)?t.flatMap(t=>{let i=Oe(e,t,n,r);return i?[i]:[]}):[],Oe=(e,t,n,r)=>{let i=e.getTypeAtLocation(t),a=E(i,e,r);if(!a)return null;let o=Ee(e,r),s=o.length>0&&o.every(ce),c=Ee(e,i).some(e=>e.isTypeParameter()),l=w(a,s?C(`unconstrained`):S,c?C(`generic`):S),u=ke(t.name?.getText()),d=n.find(e=>e.identifier===u);return d?{value:Ae(d),certainty:l}:null},ke=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,Ae=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}))}),N={DATE:`date`,TYPE:`type`},P=e=>e!=null&&e in N,je=new Set(Object.values(N)),Me=e=>e!=null&&je.has(e),Ne=7,F=(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 F(e,t,e.getTypeFromTypeNode(u.constraint),r,i,a,o,s,l)}let d=P(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?de(e,t,p,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...ye(e,r,i,p),...De(e,r,i,m)]:[],g=a?O(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{...F(e,t,o[0],r,i,a,void 0,s,l),type:f,...g}}let _=U(n);if(_)return{input:_,type:f,...g};if(W(e,n))return{input:`file`,type:f,mimetype:We(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(Ge(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&&W(e,o[0]))return{input:`list-file`,type:f,mimetype:We(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=>F(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(Ge(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>=Ne&&A(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=>F(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}}if(n.isUnion()){let o=Pe(e,t,n,r,i,a,s,l);if(o.length===1)return{...o[0],type:f,...g};if(o.length>1)return{input:`union`,type:f,items:o,...g}}return{input:`generic`,type:f,...g}};function Pe(e,t,n,r,i,a,o,s){let l=n.types.filter(e=>(e.flags&(c.default.TypeFlags.Undefined|c.default.TypeFlags.Null))===0),u=l.filter(q),d=c=>F(e,t,c,r,i,a,n,o,s),f=[],p=!1,m=!1;for(let t of l){if(q(t)){if(p)continue;p=!0;let n=d(t);f.push(u.length===1?n:{...n,type:u.map(t=>e.typeToString(t)).join(` | `)});continue}if((t.flags&(c.default.TypeFlags.Boolean|c.default.TypeFlags.BooleanLiteral))!==0){if(m)continue;m=!0,f.push(d(e.getBooleanType()));continue}f.push(d(t))}return f}var I=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`]),L=e=>{let t=e,n=e.items;n&&(t={...t,items:n.map(L)});let r=e.declaredItems;r&&(t={...t,declaredItems:r.map(L)});let i=e.properties;if(i){let e={};for(let[t,n]of Object.entries(i))e[t]=Array.isArray(n)?n.map(L):L(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},R=(e,t)=>{if(t&&t.length>0)return{...e,...ue(t)};if(e.suggestions===void 0)return e;let{suggestions:n,suggestionCertainty:r,...i}=e;return i},z=(e,t=void 0)=>{let n=e,r=n.items;r&&(n={...n,items:r.map(e=>z(e,t))});let i=n.declaredItems;i&&(n={...n,declaredItems:i.map(e=>z(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=>z(e,t)):z(r,t);n={...n,properties:e}}return n.input===`generic`?R(n,t):R(n,D(n))},B=(e,t=void 0)=>e&&e.length>0?e.map(e=>z(e,t)):[R({input:`generic`},t)],V=(e,t=void 0,n=!0)=>{let r=Be(e),i=r.items;i&&(r={...r,items:i.map(e=>V(e,t))});let a=r.declaredItems;a&&(r={...r,declaredItems:a.map(e=>V(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=>V(e,t)):V(r,t);r={...r,properties:e}}return n&&(r=R(r,t)),r},H=(e,t,n=!1,r=void 0,i=!0)=>{if(!e||e.input===`generic`)return ze(V(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 R({...e,properties:o},a)}if(I.has(e.input)){let n=e.items??[],i=I.has(t.input)?t.items??[]:[],o=n.length>0&&n.every(e=>e.input===`generic`)&&i.length>0?i.map(e=>V(e,r)):n.length===i.length&&n.length>0?n.map((e,t)=>H(e,i[t],!1,r,!1)):B(n,r);return R({...e,items:o,declaredItems:B(n,r)},a)}if(e.input===`union`){let n=e.items??[],i=t.input===`union`?t.items??[]:[];if(n.length>0&&n.length===i.length)return R({...e,items:n.map((e,t)=>H(e,i[t],!1,r,!1))},a);let o=n.find(e=>e.input===t.input);return o?H(o,t,!1,r,!1):R({...e,items:n.map(e=>z(e,r))},a)}return Me(e.input)?R({...e,...t.type===void 0?{}:{type:t.type}},a):R({...e},a)},Le=(e,t,n=void 0)=>e===void 0&&t!==void 0?Array.isArray(t)?t.map(e=>V(e,n)):V(t,n):e&&!Array.isArray(e)&&t&&!Array.isArray(t)?H(e,t,!1,n,!1):Array.isArray(e)&&Array.isArray(t)&&e.length===t.length?e.map((e,r)=>H(e,t[r],!1,n,!1)):Array.isArray(e)?e.map(e=>z(e,n)):z(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:R({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 R({input:n.size===1?{string:`text`,number:`number`,boolean:`boolean`}[[...n][0]]:`text`,...e.type?{type:e.type}:{}},t)};function U(e){let t=e.aliasSymbol?.getName();return P(t)?N[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 U(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 W(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 We(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 Ge(e){return(e.flags&c.default.TypeFlags.String)!==0||(e.flags&c.default.TypeFlags.StringLiteral)!==0}function q(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)||q(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(q)}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(q)}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=P(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 R}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return L}}),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 F}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return B}}),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 z}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return b}});
@@ -292,25 +292,25 @@ var _ = (t) => {
292
292
  })), ne = (e, t) => e.match === "exact" || t.match !== "exact" ? e : t, x = (...e) => {
293
293
  let t = ee.find((t) => e.some((e) => e.reason === t));
294
294
  return t ? b(t) : y;
295
- }, S = (t, n = 1) => t === void 0 || (t.flags & (e.TypeFlags.Any | e.TypeFlags.Unknown)) !== 0 || (t.flags & e.TypeFlags.Object) !== 0 && t.getProperties().length === 0 && t.getCallSignatures().length === 0 && t.getConstructSignatures().length === 0 && (n === 0 ? t.getNumberIndexType() === void 0 && t.getStringIndexType() === void 0 : S(t.getNumberIndexType(), n - 1) && S(t.getStringIndexType(), n - 1)), C = (t, n, r) => {
296
- let i = n.getNonNullableType(t);
295
+ }, S = (t, n = 1) => t === void 0 || (t.flags & (e.TypeFlags.Any | e.TypeFlags.Unknown)) !== 0 || (t.flags & e.TypeFlags.Object) !== 0 && t.getProperties().every((t) => (t.flags & e.SymbolFlags.Optional) !== 0) && t.getCallSignatures().length === 0 && t.getConstructSignatures().length === 0 && (n === 0 ? t.getNumberIndexType() === void 0 && t.getStringIndexType() === void 0 : S(t.getNumberIndexType(), n - 1) && S(t.getStringIndexType(), n - 1)), re = (t) => t !== void 0 && (t.flags & e.TypeFlags.Void) !== 0 || S(t), ie = (e) => e.isUnion() ? e.types.some((e) => S(e)) : S(e), C = (t, n, r) => {
296
+ let i = n.getNonNullableType(t), a = n.getNonNullableType(r);
297
297
  if ((i.flags & e.TypeFlags.Never) !== 0) return null;
298
- let a = i.isUnion() ? i.types.map((e) => n.getNonNullableType(e)) : [i], o = a.filter((t) => (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r));
299
- return o.length === 0 ? null : x(S(i) || S(r) ? b("unconstrained") : y, i !== t && !n.isTypeAssignableTo(t, r) ? b("nullable") : y, o.length < a.length ? b("union-member") : y);
298
+ let o = i.isUnion() ? i.types.map((e) => n.getNonNullableType(e)) : [i], s = o.filter((t) => (t.flags & e.TypeFlags.Never) === 0 && n.isTypeAssignableTo(t, r));
299
+ return s.length === 0 ? null : x(S(i) || ie(a) ? b("unconstrained") : y, i !== t && !n.isTypeAssignableTo(t, r) ? b("nullable") : y, s.length < o.length ? b("union-member") : y);
300
300
  }, w = (e) => (e.suggestions ?? []).map((t, n) => ({
301
301
  value: t,
302
302
  certainty: e.suggestionCertainty?.[n] ?? y
303
303
  })), T = (e) => ({
304
304
  suggestions: e.map((e) => e.value),
305
305
  suggestionCertainty: e.map((e) => e.certainty)
306
- }), re = (e) => e && e.length > 0 ? T(e) : {}, ie = (e, t, n, r) => r.flatMap((r) => {
306
+ }), ae = (e) => e && e.length > 0 ? T(e) : {}, oe = (e, t, n, r) => r.flatMap((r) => {
307
307
  let i = r.getName();
308
- if (!ae(i)) return [];
308
+ if (!se(i)) return [];
309
309
  let a = r.getDeclarations()?.[0];
310
310
  if (!a || a.getEnd() >= t.getEnd()) return [];
311
311
  let o = e.getTypeOfSymbolAtLocation(r, t);
312
- return i.startsWith("node_") ? oe(i, o, e, n) : i.startsWith("p_") ? se(i, o, e, n) : i.startsWith("flow_") ? ce(o, e, n) : [];
313
- }), ae = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), oe = (t, n, r, i) => {
312
+ return i.startsWith("node_") ? ce(i, o, e, n) : i.startsWith("p_") ? le(i, o, e, n) : i.startsWith("flow_") ? ue(o, e, n) : [];
313
+ }), se = (e) => e.startsWith("node_") || e.startsWith("p_") || e.startsWith("flow_"), ce = (t, n, r, i) => {
314
314
  if ((n.flags & e.TypeFlags.Void) !== 0) return [];
315
315
  let a = E(t.replace("node_", ""));
316
316
  return D(n, r, i).map(({ path: e, certainty: t }) => {
@@ -323,8 +323,8 @@ var _ = (t) => {
323
323
  certainty: t
324
324
  };
325
325
  });
326
- }, se = (e, t, n, r) => {
327
- let { nodeFunctionId: i, paramIndexFromName: a } = le(e);
326
+ }, le = (e, t, n, r) => {
327
+ let { nodeFunctionId: i, paramIndexFromName: a } = de(e);
328
328
  if (!n.isTupleType(t)) return [];
329
329
  let o = t;
330
330
  return n.getTypeArguments(o).flatMap((e, t) => D(e, n, r).map(({ path: e, certainty: n }) => {
@@ -340,7 +340,7 @@ var _ = (t) => {
340
340
  certainty: n
341
341
  };
342
342
  }));
343
- }, ce = (e, t, n) => D(e, t, n).map(({ path: e, certainty: t }) => {
343
+ }, ue = (e, t, n) => D(e, t, n).map(({ path: e, certainty: t }) => {
344
344
  let n = {
345
345
  __typename: "ReferenceValue",
346
346
  nodeFunctionId: null
@@ -349,13 +349,13 @@ var _ = (t) => {
349
349
  value: n,
350
350
  certainty: t
351
351
  };
352
- }), E = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), le = (e) => {
352
+ }), E = (e) => e.replace(/___/g, "://").replace(/__/g, "/").replace(/_/g, "/"), de = (e) => {
353
353
  let t = e.replace("p_", ""), n = t.lastIndexOf("_"), r = t.substring(0, n), i = parseInt(t.substring(n + 1), 10);
354
354
  return {
355
355
  nodeFunctionId: E(r),
356
356
  paramIndexFromName: i
357
357
  };
358
- }, ue = 7, de = (e, t, n) => {
358
+ }, fe = 7, pe = (e, t, n) => {
359
359
  let r = n.get(e);
360
360
  if (r !== void 0) return r;
361
361
  let i = /* @__PURE__ */ new Set(), a = (n) => {
@@ -369,14 +369,14 @@ var _ = (t) => {
369
369
  return !1;
370
370
  }, o = a(e);
371
371
  return n.set(e, o), o;
372
- }, fe = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(O) : O(e) ? [e] : [], D = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
372
+ }, me = (e, t) => e.isUnion() ? e.types.map((e) => t.getNonNullableType(e)).filter(O) : O(e) ? [e] : [], D = (e, t, n, r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map()) => {
373
373
  let o = [], s = t.getNonNullableType(e), c = C(e, t, n);
374
374
  return c && o.push({
375
375
  path: r,
376
376
  type: e,
377
377
  certainty: c
378
- }), fe(s, t).forEach((e) => {
379
- if (i.has(e) || r.length >= ue && de(e, t, a)) return;
378
+ }), me(s, t).forEach((e) => {
379
+ if (i.has(e) || r.length >= fe && pe(e, t, a)) return;
380
380
  let s = e.getProperties();
381
381
  s && s.length > 0 && (i.add(e), s.forEach((e) => {
382
382
  let s = t.getTypeOfSymbolAtLocation(e, e.valueDeclaration), c = e.getName(), l = [...r, { path: c }];
@@ -386,18 +386,18 @@ var _ = (t) => {
386
386
  }, O = (t) => {
387
387
  let n = e.TypeFlags.String | e.TypeFlags.Number | e.TypeFlags.Boolean | e.TypeFlags.Undefined | e.TypeFlags.Null | e.TypeFlags.BigInt | e.TypeFlags.ESSymbol;
388
388
  return (t.flags & n) === 0;
389
- }, pe = (e, t, n, r) => t.flatMap((t) => {
390
- let i = me(e, t, n, r);
389
+ }, he = (e, t, n, r) => t.flatMap((t) => {
390
+ let i = ge(e, t, n, r);
391
391
  return i ? [i] : [];
392
- }), me = (e, t, n, r) => {
393
- let i = e.getSignatureFromDeclaration(t), a = e.getReturnTypeOfSignature(i), o = C(he(e, a), e, r);
392
+ }), ge = (e, t, n, r) => {
393
+ let i = e.getSignatureFromDeclaration(t), a = e.getReturnTypeOfSignature(i), o = C(_e(e, a), e, r);
394
394
  if (!o) return null;
395
- let s = a.isTypeParameter() ? x(o, b("generic")) : o, c = ge(t.name?.getText());
395
+ let s = a.isTypeParameter() ? x(o, b("generic")) : o, c = ve(t.name?.getText());
396
396
  return {
397
- value: _e(n.find((e) => e.identifier === c)),
397
+ value: ye(n.find((e) => e.identifier === c)),
398
398
  certainty: s
399
399
  };
400
- }, he = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, ge = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", _e = (e) => {
400
+ }, _e = (e, t) => t.isTypeParameter() ? e.getBaseConstraintOfType(t) || e.getAnyType() : t, ve = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", ye = (e) => {
401
401
  let t = (e?.parameterDefinitions?.nodes?.length ?? 0) > 0, n = {
402
402
  __typename: "NodeFunction",
403
403
  id: "gid://sagittarius/NodeFunction/1",
@@ -410,11 +410,11 @@ var _ = (t) => {
410
410
  displayIcon: e?.displayIcon
411
411
  }
412
412
  };
413
- return t && (n.parameters = ve(e?.parameterDefinitions?.nodes || [])), n;
414
- }, ve = (e) => ({
413
+ return t && (n.parameters = be(e?.parameterDefinitions?.nodes || [])), n;
414
+ }, be = (e) => ({
415
415
  __typename: "NodeParameterConnection",
416
- nodes: e.map((e) => ye(e))
417
- }), ye = (e) => ({
416
+ nodes: e.map((e) => xe(e))
417
+ }), xe = (e) => ({
418
418
  __typename: "NodeParameter",
419
419
  parameterDefinition: {
420
420
  __typename: "ParameterDefinition",
@@ -425,18 +425,18 @@ var _ = (t) => {
425
425
  __typename: "LiteralValue",
426
426
  value: e.defaultValue.value
427
427
  } : null
428
- }), be = (e, t, n, r) => J(r) ? t.flatMap((t) => {
429
- let i = xe(e, t, n, r);
428
+ }), k = (e, t) => t.getCallSignatures().map((t) => e.getReturnTypeOfSignature(t)), Se = (e, t, n, r) => J(r) ? t.flatMap((t) => {
429
+ let i = Ce(e, t, n, r);
430
430
  return i ? [i] : [];
431
- }) : [], xe = (e, t, n, r) => {
432
- let i = C(e.getTypeAtLocation(t), e, r);
433
- if (!i) return null;
434
- let a = Se(t.name?.getText()), o = n.find((e) => e.identifier === a);
435
- return o ? {
436
- value: Ce(o),
437
- certainty: i
431
+ }) : [], Ce = (e, t, n, r) => {
432
+ let i = e.getTypeAtLocation(t), a = C(i, e, r);
433
+ if (!a) return null;
434
+ let o = k(e, r), s = o.length > 0 && o.every(re), c = k(e, i).some((e) => e.isTypeParameter()), l = x(a, s ? b("unconstrained") : y, c ? b("generic") : y), u = we(t.name?.getText()), d = n.find((e) => e.identifier === u);
435
+ return d ? {
436
+ value: Te(d),
437
+ certainty: l
438
438
  } : null;
439
- }, Se = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", Ce = (e) => ({
439
+ }, we = (e) => e ? e.replace("fn_", "").replace("_", "::").replace("_", "::") : "", Te = (e) => ({
440
440
  __typename: "SubFlowValue",
441
441
  functionDefinition: e,
442
442
  signature: e.signature,
@@ -447,25 +447,25 @@ var _ = (t) => {
447
447
  hidden: e?.hidden ?? !1,
448
448
  optional: e?.optional ?? !1
449
449
  }))
450
- }), k = {
450
+ }), A = {
451
451
  DATE: "date",
452
452
  TYPE: "type"
453
- }, A = (e) => e != null && e in k, we = new Set(Object.values(k)), j = (e) => e != null && we.has(e), Te = 7, M = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u) => {
453
+ }, j = (e) => e != null && e in A, Ee = new Set(Object.values(A)), M = (e) => e != null && Ee.has(e), De = 7, N = (t, n, r, i, a, o = !0, s, c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Map(), u) => {
454
454
  if ((r.flags & e.TypeFlags.TypeParameter) !== 0) {
455
455
  let u = r.symbol?.declarations?.[0];
456
- if (u && e.isTypeParameterDeclaration(u) && u.constraint) return M(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
456
+ if (u && e.isTypeParameterDeclaration(u) && u.constraint) return N(t, n, t.getTypeFromTypeNode(u.constraint), i, a, o, s, c, l);
457
457
  }
458
- let d = A(r.aliasSymbol?.getName()), f = d && r.isIntersection() ? t.typeToString(r.types.find((t) => (t.flags & e.TypeFlags.Object) === 0) ?? r) : d ? "object" : t.typeToString({
458
+ let d = j(r.aliasSymbol?.getName()), f = d && r.isIntersection() ? t.typeToString(r.types.find((t) => (t.flags & e.TypeFlags.Object) === 0) ?? r) : d ? "object" : t.typeToString({
459
459
  ...r,
460
460
  aliasSymbol: void 0
461
461
  }), p = s ?? r, m = J(p) ? p : r, h = o ? [
462
462
  ...te(v(p, t)),
463
- ...n ? ie(t, n, p, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
464
- ...pe(t, i, a, p),
465
- ...be(t, i, a, m)
463
+ ...n ? oe(t, n, p, t.getSymbolsInScope(n, e.SymbolFlags.Variable)) : [],
464
+ ...he(t, i, a, p),
465
+ ...Se(t, i, a, m)
466
466
  ] : [], g = o ? T(h) : {};
467
467
  if (u) {
468
- let e = Me(t, u);
468
+ let e = Fe(t, u);
469
469
  if (e) return {
470
470
  input: e,
471
471
  type: f,
@@ -475,29 +475,29 @@ var _ = (t) => {
475
475
  if (r.isUnion()) {
476
476
  let s = r.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
477
477
  if (s.length === 1) return {
478
- ...M(t, n, s[0], i, a, o, void 0, c, l),
478
+ ...N(t, n, s[0], i, a, o, void 0, c, l),
479
479
  type: f,
480
480
  ...g
481
481
  };
482
482
  }
483
- let _ = B(r);
483
+ let _ = V(r);
484
484
  if (_) return {
485
485
  input: _,
486
486
  type: f,
487
487
  ...g
488
488
  };
489
- if (V(t, r)) return {
489
+ if (H(t, r)) return {
490
490
  input: "file",
491
491
  type: f,
492
- mimetype: H(t, r),
492
+ mimetype: U(t, r),
493
493
  ...g
494
494
  };
495
- if (Pe(t, r)) return {
495
+ if (Le(t, r)) return {
496
496
  input: "color",
497
497
  type: f,
498
498
  ...g
499
499
  };
500
- if (U(r)) return {
500
+ if (W(r)) return {
501
501
  input: "boolean",
502
502
  type: f,
503
503
  ...g
@@ -507,12 +507,12 @@ var _ = (t) => {
507
507
  type: f,
508
508
  ...g
509
509
  };
510
- if (W(r)) return {
510
+ if (G(r)) return {
511
511
  input: "number",
512
512
  type: f,
513
513
  ...g
514
514
  };
515
- if (G(r)) return {
515
+ if (Re(r)) return {
516
516
  input: "text",
517
517
  type: f,
518
518
  ...g
@@ -522,17 +522,17 @@ var _ = (t) => {
522
522
  type: f,
523
523
  ...g
524
524
  };
525
- if (Re(t, r)) {
525
+ if (Ve(t, r)) {
526
526
  let e = t.getTypeArguments(r);
527
- if (e.length === 1 && V(t, e[0])) return {
527
+ if (e.length === 1 && H(t, e[0])) return {
528
528
  input: "list-file",
529
529
  type: f,
530
- mimetype: H(t, e[0]),
530
+ mimetype: U(t, e[0]),
531
531
  ...g
532
532
  };
533
533
  let s = e.flatMap((e) => {
534
534
  let r = e.isUnion() ? e.types : [e], s = r.length > 1 ? e : void 0;
535
- return r.map((e) => M(t, n, e, i, a, o, s, c, l));
535
+ return r.map((e) => N(t, n, e, i, a, o, s, c, l));
536
536
  }), u = o ? { declaredItems: s } : {};
537
537
  if (e.length === 1 && q(e[0])) return {
538
538
  input: "list-select",
@@ -543,21 +543,21 @@ var _ = (t) => {
543
543
  };
544
544
  if (e.length === 1) {
545
545
  let t = e[0];
546
- if (U(t)) return {
546
+ if (W(t)) return {
547
547
  input: "list-boolean",
548
548
  type: f,
549
549
  items: s,
550
550
  ...u,
551
551
  ...g
552
552
  };
553
- if (W(t)) return {
553
+ if (G(t)) return {
554
554
  input: "list-number",
555
555
  type: f,
556
556
  items: s,
557
557
  ...u,
558
558
  ...g
559
559
  };
560
- if (G(t)) return {
560
+ if (Re(t)) return {
561
561
  input: "list-text",
562
562
  type: f,
563
563
  items: s,
@@ -581,7 +581,7 @@ var _ = (t) => {
581
581
  };
582
582
  }
583
583
  if ((r.flags & e.TypeFlags.Object) !== 0) {
584
- if (c.has(r) || c.size >= Te && de(r, t, l)) return {
584
+ if (c.has(r) || c.size >= De && pe(r, t, l)) return {
585
585
  input: "data",
586
586
  type: f,
587
587
  ...g
@@ -591,7 +591,7 @@ var _ = (t) => {
591
591
  for (let f of t.getPropertiesOfType(r)) {
592
592
  let r = f.valueDeclaration ?? f.declarations?.[0];
593
593
  if (!r) continue;
594
- let p = t.getTypeOfSymbolAtLocation(f, r), m = (f.flags & e.SymbolFlags.Optional) !== 0 || p.isUnion() && p.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), h = t.getNonNullableType(p), g = h.isUnion() && !q(h) && !U(h) ? h.types : [h], _ = u ? Ne(t, u, f.name) : void 0, v = g.map((e) => M(t, n, e, i, a, o, void 0, c, l, _));
594
+ let p = t.getTypeOfSymbolAtLocation(f, r), m = (f.flags & e.SymbolFlags.Optional) !== 0 || p.isUnion() && p.types.some((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) !== 0), h = t.getNonNullableType(p), g = h.isUnion() && !q(h) && !W(h) ? h.types : [h], _ = u ? Ie(t, u, f.name) : void 0, v = g.map((e) => N(t, n, e, i, a, o, void 0, c, l, _));
595
595
  s[f.name] = v.length === 1 ? v[0] : v, m || d.push(f.name);
596
596
  }
597
597
  return c.delete(r), {
@@ -602,46 +602,83 @@ var _ = (t) => {
602
602
  ...g
603
603
  };
604
604
  }
605
+ if (r.isUnion()) {
606
+ let e = Oe(t, n, r, i, a, o, c, l);
607
+ if (e.length === 1) return {
608
+ ...e[0],
609
+ type: f,
610
+ ...g
611
+ };
612
+ if (e.length > 1) return {
613
+ input: "union",
614
+ type: f,
615
+ items: e,
616
+ ...g
617
+ };
618
+ }
605
619
  return {
606
620
  input: "generic",
607
621
  type: f,
608
622
  ...g
609
623
  };
610
- }, N = /* @__PURE__ */ new Set([
624
+ };
625
+ function Oe(t, n, r, i, a, o, s, c) {
626
+ let l = r.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0), u = l.filter(K), d = (e) => N(t, n, e, i, a, o, r, s, c), f = [], p = !1, m = !1;
627
+ for (let n of l) {
628
+ if (K(n)) {
629
+ if (p) continue;
630
+ p = !0;
631
+ let e = d(n);
632
+ f.push(u.length === 1 ? e : {
633
+ ...e,
634
+ type: u.map((e) => t.typeToString(e)).join(" | ")
635
+ });
636
+ continue;
637
+ }
638
+ if ((n.flags & (e.TypeFlags.Boolean | e.TypeFlags.BooleanLiteral)) !== 0) {
639
+ if (m) continue;
640
+ m = !0, f.push(d(t.getBooleanType()));
641
+ continue;
642
+ }
643
+ f.push(d(n));
644
+ }
645
+ return f;
646
+ }
647
+ var P = /* @__PURE__ */ new Set([
611
648
  "list",
612
649
  "list-select",
613
650
  "list-boolean",
614
651
  "list-number",
615
652
  "list-text",
616
653
  "list-sub-flow"
617
- ]), Ee = /* @__PURE__ */ new Set([
654
+ ]), ke = /* @__PURE__ */ new Set([
618
655
  "list-select",
619
656
  "list-boolean",
620
657
  "list-number",
621
658
  "list-text",
622
659
  "list-sub-flow",
623
660
  "list-file"
624
- ]), P = (e) => {
661
+ ]), F = (e) => {
625
662
  let t = e, n = e.items;
626
663
  n && (t = {
627
664
  ...t,
628
- items: n.map(P)
665
+ items: n.map(F)
629
666
  });
630
667
  let r = e.declaredItems;
631
668
  r && (t = {
632
669
  ...t,
633
- declaredItems: r.map(P)
670
+ declaredItems: r.map(F)
634
671
  });
635
672
  let i = e.properties;
636
673
  if (i) {
637
674
  let e = {};
638
- for (let [t, n] of Object.entries(i)) e[t] = Array.isArray(n) ? n.map(P) : P(n);
675
+ for (let [t, n] of Object.entries(i)) e[t] = Array.isArray(n) ? n.map(F) : F(n);
639
676
  t = {
640
677
  ...t,
641
678
  properties: e
642
679
  };
643
680
  }
644
- if (Ee.has(t.input)) {
681
+ if (ke.has(t.input)) {
645
682
  let { mimetype: e, ...n } = t;
646
683
  t = {
647
684
  ...n,
@@ -653,84 +690,96 @@ var _ = (t) => {
653
690
  t = r;
654
691
  }
655
692
  return t;
656
- }, De = (t) => {
693
+ }, Ae = (t) => {
657
694
  if (!t.isUnion()) return t;
658
695
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
659
696
  return n.length === 1 ? n[0] : t;
660
- }, F = (e, t) => {
697
+ }, I = (e, t) => {
661
698
  if (t && t.length > 0) return {
662
699
  ...e,
663
- ...re(t)
700
+ ...ae(t)
664
701
  };
665
702
  if (e.suggestions === void 0) return e;
666
703
  let { suggestions: n, suggestionCertainty: r, ...i } = e;
667
704
  return i;
668
- }, I = (e, t = void 0) => {
705
+ }, L = (e, t = void 0) => {
669
706
  let n = e, r = n.items;
670
707
  r && (n = {
671
708
  ...n,
672
- items: r.map((e) => I(e, t))
709
+ items: r.map((e) => L(e, t))
673
710
  });
674
711
  let i = n.declaredItems;
675
712
  i && (n = {
676
713
  ...n,
677
- declaredItems: i.map((e) => I(e, t))
714
+ declaredItems: i.map((e) => L(e, t))
678
715
  });
679
716
  let a = n.properties;
680
717
  if (a) {
681
718
  let e = {};
682
- for (let [n, r] of Object.entries(a)) e[n] = Array.isArray(r) ? r.map((e) => I(e, t)) : I(r, t);
719
+ for (let [n, r] of Object.entries(a)) e[n] = Array.isArray(r) ? r.map((e) => L(e, t)) : L(r, t);
683
720
  n = {
684
721
  ...n,
685
722
  properties: e
686
723
  };
687
724
  }
688
- return n.input === "generic" ? F(n, t) : F(n, w(n));
689
- }, L = (e, t = void 0) => e && e.length > 0 ? e.map((e) => I(e, t)) : [F({ input: "generic" }, t)], R = (e, t = void 0, n = !0) => {
690
- let r = je(e), i = r.items;
725
+ return n.input === "generic" ? I(n, t) : I(n, w(n));
726
+ }, R = (e, t = void 0) => e && e.length > 0 ? e.map((e) => L(e, t)) : [I({ input: "generic" }, t)], z = (e, t = void 0, n = !0) => {
727
+ let r = Pe(e), i = r.items;
691
728
  i && (r = {
692
729
  ...r,
693
- items: i.map((e) => R(e, t))
730
+ items: i.map((e) => z(e, t))
694
731
  });
695
732
  let a = r.declaredItems;
696
733
  a && (r = {
697
734
  ...r,
698
- declaredItems: a.map((e) => R(e, t))
735
+ declaredItems: a.map((e) => z(e, t))
699
736
  });
700
737
  let o = r.properties;
701
738
  if (o) {
702
739
  let e = {};
703
- for (let [n, r] of Object.entries(o)) e[n] = Array.isArray(r) ? r.map((e) => R(e, t)) : R(r, t);
740
+ for (let [n, r] of Object.entries(o)) e[n] = Array.isArray(r) ? r.map((e) => z(e, t)) : z(r, t);
704
741
  r = {
705
742
  ...r,
706
743
  properties: e
707
744
  };
708
745
  }
709
- return n && (r = F(r, t)), r;
710
- }, z = (e, t, n = !1, r = void 0, i = !0) => {
711
- if (!e || e.input === "generic") return Ae(R(t, r, !i), n);
712
- let a = ke(w(i || e.suggestions === void 0 ? t : e));
746
+ return n && (r = I(r, t)), r;
747
+ }, B = (e, t, n = !1, r = void 0, i = !0) => {
748
+ if (!e || e.input === "generic") return Ne(z(t, r, !i), n);
749
+ let a = Me(w(i || e.suggestions === void 0 ? t : e));
713
750
  if (e.input === "data") {
714
751
  let n = e.properties ?? {}, i = t.input === "data" ? t.properties ?? {} : {}, o = {}, s = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(i)]);
715
- for (let e of s) o[e] = Oe(n[e], i[e], r);
716
- return F({
752
+ for (let e of s) o[e] = je(n[e], i[e], r);
753
+ return I({
717
754
  ...e,
718
755
  properties: o
719
756
  }, a);
720
757
  }
721
- if (N.has(e.input)) {
722
- let n = e.items ?? [], i = N.has(t.input) ? t.items ?? [] : [], o = n.length > 0 && n.every((e) => e.input === "generic") && i.length > 0 ? i.map((e) => R(e, r)) : n.length === i.length && n.length > 0 ? n.map((e, t) => z(e, i[t], !1, r, !1)) : L(n, r);
723
- return F({
758
+ if (P.has(e.input)) {
759
+ let n = e.items ?? [], i = P.has(t.input) ? t.items ?? [] : [], o = n.length > 0 && n.every((e) => e.input === "generic") && i.length > 0 ? i.map((e) => z(e, r)) : n.length === i.length && n.length > 0 ? n.map((e, t) => B(e, i[t], !1, r, !1)) : R(n, r);
760
+ return I({
724
761
  ...e,
725
762
  items: o,
726
- declaredItems: L(n, r)
763
+ declaredItems: R(n, r)
727
764
  }, a);
728
765
  }
729
- return j(e.input) ? F({
766
+ if (e.input === "union") {
767
+ let n = e.items ?? [], i = t.input === "union" ? t.items ?? [] : [];
768
+ if (n.length > 0 && n.length === i.length) return I({
769
+ ...e,
770
+ items: n.map((e, t) => B(e, i[t], !1, r, !1))
771
+ }, a);
772
+ let o = n.find((e) => e.input === t.input);
773
+ return o ? B(o, t, !1, r, !1) : I({
774
+ ...e,
775
+ items: n.map((e) => L(e, r))
776
+ }, a);
777
+ }
778
+ return M(e.input) ? I({
730
779
  ...e,
731
780
  ...t.type === void 0 ? {} : { type: t.type }
732
- }, a) : F({ ...e }, a);
733
- }, Oe = (e, t, n = void 0) => e === void 0 && t !== void 0 ? Array.isArray(t) ? t.map((e) => R(e, n)) : R(t, n) : e && !Array.isArray(e) && t && !Array.isArray(t) ? z(e, t, !1, n, !1) : Array.isArray(e) && Array.isArray(t) && e.length === t.length ? e.map((e, r) => z(e, t[r], !1, n, !1)) : Array.isArray(e) ? e.map((e) => I(e, n)) : I(e, n), ke = (e) => {
781
+ }, a) : I({ ...e }, a);
782
+ }, je = (e, t, n = void 0) => e === void 0 && t !== void 0 ? Array.isArray(t) ? t.map((e) => z(e, n)) : z(t, n) : e && !Array.isArray(e) && t && !Array.isArray(t) ? B(e, t, !1, n, !1) : Array.isArray(e) && Array.isArray(t) && e.length === t.length ? e.map((e, r) => B(e, t[r], !1, n, !1)) : Array.isArray(e) ? e.map((e) => L(e, n)) : L(e, n), Me = (e) => {
734
783
  if (!e || e.length === 0) return;
735
784
  let t = /* @__PURE__ */ new Map();
736
785
  for (let n of e) {
@@ -741,19 +790,19 @@ var _ = (t) => {
741
790
  } : n);
742
791
  }
743
792
  return [...t.values()];
744
- }, Ae = (e, t) => !t || e.input !== "generic" ? e : F({
793
+ }, Ne = (e, t) => !t || e.input !== "generic" ? e : I({
745
794
  input: "data",
746
795
  ...e.type ? { type: e.type } : {},
747
796
  properties: {},
748
797
  required: []
749
- }, w(e)), je = (e) => {
798
+ }, w(e)), Pe = (e) => {
750
799
  if (e.input !== "select") return e;
751
800
  let t = w(e), n = /* @__PURE__ */ new Set();
752
801
  for (let e of t) {
753
802
  let t = typeof e.value.value;
754
803
  (t === "string" || t === "number" || t === "boolean") && n.add(t);
755
804
  }
756
- return F({
805
+ return I({
757
806
  input: n.size === 1 ? {
758
807
  string: "text",
759
808
  number: "number",
@@ -762,20 +811,20 @@ var _ = (t) => {
762
811
  ...e.type ? { type: e.type } : {}
763
812
  }, t);
764
813
  };
765
- function B(e) {
814
+ function V(e) {
766
815
  let t = e.aliasSymbol?.getName();
767
- return A(t) ? k[t] : void 0;
816
+ return j(t) ? A[t] : void 0;
768
817
  }
769
- function Me(t, n) {
818
+ function Fe(t, n) {
770
819
  if ((n.flags & e.TypeFlags.TypeParameter) === 0) return;
771
820
  let r = n.symbol?.declarations?.[0];
772
- if (r && e.isTypeParameterDeclaration(r) && r.constraint) return B(t.getTypeFromTypeNode(r.constraint));
821
+ if (r && e.isTypeParameterDeclaration(r) && r.constraint) return V(t.getTypeFromTypeNode(r.constraint));
773
822
  }
774
- function Ne(e, t, n) {
823
+ function Ie(e, t, n) {
775
824
  let r = e.getPropertyOfType(t, n), i = r?.valueDeclaration ?? r?.declarations?.[0];
776
825
  return i ? e.getTypeOfSymbolAtLocation(r, i) : void 0;
777
826
  }
778
- function V(t, n) {
827
+ function H(t, n) {
779
828
  if (n.aliasSymbol?.getName() !== "FILE" || (n.flags & e.TypeFlags.Object) === 0) return !1;
780
829
  let r = t.getPropertiesOfType(n);
781
830
  if (r.length !== 4) return !1;
@@ -786,7 +835,7 @@ function V(t, n) {
786
835
  let s = t.getTypeOfSymbolAtLocation(a, o);
787
836
  return s.isStringLiteral() && s.value === "base64";
788
837
  }
789
- function Pe(t, n) {
838
+ function Le(t, n) {
790
839
  if (n.aliasSymbol?.getName() !== "COLOR" || (n.flags & e.TypeFlags.Object) === 0) return !1;
791
840
  let r = new Map(t.getPropertiesOfType(n).map((e) => [e.name, e]));
792
841
  return [
@@ -797,10 +846,10 @@ function Pe(t, n) {
797
846
  let n = r.get(e);
798
847
  if (!n) return !1;
799
848
  let i = n.valueDeclaration ?? n.declarations?.[0];
800
- return i ? W(t.getTypeOfSymbolAtLocation(n, i)) : !1;
849
+ return i ? G(t.getTypeOfSymbolAtLocation(n, i)) : !1;
801
850
  });
802
851
  }
803
- function H(e, t) {
852
+ function U(e, t) {
804
853
  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");
805
854
  if (!r) return "*/*";
806
855
  let i = r.valueDeclaration ?? r.declarations?.[0];
@@ -808,7 +857,7 @@ function H(e, t) {
808
857
  let a = e.getTypeOfSymbolAtLocation(r, i);
809
858
  return a.isStringLiteral() && n.test(a.value) ? a.value : "*/*";
810
859
  }
811
- function U(t) {
860
+ function W(t) {
812
861
  if ((t.flags & e.TypeFlags.Boolean) !== 0 || (t.flags & e.TypeFlags.BooleanLiteral) !== 0) return !0;
813
862
  if (t.isUnion()) {
814
863
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
@@ -816,33 +865,30 @@ function U(t) {
816
865
  }
817
866
  return !1;
818
867
  }
819
- function W(t) {
868
+ function G(t) {
820
869
  return (t.flags & e.TypeFlags.Number) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
821
870
  }
822
- function G(t) {
871
+ function Re(t) {
823
872
  return (t.flags & e.TypeFlags.String) !== 0 || (t.flags & e.TypeFlags.StringLiteral) !== 0;
824
873
  }
825
- function Fe(e) {
826
- return G(e) || W(e) || U(e);
827
- }
828
874
  function K(t) {
829
875
  return (t.flags & e.TypeFlags.StringLiteral) !== 0 || (t.flags & e.TypeFlags.NumberLiteral) !== 0;
830
876
  }
831
877
  function q(e) {
832
- return U(e) ? !1 : Le(e) || K(e);
878
+ return W(e) ? !1 : Be(e) || K(e);
833
879
  }
834
- function Ie(t) {
880
+ function ze(t) {
835
881
  if (!t.isUnion()) return !1;
836
- if (U(t)) return !0;
882
+ if (W(t)) return !0;
837
883
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
838
884
  return n.length > 0 && n.every(K);
839
885
  }
840
- function Le(t) {
886
+ function Be(t) {
841
887
  if (!t.isUnion()) return !1;
842
888
  let n = t.types.filter((t) => (t.flags & (e.TypeFlags.Undefined | e.TypeFlags.Null)) === 0);
843
- return n.length > 0 && n.every(Fe);
889
+ return n.length > 0 && n.every(K);
844
890
  }
845
- function Re(e, t) {
891
+ function Ve(e, t) {
846
892
  return e.isArrayType(t) || e.isTupleType(t);
847
893
  }
848
894
  function J(e) {
@@ -850,18 +896,18 @@ function J(e) {
850
896
  }
851
897
  //#endregion
852
898
  //#region src/utils.ts
853
- var ze = "\n interface Array<T> { \n [n: number]: T; \n length: number; \n }\n interface String { readonly length: number; }\n interface Number { }\n interface Boolean { }\n interface Object { }\n interface Function { }\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n interface IArguments { }\n interface RegExp { }\n \n declare namespace Utils {\n type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\n }\n\n import ReturnType = Utils.ReturnType;\n";
854
- function Be(t, n) {
899
+ var He = "\n interface Array<T> { \n [n: number]: T; \n length: number; \n }\n interface String { readonly length: number; }\n interface Number { }\n interface Boolean { }\n interface Object { }\n interface Function { }\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n interface IArguments { }\n interface RegExp { }\n \n declare namespace Utils {\n type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\n }\n\n import ReturnType = Utils.ReturnType;\n";
900
+ function Ue(t, n) {
855
901
  let r = /* @__PURE__ */ new Map();
856
- return r.set(t, n), r.set("lib.codezero.d.ts", ze), a(u(r), [t, "lib.codezero.d.ts"], e, Ve);
902
+ return r.set(t, n), r.set("lib.codezero.d.ts", He), a(u(r), [t, "lib.codezero.d.ts"], e, We);
857
903
  }
858
- var Ve = {
904
+ var We = {
859
905
  target: e.ScriptTarget.Latest,
860
906
  lib: ["lib.codezero.d.ts"],
861
907
  noEmit: !0,
862
908
  strictNullChecks: !0
863
909
  };
864
- function He(e) {
910
+ function Ge(e) {
865
911
  let t = [], n = 0, r = null, i = "";
866
912
  for (let a of e) {
867
913
  if (r) a === r && (r = null);
@@ -876,20 +922,20 @@ function He(e) {
876
922
  }
877
923
  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);
878
924
  }
879
- var Ue = /* @__PURE__ */ new Set([
925
+ var Ke = /* @__PURE__ */ new Set([
880
926
  "number",
881
927
  "string",
882
928
  "boolean"
883
929
  ]);
884
930
  function Y(e, t = "any", n = !0) {
885
- let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(He))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
886
- let t = A(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 ? Ue.has(r) ? `${e.type} & {}` : "{}" : e.type;
931
+ let r = Array.from(new Set(e?.flatMap((e) => e.genericKeys || []).flatMap(Ge))).map((e) => `type ${e} = ${t};`).join("\n"), i = e?.map((e) => {
932
+ let t = j(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 ? Ke.has(r) ? `${e.type} & {}` : "{}" : e.type;
887
933
  return `type ${e.identifier}${n} = ${i};`;
888
934
  }).join("\n"), a = e?.filter((e) => (e.genericKeys?.length ?? 0) > 0).map((e) => `declare const __widen_${e.identifier}: ${e.identifier}<${e.genericKeys.map(() => "any").join(", ")}>;`).join("\n") ?? "";
889
935
  return `${n ? r : ""}\n${i}\n${a}`;
890
936
  }
891
- var We = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ge = (e) => {
892
- if (!We.test(e)) return !1;
937
+ var qe = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Je = (e) => {
938
+ if (!qe.test(e)) return !1;
893
939
  let t = {
894
940
  "<": ">",
895
941
  "[": "]",
@@ -908,8 +954,8 @@ var We = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ge = (e) => {
908
954
  return r === null && n.length === 0;
909
955
  }, X = (e, t) => {
910
956
  let n = t?.trim();
911
- return !n || !Ge(n) ? e : `(${e}) as unknown as ${n}`;
912
- }, Z = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_"), Q = (e) => e.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"), Ke = (e, t) => {
957
+ return !n || !Je(n) ? e : `(${e}) as unknown as ${n}`;
958
+ }, Z = (e) => e?.replace(/[^a-zA-Z0-9]/g, "_"), Q = (e) => e.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"), Ye = (e, t) => {
913
959
  let n = e.match(/^\$\{([^}]+)\}$/);
914
960
  if (n && t.has(n[1])) return t.get(n[1]);
915
961
  let r = /\$\{([^}]+)\}/g, i = !1;
@@ -924,8 +970,8 @@ var We = /^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/, Ge = (e) => {
924
970
  a += Q(e.slice(o, s)), a += t.has(i) ? "${" + t.get(i) + "}" : Q(r), o = s + r.length;
925
971
  }
926
972
  return a += Q(e.slice(o)), "`" + a + "`";
927
- }, $ = (e, t) => typeof e == "string" ? Ke(e, t) : Array.isArray(e) ? `[${e.map((e) => $(e, t)).join(", ")}]` : typeof e == "object" && e ? `{${Object.entries(e).map(([e, n]) => `${h(e)}: ${$(n, t)}`).join(", ")}}` : h(e) ?? "undefined";
928
- function qe(e, t, n, r = !0) {
973
+ }, $ = (e, t) => typeof e == "string" ? Ye(e, t) : Array.isArray(e) ? `[${e.map((e) => $(e, t)).join(", ")}]` : typeof e == "object" && e ? `{${Object.entries(e).map(([e, n]) => `${h(e)}: ${$(n, t)}`).join(", ")}}` : h(e) ?? "undefined";
974
+ function Xe(e, t, n, r = !0) {
929
975
  let i = e?.nodes?.nodes || [], a = new Map(t?.map((e) => [e.identifier, e])), o = /* @__PURE__ */ new Set(), s = (t) => {
930
976
  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")}`;
931
977
  return t.referencePath?.forEach((e) => {
@@ -988,4 +1034,4 @@ function qe(e, t, n, r = !0) {
988
1034
  `;
989
1035
  }
990
1036
  //#endregion
991
- export { F as _, k as a, R as c, j as d, Ie as f, P as g, De as h, Z as i, M as l, z as m, qe as n, L as o, J as p, Y as r, I as s, Be as t, A as u, w as v, h as y };
1037
+ export { I as _, A as a, z as c, M as d, ze as f, F as g, Ae as h, Z as i, N as l, B as m, Xe as n, R as o, J as p, Y as r, L as s, Ue as t, j as u, w as v, h as y };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code0-tech/triangulum",
3
- "version": "0.38.2",
3
+ "version": "0.39.0",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/code0-tech/triangulum#readme",
6
6
  "bugs": {
@@ -1,45 +0,0 @@
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=te(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=ee(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 ee(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 te(e,t,n,r,i){var a=[].concat(t),o=ee(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 ne(e){return re.test(e)}var re=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;function y(e,t,n,r){let i=ie(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`||!ne(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 y(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 ie(e){if(typeof e==`number`)return` `.repeat(e);if(typeof e==`string`&&e!==``)return e}var b=e=>{if(c.default.isUnionTypeNode(e))return e.types.flatMap(b);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[]},x=(e,t)=>{if(t&&e.aliasSymbol){let t=e.aliasSymbol.declarations?.[0];if(t&&c.default.isTypeAliasDeclaration(t))return b(t.type)}return e.isUnion()?e.types.flatMap(e=>x(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().length===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)),E=(e,t,n)=>{let r=t.getNonNullableType(e);if((r.flags&c.default.TypeFlags.Never)!==0)return null;let i=r.isUnion()?r.types.map(e=>t.getNonNullableType(e)):[r],a=i.filter(e=>(e.flags&c.default.TypeFlags.Never)===0&&t.isTypeAssignableTo(e,n));return a.length===0?null:w(T(r)||T(n)?C(`unconstrained`):S,r!==e&&!t.isTypeAssignableTo(e,n)?C(`nullable`):S,a.length<i.length?C(`union-member`):S)},D=e=>(e.suggestions??[]).map((t,n)=>({value:t,certainty:e.suggestionCertainty?.[n]??S})),ce=e=>({suggestions:e.map(e=>e.value),suggestionCertainty:e.map(e=>e.certainty)}),le=e=>e&&e.length>0?ce(e):{},ue=(e,t,n,r)=>r.flatMap(r=>{let i=r.getName();if(!de(i))return[];let a=r.getDeclarations()?.[0];if(!a||a.getEnd()>=t.getEnd())return[];let o=e.getTypeOfSymbolAtLocation(r,t);return i.startsWith(`node_`)?fe(i,o,e,n):i.startsWith(`p_`)?pe(i,o,e,n):i.startsWith(`flow_`)?me(o,e,n):[]}),de=e=>e.startsWith(`node_`)||e.startsWith(`p_`)||e.startsWith(`flow_`),fe=(e,t,n,r)=>{if((t.flags&c.default.TypeFlags.Void)!==0)return[];let i=O(e.replace(`node_`,``));return A(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}})},pe=(e,t,n,r)=>{let{nodeFunctionId:i,paramIndexFromName:a}=he(e);if(!n.isTupleType(t))return[];let o=t;return n.getTypeArguments(o).flatMap((e,t)=>A(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}}))},me=(e,t,n)=>A(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}}),O=e=>e.replace(/___/g,`://`).replace(/__/g,`/`).replace(/_/g,`/`),he=e=>{let t=e.replace(`p_`,``),n=t.lastIndexOf(`_`),r=t.substring(0,n),i=parseInt(t.substring(n+1),10);return{nodeFunctionId:O(r),paramIndexFromName:i}},ge=7,k=(e,t,n)=>{let r=n.get(e);if(r!==void 0)return r;let i=new Set,a=n=>{if(i.has(n)||!j(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},_e=(e,t)=>e.isUnion()?e.types.map(e=>t.getNonNullableType(e)).filter(j):j(e)?[e]:[],A=(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}),_e(s,t).forEach(e=>{if(i.has(e)||r.length>=ge&&k(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(...A(s,t,n,l,i,a))}),i.delete(e))}),o},j=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},ve=(e,t,n,r)=>t.flatMap(t=>{let i=ye(e,t,n,r);return i?[i]:[]}),ye=(e,t,n,r)=>{let i=e.getSignatureFromDeclaration(t),a=e.getReturnTypeOfSignature(i),o=E(be(e,a),e,r);if(!o)return null;let s=a.isTypeParameter()?w(o,C(`generic`)):o,c=xe(t.name?.getText());return{value:Se(n.find(e=>e.identifier===c)),certainty:s}},be=(e,t)=>t.isTypeParameter()?e.getBaseConstraintOfType(t)||e.getAnyType():t,xe=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,Se=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=Ce(e?.parameterDefinitions?.nodes||[])),n},Ce=e=>({__typename:`NodeParameterConnection`,nodes:e.map(e=>we(e))}),we=e=>({__typename:`NodeParameter`,parameterDefinition:{__typename:`ParameterDefinition`,id:e?.id,identifier:e?.identifier},value:e?.defaultValue?{__typename:`LiteralValue`,value:e.defaultValue.value}:null}),Te=(e,t,n,r)=>Y(r)?t.flatMap(t=>{let i=Ee(e,t,n,r);return i?[i]:[]}):[],Ee=(e,t,n,r)=>{let i=E(e.getTypeAtLocation(t),e,r);if(!i)return null;let a=De(t.name?.getText()),o=n.find(e=>e.identifier===a);return o?{value:Oe(o),certainty:i}:null},De=e=>e?e.replace(`fn_`,``).replace(`_`,`::`).replace(`_`,`::`):``,Oe=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}))}),M={DATE:`date`,TYPE:`type`},N=e=>e!=null&&e in M,ke=new Set(Object.values(M)),P=e=>e!=null&&ke.has(e),Ae=7,F=(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 F(e,t,e.getTypeFromTypeNode(u.constraint),r,i,a,o,s,l)}let d=N(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(x(p,e)),...t?ue(e,t,p,e.getSymbolsInScope(t,c.default.SymbolFlags.Variable)):[],...ve(e,r,i,p),...Te(e,r,i,m)]:[],g=a?ce(h):{};if(u){let t=Le(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{...F(e,t,o[0],r,i,a,void 0,s,l),type:f,...g}}let _=U(n);if(_)return{input:_,type:f,...g};if(W(e,n))return{input:`file`,type:f,mimetype:Be(e,n),...g};if(ze(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(Ge(e,n)){let o=e.getTypeArguments(n);if(o.length===1&&W(e,o[0]))return{input:`list-file`,type:f,mimetype:Be(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=>F(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>=Ae&&k(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?Re(e,u,f.name):void 0,v=g.map(n=>F(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}},I=new Set([`list`,`list-select`,`list-boolean`,`list-number`,`list-text`,`list-sub-flow`]),je=new Set([`list-select`,`list-boolean`,`list-number`,`list-text`,`list-sub-flow`,`list-file`]),L=e=>{let t=e,n=e.items;n&&(t={...t,items:n.map(L)});let r=e.declaredItems;r&&(t={...t,declaredItems:r.map(L)});let i=e.properties;if(i){let e={};for(let[t,n]of Object.entries(i))e[t]=Array.isArray(n)?n.map(L):L(n);t={...t,properties:e}}if(je.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},Me=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},R=(e,t)=>{if(t&&t.length>0)return{...e,...le(t)};if(e.suggestions===void 0)return e;let{suggestions:n,suggestionCertainty:r,...i}=e;return i},z=(e,t=void 0)=>{let n=e,r=n.items;r&&(n={...n,items:r.map(e=>z(e,t))});let i=n.declaredItems;i&&(n={...n,declaredItems:i.map(e=>z(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=>z(e,t)):z(r,t);n={...n,properties:e}}return n.input===`generic`?R(n,t):R(n,D(n))},B=(e,t=void 0)=>e&&e.length>0?e.map(e=>z(e,t)):[R({input:`generic`},t)],V=(e,t=void 0,n=!0)=>{let r=Ie(e),i=r.items;i&&(r={...r,items:i.map(e=>V(e,t))});let a=r.declaredItems;a&&(r={...r,declaredItems:a.map(e=>V(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=>V(e,t)):V(r,t);r={...r,properties:e}}return n&&(r=R(r,t)),r},H=(e,t,n=!1,r=void 0,i=!0)=>{if(!e||e.input===`generic`)return Fe(V(t,r,!i),n);let a=Pe(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]=Ne(n[e],i[e],r);return R({...e,properties:o},a)}if(I.has(e.input)){let n=e.items??[],i=I.has(t.input)?t.items??[]:[],o=n.length>0&&n.every(e=>e.input===`generic`)&&i.length>0?i.map(e=>V(e,r)):n.length===i.length&&n.length>0?n.map((e,t)=>H(e,i[t],!1,r,!1)):B(n,r);return R({...e,items:o,declaredItems:B(n,r)},a)}return P(e.input)?R({...e,...t.type===void 0?{}:{type:t.type}},a):R({...e},a)},Ne=(e,t,n=void 0)=>e===void 0&&t!==void 0?Array.isArray(t)?t.map(e=>V(e,n)):V(t,n):e&&!Array.isArray(e)&&t&&!Array.isArray(t)?H(e,t,!1,n,!1):Array.isArray(e)&&Array.isArray(t)&&e.length===t.length?e.map((e,r)=>H(e,t[r],!1,n,!1)):Array.isArray(e)?e.map(e=>z(e,n)):z(e,n),Pe=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()]},Fe=(e,t)=>!t||e.input!==`generic`?e:R({input:`data`,...e.type?{type:e.type}:{},properties:{},required:[]},D(e)),Ie=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 R({input:n.size===1?{string:`text`,number:`number`,boolean:`boolean`}[[...n][0]]:`text`,...e.type?{type:e.type}:{}},t)};function U(e){let t=e.aliasSymbol?.getName();return N(t)?M[t]:void 0}function Le(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 U(e.getTypeFromTypeNode(n.constraint))}function Re(e,t,n){let r=e.getPropertyOfType(t,n),i=r?.valueDeclaration??r?.declarations?.[0];return i?e.getTypeOfSymbolAtLocation(r,i):void 0}function W(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 ze(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 Be(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 Ve(e){return q(e)||K(e)||G(e)}function He(e){return(e.flags&c.default.TypeFlags.StringLiteral)!==0||(e.flags&c.default.TypeFlags.NumberLiteral)!==0}function J(e){return G(e)?!1:We(e)||He(e)}function Ue(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(He)}function We(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(Ve)}function Ge(e,t){return e.isArrayType(t)||e.isTupleType(t)}function Y(e){return e.getCallSignatures().length>0}var Ke=`
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 qe(e,t){let n=new Map;return n.set(e,t),n.set(`lib.codezero.d.ts`,Ke),p(v(n),[e,`lib.codezero.d.ts`],c.default,Je)}var Je={target:c.default.ScriptTarget.Latest,lib:[`lib.codezero.d.ts`],noEmit:!0,strictNullChecks:!0};function Ye(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 Xe=new Set([`number`,`string`,`boolean`]);function Ze(e,t=`any`,n=!0){let r=Array.from(new Set(e?.flatMap(e=>e.genericKeys||[]).flatMap(Ye))).map(e=>`type ${e} = ${t};`).join(`
27
- `),i=e?.map(e=>{let t=N(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?Xe.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 Qe=/^[A-Za-z0-9_$<>\[\]{}(),.:?|&+\-'"\s]+$/,$e=e=>{if(!Qe.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||!$e(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,"\\${"),et=(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 y(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`?et(e,t):Array.isArray(e)?`[${e.map(e=>$(e,t)).join(`, `)}]`:typeof e==`object`&&e?`{${Object.entries(e).map(([e,n])=>`${y(e)}: ${$(n,t)}`).join(`, `)}}`:y(e)??`undefined`;function tt(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?y(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=Ze(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?y(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 R}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return y}});