v2.0.0-beta.4
Pre-releasePatch Changes
-
ae0dce2: Fix
/ioparsing returning zero inputs (or crashing) on PascalCase server responses.beta.3 read the
/ioresponse straight through as camelCase (response.inputs,schema.paramType, …). That only holds when the server emits fully camelCase IO (the VektorNode Compute8 fork with[JsonProperty]on every field). Upstream-tracking branches (mcneel 8.x/9.x,8.x.selva) keep the C# classes close to source, so the top-level wrapper is PascalCaseInputs/Outputsand per-param fields areParamType/Minimum/Name/… — and if a[JsonProperty]is ever dropped, individual fields silently revert to PascalCase. On such a server every read missed:response.inputswasundefined, so the input list came back empty (or, before the array guard, threwinputs is not iterable).- Read the top-level
Inputs/Outputscase-insensitively viareadFieldinfetchDefinitionIO, then guard each to an array withArray.isArray(not?? []— the symptom is non-iterability, so a non-array truthy value like{}or a string must coerce to[]too). The already-surfacedloadErrors/loadWarningsthen explain why a list came back empty instead of the client crashing. - Normalize each input/output record's field casing once at the parse boundary (
normalize-schema.ts), so the per-type parsers stay branch-agnostic and read straight through. Only field KEYS are canonicalized —default(handled separately bynormalize-default) and user-authored value-listvalueslabel keys ("Option A") are passed through verbatim, avoiding the label-mangling that a deepcamelcaseKeyspass caused. - The client is now casing-agnostic: identical camelCase and PascalCase
/iobodies parse to the same typed result. - Add regression tests pinning both wire shapes end-to-end, plus the malformed/non-array
inputs/outputsguards.
- Read the top-level