From 2c087cbbe2493bc12e66859acb026307ebe286c5 Mon Sep 17 00:00:00 2001 From: Ryan Carniato Date: Mon, 9 Oct 2023 15:53:33 -0700 Subject: [PATCH] Solid v1.8 (#1909) * update to seroval streaming serializer, change ssr markers * improved serialization/guards, fix #1413, fix #1796 hydration with lazy * v1.8.0-beta.0 * fix: missing `has` property in `SharedConfig` (#1896) * fix: missing `has` property in `SharedConfig` * Update hydration.ts * Create strong-years-smile.md --------- Co-authored-by: Ryan Carniato * remove attribute quotes in template, batch serialization * v1.8.0-beta.1 * Add 1.8 changelog * Bump postcss from 8.4.27 to 8.4.31 Bumps [postcss](https://github.com/postcss/postcss) from 8.4.27 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.27...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] * hydration perf improvement, fix #1849 * fix #1905, fix #1908 JSX type ommissions * v1.8.0-beta.2 * prepping for release * fix up changelog --------- Signed-off-by: dependabot[bot] Co-authored-by: Alexis H. Munsayac Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .changeset/dull-rings-approve.md | 6 ++ .changeset/healthy-spoons-watch.md | 6 ++ .changeset/hungry-gifts-film.md | 6 ++ .changeset/lazy-humans-mate.md | 6 ++ .changeset/pre.json | 19 ++++++ .changeset/strong-years-smile.md | 5 ++ .changeset/two-mayflies-flow.md | 5 ++ CHANGELOG.md | 38 +++++++++++ package.json | 10 +-- packages/babel-preset-solid/CHANGELOG.md | 22 +++++++ packages/babel-preset-solid/package.json | 4 +- packages/babel-preset-solid/test.js | 2 +- packages/solid-element/CHANGELOG.md | 16 +++++ packages/solid-element/package.json | 4 +- packages/solid/CHANGELOG.md | 27 ++++++++ packages/solid/package.json | 4 +- packages/solid/src/reactive/signal.ts | 9 ++- packages/solid/src/render/Suspense.ts | 15 +++-- packages/solid/src/render/flow.ts | 9 +-- packages/solid/src/render/hydration.ts | 3 +- packages/solid/src/server/rendering.ts | 15 ++--- packages/test-integration/CHANGELOG.md | 27 ++++++++ packages/test-integration/package.json | 2 +- pnpm-lock.yaml | 82 +++++++++++++----------- 24 files changed, 264 insertions(+), 78 deletions(-) create mode 100644 .changeset/dull-rings-approve.md create mode 100644 .changeset/healthy-spoons-watch.md create mode 100644 .changeset/hungry-gifts-film.md create mode 100644 .changeset/lazy-humans-mate.md create mode 100644 .changeset/pre.json create mode 100644 .changeset/strong-years-smile.md create mode 100644 .changeset/two-mayflies-flow.md diff --git a/.changeset/dull-rings-approve.md b/.changeset/dull-rings-approve.md new file mode 100644 index 000000000..e5377b11e --- /dev/null +++ b/.changeset/dull-rings-approve.md @@ -0,0 +1,6 @@ +--- +"babel-preset-solid": patch +"solid-js": patch +--- + +remove attribute quotes in template, batch serialization diff --git a/.changeset/healthy-spoons-watch.md b/.changeset/healthy-spoons-watch.md new file mode 100644 index 000000000..e2bf8c851 --- /dev/null +++ b/.changeset/healthy-spoons-watch.md @@ -0,0 +1,6 @@ +--- +"babel-preset-solid": minor +"solid-js": minor +--- + +update to seroval streaming serializer, change ssr markers diff --git a/.changeset/hungry-gifts-film.md b/.changeset/hungry-gifts-film.md new file mode 100644 index 000000000..a1973f5b2 --- /dev/null +++ b/.changeset/hungry-gifts-film.md @@ -0,0 +1,6 @@ +--- +"babel-preset-solid": patch +"solid-js": patch +--- + +improved serialization/guards, fix #1413, fix #1796 hydration with lazy diff --git a/.changeset/lazy-humans-mate.md b/.changeset/lazy-humans-mate.md new file mode 100644 index 000000000..40d0c4f51 --- /dev/null +++ b/.changeset/lazy-humans-mate.md @@ -0,0 +1,6 @@ +--- +"babel-preset-solid": minor +"solid-js": minor +--- + +hydration perf improvement, fix #1849 diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 000000000..46c7b866f --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,19 @@ +{ + "mode": "pre", + "tag": "beta", + "initialVersions": { + "babel-preset-solid": "1.7.12", + "solid-js": "1.7.12", + "solid-element": "1.7.1", + "solid-ssr": "1.7.2", + "test-integration": "1.7.12" + }, + "changesets": [ + "dull-rings-approve", + "healthy-spoons-watch", + "hungry-gifts-film", + "lazy-humans-mate", + "strong-years-smile", + "two-mayflies-flow" + ] +} diff --git a/.changeset/strong-years-smile.md b/.changeset/strong-years-smile.md new file mode 100644 index 000000000..7b8294ad4 --- /dev/null +++ b/.changeset/strong-years-smile.md @@ -0,0 +1,5 @@ +--- +"solid-js": patch +--- + +fix: missing `has` property in `SharedConfig` diff --git a/.changeset/two-mayflies-flow.md b/.changeset/two-mayflies-flow.md new file mode 100644 index 000000000..0935a2a6e --- /dev/null +++ b/.changeset/two-mayflies-flow.md @@ -0,0 +1,5 @@ +--- +"solid-js": patch +--- + +fix #1905, fix #1908 JSX type ommissions diff --git a/CHANGELOG.md b/CHANGELOG.md index d5c180751..6845b1605 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,43 @@ # Changelog +## 1.8.0 - 2023-10-09 + +I admit this is not the most exciting release from a feature standpoint. We are in that holding pattern between the end of 1.x and the start of 2.0. We recently made our new reactive experiments public and continue to build those out in public with [@solidjs/signals](https://github.com/solidjs/signals). + +This version is more about addressing some of the fundamentals that will help us in other projects like SolidStart while we do the transition. A big part of this is applying what we have learned when doing performance benchmarks for the work that has been funded by [Google Chrome Aurora](https://www.solidjs.com/blog/chrome-supports-solidjs). + +Async and Resources need work and are too all in. It is great to have a solution but now that we have a better understanding we need to start breaking things apart into their fundamental pieces. + +### De-duping Streaming Serialization + +This is the marquee feature of this release and is largely the work of @lxsmnsyc. Solid has been able to serialize promises and do streaming for a couple of years now, but it was very special-cased. Now it is a generic mechanism. + +This matters because it means that we have decoupled the promise serialization from Resources, and in so decoupled the whole when the stream is done from them. This opens up things like nested promises. + +More so we have a mechanism now that deeply de-dupes data serialized across flushes. This is important for features like Islands where you might pass the same props to multiple Islands across different Suspense boundaries and don't want to send the data more than once. And even examples where that data can be accessed at varying depths (recursive comments in say a Hackernews site). + +### Hydration Improvements + +Fragments for Hydration have been a bit of a pain and we keep seeming to have different issues reported around element duplication. Most commonly this has been around where there are `lazy` component siblings or where the fragment is top-level. After looking into and fixing an [issue for Astro](https://github.com/withastro/astro/pull/8365) I decided to look at some of the oldest bugs in Solid and found it was a similar bug. + +In many cases, the DOM can change throughout Hydration while doing things like streaming but we need to pause and resume hydration because code isn't available yet. While we don't create elements during hydration, getting an accurate snapshot of the DOM for the current state for future list reconciliation is a process we've had a few tries at but in 1.8 we update this in a way that makes sure it doesn't get out of date. + +Also in 1.8, we have added some performance improvements to hydration in the form of not redundantly setting attributes or props as the page hydrates similar to how we don't update text. This is all migration towards a future where we don't need to do as much hydration, but it is important to note that values will be kept as they were on the server rather than how they may compute at runtime during hydration. + +### Smaller Templates + +In 1.7 we removed unnecessary closing tags from template strings. It was a bit painful because we were a bit overzealous at first. While I believe in the end we got to a good place, ultimately all but the simplest reductions have been hidden behind a compiler flag(`omitNestedClosingTags`). Thanks to work from @intrnl we are implementing another template size reduction technique of removing unnecessary quotes. Quotes are actually not required by HTML in some cases and it can add up. + +### Other + +#### Fix NGINX Server Side Includes + +Comments led with `#` are treated as special directives for a few different servers so we've needed to change our open hydration markers to `$`. As usual, your version of Solid and the Babel Plugin should be the same to ensure this matches up. + +#### Better Guards on Global Scripts + +Solid uses an inline HydrationScript as a way to do processing before the framework and code have loaded. To handle things like event capture and streaming. However, we didn't do a good job of guarding the right thing when multiple were added to the same page, a situation that can happen in Micro-frontends or 3rd party Islands solutions. Now the script guards against duplicate inclusion. + ## 1.7.0 - 2023-03-30 Solid has experienced incredible growth in usage the last 6 months. Companies are using it to power production applications and SolidStart Beta has been a big part of that. As a natural part of this growth and increased use at scale we are continuing to learn what works well and what the rough edges in Solid are today. diff --git a/package.json b/package.json index 8f73e7a2d..d67f89b8c 100644 --- a/package.json +++ b/package.json @@ -34,13 +34,13 @@ "@rollup/plugin-replace": "^5.0.2", "@types/node": "^18.11.19", "@vitest/coverage-c8": "^0.29.7", - "babel-plugin-jsx-dom-expressions": "^0.36.18", + "babel-plugin-jsx-dom-expressions": "^0.37.0", "coveralls": "^3.1.1", "csstype": "^3.1.0", - "dom-expressions": "0.36.18", - "hyper-dom-expressions": "0.36.18", + "dom-expressions": "0.37.0", + "hyper-dom-expressions": "0.37.0", "jsdom": "^21.1.1", - "lit-dom-expressions": "0.36.18", + "lit-dom-expressions": "0.37.0", "ncp": "^2.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.8.8", @@ -48,7 +48,7 @@ "rollup": "^3.7.5", "rollup-plugin-cleanup": "^3.2.1", "rollup-plugin-copy": "^3.4.0", - "seroval": "^0.7.0", + "seroval": "^0.10.4", "simple-git-hooks": "^2.8.1", "symlink-dir": "^5.0.1", "tsconfig-replace-paths": "^0.0.11", diff --git a/packages/babel-preset-solid/CHANGELOG.md b/packages/babel-preset-solid/CHANGELOG.md index f74f3fa90..ddcec16d7 100644 --- a/packages/babel-preset-solid/CHANGELOG.md +++ b/packages/babel-preset-solid/CHANGELOG.md @@ -1,5 +1,27 @@ # babel-preset-solid +## 1.8.0-beta.2 + +### Minor Changes + +- e3a97d28: hydration perf improvement, fix #1849 + +## 1.8.0-beta.1 + +### Patch Changes + +- f6d511db: remove attribute quotes in template, batch serialization + +## 1.8.0-beta.0 + +### Minor Changes + +- d8e0e8e8: update to seroval streaming serializer, change ssr markers + +### Patch Changes + +- bf09b838: improved serialization/guards, fix #1413, fix #1796 hydration with lazy + ## 1.7.12 ### Patch Changes diff --git a/packages/babel-preset-solid/package.json b/packages/babel-preset-solid/package.json index b3f99ef9d..bf29b49bc 100644 --- a/packages/babel-preset-solid/package.json +++ b/packages/babel-preset-solid/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-solid", - "version": "1.7.12", + "version": "1.8.0-beta.2", "description": "Babel preset to transform JSX for Solid.js", "author": "Ryan Carniato ", "homepage": "https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid#readme", @@ -14,7 +14,7 @@ "test": "node test.js" }, "dependencies": { - "babel-plugin-jsx-dom-expressions": "^0.36.18" + "babel-plugin-jsx-dom-expressions": "^0.37.0" }, "peerDependencies": { "@babel/core": "^7.0.0" diff --git a/packages/babel-preset-solid/test.js b/packages/babel-preset-solid/test.js index a7748ebc9..e025167cd 100644 --- a/packages/babel-preset-solid/test.js +++ b/packages/babel-preset-solid/test.js @@ -10,6 +10,6 @@ const { code } = babel.transformSync("const v =
;", { assert.equal( code, - 'import{template as _$template}from"solid-js/web";const _tmpl$=/*#__PURE__*/_$template(`
`);const v=_tmpl$();' + 'import{template as _$template}from"solid-js/web";const _tmpl$=/*#__PURE__*/_$template(`
`);const v=_tmpl$();' ); console.log("passed"); diff --git a/packages/solid-element/CHANGELOG.md b/packages/solid-element/CHANGELOG.md index e14a6cbfd..4728dca31 100644 --- a/packages/solid-element/CHANGELOG.md +++ b/packages/solid-element/CHANGELOG.md @@ -1,5 +1,21 @@ # solid-element +## 1.8.0-beta.1 + +### Patch Changes + +- Updated dependencies [e3a97d28] +- Updated dependencies [d797a143] + - solid-js@1.8.0-beta.2 + +## 1.8.0-beta.0 + +### Patch Changes + +- Updated dependencies [d8e0e8e8] +- Updated dependencies [bf09b838] + - solid-js@1.8.0-beta.0 + ## 1.7.1 ### Patch Changes diff --git a/packages/solid-element/package.json b/packages/solid-element/package.json index 9690d2a75..2f599f2ca 100644 --- a/packages/solid-element/package.json +++ b/packages/solid-element/package.json @@ -3,7 +3,7 @@ "description": "Webcomponents wrapper for Solid", "author": "Ryan Carniato", "license": "MIT", - "version": "1.7.1", + "version": "1.8.0-beta.1", "homepage": "https://github.com/solidjs/solid/blob/main/packages/solid-element#readme", "type": "module", "main": "dist/index.js", @@ -21,7 +21,7 @@ "component-register": "~0.8.2" }, "peerDependencies": { - "solid-js": "^1.7.12" + "solid-js": "^1.8.0-beta.2" }, "devDependencies": { "solid-js": "workspace:*" diff --git a/packages/solid/CHANGELOG.md b/packages/solid/CHANGELOG.md index e376ac2e3..51a3d3f4b 100644 --- a/packages/solid/CHANGELOG.md +++ b/packages/solid/CHANGELOG.md @@ -1,5 +1,32 @@ # solid-js +## 1.8.0-beta.2 + +### Minor Changes + +- e3a97d28: hydration perf improvement, fix #1849 + +### Patch Changes + +- d797a143: fix #1905, fix #1908 JSX type ommissions + +## 1.8.0-beta.1 + +### Patch Changes + +- f6d511db: remove attribute quotes in template, batch serialization +- af625dd3: fix: missing `has` property in `SharedConfig` + +## 1.8.0-beta.0 + +### Minor Changes + +- d8e0e8e8: update to seroval streaming serializer, change ssr markers + +### Patch Changes + +- bf09b838: improved serialization/guards, fix #1413, fix #1796 hydration with lazy + ## 1.7.12 ### Patch Changes diff --git a/packages/solid/package.json b/packages/solid/package.json index 06587b637..0ebbf3692 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -1,7 +1,7 @@ { "name": "solid-js", "description": "A declarative JavaScript library for building user interfaces.", - "version": "1.7.12", + "version": "1.8.0-beta.2", "author": "Ryan Carniato", "license": "MIT", "homepage": "https://solidjs.com", @@ -227,6 +227,6 @@ ], "dependencies": { "csstype": "^3.1.0", - "seroval": "^0.5.0" + "seroval": "^0.10.4" } } diff --git a/packages/solid/src/reactive/signal.ts b/packages/solid/src/reactive/signal.ts index 5da41f919..9e6eb6887 100644 --- a/packages/solid/src/reactive/signal.ts +++ b/packages/solid/src/reactive/signal.ts @@ -529,6 +529,10 @@ export type InitializedResourceReturn = [ ResourceActions ]; +function isPromise(v: any): v is Promise { + return v && typeof v === "object" && "then" in v; +} + /** * Creates a resource that wraps a repeated promise in a reactive pattern: * ```typescript @@ -616,7 +620,8 @@ export function createResource( id = `${sharedConfig.context.id}${sharedConfig.context.count++}`; let v; if (options.ssrLoadFrom === "initial") initP = options.initialValue as T; - else if (sharedConfig.load && (v = sharedConfig.load(id))) initP = v[0]; + else if (sharedConfig.load && (v = sharedConfig.load(id))) + initP = isPromise(v) && "value" in v ? v.value : v; } function loadEnd(p: Promise | null, v: T | undefined, error?: any, key?: S) { if (pr === p) { @@ -684,7 +689,7 @@ export function createResource( refetching }) ); - if (typeof p !== "object" || !(p && "then" in p)) { + if (!isPromise(p)) { loadEnd(pr, p, undefined, lookup); return p; } diff --git a/packages/solid/src/render/Suspense.ts b/packages/solid/src/render/Suspense.ts index 6702a2acb..c26e2e751 100644 --- a/packages/solid/src/render/Suspense.ts +++ b/packages/solid/src/render/Suspense.ts @@ -144,19 +144,20 @@ export function Suspense(props: { fallback?: JSX.Element; children: JSX.Element if (sharedConfig.context && sharedConfig.load) { const key = sharedConfig.context.id + sharedConfig.context.count; let ref = sharedConfig.load(key); - if (ref && (p = ref[0]) && p !== "$$f") { - if (typeof p !== "object" || !("then" in p)) p = Promise.resolve(p); + if (ref && (typeof ref !== "object" || !("value" in ref))) p = ref; + if (p && p !== "$$f") { const [s, set] = createSignal(undefined, { equals: false }); flicker = s; - p.then((err: any) => { - if (err || sharedConfig.done) { - err && (error = err); - return set(); - } + p.then(() => { sharedConfig.gather!(key); setHydrateContext(ctx); set(); setHydrateContext(); + }).catch((err: any) => { + if (err || sharedConfig.done) { + err && (error = err); + return set(); + } }); } } diff --git a/packages/solid/src/render/flow.ts b/packages/solid/src/render/flow.ts index 83584448a..edd7cd04c 100644 --- a/packages/solid/src/render/flow.ts +++ b/packages/solid/src/render/flow.ts @@ -257,13 +257,8 @@ export function ErrorBoundary(props: { children: JSX.Element; }): JSX.Element { let err; - let v; - if ( - sharedConfig!.context && - sharedConfig!.load && - (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count)) - ) - err = v[0]; + if (sharedConfig!.context && sharedConfig!.load) + err = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count); const [errored, setErrored] = createSignal( err, "_SOLID_DEV_" ? { name: "errored" } : undefined diff --git a/packages/solid/src/render/hydration.ts b/packages/solid/src/render/hydration.ts index 1b782e7e0..95e88bafb 100644 --- a/packages/solid/src/render/hydration.ts +++ b/packages/solid/src/render/hydration.ts @@ -5,7 +5,8 @@ export type HydrationContext = { id: string; count: number }; type SharedConfig = { context?: HydrationContext; resources?: { [key: string]: any }; - load?: (id: string) => Promise | any | undefined; + load?: (id: string) => Promise | any; + has?: (id: string) => boolean; gather?: (key: string) => void; registry?: Map; done?: boolean; diff --git a/packages/solid/src/server/rendering.ts b/packages/solid/src/server/rendering.ts index d95c44a0b..c74c8d9e3 100644 --- a/packages/solid/src/server/rendering.ts +++ b/packages/solid/src/server/rendering.ts @@ -265,7 +265,7 @@ export function ErrorBoundary(props: { const id = ctx.id + ctx.count; function displayFallback() { cleanNode(clean); - ctx.writeResource(id, error, true); + ctx.serialize(id, error); setHydrateContext({ ...ctx, count: 0 }); const f = props.fallback; return typeof f === "function" && f.length ? f(error, () => {}) : f; @@ -424,7 +424,7 @@ export function createResource( if (p != undefined && typeof p === "object" && "then" in p) { read.loading = true; read.state = "pending"; - if (ctx.writeResource) ctx.writeResource(id, p, undefined, options.deferStream); + if (ctx.serialize) ctx.serialize(id, p, options.deferStream); return p .then(res => { read.loading = false; @@ -443,7 +443,7 @@ export function createResource( }); } ctx.resources[id].data = p; - if (ctx.writeResource) ctx.writeResource(id, p); + if (ctx.serialize) ctx.serialize(id, p); p = null; return ctx.resources[id].data; } @@ -532,12 +532,7 @@ export function useTransition(): [() => boolean, (fn: () => any) => void] { type HydrationContext = { id: string; count: number; - writeResource: ( - id: string, - v: Promise | any, - error?: boolean, - deferStream?: boolean - ) => void; + serialize: (id: string, v: Promise | any, deferStream?: boolean) => void; replace: (id: string, replacement: () => any) => void; block: (p: Promise) => void; resources: Record; @@ -610,7 +605,7 @@ export function Suspense(props: { fallback?: string; children: string }) { return res; } setHydrateContext({ ...ctx, count: 0, id: ctx.id + "0-f" }); - ctx.writeResource(id, "$$f"); + ctx.serialize(id, "$$f"); return props.fallback; }, suspenseError); } diff --git a/packages/test-integration/CHANGELOG.md b/packages/test-integration/CHANGELOG.md index c2b81ffc1..3858419ca 100644 --- a/packages/test-integration/CHANGELOG.md +++ b/packages/test-integration/CHANGELOG.md @@ -1,5 +1,32 @@ # test-integration +## 1.8.0-beta.2 + +### Patch Changes + +- Updated dependencies [e3a97d28] +- Updated dependencies [d797a143] + - babel-preset-solid@1.8.0-beta.2 + - solid-js@1.8.0-beta.2 + +## 1.8.0-beta.1 + +### Patch Changes + +- Updated dependencies [f6d511db] +- Updated dependencies [af625dd3] + - babel-preset-solid@1.8.0-beta.1 + - solid-js@1.8.0-beta.1 + +## 1.8.0-beta.0 + +### Patch Changes + +- Updated dependencies [d8e0e8e8] +- Updated dependencies [bf09b838] + - babel-preset-solid@1.8.0-beta.0 + - solid-js@1.8.0-beta.0 + ## 1.7.12 ### Patch Changes diff --git a/packages/test-integration/package.json b/packages/test-integration/package.json index 76a737e3d..e12921557 100644 --- a/packages/test-integration/package.json +++ b/packages/test-integration/package.json @@ -14,5 +14,5 @@ "gitly": "^2.2.1", "shelljs": "^0.8.5" }, - "version": "1.7.12" + "version": "1.8.0-beta.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fdead6421..7f19a19ed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,8 +48,8 @@ importers: specifier: ^0.29.7 version: 0.29.7(vitest@0.29.3) babel-plugin-jsx-dom-expressions: - specifier: ^0.36.18 - version: 0.36.18(@babel/core@7.21.3) + specifier: ^0.37.0 + version: 0.37.0(@babel/core@7.21.3) coveralls: specifier: ^3.1.1 version: 3.1.1 @@ -57,17 +57,17 @@ importers: specifier: ^3.1.0 version: 3.1.0 dom-expressions: - specifier: 0.36.18 - version: 0.36.18(csstype@3.1.0)(seroval@0.7.0) + specifier: 0.37.0 + version: 0.37.0(csstype@3.1.0)(seroval@0.10.4) hyper-dom-expressions: - specifier: 0.36.18 - version: 0.36.18 + specifier: 0.37.0 + version: 0.37.0 jsdom: specifier: ^21.1.1 version: 21.1.1 lit-dom-expressions: - specifier: 0.36.18 - version: 0.36.18 + specifier: 0.37.0 + version: 0.37.0 ncp: specifier: ^2.0.0 version: 2.0.0 @@ -90,8 +90,8 @@ importers: specifier: ^3.4.0 version: 3.4.0 seroval: - specifier: ^0.7.0 - version: 0.7.0 + specifier: ^0.10.4 + version: 0.10.4 simple-git-hooks: specifier: ^2.8.1 version: 2.8.1 @@ -109,7 +109,7 @@ importers: version: 4.9.5 vite-plugin-solid: specifier: ^2.6.1 - version: 2.6.1(solid-js@packages+solid)(vite@4.4.8) + version: 2.6.1(solid-js@1.7.12)(vite@4.4.8) vitest: specifier: ^0.29.3 version: 0.29.3(jsdom@21.1.1) @@ -120,8 +120,8 @@ importers: specifier: ^7.0.0 version: 7.21.3 babel-plugin-jsx-dom-expressions: - specifier: ^0.36.18 - version: 0.36.18(@babel/core@7.21.3) + specifier: ^0.37.0 + version: 0.37.0(@babel/core@7.21.3) packages/solid: dependencies: @@ -129,8 +129,8 @@ importers: specifier: ^3.1.0 version: 3.1.0 seroval: - specifier: ^0.5.0 - version: 0.5.0 + specifier: ^0.10.4 + version: 0.10.4 packages/solid-element: dependencies: @@ -2284,8 +2284,8 @@ packages: - debug dev: true - /babel-plugin-jsx-dom-expressions@0.36.18(@babel/core@7.21.3): - resolution: {integrity: sha512-8K0CHgzNMB0+1OC+GQf1O49Nc6DfHAoWDjY4YTW3W/3il5KrDKAj65723oPmya68kKKOkqDKuz+Zh1u7VFHthw==} + /babel-plugin-jsx-dom-expressions@0.37.0(@babel/core@7.21.3): + resolution: {integrity: sha512-WLUY+Eaeej9fmRMRD2YSTskmdfBxmVdgeSRHHiZyWcHe+SQY0xqKTdX4Ilbmf/MxKcDPJhwkuq41OBe42P3EVg==} peerDependencies: '@babel/core': ^7.20.12 dependencies: @@ -2850,15 +2850,15 @@ packages: path-type: 4.0.0 dev: true - /dom-expressions@0.36.18(csstype@3.1.0)(seroval@0.7.0): - resolution: {integrity: sha512-+WiIy0blQxiFfD7NN4dAHAqORLEsqfVrxkIz34AJHSj6cRnFapcGu9bF8WAG8FsLKON8R7Jv3KJcveqBLFknsg==} + /dom-expressions@0.37.0(csstype@3.1.0)(seroval@0.10.4): + resolution: {integrity: sha512-NULG60Azkn2NCANw+brxRkZN15NfEGQX+vaNvr9igo2L3gNkeVqe50Er0s7jjzG4STwgZNZKjQqfl3XCtFJBnw==} peerDependencies: csstype: ^3.0 - seroval: ^0.7.0 + seroval: ^0.10.4 dependencies: babel-plugin-transform-rename-import: 2.3.0 csstype: 3.1.0 - seroval: 0.7.0 + seroval: 0.10.4 dev: true /domexception@4.0.0: @@ -3598,8 +3598,8 @@ packages: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: true - /hyper-dom-expressions@0.36.18: - resolution: {integrity: sha512-3fQQ2/ZVjFKHrhxHdWkW+5DH/CEaGgukG0WBPfsCtkXBrexyYHR4pYwrqVMP9VjASRyFGrshxRf4CkVC5xPGUg==} + /hyper-dom-expressions@0.37.0: + resolution: {integrity: sha512-mGLh0jGh8M/CdiMDpFdPCAenoLeERx59YFWD++mTatEecSKwDlsWF/eEYoZlQFFxLb1blbdRw7//uS8z7fnrag==} dev: true /iconv-lite@0.4.24: @@ -4040,8 +4040,8 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lit-dom-expressions@0.36.18: - resolution: {integrity: sha512-uC+0hBPHs2/P1Msxcu/O1VOp2sEawPfUsa93YTfUqscbjj+pl3jDN+FhO9FQBazf7prwftSY/BrGO0BIKVkxjg==} + /lit-dom-expressions@0.37.0: + resolution: {integrity: sha512-VksdRfwVvblDsHKdij3Q8O0kFPVcdfYZfHxMVbv7XBPFl2HAura7fEx8s7fC3cXMJm+0JdF+AhnBQZMMvBFLWg==} dev: true /load-json-file@4.0.0: @@ -4600,8 +4600,8 @@ packages: pathe: 1.1.0 dev: true - /postcss@8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -4997,13 +4997,12 @@ packages: - supports-color dev: true - /seroval@0.5.0: - resolution: {integrity: sha512-HhHyJhaNP78446cuyUEVVhrJMM9L/c1U83VxJofRiHvyBcqOwMBMlRNG+fTEx7k1BCjH81UoAFcbkzvgmRA6CQ==} + /seroval@0.10.4: + resolution: {integrity: sha512-TdaE9JkoATjKu+vjwllieX8zWyBTUVxbgWDnOsDJFfmKbM7vLSukuCXuD3pO3kkCtX4daywOW8ps2VCdPhS8/w==} engines: {node: '>=10'} - dev: false - /seroval@0.7.0: - resolution: {integrity: sha512-GeyRvryi+5aHBsOXK4KexhhjTB8rkBvLfHxK5RWy8S3Dwq/hk7VNFcg2yT0k4f2lGJPYlWHRkV3/UpGjhJ5Scg==} + /seroval@0.5.1: + resolution: {integrity: sha512-ZfhQVB59hmIauJG5Ydynupy8KHyr5imGNtdDhbZG68Ufh1Ynkv9KOYOAABf71oVbQxJ8VkWnMHAjEHE7fWkH5g==} engines: {node: '>=10'} dev: true @@ -5123,7 +5122,14 @@ packages: yargs: 15.4.1 dev: true - /solid-refresh@0.5.2(solid-js@packages+solid): + /solid-js@1.7.12: + resolution: {integrity: sha512-QoyoOUKu14iLoGxjxWFIU8+/1kLT4edQ7mZESFPonsEXZ//VJtPKD8Ud1aTKzotj+MNWmSs9YzK6TdY+fO9Eww==} + dependencies: + csstype: 3.1.0 + seroval: 0.5.1 + dev: true + + /solid-refresh@0.5.2(solid-js@1.7.12): resolution: {integrity: sha512-I69HmFj0LsGRJ3n8CEMVjyQFgVtuM2bSjznu2hCnsY+i5oOxh8ioWj00nnHBv0UYD3WpE/Sq4Q3TNw2IKmKN7A==} peerDependencies: solid-js: ^1.3 @@ -5131,7 +5137,7 @@ packages: '@babel/generator': 7.21.5 '@babel/helper-module-imports': 7.21.4 '@babel/types': 7.21.5 - solid-js: link:packages/solid + solid-js: 1.7.12 dev: true /source-map-js@1.0.2: @@ -5785,7 +5791,7 @@ packages: - terser dev: true - /vite-plugin-solid@2.6.1(solid-js@packages+solid)(vite@4.4.8): + /vite-plugin-solid@2.6.1(solid-js@1.7.12)(vite@4.4.8): resolution: {integrity: sha512-/khM/ha3B5/pTWQWVJd/0n6ODPIrOcajwhbrD8Gnv37XmJJssu+KA8ssN73raMIicf2eiQKiTAV39w7dSl4Irg==} peerDependencies: solid-js: ^1.3.17 || ^1.4.0 || ^1.5.0 || ^1.6.0 @@ -5796,8 +5802,8 @@ packages: '@types/babel__core': 7.20.0 babel-preset-solid: link:packages/babel-preset-solid merge-anything: 5.1.6 - solid-js: link:packages/solid - solid-refresh: 0.5.2(solid-js@packages+solid) + solid-js: 1.7.12 + solid-refresh: 0.5.2(solid-js@1.7.12) vite: 4.4.8(@types/node@18.11.19) vitefu: 0.2.4(vite@4.4.8) transitivePeerDependencies: @@ -5834,7 +5840,7 @@ packages: dependencies: '@types/node': 18.11.19 esbuild: 0.18.17 - postcss: 8.4.27 + postcss: 8.4.31 rollup: 3.27.0 optionalDependencies: fsevents: 2.3.2