Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@
"compiler-component-names",
"compiler-loader-accepts-patch-driver",
"compiler-loader-prefer-local-build",
"compiler-spread-sources-array",
"composed-header-bounds-transport",
"contain-flight-collector-errors",
"container-tier-projection-traces",
Expand All @@ -119,6 +120,7 @@
"dedupe-strict-read-diagnostics",
"demote-boundary-primitives",
"deprecate-create-tracked-effect",
"deprecate-dynamic-component",
"deprecate-server-writes",
"dev-artifact-naming",
"dev-error-invalid-refresh-target",
Expand Down Expand Up @@ -149,9 +151,12 @@
"drop-compiler-legacy",
"dynamic-factory-redesign",
"dynamic-remount-latest-address",
"dynamic-run-hydration-events",
"dynamic-xmlns-namespace",
"effect-cleanup-unwind-order",
"effect-error-arm-queued",
"effect-error-handler-unwrap",
"effect-mainline-ownership-3412",
"effect-phase-write-visibility",
"effect-relay-tear",
"effect-run-trims",
Expand Down Expand Up @@ -183,6 +188,7 @@
"fix-array-target-dictionary-mode",
"fix-asset-preload-rejection",
"fix-async-boundary-diagnostic",
"fix-async-chain-second-write",
"fix-async-generator-action-freeze",
"fix-async-iterable-hydration-flush",
"fix-async-iterator-cancellation-wrappers",
Expand Down Expand Up @@ -242,6 +248,10 @@
"fix-frames-web-path-mapping",
"fix-get-grant-lifetime-and-read-folding",
"fix-halt-error-swallow",
"fix-held-conditional-effect",
"fix-held-conditional-memo",
"fix-held-reader-disposed-lane-hold",
"fix-held-transition-child-disposal",
"fix-hybrid-iterable-signal-takeover",
"fix-hydrated-nullish-values",
"fix-hydration-and-signals-baseline",
Expand Down Expand Up @@ -283,6 +293,7 @@
"fix-maparray-async-store-settle-wedge",
"fix-maparray-notready-exception-safety",
"fix-memo-created-inside-latest-window",
"fix-merge-plain-result-not-flattened",
"fix-merged-lane-hold-per-node",
"fix-mid-recompute-missed-wakes",
"fix-nested-array-async-reconcile",
Expand All @@ -293,8 +304,10 @@
"fix-nullish-lone-spread",
"fix-omit-merge-sources-tunnel",
"fix-onsettled-unowned-cleanup",
"fix-optimistic-lane-release",
"fix-optimistic-override-premature-revert",
"fix-optimistic-same-value-overlap",
"fix-optimistic-settle-verdicts",
"fix-optimistic-store-layer-scope",
"fix-optimistic-store-refetch-hold",
"fix-optimistic-store-stash-flicker",
Expand All @@ -304,6 +317,7 @@
"fix-owned-write-guard-docs",
"fix-ownerless-conditional-memos",
"fix-pending-autodispose-release",
"fix-pending-companion-lane-parent",
"fix-pending-gated-landing-replay",
"fix-portal-mount-ref-timing",
"fix-portal-ownership-and-accumulation",
Expand Down Expand Up @@ -377,6 +391,7 @@
"fix-spread-hydration-mismatch",
"fix-ssr-async-error-handling",
"fix-ssr-bench-shape",
"fix-ssr-element-nullish-style-class",
"fix-ssr-errored-async-retry-loop",
"fix-ssr-escape-function-results",
"fix-ssr-loading-errored-hydration",
Expand All @@ -391,6 +406,7 @@
"fix-ssr-spread-children-read-once",
"fix-ssr-stream-rejected-fragment-hang",
"fix-ssr-sync-memo-child-id-leak",
"fix-ssr-text-separators-resolved",
"fix-ssr-textarea-spread-value",
"fix-ssrsource-client-hybrid-hydration",
"fix-stateful-prop-hydration-adoption",
Expand Down Expand Up @@ -473,6 +489,7 @@
"improve-tsrx-lazy-destructuring",
"include-web-cookie-declarations",
"inv2-active-override-assertion",
"ispending-held-sync-memo",
"ispending-loading-guard",
"ispending-wrapper-fresh-hold",
"iterate-bare-step-tolerance",
Expand All @@ -486,6 +503,7 @@
"late-boundary-held-fragment-wait",
"latest-lazy-companion-backfill",
"latest-probe-order-independence",
"latest-shadow-owned-write",
"lazy-assets-post-settle-livelock",
"lazy-async-asset-resolver",
"lazy-async-inflight-autodispose",
Expand Down Expand Up @@ -525,6 +543,7 @@
"nohydration-lazy-maparray-deps",
"notready-skip-stack-capture",
"npm-descriptions",
"observe-exclude-interaction-writes",
"observe-node-shapes",
"observe-shape-freeze",
"observe-tier",
Expand Down Expand Up @@ -566,6 +585,7 @@
"perf-2893-guard-cleanup",
"perf-dep-revalidation-and-reconcile",
"perf-footer-attribution-discovery",
"perf-ssr-walker-entry",
"perfect-spies-pretend",
"phase2-optimistic-code-reduction",
"pin-prop-condition-memo-id-parity",
Expand All @@ -574,6 +594,7 @@
"portal-marker-cleanup",
"predigested-flight-outcome",
"preload-identity-qualifiers",
"preloadable-server-function-reads",
"preserve-bound-event-tuples",
"preserve-store-symbol-snapshots",
"projection-leaf-release",
Expand Down Expand Up @@ -628,11 +649,13 @@
"remove-loading-notify-through-remap",
"remove-on-namespace-events",
"remove-patch-channel",
"remove-server-function-instance-header",
"remove-ssr-run-in-scope",
"remove-store-readonly",
"rename-createLoadingBoundary",
"rename-pending-to-latest",
"rename-purewrite-to-ownedwrite",
"render-to-string-sync-dispose",
"renderer-owned-jsx-types",
"repeat-disjoint-window",
"republish-fresh-signals-build",
Expand All @@ -657,6 +680,7 @@
"serialization-decode-entry",
"server-component-context-barrier",
"server-dev-build",
"server-diagnostics-channel",
"server-first-value-lock",
"server-function-call-observers",
"server-function-data-address-split",
Expand All @@ -671,9 +695,11 @@
"server-memo-commit-liveness",
"server-memo-scaffold-diet",
"server-mock-csp-nonce",
"server-observe-install-point",
"server-projection-errors",
"server-slot-store-and-boundary-trims",
"server-store-replacement-optimistic-noop",
"server-trace-context",
"setter-row-ops-tentative-lists",
"settle-superseded-flight-dependents",
"settle-unchanged-pending-branches",
Expand Down Expand Up @@ -703,6 +729,10 @@
"snapshot-trailing-holes",
"solid-native-frame-protocol-identifiers",
"spread-direct-sources",
"spread-fewer-nodes",
"ssr-boundary-resolve-scope-3414",
"ssr-component-names",
"ssr-element-sources",
"ssr-falsy-rejections-and-thenables",
"ssr-hole-id-scopes",
"ssr-retry-robustness",
Expand Down Expand Up @@ -768,6 +798,7 @@
"two-weeks-smell",
"typed-preload-links",
"universal-renderer-effect-names",
"universal-spread-sources",
"unstable-list-identity",
"until-flip-entanglement",
"until-live-source-ack",
Expand Down
11 changes: 11 additions & 0 deletions packages/babel-plugin/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# @solidjs/babel-plugin

