From cd9881ade4e227473f8d0ae8075956ea40d4a036 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 17:56:46 +0000 Subject: [PATCH] chore: update versions --- .changeset/async-array-mapping-fixes.md | 11 --------- .changeset/seven-files-rest.md | 12 --------- .changeset/sparse-fieldsets.md | 12 --------- packages/bridge-compiler/CHANGELOG.md | 33 +++++++++++++++++++++++++ packages/bridge-compiler/package.json | 2 +- packages/bridge-core/CHANGELOG.md | 12 +++++++++ packages/bridge-core/package.json | 2 +- packages/bridge-graphql/CHANGELOG.md | 7 ++++++ packages/bridge-graphql/package.json | 2 +- packages/bridge-parser/CHANGELOG.md | 15 +++++++++++ packages/bridge-parser/package.json | 2 +- packages/bridge/CHANGELOG.md | 9 +++++++ packages/bridge/package.json | 2 +- 13 files changed, 81 insertions(+), 40 deletions(-) delete mode 100644 .changeset/async-array-mapping-fixes.md delete mode 100644 .changeset/seven-files-rest.md delete mode 100644 .changeset/sparse-fieldsets.md diff --git a/.changeset/async-array-mapping-fixes.md b/.changeset/async-array-mapping-fixes.md deleted file mode 100644 index 6e67c1ae..00000000 --- a/.changeset/async-array-mapping-fixes.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@stackables/bridge-compiler": patch ---- - -Fix three code generation bugs that caused `SyntaxError: await is only valid in async functions` when array mappings combined `catch` fallbacks or element-scoped tools with control flow. - -- **Bug 1 – catch inside array `.map()`:** `needsAsync` only checked for element-scoped tool calls. Wires with `catch` fallbacks or `catch` control flow that fall back to an async IIFE now also trigger the async `for...of` loop path. - -- **Bug 2 – element-scoped tool inside `.flatMap()`:** When a `?? continue` (or similar) control flow was detected first, the compiler unconditionally emitted `.flatMap()`. If the same loop also contained an element-scoped tool (`alias tool:iter`), the `await __call(...)` was placed inside a synchronous `.flatMap()` callback. `needsAsync` is now evaluated before the control-flow check, and when true, a `for...of` loop with a native `continue` statement is emitted instead. - -- **Bug 3 – nested sub-array async blindspot:** The inner sub-array handler in `buildElementBody` never calculated `needsAsync`, always falling back to a synchronous `.map()`. It now uses the same async `for...of` IIFE pattern when inner wires contain element-scoped tools or catch expressions. diff --git a/.changeset/seven-files-rest.md b/.changeset/seven-files-rest.md deleted file mode 100644 index 6667b7ea..00000000 --- a/.changeset/seven-files-rest.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@stackables/bridge-compiler": patch -"@stackables/bridge-parser": patch ---- - -Fix several AOT compiler/runtime parity bugs discovered via fuzzing: - -- Fix `condAnd` and `condOr` code generation to match runtime boolean semantics. -- Fix nullish fallback chaining so `??` handling matches runtime overdefinition boundaries. -- Fix overdefinition precedence so the first constant wire remains terminal, matching runtime behavior. -- Fix `serializeBridge` quoting for empty-string and slash-only string constants so parse/serialize/parse round-trips remain valid. -- Add deterministic regression coverage for these parity cases to prevent regressions. diff --git a/.changeset/sparse-fieldsets.md b/.changeset/sparse-fieldsets.md deleted file mode 100644 index 3e8266c2..00000000 --- a/.changeset/sparse-fieldsets.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@stackables/bridge-core": minor -"@stackables/bridge-compiler": minor ---- - -Add `requestedFields` option to `executeBridge()` for sparse fieldset filtering. - -When provided, only the listed output fields (and their transitive tool dependencies) are resolved. -Tools that feed exclusively into unrequested fields are never called, reducing latency and upstream -bandwidth. - -Supports dot-separated paths and a trailing wildcard (`["id", "price", "legs.*"]`). diff --git a/packages/bridge-compiler/CHANGELOG.md b/packages/bridge-compiler/CHANGELOG.md index 08cc0f39..25d693bc 100644 --- a/packages/bridge-compiler/CHANGELOG.md +++ b/packages/bridge-compiler/CHANGELOG.md @@ -1,5 +1,38 @@ # @stackables/bridge-compiler +## 2.1.0 + +### Minor Changes + +- [#82](https://github.com/stackables/bridge/pull/82) [`cf5cd2e`](https://github.com/stackables/bridge/commit/cf5cd2e40e6339fb3e896e05dbdbe66b0b5d77a9) Thanks [@aarne](https://github.com/aarne)! - Add `requestedFields` option to `executeBridge()` for sparse fieldset filtering. + + When provided, only the listed output fields (and their transitive tool dependencies) are resolved. + Tools that feed exclusively into unrequested fields are never called, reducing latency and upstream + bandwidth. + + Supports dot-separated paths and a trailing wildcard (`["id", "price", "legs.*"]`). + +### Patch Changes + +- [`badbb78`](https://github.com/stackables/bridge/commit/badbb7859e270ea6c82ca8c4a5132f254fca9978) Thanks [@aarne](https://github.com/aarne)! - Fix three code generation bugs that caused `SyntaxError: await is only valid in async functions` when array mappings combined `catch` fallbacks or element-scoped tools with control flow. + + - **Bug 1 – catch inside array `.map()`:** `needsAsync` only checked for element-scoped tool calls. Wires with `catch` fallbacks or `catch` control flow that fall back to an async IIFE now also trigger the async `for...of` loop path. + + - **Bug 2 – element-scoped tool inside `.flatMap()`:** When a `?? continue` (or similar) control flow was detected first, the compiler unconditionally emitted `.flatMap()`. If the same loop also contained an element-scoped tool (`alias tool:iter`), the `await __call(...)` was placed inside a synchronous `.flatMap()` callback. `needsAsync` is now evaluated before the control-flow check, and when true, a `for...of` loop with a native `continue` statement is emitted instead. + + - **Bug 3 – nested sub-array async blindspot:** The inner sub-array handler in `buildElementBody` never calculated `needsAsync`, always falling back to a synchronous `.map()`. It now uses the same async `for...of` IIFE pattern when inner wires contain element-scoped tools or catch expressions. + +- [#84](https://github.com/stackables/bridge/pull/84) [`837ec1c`](https://github.com/stackables/bridge/commit/837ec1cc74c0a76e205d818b94c33b4c28e3628d) Thanks [@aarne](https://github.com/aarne)! - Fix several AOT compiler/runtime parity bugs discovered via fuzzing: + + - Fix `condAnd` and `condOr` code generation to match runtime boolean semantics. + - Fix nullish fallback chaining so `??` handling matches runtime overdefinition boundaries. + - Fix overdefinition precedence so the first constant wire remains terminal, matching runtime behavior. + - Fix `serializeBridge` quoting for empty-string and slash-only string constants so parse/serialize/parse round-trips remain valid. + - Add deterministic regression coverage for these parity cases to prevent regressions. + +- Updated dependencies [[`cf5cd2e`](https://github.com/stackables/bridge/commit/cf5cd2e40e6339fb3e896e05dbdbe66b0b5d77a9)]: + - @stackables/bridge-core@1.2.0 + ## 2.0.0 ### Major Changes diff --git a/packages/bridge-compiler/package.json b/packages/bridge-compiler/package.json index a419e752..a9357a61 100644 --- a/packages/bridge-compiler/package.json +++ b/packages/bridge-compiler/package.json @@ -1,6 +1,6 @@ { "name": "@stackables/bridge-compiler", - "version": "2.0.0", + "version": "2.1.0", "description": "Compiles a BridgeDocument into highly optimized JavaScript code", "main": "./build/index.js", "type": "module", diff --git a/packages/bridge-core/CHANGELOG.md b/packages/bridge-core/CHANGELOG.md index 4153b029..bf244832 100644 --- a/packages/bridge-core/CHANGELOG.md +++ b/packages/bridge-core/CHANGELOG.md @@ -1,5 +1,17 @@ # @stackables/bridge-core +## 1.2.0 + +### Minor Changes + +- [#82](https://github.com/stackables/bridge/pull/82) [`cf5cd2e`](https://github.com/stackables/bridge/commit/cf5cd2e40e6339fb3e896e05dbdbe66b0b5d77a9) Thanks [@aarne](https://github.com/aarne)! - Add `requestedFields` option to `executeBridge()` for sparse fieldset filtering. + + When provided, only the listed output fields (and their transitive tool dependencies) are resolved. + Tools that feed exclusively into unrequested fields are never called, reducing latency and upstream + bandwidth. + + Supports dot-separated paths and a trailing wildcard (`["id", "price", "legs.*"]`). + ## 1.1.1 ### Patch Changes diff --git a/packages/bridge-core/package.json b/packages/bridge-core/package.json index 5f132cf9..e7a99a85 100644 --- a/packages/bridge-core/package.json +++ b/packages/bridge-core/package.json @@ -1,6 +1,6 @@ { "name": "@stackables/bridge-core", - "version": "1.1.1", + "version": "1.2.0", "description": "Bridge runtime engine — execute pre-compiled bridge instructions", "main": "./build/index.js", "type": "module", diff --git a/packages/bridge-graphql/CHANGELOG.md b/packages/bridge-graphql/CHANGELOG.md index 8d09ce96..6a368e16 100644 --- a/packages/bridge-graphql/CHANGELOG.md +++ b/packages/bridge-graphql/CHANGELOG.md @@ -1,5 +1,12 @@ # @stackables/bridge-graphql +## 1.1.2 + +### Patch Changes + +- Updated dependencies [[`cf5cd2e`](https://github.com/stackables/bridge/commit/cf5cd2e40e6339fb3e896e05dbdbe66b0b5d77a9)]: + - @stackables/bridge-core@1.2.0 + ## 1.1.1 ### Patch Changes diff --git a/packages/bridge-graphql/package.json b/packages/bridge-graphql/package.json index 8cdfbf2a..b4d4416a 100644 --- a/packages/bridge-graphql/package.json +++ b/packages/bridge-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@stackables/bridge-graphql", - "version": "1.1.1", + "version": "1.1.2", "description": "Bridge GraphQL adapter — wire bridges into a GraphQL schema", "main": "./build/index.js", "type": "module", diff --git a/packages/bridge-parser/CHANGELOG.md b/packages/bridge-parser/CHANGELOG.md index 0f59d7e6..a58af67b 100644 --- a/packages/bridge-parser/CHANGELOG.md +++ b/packages/bridge-parser/CHANGELOG.md @@ -1,5 +1,20 @@ # @stackables/bridge-parser +## 1.1.1 + +### Patch Changes + +- [#84](https://github.com/stackables/bridge/pull/84) [`837ec1c`](https://github.com/stackables/bridge/commit/837ec1cc74c0a76e205d818b94c33b4c28e3628d) Thanks [@aarne](https://github.com/aarne)! - Fix several AOT compiler/runtime parity bugs discovered via fuzzing: + + - Fix `condAnd` and `condOr` code generation to match runtime boolean semantics. + - Fix nullish fallback chaining so `??` handling matches runtime overdefinition boundaries. + - Fix overdefinition precedence so the first constant wire remains terminal, matching runtime behavior. + - Fix `serializeBridge` quoting for empty-string and slash-only string constants so parse/serialize/parse round-trips remain valid. + - Add deterministic regression coverage for these parity cases to prevent regressions. + +- Updated dependencies [[`cf5cd2e`](https://github.com/stackables/bridge/commit/cf5cd2e40e6339fb3e896e05dbdbe66b0b5d77a9)]: + - @stackables/bridge-core@1.2.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/bridge-parser/package.json b/packages/bridge-parser/package.json index 2cedab05..bbdb5322 100644 --- a/packages/bridge-parser/package.json +++ b/packages/bridge-parser/package.json @@ -1,6 +1,6 @@ { "name": "@stackables/bridge-parser", - "version": "1.1.0", + "version": "1.1.1", "description": "Bridge DSL parser — turns .bridge text into a BridgeDocument (AST)", "main": "./build/index.js", "type": "module", diff --git a/packages/bridge/CHANGELOG.md b/packages/bridge/CHANGELOG.md index d42bbd5d..a8aa5089 100644 --- a/packages/bridge/CHANGELOG.md +++ b/packages/bridge/CHANGELOG.md @@ -1,5 +1,14 @@ # @stackables/bridge +## 2.1.3 + +### Patch Changes + +- Updated dependencies [[`837ec1c`](https://github.com/stackables/bridge/commit/837ec1cc74c0a76e205d818b94c33b4c28e3628d), [`cf5cd2e`](https://github.com/stackables/bridge/commit/cf5cd2e40e6339fb3e896e05dbdbe66b0b5d77a9)]: + - @stackables/bridge-parser@1.1.1 + - @stackables/bridge-core@1.2.0 + - @stackables/bridge-graphql@1.1.2 + ## 2.1.2 ### Patch Changes diff --git a/packages/bridge/package.json b/packages/bridge/package.json index 1b0694db..720a8fd9 100644 --- a/packages/bridge/package.json +++ b/packages/bridge/package.json @@ -1,6 +1,6 @@ { "name": "@stackables/bridge", - "version": "2.1.2", + "version": "2.1.3", "description": "Declarative dataflow for GraphQL", "main": "./build/index.js", "type": "module",