Skip to content

Commit 00a26fd

Browse files
📦 Publish SDKs (#4885)
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @builder.io/sdk-react@5.3.0 ### Minor Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. ## @builder.io/sdk-react-native@5.3.0 ### Minor Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. ## @builder.io/sdk-solid@5.3.0 ### Minor Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. ## @builder.io/sdk-svelte@5.3.0 ### Minor Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. ## @builder.io/sdk-vue@5.3.0 ### Minor Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. ## @builder.io/sdk-angular@0.25.19 ### Patch Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. ## @builder.io/sdk-react-nextjs@0.25.19 ### Patch Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. ## @builder.io/sdk-qwik@0.25.19 ### Patch Changes - 86019dc: Faster rendering, and rendering no longer mutates the content object: - Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`). - Bindings are applied copy-on-write instead of deep-cloning the block. - The component registry is built once per registration instead of on every `Content`/`Symbol` render. - Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it. - Browser: binding functions are compiled once per code string. - Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block. - Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key. Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference: - Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object. - Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state. - Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing. - `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key. - The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > The published SDKs ship documented rendering, SSR state, sandbox, and CSS behavior changes that can break apps relying on mutating shared content or old jsCode side effects, even though this PR only updates versions and changelogs. > > **Overview** > This **Changesets release PR** removes the consumed `.changeset/fast-gen2-rendering.md` entry and bumps all Gen2 SDK packages so npm can publish: **patch** releases for `@builder.io/sdk-angular`, `@builder.io/sdk-react-nextjs`, and `@builder.io/sdk-qwik` (**0.25.19**), and **minor** releases for `@builder.io/sdk-react`, `@builder.io/sdk-react-native`, `@builder.io/sdk-solid`, `@builder.io/sdk-svelte`, and `@builder.io/sdk-vue` (**5.3.0**). Each package gets the same new **CHANGELOG** section for commit **86019dc** (no runtime source changes appear in this diff). > > That release note documents **faster rendering and immutability of the content object you pass in**: block/locale caching, copy-on-write bindings, one-time component registry builds, bounded caches, and Node/browser eval optimizations. It also calls out **intentional behavior shifts**—per-render state copies, stricter Node `jsCode` / `set` / `unset` rules, and `.builder-button` reset CSS using `:where()`—that integrators should read before upgrading. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit b12111a. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 86019dc commit 00a26fd

17 files changed

Lines changed: 184 additions & 36 deletions

File tree

‎.changeset/fast-gen2-rendering.md‎

Lines changed: 0 additions & 28 deletions
This file was deleted.

‎packages/sdks/output/angular/CHANGELOG.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# @builder.io/sdk-angular
22

3+
## 0.25.19
4+
5+
### Patch Changes
6+
7+
- 86019dc: Faster rendering, and rendering no longer mutates the content object:
8+
9+
- Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`).
10+
- Bindings are applied copy-on-write instead of deep-cloning the block.
11+
- The component registry is built once per registration instead of on every `Content`/`Symbol` render.
12+
- Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it.
13+
- Browser: binding functions are compiled once per code string.
14+
- Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block.
15+
- Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key.
16+
17+
Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference:
18+
19+
- Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object.
20+
- Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state.
21+
- Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing.
22+
- `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key.
23+
- The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons.
24+
325
## 0.25.18
426

527
### Patch Changes

‎packages/sdks/output/angular/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@builder.io/sdk-angular",
3-
"version": "0.25.18",
3+
"version": "0.25.19",
44
"homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/angular",
55
"repository": {
66
"type": "git",

‎packages/sdks/output/nextjs/CHANGELOG.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Builder.io Next.js SDK Changelog (@builder.io/sdk-react-nextjs)
22

3+
## 0.25.19
4+
5+
### Patch Changes
6+
7+
- 86019dc: Faster rendering, and rendering no longer mutates the content object:
8+
9+
- Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`).
10+
- Bindings are applied copy-on-write instead of deep-cloning the block.
11+
- The component registry is built once per registration instead of on every `Content`/`Symbol` render.
12+
- Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it.
13+
- Browser: binding functions are compiled once per code string.
14+
- Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block.
15+
- Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key.
16+
17+
Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference:
18+
19+
- Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object.
20+
- Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state.
21+
- Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing.
22+
- `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key.
23+
- The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons.
24+
325
## 0.25.18
426

527
### Patch Changes

‎packages/sdks/output/nextjs/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@builder.io/sdk-react-nextjs",
33
"description": "Builder.io RSC SDK for NextJS App Directory",
4-
"version": "0.25.18",
4+
"version": "0.25.19",
55
"homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/nextjs",
66
"repository": {
77
"type": "git",

‎packages/sdks/output/qwik/CHANGELOG.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Builder.io Qwik SDK Changelog (@builder.io/sdk-qwik)
22

3+
## 0.25.19
4+
5+
### Patch Changes
6+
7+
- 86019dc: Faster rendering, and rendering no longer mutates the content object:
8+
9+
- Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`).
10+
- Bindings are applied copy-on-write instead of deep-cloning the block.
11+
- The component registry is built once per registration instead of on every `Content`/`Symbol` render.
12+
- Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it.
13+
- Browser: binding functions are compiled once per code string.
14+
- Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block.
15+
- Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key.
16+
17+
Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference:
18+
19+
- Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object.
20+
- Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state.
21+
- Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing.
22+
- `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key.
23+
- The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons.
24+
325
## 0.25.18
426

527
### Patch Changes

‎packages/sdks/output/qwik/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@builder.io/sdk-qwik",
3-
"version": "0.25.18",
3+
"version": "0.25.19",
44
"homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/qwik",
55
"repository": {
66
"type": "git",

‎packages/sdks/output/react-native/CHANGELOG.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Builder.io React Native SDK Changelog (@builder.io/sdk-react-native)
22

3+
## 5.3.0
4+
5+
### Minor Changes
6+
7+
- 86019dc: Faster rendering, and rendering no longer mutates the content object:
8+
9+
- Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`).
10+
- Bindings are applied copy-on-write instead of deep-cloning the block.
11+
- The component registry is built once per registration instead of on every `Content`/`Symbol` render.
12+
- Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it.
13+
- Browser: binding functions are compiled once per code string.
14+
- Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block.
15+
- Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key.
16+
17+
Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference:
18+
19+
- Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object.
20+
- Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state.
21+
- Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing.
22+
- `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key.
23+
- The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons.
24+
325
## 5.2.16
426

527
### Patch Changes

‎packages/sdks/output/react-native/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@builder.io/sdk-react-native",
33
"description": "Builder.io SDK for React Native",
4-
"version": "5.2.16",
4+
"version": "5.3.0",
55
"homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/react-native",
66
"repository": {
77
"type": "git",

‎packages/sdks/output/react/CHANGELOG.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Builder.io React SDK Changelog (@builder.io/sdk-react)
22

3+
## 5.3.0
4+
5+
### Minor Changes
6+
7+
- 86019dc: Faster rendering, and rendering no longer mutates the content object:
8+
9+
- Blocks without bindings are processed once per block and locale instead of on every render; localized values are resolved without modifying the content (fixes the wrong locale showing when the same content object is rendered with a different `locale`).
10+
- Bindings are applied copy-on-write instead of deep-cloning the block.
11+
- The component registry is built once per registration instead of on every `Content`/`Symbol` render.
12+
- Node: `isolated-vm` evaluations reuse a periodically recycled isolate (fresh context per evaluation) with cached scripts, and pure state expressions over plain data (e.g. `!state.open`, `state.$index + 1`) skip the sandbox; expressions that would read getters or class instances still run in it.
13+
- Browser: binding functions are compiled once per code string.
14+
- Compiled-expression and path caches are bounded and evict the oldest entry instead of clearing; the processed-block cache keeps only the latest locale per block.
15+
- Node: `jsCode` that sets state with `Object.assign(state, {...})` no longer throws inside `isolated-vm`, and nested state writes (`state.user.name = ...`) and `delete state.x` update root state at the full path instead of writing a stray top-level key.
16+
17+
Behavior changes. These fix bugs, but code that relied on the old behavior will see a difference:
18+
19+
- Content state (`data.state`, input defaults) is copied per render, so state written during a render no longer appears on the content object you passed in, and can no longer leak into a cached content object.
20+
- Node: writes and deletes on `context`, `builder` and `event` in `jsCode` no longer reach root state.
21+
- Node: function values assigned to state in `jsCode` are skipped on the server instead of throwing.
22+
- `set`, `setCopyOnWrite` and `unset` follow only own properties and use the same path rule: `__proto__` is never allowed, and `constructor`/`prototype` only as the final key.
23+
- The default `.builder-button` reset now has zero specificity (`:where(.builder-button)`), so a button's own block styles win even when a later `Content` on the page emits the reset after them. Global `button` rules in your own CSS now also apply to Builder buttons.
24+
325
## 5.2.16
426

527
### Patch Changes

0 commit comments

Comments
 (0)