## 2.0.0-rc.9

### Patch Changes

- 8d6de07: Native elements with several spread sources compile to the runtimes' array form instead of a `mergeProps()` call, in DOM and SSR output: `<div id="x" {...a} {...b}>` becomes `spread(el, [{ id: "x" }, a, b], …)` on the client and `ssrElement("div", [{ id: "x" }, a, b], …)` on the server. The runtimes read the sources directly — later sources win per key, only the winning source is read — with no merge proxy to build and walk, and a reactive spread is a plain thunk called inside the tracking scope, so it mints no memo and consumes no hydration id on either side (the hydratable SSR `() => mergeProps(…)` wrapper is gone for the same reason). A lone spread still passes straight through (#3105). Requires `@solidjs/web` with the `spread`/`ssrElement` array forms (#3418, #3419).
- 63560a1: `componentNames` now applies to SSR output. Under the option both compilers keep the `createComponent` call they otherwise inline to `Comp(props)` and pass the source tag name — `createComponent(Comp, props, "Comp")` — so the server runtime's observe/dev `createComponent` labels the owner and a server finding's `ownerPath` reads `<App> › <Page>` like the client's. Without the option (prod builds) SSR output is unchanged. `@solidjs/vite-plugin` already passes the option for its dev and observe postures, so app server builds pick this up with no config change.

