@bian-womp/spark-graph 0.3.37 → 0.3.39
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/lib/cjs/index.cjs +75 -43
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/builder/GraphBuilder.d.ts.map +1 -1
- package/lib/cjs/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/esm/index.js +75 -43
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/builder/GraphBuilder.d.ts.map +1 -1
- package/lib/esm/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builder/GraphBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAEtC,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"GraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builder/GraphBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAEtC,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,gBAAgB;IA0XhD,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY;IAI9D,UAAU,CACR,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7D,EACD,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAmC1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,YAAY,EAEZ,eAAe,EAGf,OAAO,EACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,YAAY,EAEZ,eAAe,EAGf,OAAO,EACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGpE,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAC7D,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAClB,IAAI,CAAC;AAEV,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;CACrB;AAGD,qBAAa,YAAa,YAAW,QAAQ,EAAE,aAAa,EAAE,eAAe;IAE3E,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,uBAAuB,CAA0B;IAGzD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,yBAAyB,CAA8B;;IAqC/D,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GACtE,YAAY;IAqFf,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAC3B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,MAAM,IAAI;IAIb,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiFhE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD,MAAM,CAAC,UAAU,UAAQ,EAAE,WAAW,UAAQ,GAAG,IAAI;IA4BrD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAgBrD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAIvC,UAAU,IAAI,MAAM,EAAE;IAItB,WAAW,CAAC,MAAM,EAAE,MAAM,GACtB;QACE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC1B,GACD,SAAS;IAYb,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIzC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASlD;;;OAGG;IACH,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAI3D;;OAEG;IACH,0BAA0B,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAI7D;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI;IAIxE,WAAW,IAAI,eAAe;IAuBxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCzB,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,OAAO,CAAC,IAAI,CAAC;IAgBhB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,UAAU,IAAI,OAAO,GAAG,IAAI;IAI5B,YAAY,IAAI,MAAM,IAAI;IAU1B,QAAQ,IAAI,OAAO;IAInB,KAAK,IAAI,IAAI;IAMb,MAAM,IAAI,IAAI;IA0Bd,WAAW,CACT,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,IAAI;IAUP,OAAO,CACL,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACnD,EACD,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9B,IAAI;IA0DP,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA4QtD,OAAO,IAAI,IAAI;IAcf,OAAO,CACL,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,EACjC,cAAc,CAAC,EAAE,OAAO,GACvB,IAAI;IAIP,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,GAChC,IAAI;IAIP,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG3C"}
|
package/lib/esm/index.js
CHANGED
|
@@ -3134,22 +3134,33 @@ class GraphRuntime {
|
|
|
3134
3134
|
if (value !== undefined && registry) {
|
|
3135
3135
|
const desc = registry.nodes.get(node.typeId);
|
|
3136
3136
|
const resolved = this.graph.getResolvedHandles(nodeId);
|
|
3137
|
-
// Get
|
|
3138
|
-
const
|
|
3139
|
-
?
|
|
3137
|
+
// Get declared types (may be union); prefer resolved handles over registry statics
|
|
3138
|
+
const declaredTypes = resolved
|
|
3139
|
+
? getInputDeclaredTypes(resolved.inputs, handle)
|
|
3140
3140
|
: desc
|
|
3141
|
-
?
|
|
3141
|
+
? getInputDeclaredTypes(desc.inputs, handle)
|
|
3142
3142
|
: undefined;
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3143
|
+
const typeIds = Array.isArray(declaredTypes)
|
|
3144
|
+
? declaredTypes
|
|
3145
|
+
: declaredTypes
|
|
3146
|
+
? [declaredTypes]
|
|
3147
|
+
: [];
|
|
3148
|
+
if (typeIds.length > 0) {
|
|
3149
|
+
const isValidForAny = typeIds.some((tId) => {
|
|
3150
|
+
const typeDesc = registry.types.get(tId);
|
|
3151
|
+
// If no validate function, consider it valid
|
|
3152
|
+
if (!typeDesc?.validate)
|
|
3153
|
+
return true;
|
|
3154
|
+
return typeDesc.validate(value);
|
|
3155
|
+
});
|
|
3156
|
+
if (!isValidForAny) {
|
|
3157
|
+
const typeLabel = typeIds.join("|");
|
|
3158
|
+
const errorMessage = `Invalid value for input ${nodeId}.${handle} (type ${typeLabel}): ${JSON.stringify(value)}`;
|
|
3148
3159
|
this.eventEmitter.emit("error", {
|
|
3149
3160
|
kind: "input-validation",
|
|
3150
3161
|
nodeId,
|
|
3151
3162
|
handle,
|
|
3152
|
-
typeId,
|
|
3163
|
+
typeId: typeLabel,
|
|
3153
3164
|
value,
|
|
3154
3165
|
message: errorMessage,
|
|
3155
3166
|
});
|
|
@@ -3739,11 +3750,30 @@ class GraphBuilder {
|
|
|
3739
3750
|
return { inputs: {}, outputs: {} };
|
|
3740
3751
|
const desc = this.registry.nodes.get(n.typeId);
|
|
3741
3752
|
const resolved = n.resolvedHandles || {};
|
|
3742
|
-
|
|
3753
|
+
// Merge inputs properly, handling union types and metadata
|
|
3754
|
+
const inputs = {};
|
|
3755
|
+
// First, add all static handles
|
|
3756
|
+
if (desc?.inputs) {
|
|
3757
|
+
for (const [handle, staticDesc] of Object.entries(desc.inputs)) {
|
|
3758
|
+
inputs[handle] = staticDesc;
|
|
3759
|
+
}
|
|
3760
|
+
}
|
|
3761
|
+
// Then, merge resolved handles (which may override/extend static handles)
|
|
3762
|
+
if (resolved.inputs) {
|
|
3763
|
+
for (const [handle, resolvedDesc] of Object.entries(resolved.inputs)) {
|
|
3764
|
+
const staticDesc = desc?.inputs?.[handle];
|
|
3765
|
+
const merged = mergeInputHandleDescriptors(staticDesc, resolvedDesc);
|
|
3766
|
+
if (merged) {
|
|
3767
|
+
inputs[handle] = merged;
|
|
3768
|
+
}
|
|
3769
|
+
}
|
|
3770
|
+
}
|
|
3743
3771
|
const outputs = { ...desc?.outputs, ...resolved.outputs };
|
|
3744
3772
|
return { inputs, outputs };
|
|
3745
3773
|
};
|
|
3746
3774
|
const normOut = (decl) => Array.isArray(decl) ? decl : decl ? [decl] : [];
|
|
3775
|
+
const getEnumTypes = (decl) => normOut(decl).filter((t) => t.startsWith("enum:"));
|
|
3776
|
+
const hasArrayType = (decl) => normOut(decl).some((t) => t.endsWith("[]"));
|
|
3747
3777
|
const canFlow = (from, to) => {
|
|
3748
3778
|
if (!to || !from)
|
|
3749
3779
|
return true;
|
|
@@ -3793,19 +3823,20 @@ class GraphBuilder {
|
|
|
3793
3823
|
if (paramKey === "policy")
|
|
3794
3824
|
continue;
|
|
3795
3825
|
// Check if this param corresponds to an input handle
|
|
3796
|
-
const
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3826
|
+
const declaredTypes = getInputDeclaredTypes(effectiveHandles.inputs, paramKey);
|
|
3827
|
+
const enumTypes = getEnumTypes(declaredTypes);
|
|
3828
|
+
if (enumTypes.length > 0 &&
|
|
3829
|
+
typeof paramValue === "number" &&
|
|
3830
|
+
!enumTypes.some((et) => validateEnumValue(et, paramValue, n.nodeId))) {
|
|
3831
|
+
const enumDef = this.registry.enums.get(enumTypes[0]);
|
|
3832
|
+
const validValues = enumDef
|
|
3833
|
+
? Array.from(enumDef.valueToLabel.keys()).join(", ")
|
|
3834
|
+
: "unknown";
|
|
3835
|
+
pushIssue("error", "ENUM_VALUE_INVALID", `Node ${n.nodeId} param ${paramKey} has invalid enum value ${paramValue}. Valid values: ${validValues}`, {
|
|
3836
|
+
nodeId: n.nodeId,
|
|
3837
|
+
input: paramKey,
|
|
3838
|
+
typeId: enumTypes.join("|"),
|
|
3839
|
+
});
|
|
3809
3840
|
}
|
|
3810
3841
|
}
|
|
3811
3842
|
}
|
|
@@ -3814,19 +3845,20 @@ class GraphBuilder {
|
|
|
3814
3845
|
if (resolved?.inputDefaults) {
|
|
3815
3846
|
const effectiveHandles = getEffectiveHandles(n);
|
|
3816
3847
|
for (const [handle, defaultValue] of Object.entries(resolved.inputDefaults)) {
|
|
3817
|
-
const
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3848
|
+
const declaredTypes = getInputDeclaredTypes(effectiveHandles.inputs, handle);
|
|
3849
|
+
const enumTypes = getEnumTypes(declaredTypes);
|
|
3850
|
+
if (enumTypes.length > 0 &&
|
|
3851
|
+
typeof defaultValue === "number" &&
|
|
3852
|
+
!enumTypes.some((et) => validateEnumValue(et, defaultValue, n.nodeId))) {
|
|
3853
|
+
const enumDef = this.registry.enums.get(enumTypes[0]);
|
|
3854
|
+
const validValues = enumDef
|
|
3855
|
+
? Array.from(enumDef.valueToLabel.keys()).join(", ")
|
|
3856
|
+
: "unknown";
|
|
3857
|
+
pushIssue("warning", "ENUM_DEFAULT_INVALID", `Node ${n.nodeId} input default ${handle} has invalid enum value ${defaultValue}. Valid values: ${validValues}`, {
|
|
3858
|
+
nodeId: n.nodeId,
|
|
3859
|
+
input: handle,
|
|
3860
|
+
typeId: enumTypes.join("|"),
|
|
3861
|
+
});
|
|
3830
3862
|
}
|
|
3831
3863
|
}
|
|
3832
3864
|
}
|
|
@@ -3926,8 +3958,8 @@ class GraphBuilder {
|
|
|
3926
3958
|
inboundCounts.set(inboundKey, (inboundCounts.get(inboundKey) ?? 0) + 1);
|
|
3927
3959
|
// If the target input is declared as an array type, allow multi-inbound (runtime will append)
|
|
3928
3960
|
if (dstNode) {
|
|
3929
|
-
const declaredIn =
|
|
3930
|
-
if (
|
|
3961
|
+
const declaredIn = getInputDeclaredTypes((effByNodeId.get(dstNode.nodeId) || { inputs: {} }).inputs, e.target.handle);
|
|
3962
|
+
if (hasArrayType(declaredIn)) {
|
|
3931
3963
|
inboundArrayOk.add(inboundKey);
|
|
3932
3964
|
}
|
|
3933
3965
|
}
|
|
@@ -3956,10 +3988,10 @@ class GraphBuilder {
|
|
|
3956
3988
|
const innerDesc = innerNode
|
|
3957
3989
|
? this.registry.nodes.get(innerNode.typeId)
|
|
3958
3990
|
: undefined;
|
|
3959
|
-
const
|
|
3960
|
-
?
|
|
3991
|
+
const typeIds = innerDesc
|
|
3992
|
+
? getInputDeclaredTypes(innerDesc.inputs, map.handle)
|
|
3961
3993
|
: undefined;
|
|
3962
|
-
inputTypes[outerIn] =
|
|
3994
|
+
inputTypes[outerIn] = typeIds ?? "unknown";
|
|
3963
3995
|
}
|
|
3964
3996
|
for (const [outerOut, map] of Object.entries(exposure.outputs)) {
|
|
3965
3997
|
const innerNode = def.nodes.find((n) => n.nodeId === map.nodeId);
|
|
@@ -3968,7 +4000,7 @@ class GraphBuilder {
|
|
|
3968
4000
|
: undefined;
|
|
3969
4001
|
const typeId = innerDesc ? innerDesc.outputs[map.handle] : undefined;
|
|
3970
4002
|
const single = Array.isArray(typeId) ? typeId[0] : typeId;
|
|
3971
|
-
outputTypes[outerOut] = single ?? "
|
|
4003
|
+
outputTypes[outerOut] = single ?? "unknown";
|
|
3972
4004
|
}
|
|
3973
4005
|
return {
|
|
3974
4006
|
id: nodeTypeId,
|