From 813c41f604b74537c2417d30c9dcd846757b941a Mon Sep 17 00:00:00 2001 From: Muhammad Date: Mon, 26 Aug 2024 00:13:38 +0700 Subject: [PATCH 1/6] refactor: move `vike-solid` into `/packages` directory - Moved the `vike-solid` project from the root directory to `packages/vike-solid`. - Updated scripts and dependencies to align with `vike-react` and ensure proper functionality. - Verified build and test processes to confirm successful migration. - Updated `README.md` in the root directory and `packages/vike-solid` directory to reflect the new project location. --- .gitignore | 108 +----------------- CONTRIBUTING.md | 2 +- README.md | 10 +- examples/full/.gitignore | 2 + examples/full/package.json | 2 +- examples/minimal/.gitignore | 2 + examples/minimal/package.json | 2 +- package.json | 20 ++-- .../vike-solid}/+config.ts | 0 packages/vike-solid/.gitignore | 2 + packages/vike-solid/README.md | 2 + .../vike-solid}/client.d.ts | 0 .../components/Config/Config-client.ts | 0 .../components/Config/Config-server.ts | 0 .../components/Head/Head-client.ts | 0 .../components/Head/Head-server.ts | 0 .../vike-solid}/helpers/clientOnly.tsx | 0 .../hooks/useConfig/configsCumulative.ts | 0 .../hooks/useConfig/useConfig-client.ts | 0 .../hooks/useConfig/useConfig-server.ts | 0 .../vike-solid}/hooks/useData.tsx | 0 .../vike-solid}/hooks/usePageContext.tsx | 0 .../integration/applyHeadSettings.tsx | 0 .../vike-solid}/integration/getHeadSetting.ts | 0 .../integration/getPageElement.tsx | 0 .../integration/onRenderClient.tsx | 0 .../vike-solid}/integration/onRenderHtml.tsx | 0 .../vike-solid}/integration/ssrEffect.ts | 0 .../vike-solid}/package.json | 1 + .../vike-solid}/rollup.config.js | 0 .../vike-solid}/tsconfig.json | 0 .../vike-solid}/types/Config.ts | 0 .../vike-solid}/types/PageContext.ts | 0 .../vike-solid}/utils/callCumulativeHooks.ts | 0 .../vike-solid}/utils/getGlobalObject.ts | 0 .../utils/getTagAttributesString.ts | 0 .../vike-solid}/utils/includes.ts | 0 .../vike-solid}/utils/isCallable.ts | 0 .../vike-solid}/utils/objectKeys.ts | 0 .../vike-solid}/vite-plugin-vike-solid.ts | 0 .../vike-solid}/vite.config.ts | 0 .../vike-solid}/with-solid.js | 0 pnpm-lock.yaml | 15 ++- pnpm-workspace.yaml | 2 +- vike-solid/README.md | 10 -- 45 files changed, 45 insertions(+), 135 deletions(-) mode change 120000 => 100644 README.md create mode 100644 examples/full/.gitignore create mode 100644 examples/minimal/.gitignore rename {vike-solid => packages/vike-solid}/+config.ts (100%) create mode 100644 packages/vike-solid/.gitignore create mode 100644 packages/vike-solid/README.md rename {vike-solid => packages/vike-solid}/client.d.ts (100%) rename {vike-solid => packages/vike-solid}/components/Config/Config-client.ts (100%) rename {vike-solid => packages/vike-solid}/components/Config/Config-server.ts (100%) rename {vike-solid => packages/vike-solid}/components/Head/Head-client.ts (100%) rename {vike-solid => packages/vike-solid}/components/Head/Head-server.ts (100%) rename {vike-solid => packages/vike-solid}/helpers/clientOnly.tsx (100%) rename {vike-solid => packages/vike-solid}/hooks/useConfig/configsCumulative.ts (100%) rename {vike-solid => packages/vike-solid}/hooks/useConfig/useConfig-client.ts (100%) rename {vike-solid => packages/vike-solid}/hooks/useConfig/useConfig-server.ts (100%) rename {vike-solid => packages/vike-solid}/hooks/useData.tsx (100%) rename {vike-solid => packages/vike-solid}/hooks/usePageContext.tsx (100%) rename {vike-solid => packages/vike-solid}/integration/applyHeadSettings.tsx (100%) rename {vike-solid => packages/vike-solid}/integration/getHeadSetting.ts (100%) rename {vike-solid => packages/vike-solid}/integration/getPageElement.tsx (100%) rename {vike-solid => packages/vike-solid}/integration/onRenderClient.tsx (100%) rename {vike-solid => packages/vike-solid}/integration/onRenderHtml.tsx (100%) rename {vike-solid => packages/vike-solid}/integration/ssrEffect.ts (100%) rename {vike-solid => packages/vike-solid}/package.json (98%) rename {vike-solid => packages/vike-solid}/rollup.config.js (100%) rename {vike-solid => packages/vike-solid}/tsconfig.json (100%) rename {vike-solid => packages/vike-solid}/types/Config.ts (100%) rename {vike-solid => packages/vike-solid}/types/PageContext.ts (100%) rename {vike-solid => packages/vike-solid}/utils/callCumulativeHooks.ts (100%) rename {vike-solid => packages/vike-solid}/utils/getGlobalObject.ts (100%) rename {vike-solid => packages/vike-solid}/utils/getTagAttributesString.ts (100%) rename {vike-solid => packages/vike-solid}/utils/includes.ts (100%) rename {vike-solid => packages/vike-solid}/utils/isCallable.ts (100%) rename {vike-solid => packages/vike-solid}/utils/objectKeys.ts (100%) rename {vike-solid => packages/vike-solid}/vite-plugin-vike-solid.ts (100%) rename {vike-solid => packages/vike-solid}/vite.config.ts (100%) rename {vike-solid => packages/vike-solid}/with-solid.js (100%) delete mode 100644 vike-solid/README.md diff --git a/.gitignore b/.gitignore index 6706b91..5d091a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,106 +1,2 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -.idea/ +/node_modules/ +.pnpm-debug.log diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 30f185e..6dfec9c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ Build `vike-solid`: ```bash -git clone git@github.com:vikejs/vike-solid +git clone https://github.com/vikejs/vike-solid.git cd vike-solid/ && pnpm install pnpm build cd ../ diff --git a/README.md b/README.md deleted file mode 120000 index 08284b3..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -vike-solid/README.md \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..5101c0a --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +[Vike extensions](https://vike.dev/extensions) for [SolidJs](https://www.solidjs.com). + +- `vike-solid` (SolidJs integration) + - Docs: [vike.dev/vike-solid](https://vike.dev/vike-solid) + - Version history: [CHANGELOG.md](packages/vike-solid/CHANGELOG.md) + - Source code: [packages/vike-solid/](packages/vike-solid) + +> [!NOTE] +> The source code is [small, simple, and highly polished](https://vike.dev/vike-solid#under-the-hood). Contributing is easy and welcome, see [CONTRIBUTING.md](CONTRIBUTING.md) to get started. \ No newline at end of file diff --git a/examples/full/.gitignore b/examples/full/.gitignore new file mode 100644 index 0000000..b0a5c34 --- /dev/null +++ b/examples/full/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/examples/full/package.json b/examples/full/package.json index d371ffb..3155e87 100644 --- a/examples/full/package.json +++ b/examples/full/package.json @@ -10,7 +10,7 @@ "node-fetch": "^3.3.2", "solid-js": "^1.8.21", "vike": "^0.4.191", - "vike-solid": "link:vike-solid" + "vike-solid": "workspace:*" }, "devDependencies": { "typescript": "^5.5.4", diff --git a/examples/minimal/.gitignore b/examples/minimal/.gitignore new file mode 100644 index 0000000..b0a5c34 --- /dev/null +++ b/examples/minimal/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/examples/minimal/package.json b/examples/minimal/package.json index 1c286e9..ccd2f38 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -7,7 +7,7 @@ "dependencies": { "solid-js": "^1.8.21", "vike": "^0.4.191", - "vike-solid": "link:vike-solid" + "vike-solid": "workspace:*" }, "devDependencies": { "vite": "^5.4.1" diff --git a/package.json b/package.json index de40d12..6895451 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "type": "module", "scripts": { - "dev": "cd vike-solid/ && pnpm run dev", - "build": "cd vike-solid/ && pnpm run build", - "release": "cd vike-solid/ && pnpm run release", + "========= Build": "", + "build": "pnpm --recursive --filter {packages/*} run build", + "========= Dev": "", + "dev": "cd ./packages/vike-solid/ && pnpm run dev", "========= Test": "", "test": "pnpm run test:e2e && pnpm run test:types", "test:e2e": "test-e2e", @@ -13,23 +14,26 @@ "format:prettier": "git ls-files | egrep '\\.(json|js|jsx|css|ts|tsx|vue|mjs|cjs)$' | grep --invert-match package.json | xargs pnpm exec prettier --write", "format:biome": "biome format --write .", "format:check": "biome format . || (echo 'Fix formatting by running `$ pnpm run -w format`.' && exit 1)", + "========= Release": "", + "release": "cd ./packages/vike-solid/ && pnpm run release", + "release:minor": "cd ./packages/vike-solid/ && pnpm run release:minor", + "release:commit": "cd ./packages/vike-solid/ && pnpm run release:commit", "========= Clean": "", - "clean": "git clean -Xdf", - "reset": "pnpm run clean && pnpm install && pnpm run build", + "reset": "git clean -Xdf && pnpm install && pnpm run build", "========= Only allow pnpm; forbid yarn & npm": "", "preinstall": "npx only-allow pnpm" }, "pnpm": { "overrides": { - "vike-solid": "link:./vike-solid/" + "vike-solid": "link:./packages/vike-solid/" } }, - "packageManager": "pnpm@9.4.0", "devDependencies": { "@biomejs/biome": "^1.8.3", "@brillout/test-e2e": "^0.5.34", "@brillout/test-types": "^0.1.15", "playwright": "^1.46.1", "prettier": "^3.3.3" - } + }, + "packageManager": "pnpm@9.4.0" } diff --git a/vike-solid/+config.ts b/packages/vike-solid/+config.ts similarity index 100% rename from vike-solid/+config.ts rename to packages/vike-solid/+config.ts diff --git a/packages/vike-solid/.gitignore b/packages/vike-solid/.gitignore new file mode 100644 index 0000000..b0a5c34 --- /dev/null +++ b/packages/vike-solid/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/packages/vike-solid/README.md b/packages/vike-solid/README.md new file mode 100644 index 0000000..e30f762 --- /dev/null +++ b/packages/vike-solid/README.md @@ -0,0 +1,2 @@ +Docs: [vike.dev/vike-solid](https://vike.dev/vike-solid) +Source code: [GitHub > vikejs/vike-solid](https://github.com/vikejs/vike-solid) diff --git a/vike-solid/client.d.ts b/packages/vike-solid/client.d.ts similarity index 100% rename from vike-solid/client.d.ts rename to packages/vike-solid/client.d.ts diff --git a/vike-solid/components/Config/Config-client.ts b/packages/vike-solid/components/Config/Config-client.ts similarity index 100% rename from vike-solid/components/Config/Config-client.ts rename to packages/vike-solid/components/Config/Config-client.ts diff --git a/vike-solid/components/Config/Config-server.ts b/packages/vike-solid/components/Config/Config-server.ts similarity index 100% rename from vike-solid/components/Config/Config-server.ts rename to packages/vike-solid/components/Config/Config-server.ts diff --git a/vike-solid/components/Head/Head-client.ts b/packages/vike-solid/components/Head/Head-client.ts similarity index 100% rename from vike-solid/components/Head/Head-client.ts rename to packages/vike-solid/components/Head/Head-client.ts diff --git a/vike-solid/components/Head/Head-server.ts b/packages/vike-solid/components/Head/Head-server.ts similarity index 100% rename from vike-solid/components/Head/Head-server.ts rename to packages/vike-solid/components/Head/Head-server.ts diff --git a/vike-solid/helpers/clientOnly.tsx b/packages/vike-solid/helpers/clientOnly.tsx similarity index 100% rename from vike-solid/helpers/clientOnly.tsx rename to packages/vike-solid/helpers/clientOnly.tsx diff --git a/vike-solid/hooks/useConfig/configsCumulative.ts b/packages/vike-solid/hooks/useConfig/configsCumulative.ts similarity index 100% rename from vike-solid/hooks/useConfig/configsCumulative.ts rename to packages/vike-solid/hooks/useConfig/configsCumulative.ts diff --git a/vike-solid/hooks/useConfig/useConfig-client.ts b/packages/vike-solid/hooks/useConfig/useConfig-client.ts similarity index 100% rename from vike-solid/hooks/useConfig/useConfig-client.ts rename to packages/vike-solid/hooks/useConfig/useConfig-client.ts diff --git a/vike-solid/hooks/useConfig/useConfig-server.ts b/packages/vike-solid/hooks/useConfig/useConfig-server.ts similarity index 100% rename from vike-solid/hooks/useConfig/useConfig-server.ts rename to packages/vike-solid/hooks/useConfig/useConfig-server.ts diff --git a/vike-solid/hooks/useData.tsx b/packages/vike-solid/hooks/useData.tsx similarity index 100% rename from vike-solid/hooks/useData.tsx rename to packages/vike-solid/hooks/useData.tsx diff --git a/vike-solid/hooks/usePageContext.tsx b/packages/vike-solid/hooks/usePageContext.tsx similarity index 100% rename from vike-solid/hooks/usePageContext.tsx rename to packages/vike-solid/hooks/usePageContext.tsx diff --git a/vike-solid/integration/applyHeadSettings.tsx b/packages/vike-solid/integration/applyHeadSettings.tsx similarity index 100% rename from vike-solid/integration/applyHeadSettings.tsx rename to packages/vike-solid/integration/applyHeadSettings.tsx diff --git a/vike-solid/integration/getHeadSetting.ts b/packages/vike-solid/integration/getHeadSetting.ts similarity index 100% rename from vike-solid/integration/getHeadSetting.ts rename to packages/vike-solid/integration/getHeadSetting.ts diff --git a/vike-solid/integration/getPageElement.tsx b/packages/vike-solid/integration/getPageElement.tsx similarity index 100% rename from vike-solid/integration/getPageElement.tsx rename to packages/vike-solid/integration/getPageElement.tsx diff --git a/vike-solid/integration/onRenderClient.tsx b/packages/vike-solid/integration/onRenderClient.tsx similarity index 100% rename from vike-solid/integration/onRenderClient.tsx rename to packages/vike-solid/integration/onRenderClient.tsx diff --git a/vike-solid/integration/onRenderHtml.tsx b/packages/vike-solid/integration/onRenderHtml.tsx similarity index 100% rename from vike-solid/integration/onRenderHtml.tsx rename to packages/vike-solid/integration/onRenderHtml.tsx diff --git a/vike-solid/integration/ssrEffect.ts b/packages/vike-solid/integration/ssrEffect.ts similarity index 100% rename from vike-solid/integration/ssrEffect.ts rename to packages/vike-solid/integration/ssrEffect.ts diff --git a/vike-solid/package.json b/packages/vike-solid/package.json similarity index 98% rename from vike-solid/package.json rename to packages/vike-solid/package.json index 8eaa636..ad54288 100644 --- a/vike-solid/package.json +++ b/packages/vike-solid/package.json @@ -21,6 +21,7 @@ "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/preset-typescript": "^7.24.7", + "@biomejs/biome": "^1.8.3", "@brillout/release-me": "^0.4.0", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-node-resolve": "^15.2.3", diff --git a/vike-solid/rollup.config.js b/packages/vike-solid/rollup.config.js similarity index 100% rename from vike-solid/rollup.config.js rename to packages/vike-solid/rollup.config.js diff --git a/vike-solid/tsconfig.json b/packages/vike-solid/tsconfig.json similarity index 100% rename from vike-solid/tsconfig.json rename to packages/vike-solid/tsconfig.json diff --git a/vike-solid/types/Config.ts b/packages/vike-solid/types/Config.ts similarity index 100% rename from vike-solid/types/Config.ts rename to packages/vike-solid/types/Config.ts diff --git a/vike-solid/types/PageContext.ts b/packages/vike-solid/types/PageContext.ts similarity index 100% rename from vike-solid/types/PageContext.ts rename to packages/vike-solid/types/PageContext.ts diff --git a/vike-solid/utils/callCumulativeHooks.ts b/packages/vike-solid/utils/callCumulativeHooks.ts similarity index 100% rename from vike-solid/utils/callCumulativeHooks.ts rename to packages/vike-solid/utils/callCumulativeHooks.ts diff --git a/vike-solid/utils/getGlobalObject.ts b/packages/vike-solid/utils/getGlobalObject.ts similarity index 100% rename from vike-solid/utils/getGlobalObject.ts rename to packages/vike-solid/utils/getGlobalObject.ts diff --git a/vike-solid/utils/getTagAttributesString.ts b/packages/vike-solid/utils/getTagAttributesString.ts similarity index 100% rename from vike-solid/utils/getTagAttributesString.ts rename to packages/vike-solid/utils/getTagAttributesString.ts diff --git a/vike-solid/utils/includes.ts b/packages/vike-solid/utils/includes.ts similarity index 100% rename from vike-solid/utils/includes.ts rename to packages/vike-solid/utils/includes.ts diff --git a/vike-solid/utils/isCallable.ts b/packages/vike-solid/utils/isCallable.ts similarity index 100% rename from vike-solid/utils/isCallable.ts rename to packages/vike-solid/utils/isCallable.ts diff --git a/vike-solid/utils/objectKeys.ts b/packages/vike-solid/utils/objectKeys.ts similarity index 100% rename from vike-solid/utils/objectKeys.ts rename to packages/vike-solid/utils/objectKeys.ts diff --git a/vike-solid/vite-plugin-vike-solid.ts b/packages/vike-solid/vite-plugin-vike-solid.ts similarity index 100% rename from vike-solid/vite-plugin-vike-solid.ts rename to packages/vike-solid/vite-plugin-vike-solid.ts diff --git a/vike-solid/vite.config.ts b/packages/vike-solid/vite.config.ts similarity index 100% rename from vike-solid/vite.config.ts rename to packages/vike-solid/vite.config.ts diff --git a/vike-solid/with-solid.js b/packages/vike-solid/with-solid.js similarity index 100% rename from vike-solid/with-solid.js rename to packages/vike-solid/with-solid.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 974ecfd..c6a220e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - vike-solid: link:./vike-solid/ + vike-solid: link:./packages/vike-solid/ importers: @@ -39,8 +39,8 @@ importers: specifier: ^0.4.191 version: 0.4.191(vite@5.4.1(@types/node@22.4.0)) vike-solid: - specifier: link:../../vike-solid - version: link:../../vike-solid + specifier: link:../../packages/vike-solid + version: link:../../packages/vike-solid devDependencies: typescript: specifier: ^5.5.4 @@ -58,14 +58,14 @@ importers: specifier: ^0.4.191 version: 0.4.191(vite@5.4.1(@types/node@22.4.0)) vike-solid: - specifier: link:../../vike-solid - version: link:../../vike-solid + specifier: link:../../packages/vike-solid + version: link:../../packages/vike-solid devDependencies: vite: specifier: ^5.4.1 version: 5.4.1(@types/node@22.4.0) - vike-solid: + packages/vike-solid: dependencies: vite-plugin-solid: specifier: ^2.10.2 @@ -80,6 +80,9 @@ importers: '@babel/preset-typescript': specifier: ^7.24.7 version: 7.24.7(@babel/core@7.25.2) + '@biomejs/biome': + specifier: ^1.8.3 + version: 1.8.3 '@brillout/release-me': specifier: ^0.4.0 version: 0.4.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 82b591d..89723f9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - - "vike-solid" + - "packages/*" - "examples/*" diff --git a/vike-solid/README.md b/vike-solid/README.md deleted file mode 100644 index 205ef49..0000000 --- a/vike-solid/README.md +++ /dev/null @@ -1,10 +0,0 @@ -[](https://vike.dev) -[![npm version](https://img.shields.io/npm/v/vike-solid)](https://www.npmjs.com/package/vike-solid) - -# `vike-solid` - -[Solid](https://www.solidjs.com) integration for Vike. - -- Docs at [`vike.dev/vike-solid`](https://vike.dev/vike-solid) -- [Examples](https://github.com/vikejs/vike-solid/tree/main/examples) -- [CHANGELOG.md](https://github.com/vikejs/vike-solid/blob/main/CHANGELOG.md) From b04b04a044c992785f827bf28406c075e1a58eff Mon Sep 17 00:00:00 2001 From: Muhammad Date: Sun, 1 Sep 2024 15:12:49 +0700 Subject: [PATCH 2/6] feat: new extension `vike-solid-query` --- examples/solid-query/.gitignore | 2 + examples/solid-query/README.md | 15 + examples/solid-query/assets/logo.svg | 36 + examples/solid-query/layouts/style.css | 29 + examples/solid-query/package.json | 21 + examples/solid-query/pages/+Head.tsx | 9 + examples/solid-query/pages/+Layout.tsx | 70 ++ examples/solid-query/pages/+config.ts | 13 + examples/solid-query/pages/index/+Page.tsx | 18 + .../solid-query/pages/index/@id/+Page.tsx | 8 + .../solid-query/pages/index/@id/Movie.tsx | 68 ++ examples/solid-query/pages/index/Counter.tsx | 7 + examples/solid-query/pages/index/Movies.tsx | 57 ++ examples/solid-query/pages/index/types.ts | 7 + examples/solid-query/tsconfig.json | 14 + examples/solid-query/vite.config.ts | 7 + packages/vike-solid-query/.gitignore | 2 + packages/vike-solid-query/README.md | 1 + packages/vike-solid-query/global.d.ts | 9 + .../vike-solid-query/integration/+config.ts | 34 + .../vike-solid-query/integration/Wrapper.tsx | 10 + packages/vike-solid-query/package.json | 52 ++ packages/vike-solid-query/rollup.config.js | 18 + .../vike-solid-query/src/QueryBoundary.tsx | 81 +++ packages/vike-solid-query/src/index.ts | 1 + packages/vike-solid-query/tsconfig.json | 21 + packages/vike-solid/types/Config.ts | 4 +- pnpm-lock.yaml | 677 +++++++++++++++++- 28 files changed, 1272 insertions(+), 19 deletions(-) create mode 100644 examples/solid-query/.gitignore create mode 100644 examples/solid-query/README.md create mode 100644 examples/solid-query/assets/logo.svg create mode 100644 examples/solid-query/layouts/style.css create mode 100644 examples/solid-query/package.json create mode 100644 examples/solid-query/pages/+Head.tsx create mode 100644 examples/solid-query/pages/+Layout.tsx create mode 100644 examples/solid-query/pages/+config.ts create mode 100644 examples/solid-query/pages/index/+Page.tsx create mode 100644 examples/solid-query/pages/index/@id/+Page.tsx create mode 100644 examples/solid-query/pages/index/@id/Movie.tsx create mode 100644 examples/solid-query/pages/index/Counter.tsx create mode 100644 examples/solid-query/pages/index/Movies.tsx create mode 100644 examples/solid-query/pages/index/types.ts create mode 100644 examples/solid-query/tsconfig.json create mode 100644 examples/solid-query/vite.config.ts create mode 100644 packages/vike-solid-query/.gitignore create mode 100644 packages/vike-solid-query/README.md create mode 100644 packages/vike-solid-query/global.d.ts create mode 100644 packages/vike-solid-query/integration/+config.ts create mode 100644 packages/vike-solid-query/integration/Wrapper.tsx create mode 100644 packages/vike-solid-query/package.json create mode 100644 packages/vike-solid-query/rollup.config.js create mode 100644 packages/vike-solid-query/src/QueryBoundary.tsx create mode 100644 packages/vike-solid-query/src/index.ts create mode 100644 packages/vike-solid-query/tsconfig.json diff --git a/examples/solid-query/.gitignore b/examples/solid-query/.gitignore new file mode 100644 index 0000000..b0a5c34 --- /dev/null +++ b/examples/solid-query/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/examples/solid-query/README.md b/examples/solid-query/README.md new file mode 100644 index 0000000..f67ba67 --- /dev/null +++ b/examples/solid-query/README.md @@ -0,0 +1,15 @@ +Full-fledged example of using `vike-solid`, showcasing: + +- [Layout](https://vike.dev/Layout) +- Rendering to `` +- Fetching data with [`data()`](https://vike.dev/data) hook +- [Toggling SSR](https://vike.dev/ssr) on a per-page basis. +- [configs](https://vike.dev/config) +- [Error page](https://vike.dev/error-page) + +```bash +git clone git@github.com:vikejs/vike-solid +cd vike-solid/examples/full/ +pnpm install +pnpm run dev +``` diff --git a/examples/solid-query/assets/logo.svg b/examples/solid-query/assets/logo.svg new file mode 100644 index 0000000..94d3caa --- /dev/null +++ b/examples/solid-query/assets/logo.svg @@ -0,0 +1,36 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/solid-query/layouts/style.css b/examples/solid-query/layouts/style.css new file mode 100644 index 0000000..7afa4ca --- /dev/null +++ b/examples/solid-query/layouts/style.css @@ -0,0 +1,29 @@ +/* Links */ +a { + text-decoration: none; +} +#sidebar a { + padding: 2px 10px; + margin-left: -10px; +} +#sidebar a.is-active { + background-color: #eee; +} + +/* Reset */ +body { + margin: 0; + font-family: sans-serif; +} +* { + box-sizing: border-box; +} + +/* Page Transition Anmiation */ +#page-content { + opacity: 1; + transition: opacity 0.3s ease-in-out; +} +body.page-is-transitioning #page-content { + opacity: 0; +} diff --git a/examples/solid-query/package.json b/examples/solid-query/package.json new file mode 100644 index 0000000..131ce5a --- /dev/null +++ b/examples/solid-query/package.json @@ -0,0 +1,21 @@ +{ + "private": true, + "scripts": { + "dev": "vite dev", + "preview": "vite build && vite preview", + "test": "tsc --noEmit" + }, + "dependencies": { + "@tanstack/solid-query": "5.52.2", + "node-fetch": "^3.3.2", + "solid-js": "^1.8.21", + "vike": "^0.4.191", + "vike-solid": "workspace:^", + "vike-solid-query": "workspace:^" + }, + "devDependencies": { + "typescript": "^5.5.4", + "vite": "^5.4.2" + }, + "type": "module" +} diff --git a/examples/solid-query/pages/+Head.tsx b/examples/solid-query/pages/+Head.tsx new file mode 100644 index 0000000..94b905e --- /dev/null +++ b/examples/solid-query/pages/+Head.tsx @@ -0,0 +1,9 @@ +import logoUrl from "../assets/logo.svg"; + +export function Head() { + return ( + <> + + + ); +} diff --git a/examples/solid-query/pages/+Layout.tsx b/examples/solid-query/pages/+Layout.tsx new file mode 100644 index 0000000..322a898 --- /dev/null +++ b/examples/solid-query/pages/+Layout.tsx @@ -0,0 +1,70 @@ +import "../layouts/style.css"; +import logoUrl from "../assets/logo.svg"; +import type { JSX } from "solid-js"; + +export function Layout(props: { children?: JSX.Element }) { + return ( +
+ + + + {props.children} +
+ ); +} + +function Sidebar(props: { children: JSX.Element }) { + return ( + + ); +} + +function Content(props: { children: JSX.Element }) { + return ( +
+
+ {props.children} +
+
+ ); +} + +function Logo() { + return ( +
+ + + +
+ ); +} diff --git a/examples/solid-query/pages/+config.ts b/examples/solid-query/pages/+config.ts new file mode 100644 index 0000000..976f059 --- /dev/null +++ b/examples/solid-query/pages/+config.ts @@ -0,0 +1,13 @@ +import vikeSolid from "vike-solid/config"; +import vikeSolidQuery from "vike-solid-query/config"; +import type { Config } from "vike/types"; + +// Default config (can be overridden by pages) +export default { + title: "My Vike + Solid App", // + + passToClient: ["routeParams"], + stream: true, + injectScriptsAt: "STREAM", + extends: [vikeSolid, vikeSolidQuery], +} satisfies Config; diff --git a/examples/solid-query/pages/index/+Page.tsx b/examples/solid-query/pages/index/+Page.tsx new file mode 100644 index 0000000..e64f8ab --- /dev/null +++ b/examples/solid-query/pages/index/+Page.tsx @@ -0,0 +1,18 @@ +import { Counter } from "./Counter"; +import { Movies } from "./Movies"; + +export function Page() { + return ( + <> + <h1>My Vike + React app</h1> + This page is: + <ul> + <li>Rendered to HTML.</li> + <li> + Interactive while loading. <Counter /> + </li> + </ul> + <Movies /> + </> + ); +} diff --git a/examples/solid-query/pages/index/@id/+Page.tsx b/examples/solid-query/pages/index/@id/+Page.tsx new file mode 100644 index 0000000..7c7bf41 --- /dev/null +++ b/examples/solid-query/pages/index/@id/+Page.tsx @@ -0,0 +1,8 @@ +import { usePageContext } from "vike-solid/usePageContext"; +import { Movie } from "./Movie"; + +export function Page() { + const pageContext = usePageContext(); + const id = pageContext.routeParams["id"]; + return <Movie id={id} />; +} diff --git a/examples/solid-query/pages/index/@id/Movie.tsx b/examples/solid-query/pages/index/@id/Movie.tsx new file mode 100644 index 0000000..14630db --- /dev/null +++ b/examples/solid-query/pages/index/@id/Movie.tsx @@ -0,0 +1,68 @@ +import { createQuery } from "@tanstack/solid-query"; +import { QueryBoundary } from "vike-solid-query"; +import { Config } from "vike-solid/Config"; +import type { MovieDetails } from "../types"; + +export function Movie(props: { id: string }) { + const query = createQuery(() => ({ + queryKey: ["movies", props.id], + queryFn: () => getStarWarsMovie(props.id), + // Disabled to showcase error fallback + retry: false, + })); + + return ( + <QueryBoundary + query={query} + loadingFallback={<p>Loading movie {props.id}</p>} + errorFallback={(err, reset) => ( + <> + <div>Loading movie {props.id} failed</div> + <div>{err.toString()}</div> + <button + onClick={async () => { + reset(); + await query.refetch(); + }} + > + Retry + </button> + </> + )} + > + {(movie) => ( + <> + <Config + title={movie.title} + Head={ + <meta name="description" content={`Star Wars Movie ${query.data?.title} from ${query.data?.director}`} /> + } + /> + <h1>Star Wars Movies</h1> + <ul> + <li> + Title: <b>{movie.title}</b> + </li> + <li> + Release date: <b>{movie.release_date}</b> + </li> + </ul> + <p> + Source: <a href="https://star-wars.brillout.com">star-wars.brillout.com</a>. + </p> + </> + )} + </QueryBoundary> + ); +} + +async function getStarWarsMovie(id: string): Promise<MovieDetails> { + await new Promise((r) => setTimeout(r, 500)); + + if (Math.random() > 0.4) { + throw new Error("Failed to fetch"); + } + + const response = await fetch(`https://star-wars.brillout.com/api/films/${id}.json`); + return response.json(); +} diff --git a/examples/solid-query/pages/index/Counter.tsx b/examples/solid-query/pages/index/Counter.tsx new file mode 100644 index 0000000..b79c275 --- /dev/null +++ b/examples/solid-query/pages/index/Counter.tsx @@ -0,0 +1,7 @@ +import { createSignal } from "solid-js"; + +export function Counter() { + const [count, setCount] = createSignal(0); + + return <button onClick={() => setCount((count) => count + 1)}>Counter {count()}</button>; +} diff --git a/examples/solid-query/pages/index/Movies.tsx b/examples/solid-query/pages/index/Movies.tsx new file mode 100644 index 0000000..07713d1 --- /dev/null +++ b/examples/solid-query/pages/index/Movies.tsx @@ -0,0 +1,57 @@ +import { createQuery } from "@tanstack/solid-query"; +import type { MovieDetails } from "./types"; +import { QueryBoundary } from "vike-solid-query"; +import { For } from "solid-js"; +import { navigate } from "vike/client/router"; +import { Config } from "vike-solid/Config"; +import { Head } from "vike-solid/Head"; + +export function Movies() { + const query = createQuery(() => ({ + queryKey: ["movies"], + queryFn: getStarWarsMovies, + })); + + const onNavigate = (id: string) => { + navigate(`/${id}`); + }; + + return ( + <QueryBoundary query={query} loadingFallback={<p>Loading movies ...</p>}> + {(movies) => ( + <> + <Config title={`${movies.length} Star Wars movies`} /> + <Head> + <meta name="description" content={`List of ${movies.length} Star Wars movies.`} /> + </Head> + <h1>Star Wars Movies</h1> + <ol> + <For each={movies}> + {(movie) => ( + <li> + <button onClick={() => onNavigate(movie.id)}>{movie.title}</button> ({movie.release_date}) + </li> + )} + </For> + </ol> + <p> + Source: <a href="https://star-wars.brillout.com">star-wars.brillout.com</a>. + </p> + </> + )} + </QueryBoundary> + ); +} + +async function getStarWarsMovies(): Promise<MovieDetails[]> { + // Simulate slow network + await new Promise((r) => setTimeout(r, 2000)); + + const response = await fetch("https://star-wars.brillout.com/api/films.json"); + let movies: MovieDetails[] = ((await response.json()) as any).results; + movies = movies.map((movie: MovieDetails, i: number) => ({ + ...movie, + id: String(i + 1), + })); + return movies; +} diff --git a/examples/solid-query/pages/index/types.ts b/examples/solid-query/pages/index/types.ts new file mode 100644 index 0000000..e0d274d --- /dev/null +++ b/examples/solid-query/pages/index/types.ts @@ -0,0 +1,7 @@ +export type MovieDetails = { + id: string; + title: string; + release_date: string; + director: string; + producer: string; +}; diff --git a/examples/solid-query/tsconfig.json b/examples/solid-query/tsconfig.json new file mode 100644 index 0000000..c862179 --- /dev/null +++ b/examples/solid-query/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "strict": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "target": "ES2021", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "types": ["vike-solid/client"], + "jsx": "preserve", + "jsxImportSource": "solid-js", + "skipLibCheck": true, + "esModuleInterop": true + } +} diff --git a/examples/solid-query/vite.config.ts b/examples/solid-query/vite.config.ts new file mode 100644 index 0000000..3c5af6a --- /dev/null +++ b/examples/solid-query/vite.config.ts @@ -0,0 +1,7 @@ +import vikeSolid from "vike-solid/vite"; +import vike from "vike/plugin"; +import type { UserConfig } from "vite"; + +export default { + plugins: [vike(), vikeSolid()], +} satisfies UserConfig; diff --git a/packages/vike-solid-query/.gitignore b/packages/vike-solid-query/.gitignore new file mode 100644 index 0000000..b0a5c34 --- /dev/null +++ b/packages/vike-solid-query/.gitignore @@ -0,0 +1,2 @@ +/node_modules/ +/dist/ diff --git a/packages/vike-solid-query/README.md b/packages/vike-solid-query/README.md new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/packages/vike-solid-query/README.md @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/packages/vike-solid-query/global.d.ts b/packages/vike-solid-query/global.d.ts new file mode 100644 index 0000000..0957a49 --- /dev/null +++ b/packages/vike-solid-query/global.d.ts @@ -0,0 +1,9 @@ +import type { QueryClientConfig } from "@tanstack/solid-query"; + +declare global { + namespace Vike { + interface Config { + queryClientConfig?: QueryClientConfig; + } + } +} diff --git a/packages/vike-solid-query/integration/+config.ts b/packages/vike-solid-query/integration/+config.ts new file mode 100644 index 0000000..de68f70 --- /dev/null +++ b/packages/vike-solid-query/integration/+config.ts @@ -0,0 +1,34 @@ +import type { Config } from "vike/types"; +import type { QueryClientConfig } from "@tanstack/solid-query"; +import "vike-solid/config"; // Needed for declaration merging of Config + +export default { + name: "vike-solid-query", + require: { + "vike-solid": ">=0.7.3", + }, + Wrapper: "import:vike-solid-query/__internal/integration/Wrapper:default", + queryClientConfig: { + defaultOptions: { + queries: { + staleTime: 5000, + }, + }, + }, + meta: { + queryClientConfig: { + env: { + server: true, + client: true, + }, + }, + }, +} satisfies Config; + +declare global { + namespace Vike { + interface Config { + queryClientConfig?: QueryClientConfig; + } + } +} diff --git a/packages/vike-solid-query/integration/Wrapper.tsx b/packages/vike-solid-query/integration/Wrapper.tsx new file mode 100644 index 0000000..8b8f034 --- /dev/null +++ b/packages/vike-solid-query/integration/Wrapper.tsx @@ -0,0 +1,10 @@ +import { QueryClient, QueryClientProvider } from "@tanstack/solid-query"; +import type { JSX } from "solid-js"; +import { usePageContext } from "vike-solid/usePageContext"; + +export default function Wrapper(props: { children: JSX.Element }) { + const pageContext = usePageContext(); + const queryClient = new QueryClient(pageContext.config.queryClientConfig); + + return <QueryClientProvider client={queryClient}>{props.children}</QueryClientProvider>; +} diff --git a/packages/vike-solid-query/package.json b/packages/vike-solid-query/package.json new file mode 100644 index 0000000..d952b1d --- /dev/null +++ b/packages/vike-solid-query/package.json @@ -0,0 +1,52 @@ +{ + "name": "vike-solid-query", + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "rollup -c rollup.config.js --watch", + "dev:typecheck": "tsc --noEmit --watch", + "build": "rollup -c rollup.config.js && tsc", + "release": "LANG=en_US release-me patch", + "release:minor": "LANG=en_US release-me minor", + "release:commit": "LANG=en_US release-me commit" + }, + "peerDependencies": { + "@tanstack/solid-query": ">=5.0.0", + "solid-js": "^1.8.7", + "vike-solid": ">=0.7.3" + }, + "devDependencies": { + "@rollup/plugin-babel": "6.0.4", + "@rollup/plugin-node-resolve": "15.2.3", + "@tanstack/solid-query": "^5.52.2", + "rimraf": "^6.0.1", + "rollup": "^4.21.0", + "rollup-plugin-dts": "6.1.1", + "solid-js": "^1.8.21", + "tsup": "^8.2.4", + "typescript": "^5.5.4", + "vike": "^0.4.193", + "vike-solid": "^0.7.3", + "vite": "5.4.2" + }, + "exports": { + ".": "./dist/src/index.js", + "./config": "./dist/integration/+config.js", + "./__internal/integration/Wrapper": "./dist/integration/Wrapper.js" + }, + "typesVersions": { + "*": { + "config": [ + "dist/integration/+config.d.ts" + ], + "__internal/integration/Wrapper": [ + "dist/integration/Wrapper.d.ts" + ] + } + }, + "files": [ + "dist/" + ], + "repository": "github:vikejs/vike-solid-query", + "license": "MIT" +} \ No newline at end of file diff --git a/packages/vike-solid-query/rollup.config.js b/packages/vike-solid-query/rollup.config.js new file mode 100644 index 0000000..2d3eb2e --- /dev/null +++ b/packages/vike-solid-query/rollup.config.js @@ -0,0 +1,18 @@ +import withSolid from "../vike-solid/with-solid.js"; +import dts from "rollup-plugin-dts"; + +export default [ + withSolid({ + input: { + "integration/+config": "./integration/+config.ts", + "integration/Wrapper": "./integration/Wrapper.tsx", + }, + ssr: true, + external: ["vike-solid/usePageContext"], + }), + { + input: ["./integration/+config.ts", "./integration/Wrapper.tsx"], + output: [{ dir: "dist", format: "es", sanitizeFileName: false }], + plugins: [dts()], + }, +]; diff --git a/packages/vike-solid-query/src/QueryBoundary.tsx b/packages/vike-solid-query/src/QueryBoundary.tsx new file mode 100644 index 0000000..90cc0ca --- /dev/null +++ b/packages/vike-solid-query/src/QueryBoundary.tsx @@ -0,0 +1,81 @@ +// From https://github.com/TanStack/query/blob/main/examples/solid/solid-start-streaming/src/components/query-boundary.tsx +import type { CreateQueryResult } from "@tanstack/solid-query"; +import type { JSX } from "solid-js"; +import { ErrorBoundary, Match, Suspense, Switch } from "solid-js"; + +export interface QueryBoundaryProps<T = unknown> { + query: CreateQueryResult<T, Error>; + + /** + * Triggered when the data is initially loading. + */ + loadingFallback?: JSX.Element; + + /** + * Triggered when fetching is complete, but the returned data was falsey. + */ + notFoundFallback?: JSX.Element; + + /** + * Triggered when the query results in an error. + */ + errorFallback?: JSX.Element | ((err: any, reset: () => void) => JSX.Element); + + /** + * Triggered when fetching is complete, and the returned data is not falsey. + */ + children: (data: Exclude<T, null | false | undefined>) => JSX.Element; +} + +/** + * Convenience wrapper that handles suspense and errors for queries. Makes the results of query.data available to + * children (as a render prop) in a type-safe way. + */ +export function QueryBoundary<T>(props: QueryBoundaryProps<T>) { + return ( + <ErrorBoundary + fallback={ + props.errorFallback + ? props.errorFallback + : (err, reset) => ( + <div> + <div class="query-boundary-error">{err.toString()}</div> + <button + onClick={async () => { + reset(); + await props.query.refetch(); + }} + > + Retry + </button> + </div> + ) + } + > + <Suspense fallback={props.loadingFallback}> + <Switch> + <Match when={!props.query.isFetching && !props.query.data}> + {props.notFoundFallback ? ( + props.notFoundFallback + ) : ( + <> + <div>Not Found,</div> + <button + onClick={async () => { + await props.query.refetch(); + }} + > + Refetch + </button> + </> + )} + </Match> + + <Match when={props.query.data}> + {props.children(props.query.data as Exclude<T, null | false | undefined>)} + </Match> + </Switch> + </Suspense> + </ErrorBoundary> + ); +} diff --git a/packages/vike-solid-query/src/index.ts b/packages/vike-solid-query/src/index.ts new file mode 100644 index 0000000..25eef5a --- /dev/null +++ b/packages/vike-solid-query/src/index.ts @@ -0,0 +1 @@ +export { QueryBoundary } from "./QueryBoundary"; diff --git a/packages/vike-solid-query/tsconfig.json b/packages/vike-solid-query/tsconfig.json new file mode 100644 index 0000000..7dc266b --- /dev/null +++ b/packages/vike-solid-query/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "node", + "strict": true, + "noUncheckedIndexedAccess": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "jsx": "preserve", + "jsxImportSource": "solid-js", + "allowJs": true, + "types": ["vite/client"], + "isolatedModules": true, + "outDir": "./dist", + "declaration": true, + "skipLibCheck": true, + "rootDir": "./" + }, + "include": ["src/*", "global.d.ts"] +} diff --git a/packages/vike-solid/types/Config.ts b/packages/vike-solid/types/Config.ts index 198bd1a..ca4b84b 100644 --- a/packages/vike-solid/types/Config.ts +++ b/packages/vike-solid/types/Config.ts @@ -1,4 +1,4 @@ -import type { PageContextServer, PageContext, PageContextClient } from "vike/types"; +import type { PageContextServer, PageContext, PageContextClient, ImportString } from "vike/types"; import type { TagAttributes } from "../utils/getTagAttributesString"; import type { Viewport } from "../integration/onRenderHtml"; import type { ConfigsCumulative } from "../hooks/useConfig/configsCumulative"; @@ -36,7 +36,7 @@ declare global { * * https://vike.dev/Wrapper */ - Wrapper?: Component; + Wrapper?: Component | ImportString; /** * Set the page's tilte. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44bac50..4dcf9ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,7 +37,7 @@ importers: version: 1.8.21 vike: specifier: ^0.4.191 - version: 0.4.193(vite@5.4.2(@types/node@22.4.0)) + version: 0.4.193(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)) vike-solid: specifier: link:../../packages/vike-solid version: link:../../packages/vike-solid @@ -47,7 +47,7 @@ importers: version: 5.5.4 vite: specifier: ^5.4.1 - version: 5.4.2(@types/node@22.4.0) + version: 5.4.2(@types/node@22.4.0)(terser@5.31.6) examples/minimal: dependencies: @@ -56,20 +56,48 @@ importers: version: 1.8.21 vike: specifier: ^0.4.191 - version: 0.4.193(vite@5.4.2(@types/node@22.4.0)) + version: 0.4.193(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)) vike-solid: specifier: link:../../packages/vike-solid version: link:../../packages/vike-solid devDependencies: vite: specifier: ^5.4.1 - version: 5.4.2(@types/node@22.4.0) + version: 5.4.2(@types/node@22.4.0)(terser@5.31.6) + + examples/solid-query: + dependencies: + '@tanstack/solid-query': + specifier: 5.52.2 + version: 5.52.2(solid-js@1.8.21) + node-fetch: + specifier: ^3.3.2 + version: 3.3.2 + solid-js: + specifier: ^1.8.21 + version: 1.8.21 + vike: + specifier: ^0.4.191 + version: 0.4.193(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)) + vike-solid: + specifier: link:../../packages/vike-solid + version: link:../../packages/vike-solid + vike-solid-query: + specifier: workspace:^ + version: link:../../packages/vike-solid-query + devDependencies: + typescript: + specifier: ^5.5.4 + version: 5.5.4 + vite: + specifier: ^5.4.2 + version: 5.4.2(@types/node@22.4.0)(terser@5.31.6) packages/vike-solid: dependencies: vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(solid-js@1.8.21)(vite@5.4.2(@types/node@22.4.0)) + version: 2.10.2(solid-js@1.8.21)(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)) devDependencies: '@babel/core': specifier: ^7.25.2 @@ -118,10 +146,49 @@ importers: version: 5.5.4 vike: specifier: ^0.4.193 - version: 0.4.193(vite@5.4.2(@types/node@22.4.0)) + version: 0.4.193(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)) vite: specifier: ^5.4.2 - version: 5.4.2(@types/node@22.4.0) + version: 5.4.2(@types/node@22.4.0)(terser@5.31.6) + + packages/vike-solid-query: + devDependencies: + '@rollup/plugin-babel': + specifier: 6.0.4 + version: 6.0.4(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@4.21.0) + '@rollup/plugin-node-resolve': + specifier: 15.2.3 + version: 15.2.3(rollup@4.21.0) + '@tanstack/solid-query': + specifier: ^5.52.2 + version: 5.52.2(solid-js@1.8.21) + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + rollup: + specifier: ^4.21.0 + version: 4.21.0 + rollup-plugin-dts: + specifier: 6.1.1 + version: 6.1.1(rollup@4.21.0)(typescript@5.5.4) + solid-js: + specifier: ^1.8.21 + version: 1.8.21 + tsup: + specifier: ^8.2.4 + version: 8.2.4(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4) + typescript: + specifier: ^5.5.4 + version: 5.5.4 + vike: + specifier: ^0.4.193 + version: 0.4.193(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)) + vike-solid: + specifier: link:../vike-solid + version: link:../vike-solid + vite: + specifier: 5.4.2 + version: 5.4.2(@types/node@22.4.0)(terser@5.31.6) packages: @@ -1100,6 +1167,10 @@ packages: resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} engines: {node: '>=10.13.0'} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1112,6 +1183,9 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} @@ -1134,6 +1208,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} @@ -1248,6 +1326,14 @@ packages: cpu: [x64] os: [win32] + '@tanstack/query-core@5.52.2': + resolution: {integrity: sha512-9vvbFecK4A0nDnrc/ks41e3UHONF1DAnGz8Tgbxkl59QcvKWmc0ewhYuIKRh8NC4ja5LTHT9EH16KHbn2AIYWA==} + + '@tanstack/solid-query@5.52.2': + resolution: {integrity: sha512-0wVnjusBQXpiSzTAmu+S90cmkqfA4caOH0ELYf7uS1YKQ62im2jVEtPvRmNaNvuPw/1ZLGesA0XI4obbnF5ZuQ==} + peerDependencies: + solid-js: ^1.6.0 + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1288,10 +1374,25 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1302,6 +1403,10 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -1330,10 +1435,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -1355,6 +1466,12 @@ packages: engines: {node: '>=10'} hasBin: true + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + c12@1.11.1: resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} peerDependencies: @@ -1398,13 +1515,27 @@ packages: color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} @@ -1507,6 +1638,15 @@ packages: supports-color: optional: true + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + deep-eql@4.1.4: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} @@ -1521,6 +1661,10 @@ packages: destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -1529,9 +1673,18 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + electron-to-chromium@1.5.13: resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -1590,6 +1743,10 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -1644,10 +1801,23 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -1676,6 +1846,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -1694,6 +1868,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -1728,10 +1906,21 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.0.1: + resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} + engines: {node: 20 || >=22} + jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1771,10 +1960,21 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lines-and-columns@2.0.4: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1782,6 +1982,9 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} @@ -1789,6 +1992,10 @@ packages: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} + lru-cache@11.0.0: + resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -1822,6 +2029,14 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -1833,6 +2048,10 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -1852,6 +2071,9 @@ packages: ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -1904,6 +2126,10 @@ packages: engines: {node: ^14.16.0 || >=16.10.0} hasBin: true + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} @@ -1923,6 +2149,9 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + parse-json@7.1.1: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} @@ -1942,6 +2171,18 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -1958,6 +2199,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + pixelmatch@5.3.0: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true @@ -1989,6 +2234,24 @@ packages: resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==} engines: {node: '>=12.13.0'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss@8.4.41: resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} engines: {node: ^10 || ^12 || >=14} @@ -2002,6 +2265,10 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2041,6 +2308,10 @@ packages: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -2049,6 +2320,11 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + rollup-plugin-dts@6.1.1: resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} engines: {node: '>=16'} @@ -2105,6 +2381,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + solid-js@1.8.21: resolution: {integrity: sha512-FHUGdoo7GVa1BTpGh/4UtwIISde0vSXoqNB6KFpHiTgkIY959tmCJ7NYQAWDfScBfnpoMGZR8lFz0DiwW/gFlw==} @@ -2124,6 +2404,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -2144,10 +2428,22 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -2156,6 +2452,11 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -2168,10 +2469,22 @@ packages: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} + terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + engines: {node: '>=10'} + hasBin: true + text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -2190,9 +2503,38 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tsup@8.2.4: + resolution: {integrity: sha512-akpCPePnBnC/CXgRrcy72ZSntgIEUa1jN0oJbbvpALWKNOz1B7aM+UVDWGRGIO/T/PZugAESWDJUAb5FD48o8Q==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -2316,9 +2658,15 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2327,6 +2675,14 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -2364,7 +2720,7 @@ snapshots: '@babel/traverse': 7.25.4 '@babel/types': 7.25.4 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2422,7 +2778,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.4 + debug: 4.3.6 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -3363,6 +3719,15 @@ snapshots: '@hutson/parse-repository-url@5.0.0': {} + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -3373,6 +3738,12 @@ snapshots: '@jridgewell/set-array@1.2.1': {} + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + optional: true + '@jridgewell/sourcemap-codec@1.4.15': {} '@jridgewell/trace-mapping@0.3.25': @@ -3399,6 +3770,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + '@pkgjs/parseargs@0.11.0': + optional: true + '@polka/url@1.0.0-next.25': {} '@rollup/plugin-babel@6.0.4(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@4.21.0)': @@ -3479,6 +3853,13 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.21.0': optional: true + '@tanstack/query-core@5.52.2': {} + + '@tanstack/solid-query@5.52.2(solid-js@1.8.21)': + dependencies: + '@tanstack/query-core': 5.52.2 + solid-js: 1.8.21 + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.25.4 @@ -3521,10 +3902,20 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.0.1: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -3534,6 +3925,8 @@ snapshots: array-ify@1.0.0: {} + array-union@2.1.0: {} + assertion-error@1.1.0: {} babel-plugin-jsx-dom-expressions@0.38.1(@babel/core@7.25.2): @@ -3574,8 +3967,14 @@ snapshots: '@babel/core': 7.25.2 babel-plugin-jsx-dom-expressions: 0.38.1(@babel/core@7.25.2) + balanced-match@1.0.2: {} + binary-extensions@2.2.0: {} + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + braces@3.0.2: dependencies: fill-range: 7.0.1 @@ -3605,6 +4004,11 @@ snapshots: transitivePeerDependencies: - magicast + bundle-require@5.0.0(esbuild@0.23.1): + dependencies: + esbuild: 0.23.1 + load-tsconfig: 0.2.5 + c12@1.11.1: dependencies: chokidar: 3.6.0 @@ -3668,10 +4072,21 @@ snapshots: dependencies: color-name: 1.1.3 + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} + commander@11.1.0: {} + commander@2.20.3: + optional: true + + commander@4.1.1: {} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 @@ -3774,6 +4189,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.6: + dependencies: + ms: 2.1.2 + deep-eql@4.1.4: dependencies: type-detect: 4.0.8 @@ -3784,14 +4203,24 @@ snapshots: destr@2.0.3: {} + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 dotenv@16.4.5: {} + eastasianwidth@0.2.0: {} + electron-to-chromium@1.5.13: {} + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -3909,6 +4338,11 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -3959,8 +4393,35 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + glob@11.0.0: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 + globals@11.12.0: {} + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -3986,6 +4447,8 @@ snapshots: human-signals@5.0.0: {} + ignore@5.3.2: {} + is-arrayish@0.2.1: {} is-binary-path@2.1.0: @@ -4002,6 +4465,8 @@ snapshots: is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -4024,8 +4489,22 @@ snapshots: isexe@2.0.0: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.0.1: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jiti@1.21.6: {} + joycon@3.1.1: {} + js-tokens@4.0.0: {} js-yaml@4.1.0: @@ -4048,20 +4527,30 @@ snapshots: kleur@3.0.3: {} + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + lines-and-columns@2.0.4: {} + load-tsconfig@0.2.5: {} + locate-path@7.2.0: dependencies: p-locate: 6.0.0 lodash.debounce@4.0.8: {} + lodash.sortby@4.7.0: {} + loupe@2.3.7: dependencies: get-func-name: 2.0.2 lru-cache@10.2.2: {} + lru-cache@11.0.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -4089,6 +4578,14 @@ snapshots: mimic-fn@4.0.0: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} minipass@3.3.6: @@ -4097,6 +4594,8 @@ snapshots: minipass@5.0.0: {} + minipass@7.1.2: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 @@ -4115,6 +4614,12 @@ snapshots: ms@2.1.2: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.7: {} neo-async@2.6.2: {} @@ -4161,6 +4666,8 @@ snapshots: pkg-types: 1.1.3 ufo: 1.5.4 + object-assign@4.1.1: {} + ohash@1.1.3: {} onetime@5.1.2: @@ -4179,6 +4686,8 @@ snapshots: dependencies: p-limit: 4.0.0 + package-json-from-dist@1.0.0: {} + parse-json@7.1.1: dependencies: '@babel/code-frame': 7.24.7 @@ -4195,6 +4704,18 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.2 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.0 + minipass: 7.1.2 + + path-type@4.0.0: {} + pathe@1.1.2: {} pathval@1.1.1: {} @@ -4205,6 +4726,8 @@ snapshots: picomatch@2.3.1: {} + pirates@4.0.6: {} + pixelmatch@5.3.0: dependencies: pngjs: 6.0.0 @@ -4231,6 +4754,13 @@ snapshots: pngjs@6.0.0: {} + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.41): + dependencies: + lilconfig: 3.1.2 + optionalDependencies: + jiti: 1.21.6 + postcss: 8.4.41 + postcss@8.4.41: dependencies: nanoid: 3.3.7 @@ -4244,6 +4774,8 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 + punycode@2.3.1: {} + queue-microtask@1.2.3: {} rc9@2.1.2: @@ -4293,6 +4825,8 @@ snapshots: dependencies: jsesc: 0.5.0 + resolve-from@5.0.0: {} + resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -4301,6 +4835,11 @@ snapshots: reusify@1.0.4: {} + rimraf@6.0.1: + dependencies: + glob: 11.0.0 + package-json-from-dist: 1.0.0 + rollup-plugin-dts@6.1.1(rollup@4.21.0)(typescript@5.5.4): dependencies: magic-string: 0.30.10 @@ -4363,6 +4902,8 @@ snapshots: sisteransi@1.0.5: {} + slash@3.0.0: {} + solid-js@1.8.21: dependencies: csstype: 3.1.3 @@ -4387,6 +4928,10 @@ snapshots: source-map@0.6.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -4405,14 +4950,40 @@ snapshots: string-argv@0.3.2: {} + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -4428,8 +4999,24 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + terser@5.31.6: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + optional: true + text-extensions@2.4.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + through@2.3.8: {} to-fast-properties@2.0.0: {} @@ -4442,8 +5029,43 @@ snapshots: tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + ts-interface-checker@0.1.13: {} + tslib@2.7.0: {} + tsup@8.2.4(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4): + dependencies: + bundle-require: 5.0.0(esbuild@0.23.1) + cac: 6.7.14 + chokidar: 3.6.0 + consola: 3.2.3 + debug: 4.3.6 + esbuild: 0.23.1 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + picocolors: 1.0.1 + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.41) + resolve-from: 5.0.0 + rollup: 4.21.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.4.41 + typescript: 5.5.4 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + type-detect@4.0.8: {} type-fest@3.13.1: {} @@ -4483,7 +5105,7 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vike@0.4.193(vite@5.4.2(@types/node@22.4.0)): + vike@0.4.193(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)): dependencies: '@brillout/import': 0.2.3 '@brillout/json-serializer': 0.5.13 @@ -4498,9 +5120,9 @@ snapshots: semver: 7.6.3 sirv: 2.0.4 source-map-support: 0.5.21 - vite: 5.4.2(@types/node@22.4.0) + vite: 5.4.2(@types/node@22.4.0)(terser@5.31.6) - vite-plugin-solid@2.10.2(solid-js@1.8.21)(vite@5.4.2(@types/node@22.4.0)): + vite-plugin-solid@2.10.2(solid-js@1.8.21)(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)): dependencies: '@babel/core': 7.25.2 '@types/babel__core': 7.20.5 @@ -4508,12 +5130,12 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.8.21 solid-refresh: 0.6.3(solid-js@1.8.21) - vite: 5.4.2(@types/node@22.4.0) - vitefu: 0.2.5(vite@5.4.2(@types/node@22.4.0)) + vite: 5.4.2(@types/node@22.4.0)(terser@5.31.6) + vitefu: 0.2.5(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)) transitivePeerDependencies: - supports-color - vite@5.4.2(@types/node@22.4.0): + vite@5.4.2(@types/node@22.4.0)(terser@5.31.6): dependencies: esbuild: 0.21.5 postcss: 8.4.41 @@ -4521,26 +5143,47 @@ snapshots: optionalDependencies: '@types/node': 22.4.0 fsevents: 2.3.3 + terser: 5.31.6 - vitefu@0.2.5(vite@5.4.2(@types/node@22.4.0)): + vitefu@0.2.5(vite@5.4.2(@types/node@22.4.0)(terser@5.31.6)): optionalDependencies: - vite: 5.4.2(@types/node@22.4.0) + vite: 5.4.2(@types/node@22.4.0)(terser@5.31.6) web-streams-polyfill@3.2.1: {} webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 wordwrap@1.0.0: {} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + yallist@3.1.1: {} yallist@4.0.0: {} From 555aa71cdf049089724ac77ac32ff03f0ff8cef8 Mon Sep 17 00:00:00 2001 From: Muhammad <phonzammizaki@gmail.com> Date: Tue, 3 Sep 2024 23:54:29 +0700 Subject: [PATCH 3/6] fix(useConfig): enable using `useConfig()` with HTML streaming --- packages/vike-solid/hooks/useConfig/useConfig-server.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/vike-solid/hooks/useConfig/useConfig-server.ts b/packages/vike-solid/hooks/useConfig/useConfig-server.ts index 7de83db..04464d5 100644 --- a/packages/vike-solid/hooks/useConfig/useConfig-server.ts +++ b/packages/vike-solid/hooks/useConfig/useConfig-server.ts @@ -20,13 +20,7 @@ function useConfig(): (config: ConfigFromHook) => void { // Component pageContext = usePageContext(); - return (config: ConfigFromHook) => { - if (!pageContext._headAlreadySet) { - setPageContextConfigFromHook(config, pageContext); - } else { - throw new Error("Using useConfig() with HTML streaming isn't supported yet"); - } - }; + return (config: ConfigFromHook) => setPageContextConfigFromHook(config, pageContext); } const configsClientSide = ["title"]; From dfc521d35b6bebb2298dffa56cd78708f99d9fb4 Mon Sep 17 00:00:00 2001 From: Muhammad <phonzammizaki@gmail.com> Date: Wed, 4 Sep 2024 21:27:56 +0700 Subject: [PATCH 4/6] chore: update README.md --- packages/vike-solid-query/README.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/vike-solid-query/README.md b/packages/vike-solid-query/README.md index c60a138..1226999 100644 --- a/packages/vike-solid-query/README.md +++ b/packages/vike-solid-query/README.md @@ -23,7 +23,7 @@ Enables your Solid components to fetch data using [TanStack Query](https://tanst ```js // pages/+config.js - import vikeSolid from 'vike-Solid/config' + import vikeSolid from 'vike-solid/config' import vikeSolidQuery from 'vike-solid-query/config' export default { @@ -61,22 +61,24 @@ const Movie = (props: { id }) => { ```jsx // Define loading fallback <QueryBoundary query={query} loadingFallback={Loading}> - <Component /> + {(data) => <div>{data.something}</div>} </QueryBoundary> // Define loading and error fallback <QueryBoundary query={query} loadingFallback={Loading} errorFallback={Error}> - <Component /> + {(data) => <div>{data.something}</div>} </QueryBoundary> // Define loading, error and not found fallback <QueryBoundary query={query} loadingFallback={Loading} errorFallback={Error} notFoundFallback={NotFound}> - <Component /> + {(data) => <div>{data.something}</div>} </QueryBoundary> ``` -> [!NOTE] Fallbacks type +> [!NOTE] Types +> `query: CreateQueryResult<T, Error>;` > `loadingFallback?: JSX.Element;` > `notFoundFallback?: JSX.Element;` -> `errorFallback?: JSX.Element | ((err: any, reset: () => void) => JSX.Element);` +> `errorFallback?: JSX.Element | ((err: any, reset: () => void) => JSX.Element);` +> `children: (data: Exclude<T, null | false | undefined>) => JSX.Element;` ```tsx import { createQuery } from "@tanstack/solid-query"; @@ -130,10 +132,6 @@ import { QueryBoundary } from "vike-solid-query"; import { For } from "solid-js"; function Movies() { - const query = useSuspenseQuery({ - queryKey: ['movies'], - queryFn: () => fetch('https://star-wars.brillout.com/api/films.json') - }) const query = createQuery(() => ({ queryKey: ["movies"], queryFn: () => fetch('https://star-wars.brillout.com/api/films.json') From 3e5d9402fe143acff3a0ab2bf86f0bea50d61767 Mon Sep 17 00:00:00 2001 From: Muhammad <phonzammizaki@gmail.com> Date: Wed, 4 Sep 2024 21:35:23 +0700 Subject: [PATCH 5/6] chore: move CHANGELOG.md --- CHANGELOG.md => packages/vike-solid/CHANGELOG.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename CHANGELOG.md => packages/vike-solid/CHANGELOG.md (100%) diff --git a/CHANGELOG.md b/packages/vike-solid/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to packages/vike-solid/CHANGELOG.md From 3e58e1fba24cba275fc615604905dd05a41672c4 Mon Sep 17 00:00:00 2001 From: Muhammad <phonzammizaki@gmail.com> Date: Wed, 4 Sep 2024 22:11:43 +0700 Subject: [PATCH 6/6] chore: update `examples/solid-query/README.md` --- examples/solid-query/README.md | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/examples/solid-query/README.md b/examples/solid-query/README.md index f67ba67..058e3ac 100644 --- a/examples/solid-query/README.md +++ b/examples/solid-query/README.md @@ -1,15 +1,8 @@ -Full-fledged example of using `vike-solid`, showcasing: - -- [Layout](https://vike.dev/Layout) -- Rendering to `<head>` -- Fetching data with [`data()`](https://vike.dev/data) hook -- [Toggling SSR](https://vike.dev/ssr) on a per-page basis. -- [configs](https://vike.dev/config) -- [Error page](https://vike.dev/error-page) +Example of using `vike-solid-query`. ```bash git clone git@github.com:vikejs/vike-solid -cd vike-solid/examples/full/ -pnpm install -pnpm run dev +cd vike-solid/examples/solid-query/ +npm install +npm run dev ```