Fixes `ssrScope` under transparent owners: the virtual hole scope swapped the current owner's id counter, but content inside a hole resolves ids by walking past transparent owners, so with one in between (the server-component scope owner; now the labelled component owner) the hole's content took ids from the enclosing counter and disagreed with the client. The scope now swaps the nearest id-bearing owner.

- 1643d2a: The universal renderer's `spread()` follows the `@solidjs/web` contract (#3388): `ref` folds into the props effect and is re-applied only when its identity changes (refs run with no owner, so nothing they create is disposed by the fold); children keep their own owned `insert` — that effect owns the child subtree — but a plain object whose `children` is a data property inserts the value with no effect at all. Three reactive nodes become two when children flow through the spread, one when they don't. `spread` also resolves a lone function source inside its own tracking scopes and accepts an array of sources — `spread(node, [a, b], skipChildren)` — the union of their keys with later sources winning, only the winning source read, function sources called inline with no merge and no memo. Both compilers' universal output uses it: a lone spread passes straight through (reactive included, no more `mergeProps(() => …)`), and several sources compile to the array instead of a `mergeProps()` call.

## 2.0.0-rc.8

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/babel-plugin/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@solidjs/babel-plugin",
"description": "Babel compiler plugin for Solid templates",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"author": "Ryan Carniato",
"license": "MIT",
"repository": {
Expand Down
11 changes: 11 additions & 0 deletions packages/compiler/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# @solidjs/compiler

## 2.0.0-rc.9

### Patch Changes

- 8d6de07: Native elements with several spread sources compile to the runtimes' array form instead of a `mergeProps()` call, in DOM and SSR output: `<div id="x" {...a} {...b}>` becomes `spread(el, [{ id: "x" }, a, b], …)` on the client and `ssrElement("div", [{ id: "x" }, a, b], …)` on the server. The runtimes read the sources directly — later sources win per key, only the winning source is read — with no merge proxy to build and walk, and a reactive spread is a plain thunk called inside the tracking scope, so it mints no memo and consumes no hydration id on either side (the hydratable SSR `() => mergeProps(…)` wrapper is gone for the same reason). A lone spread still passes straight through (#3105). Requires `@solidjs/web` with the `spread`/`ssrElement` array forms (#3418, #3419).
- 63560a1: `componentNames` now applies to SSR output. Under the option both compilers keep the `createComponent` call they otherwise inline to `Comp(props)` and pass the source tag name — `createComponent(Comp, props, "Comp")` — so the server runtime's observe/dev `createComponent` labels the owner and a server finding's `ownerPath` reads `<App> › <Page>` like the client's. Without the option (prod builds) SSR output is unchanged. `@solidjs/vite-plugin` already passes the option for its dev and observe postures, so app server builds pick this up with no config change.

Fixes `ssrScope` under transparent owners: the virtual hole scope swapped the current owner's id counter, but content inside a hole resolves ids by walking past transparent owners, so with one in between (the server-component scope owner; now the labelled component owner) the hole's content took ids from the enclosing counter and disagreed with the client. The scope now swaps the nearest id-bearing owner.

- 1643d2a: The universal renderer's `spread()` follows the `@solidjs/web` contract (#3388): `ref` folds into the props effect and is re-applied only when its identity changes (refs run with no owner, so nothing they create is disposed by the fold); children keep their own owned `insert` — that effect owns the child subtree — but a plain object whose `children` is a data property inserts the value with no effect at all. Three reactive nodes become two when children flow through the spread, one when they don't. `spread` also resolves a lone function source inside its own tracking scopes and accepts an array of sources — `spread(node, [a, b], skipChildren)` — the union of their keys with later sources winning, only the winning source read, function sources called inline with no merge and no memo. Both compilers' universal output uses it: a lone spread passes straight through (reactive included, no more `mergeProps(() => …)`), and several sources compile to the array instead of a `mergeProps()` call.

## 2.0.0-rc.8

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/npm/darwin-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/compiler-darwin-arm64",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"cpu": [
"arm64"
],
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/npm/darwin-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/compiler-darwin-x64",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"cpu": [
"x64"
],
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/npm/linux-arm64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/compiler-linux-arm64-gnu",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"cpu": [
"arm64"
],
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/npm/linux-x64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/compiler-linux-x64-gnu",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"cpu": [
"x64"
],
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/npm/wasm32-wasi/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/compiler-wasm32-wasi",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"main": "compiler.wasi.cjs",
"files": [
"compiler.wasm32-wasi.wasm",
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/npm/win32-x64-msvc/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/compiler-win32-x64-msvc",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"cpu": [
"x64"
],
Expand Down
14 changes: 7 additions & 7 deletions packages/compiler/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@solidjs/compiler",
"description": "Solid's native Oxc JSX compiler",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"author": "Ryan Carniato",
"license": "MIT",
"repository": {
Expand Down Expand Up @@ -62,11 +62,11 @@
"emnapi": "^1.11.3"
},
"optionalDependencies": {
"@solidjs/compiler-darwin-x64": "2.0.0-rc.8",
"@solidjs/compiler-darwin-arm64": "2.0.0-rc.8",
"@solidjs/compiler-linux-x64-gnu": "2.0.0-rc.8",
"@solidjs/compiler-linux-arm64-gnu": "2.0.0-rc.8",
"@solidjs/compiler-win32-x64-msvc": "2.0.0-rc.8",
"@solidjs/compiler-wasm32-wasi": "2.0.0-rc.8"
"@solidjs/compiler-darwin-x64": "2.0.0-rc.9",
"@solidjs/compiler-darwin-arm64": "2.0.0-rc.9",
"@solidjs/compiler-linux-x64-gnu": "2.0.0-rc.9",
"@solidjs/compiler-linux-arm64-gnu": "2.0.0-rc.9",
"@solidjs/compiler-win32-x64-msvc": "2.0.0-rc.9",
"@solidjs/compiler-wasm32-wasi": "2.0.0-rc.9"
}
}
21 changes: 21 additions & 0 deletions packages/diagnostics/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# @solidjs/diagnostics

## 2.0.0-rc.9

### Patch Changes

- Updated dependencies [50323b4]
- Updated dependencies [d7cb456]
- Updated dependencies [a0d6dd2]
- Updated dependencies [c3ae310]
- Updated dependencies [6095955]
- Updated dependencies [e80f241]
- Updated dependencies [14ded24]
- Updated dependencies [25c5064]
- Updated dependencies [1ce0f85]
- Updated dependencies [9da7f0a]
- Updated dependencies [76230f9]
- Updated dependencies [632e45c]
- Updated dependencies [ca05917]
- Updated dependencies [7623ce1]
- Updated dependencies [af94f67]
- @solidjs/signals@2.0.0-rc.9

## 2.0.0-rc.8

### Patch Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/diagnostics/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/diagnostics",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"description": "Agent-consumable diagnostics harness for Solid: capture the dev-mode diagnostic and attribution channels as structured artifacts, with assertion helpers for tests and agent loops.",
"author": "Ryan Carniato",
"license": "MIT",
Expand Down Expand Up @@ -52,7 +52,7 @@
"test:watch": "vitest watch tests"
},
"dependencies": {
"@solidjs/signals": "^2.0.0-rc.8"
"@solidjs/signals": "^2.0.0-rc.9"
},
"peerDependencies": {
"vitest": ">=2.0.0"
Expand Down
23 changes: 23 additions & 0 deletions packages/element/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# solid-element

## 2.0.0-rc.9

### Patch Changes

- Updated dependencies [17b0bda]
- Updated dependencies [1af28a1]
- Updated dependencies [c452850]
- Updated dependencies [5b31076]
- Updated dependencies [084e621]
- Updated dependencies [da6ed76]
- Updated dependencies [5f688a6]
- Updated dependencies [c66130d]
- Updated dependencies [36db287]
- Updated dependencies [7623ce1]
- Updated dependencies [af94f67]
- Updated dependencies [042b540]
- Updated dependencies [7f6332a]
- Updated dependencies [5426ffb]
- Updated dependencies [63560a1]
- Updated dependencies [40977c9]
- @solidjs/web@2.0.0-rc.9
- solid-js@2.0.0-rc.9

## 2.0.0-rc.8

### Patch Changes
Expand Down
6 changes: 3 additions & 3 deletions packages/element/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Webcomponents wrapper for Solid",
"author": "Ryan Carniato",
"license": "MIT",
"version": "2.0.0-rc.8",
"version": "2.0.0-rc.9",
"homepage": "https://github.com/solidjs/solid/blob/main/packages/element#readme",
"repository": {
"type": "git",
Expand All @@ -30,8 +30,8 @@
"component-register": "^0.8.7"
},
"peerDependencies": {
"solid-js": "^2.0.0-rc.8",
"@solidjs/web": "^2.0.0-rc.8"
"solid-js": "^2.0.0-rc.9",
"@solidjs/web": "^2.0.0-rc.9"
},
"devDependencies": {
"solid-js": "workspace:*",
Expand Down
Loading