diff --git a/.changeset/small-ways-taste.md b/.changeset/small-ways-taste.md new file mode 100644 index 00000000..b53211e1 --- /dev/null +++ b/.changeset/small-ways-taste.md @@ -0,0 +1,6 @@ +--- +"@qwikdev/create-astro": minor +"@qwikdev/astro": minor +--- + +refactor: major performance improvements diff --git a/apps/deno-demo/package.json b/apps/deno-demo/package.json index af91592c..db2677be 100644 --- a/apps/deno-demo/package.json +++ b/apps/deno-demo/package.json @@ -14,7 +14,7 @@ "@astrojs/check": "^0.5.10", "@astrojs/deno": "^5.0.1", "@astrojs/react": "^3.0.10", - "@builder.io/qwik": "^1.5.1", + "@builder.io/qwik": "^1.7", "@qwikdev/astro": "workspace:*", "@types/react": "^18.2.64", "@types/react-dom": "^18.2.21", diff --git a/apps/node-demo/astro.config.mjs b/apps/node-demo/astro.config.mjs index 8546a08b..de700208 100644 --- a/apps/node-demo/astro.config.mjs +++ b/apps/node-demo/astro.config.mjs @@ -1,7 +1,6 @@ import { defineConfig } from "astro/config"; import node from "@astrojs/node"; -import react from "@astrojs/react"; import qwik from "@qwikdev/astro"; // https://astro.build/config @@ -11,5 +10,5 @@ export default defineConfig({ mode: "standalone" }), - integrations: [qwik({ include: "**/qwik/*" }), react({ include: "**/react/*" })] + integrations: [qwik({ include: "**/qwik/*" })] }); diff --git a/apps/node-demo/package.json b/apps/node-demo/package.json index 653cf277..8fa485dc 100644 --- a/apps/node-demo/package.json +++ b/apps/node-demo/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^8.2.3", "@astrojs/react": "^3.0.10", - "@builder.io/qwik": "^1.5.1", + "@builder.io/qwik": "^1.7.1", "@qwikdev/astro": "workspace:*", "@types/react": "^18.2.64", "@types/react-dom": "^18.2.21", diff --git a/apps/node-demo/src/pages/index.astro b/apps/node-demo/src/pages/index.astro index c9fe4673..8baeb199 100644 --- a/apps/node-demo/src/pages/index.astro +++ b/apps/node-demo/src/pages/index.astro @@ -1,5 +1,4 @@ --- -import { ViewTransitions } from "astro:transitions"; import { Counter } from "@components/qwik/counter"; import { SayHi } from "@components/qwik/say-hi"; --- @@ -11,7 +10,6 @@ import { SayHi } from "@components/qwik/say-hi"; Astro -
diff --git a/libs/create-qwikdev-astro/stubs/templates/deno-biome/package.json b/libs/create-qwikdev-astro/stubs/templates/deno-biome/package.json index cf065fef..d38b5a73 100644 --- a/libs/create-qwikdev-astro/stubs/templates/deno-biome/package.json +++ b/libs/create-qwikdev-astro/stubs/templates/deno-biome/package.json @@ -22,7 +22,7 @@ "dependencies": { "@astrojs/check": "^0.5.10", "@astrojs/deno": "^5.0.1", - "@builder.io/qwik": "1.5.6", + "@builder.io/qwik": "^1.7.1", "@qwikdev/astro": "^0.5.13", "astro": "^4.5.12", "typescript": "^5.4.3" diff --git a/libs/create-qwikdev-astro/stubs/templates/deno/package.json b/libs/create-qwikdev-astro/stubs/templates/deno/package.json index 0cc07df1..a713c213 100644 --- a/libs/create-qwikdev-astro/stubs/templates/deno/package.json +++ b/libs/create-qwikdev-astro/stubs/templates/deno/package.json @@ -23,7 +23,7 @@ "dependencies": { "@astrojs/check": "^0.5.10", "@astrojs/deno": "^5.0.1", - "@builder.io/qwik": "1.5.6", + "@builder.io/qwik": "^1.7.1", "@qwikdev/astro": "^0.5.14", "astro": "^4.6.3", "typescript": "^5.4.5" diff --git a/libs/create-qwikdev-astro/stubs/templates/node-biome/package.json b/libs/create-qwikdev-astro/stubs/templates/node-biome/package.json index fc951f22..4c7d046b 100644 --- a/libs/create-qwikdev-astro/stubs/templates/node-biome/package.json +++ b/libs/create-qwikdev-astro/stubs/templates/node-biome/package.json @@ -21,7 +21,7 @@ "dependencies": { "@astrojs/check": "^0.5.10", "@astrojs/node": "^8.2.5", - "@builder.io/qwik": "1.5.6", + "@builder.io/qwik": "^1.7.1", "@qwikdev/astro": "^0.5.14", "astro": "^4.6.3", "typescript": "^5.4.5" diff --git a/libs/create-qwikdev-astro/stubs/templates/node/package.json b/libs/create-qwikdev-astro/stubs/templates/node/package.json index 965ab623..6f31208a 100644 --- a/libs/create-qwikdev-astro/stubs/templates/node/package.json +++ b/libs/create-qwikdev-astro/stubs/templates/node/package.json @@ -22,7 +22,7 @@ "dependencies": { "@astrojs/check": "^0.5.10", "@astrojs/node": "^8.2.5", - "@builder.io/qwik": "1.5.6", + "@builder.io/qwik": "^1.7.1", "@qwikdev/astro": "^0.5.14", "astro": "^4.6.3", "typescript": "^5.4.5" diff --git a/libs/qwikdev-astro/package.json b/libs/qwikdev-astro/package.json index 2173d0d0..3d61dac2 100644 --- a/libs/qwikdev-astro/package.json +++ b/libs/qwikdev-astro/package.json @@ -25,7 +25,8 @@ "main": "./src/index.ts", "exports": { ".": "./src/index.ts", - "./package.json": "./package.json" + "./package.json": "./package.json", + "./server": "./server.ts" }, "files": ["src", "src/index.ts", "server.ts", "env.d.ts"], "keywords": [ @@ -49,15 +50,15 @@ "vite-tsconfig-paths": "^4.2.1" }, "devDependencies": { - "@builder.io/qwik": "1.5.6", + "@builder.io/qwik": "^1.7.1", "@types/fs-extra": "^11.0.4", "@types/node": "^20.10.0", "astro": "^4.5", "typescript": "^5.4.2", - "vite": "^5.2.6" + "vite": "^5.3" }, "peerDependencies": { - "@builder.io/qwik": "1.5.6", + "@builder.io/qwik": "^1.7.1", "typescript": "^5.4.2" } } diff --git a/libs/qwikdev-astro/server.ts b/libs/qwikdev-astro/server.ts index 56328e87..a10d385b 100644 --- a/libs/qwikdev-astro/server.ts +++ b/libs/qwikdev-astro/server.ts @@ -6,9 +6,8 @@ import { PrefetchServiceWorker, jsx } from "@builder.io/qwik"; -import type { QwikManifest, SymbolMapperFn } from "@builder.io/qwik/optimizer"; - import { isDev } from "@builder.io/qwik/build"; +import { type QwikManifest } from "@builder.io/qwik/optimizer"; import { getQwikLoaderScript, renderToString } from "@builder.io/qwik/server"; import { manifest } from "@qwik-client-manifest"; @@ -94,22 +93,6 @@ export async function renderToStaticMarkup( children: [qwikScripts, ...(defaultSlot ? [defaultSlot] : []), ...slotValues] }); - /** - For a given symbol (QRL such as `onKeydown$`) the server needs to know which bundle the symbol is in. - - Normally this is provided by Qwik's `q-manifest` . But `q-manifest` only exists after a full client build. - - This would be a problem in dev mode. So in dev mode the symbol is mapped to the expected URL using the symbolMapper function above. For Vite the given path is fixed for a given symbol. - */ - const symbolMapper: SymbolMapperFn = (symbolName: string) => { - /* don't want to add a file path for sync$ */ - if (symbolName === "") { - return; - } - - return [symbolName, `/${process.env.SRC_DIR}/${symbolName.toLocaleLowerCase()}.js`]; - }; - if (shouldAddQwikLoader) { qwikLoaderAdded.set(this.result, true); } @@ -123,8 +106,9 @@ export async function renderToStaticMarkup( base, containerTagName: "div", containerAttributes: { style: "display: contents" }, - manifest: isDev ? ({} as QwikManifest) : manifest, - ...(manifest ? undefined : { symbolMapper }), + ...(isDev + ? { manifest: {} as QwikManifest, symbolMapper: globalThis.symbolMapperGlobal } + : { manifest }), qwikLoader: { include: "never" } }); diff --git a/libs/qwikdev-astro/src/index.ts b/libs/qwikdev-astro/src/index.ts index 342f9ee3..18976f90 100644 --- a/libs/qwikdev-astro/src/index.ts +++ b/libs/qwikdev-astro/src/index.ts @@ -11,13 +11,18 @@ import type { AstroConfig } from "astro"; import { z } from "astro/zod"; import ts from "typescript"; -import { qwikVite } from "@builder.io/qwik/optimizer"; -import { createResolver, defineIntegration } from "astro-integration-kit"; +import { type SymbolMapperFn, qwikVite } from "@builder.io/qwik/optimizer"; +import { symbolMapper } from "@builder.io/qwik/optimizer"; +import { defineIntegration } from "astro-integration-kit"; import { watchIntegrationPlugin } from "astro-integration-kit/plugins"; import { type InlineConfig, build, createFilter } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; +declare global { + var symbolMapperGlobal: SymbolMapperFn; +} + /* Similar to vite's FilterPattern */ const FilternPatternSchema = z.union([ z.string(), @@ -47,7 +52,6 @@ export default defineIntegration({ const tempDir = join(`tmp-${hash()}`); const filter = createFilter(options.include, options.exclude); - const { resolve } = createResolver(import.meta.url); return { "astro:config:setup": async ({ @@ -55,11 +59,10 @@ export default defineIntegration({ updateConfig, config, command, - injectScript, - watchIntegration + injectScript }) => { - // Integration HMR - watchIntegration(resolve()); + // // Integration HMR + // watchIntegration(resolve()); // Because Astro uses the same port for both dev and preview, we need to unregister the SW in order to avoid a stale SW in dev mode. if (command === "dev") { @@ -85,7 +88,7 @@ export default defineIntegration({ if ((await entrypoints).length !== 0) { addRenderer({ name: "@qwikdev/astro", - serverEntrypoint: resolve("../server.ts") + serverEntrypoint: "@qwikdev/astro/server" }); // Update the global dist directory @@ -107,6 +110,18 @@ export default defineIntegration({ }, plugins: [ + { + name: "grabSymbolMapper", + configResolved() { + /** We need to get the symbolMapper straight from qwikVite here. You can think of it as the "manifest" for dev mode. */ + globalThis.symbolMapperGlobal = symbolMapper; + setTimeout(() => { + console.log( + "\x1b[32m[Qwik Astro]: Ignore the Vite emitFile warning, as it's not an issue and this error message will be resolved in the next Qwik version.\x1b[0m" + ); + }, 5000); + } + }, qwikVite({ /* user passed include & exclude config (to use multiple JSX frameworks) */ fileFilter: (id: string, hook: string) => { @@ -127,7 +142,7 @@ export default defineIntegration({ input: await entrypoints }, ssr: { - input: resolve("../server.ts") + input: "@qwikdev/astro/server" } }), tsconfigPaths(), @@ -163,7 +178,7 @@ export default defineIntegration({ enforce: "pre", name: "astro-noop", - load(id) { + load(id: string) { if (id.endsWith(".astro")) { return "export default function() {}"; } @@ -171,7 +186,7 @@ export default defineIntegration({ } } ] - } as InlineConfig); + } as unknown as InlineConfig); await moveArtifacts(distDir, tempDir); } else { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce211884..984f596b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,8 +39,8 @@ importers: specifier: ^3.0.10 version: 3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.2.10(@types/node@20.12.7)) '@builder.io/qwik': - specifier: ^1.5.1 - version: 1.5.2(@types/node@20.12.7)(undici@6.13.0) + specifier: ^1.7 + version: 1.7.0(@types/node@20.12.7)(undici@6.13.0) '@qwikdev/astro': specifier: workspace:* version: link:../../libs/qwikdev-astro @@ -70,10 +70,10 @@ importers: version: 8.2.5(astro@4.6.3(@types/node@20.12.7)(typescript@5.4.5)) '@astrojs/react': specifier: ^3.0.10 - version: 3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.2.10(@types/node@20.12.7)) + version: 3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.3.3(@types/node@20.12.7)) '@builder.io/qwik': - specifier: ^1.5.1 - version: 1.5.2(@types/node@20.12.7)(undici@6.13.0) + specifier: ^1.7.1 + version: 1.7.1(@types/node@20.12.7)(undici@6.13.0) '@qwikdev/astro': specifier: workspace:* version: link:../../libs/qwikdev-astro @@ -155,11 +155,11 @@ importers: version: 6.0.0 vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.2.10(@types/node@20.12.7)) + version: 4.3.2(typescript@5.4.5)(vite@5.3.3(@types/node@20.12.7)) devDependencies: '@builder.io/qwik': - specifier: 1.5.6 - version: 1.5.6(@types/node@20.12.7)(undici@6.13.0) + specifier: ^1.7.1 + version: 1.7.1(@types/node@20.12.7)(undici@6.13.0) '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -173,8 +173,8 @@ importers: specifier: ^5.4.2 version: 5.4.5 vite: - specifier: ^5.2.6 - version: 5.2.10(@types/node@20.12.7) + specifier: ^5.3 + version: 5.3.3(@types/node@20.12.7) packages: @@ -426,15 +426,15 @@ packages: cpu: [x64] os: [win32] - '@builder.io/qwik@1.5.2': - resolution: {integrity: sha512-dUz61FEhC7NjJx0xDnCz6+F6uSBZgJUeur9+EYekpP/BNe2pr4ZH5FORcEOLetJtmxezR6EwTU3GeDLl5159Jg==} + '@builder.io/qwik@1.7.0': + resolution: {integrity: sha512-AF6P3VHxF6VtJaeVQsNT9SjGp0PFpQuKbwiTdVcGOf5ischVEz+PZfaRHQBDCupKg0wQl0Mn/4PYDYp0WVcJIg==} engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} hasBin: true peerDependencies: undici: '*' - '@builder.io/qwik@1.5.6': - resolution: {integrity: sha512-dBdKrDpJ2qru2pLx/v/E6Jgq6AOMd3SgfpeSl5lStI5xQu/PLacPlkTsUVCy/Wr8XIfTqY/LHTbIywnw4O3Fhw==} + '@builder.io/qwik@1.7.1': + resolution: {integrity: sha512-Ncf4amVMxCNWlf4lsi+KVuU4SoVXcqLAeZfceWLfptZldOWFscF0Hm+NOopSOO7lkpARlhi7PhlBaPOJZkR3rw==} engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} hasBin: true peerDependencies: @@ -525,6 +525,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.19.12': resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} @@ -537,6 +543,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.19.12': resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} @@ -549,6 +561,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.19.12': resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} @@ -561,6 +579,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.19.12': resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} @@ -573,6 +597,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.19.12': resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} @@ -585,6 +615,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.19.12': resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} @@ -597,6 +633,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.19.12': resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} @@ -609,6 +651,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.19.12': resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} @@ -621,6 +669,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.19.12': resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} @@ -633,6 +687,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.19.12': resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} @@ -645,6 +705,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.19.12': resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} @@ -657,6 +723,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.19.12': resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} @@ -669,6 +741,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.19.12': resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} @@ -681,6 +759,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.19.12': resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} @@ -693,6 +777,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.19.12': resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} @@ -705,6 +795,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.19.12': resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} @@ -717,6 +813,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.19.12': resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} @@ -729,6 +831,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-x64@0.19.12': resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} @@ -741,6 +849,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.19.12': resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} @@ -753,6 +867,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.19.12': resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} @@ -765,6 +885,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.19.12': resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} @@ -777,6 +903,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.19.12': resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} @@ -789,6 +921,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@expressive-code/core@0.33.5': resolution: {integrity: sha512-KL0EkKAvd7SSIQL3ZIP19xqe4xNjBaQYNvcJC6RmoBUnQpvxaJNFwRxCBEF/X0ftJEMaSG7WTrabZ9c/zFeqmA==} @@ -1712,6 +1850,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -2837,6 +2980,9 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -2884,6 +3030,10 @@ packages: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} @@ -3595,6 +3745,34 @@ packages: terser: optional: true + vite@5.3.3: + resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vitefu@0.2.5: resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: @@ -3917,6 +4095,18 @@ snapshots: - supports-color - vite + '@astrojs/react@3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.3.3(@types/node@20.12.7))': + dependencies: + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + '@vitejs/plugin-react': 4.2.1(vite@5.3.3(@types/node@20.12.7)) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + ultrahtml: 1.5.3 + transitivePeerDependencies: + - supports-color + - vite + '@astrojs/sitemap@3.1.4': dependencies: sitemap: 7.1.1 @@ -4155,7 +4345,7 @@ snapshots: '@biomejs/cli-win32-x64@1.6.1': optional: true - '@builder.io/qwik@1.5.2(@types/node@20.12.7)(undici@6.13.0)': + '@builder.io/qwik@1.7.0(@types/node@20.12.7)(undici@6.13.0)': dependencies: csstype: 3.1.3 undici: 6.13.0 @@ -4169,11 +4359,11 @@ snapshots: - sugarss - terser - '@builder.io/qwik@1.5.6(@types/node@20.12.7)(undici@6.13.0)': + '@builder.io/qwik@1.7.1(@types/node@20.12.7)(undici@6.13.0)': dependencies: csstype: 3.1.3 undici: 6.13.0 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.3.3(@types/node@20.12.7) transitivePeerDependencies: - '@types/node' - less @@ -4360,138 +4550,207 @@ snapshots: '@esbuild/aix-ppc64@0.20.2': optional: true + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/android-arm64@0.19.12': optional: true '@esbuild/android-arm64@0.20.2': optional: true + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm@0.19.12': optional: true '@esbuild/android-arm@0.20.2': optional: true + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-x64@0.19.12': optional: true '@esbuild/android-x64@0.20.2': optional: true + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.19.12': optional: true '@esbuild/darwin-arm64@0.20.2': optional: true + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.19.12': optional: true '@esbuild/darwin-x64@0.20.2': optional: true + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.19.12': optional: true '@esbuild/freebsd-arm64@0.20.2': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.19.12': optional: true '@esbuild/freebsd-x64@0.20.2': optional: true + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.19.12': optional: true '@esbuild/linux-arm64@0.20.2': optional: true + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm@0.19.12': optional: true '@esbuild/linux-arm@0.20.2': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-ia32@0.19.12': optional: true '@esbuild/linux-ia32@0.20.2': optional: true + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-loong64@0.19.12': optional: true '@esbuild/linux-loong64@0.20.2': optional: true + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.19.12': optional: true '@esbuild/linux-mips64el@0.20.2': optional: true + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.19.12': optional: true '@esbuild/linux-ppc64@0.20.2': optional: true + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.19.12': optional: true '@esbuild/linux-riscv64@0.20.2': optional: true + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-s390x@0.19.12': optional: true '@esbuild/linux-s390x@0.20.2': optional: true + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-x64@0.19.12': optional: true '@esbuild/linux-x64@0.20.2': optional: true + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.19.12': optional: true '@esbuild/netbsd-x64@0.20.2': optional: true + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.19.12': optional: true '@esbuild/openbsd-x64@0.20.2': optional: true + '@esbuild/openbsd-x64@0.21.5': + optional: true + '@esbuild/sunos-x64@0.19.12': optional: true '@esbuild/sunos-x64@0.20.2': optional: true + '@esbuild/sunos-x64@0.21.5': + optional: true + '@esbuild/win32-arm64@0.19.12': optional: true '@esbuild/win32-arm64@0.20.2': optional: true + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-ia32@0.19.12': optional: true '@esbuild/win32-ia32@0.20.2': optional: true + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-x64@0.19.12': optional: true '@esbuild/win32-x64@0.20.2': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@expressive-code/core@0.33.5': dependencies: '@ctrl/tinycolor': 3.6.1 @@ -4873,6 +5132,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-react@4.2.1(vite@5.3.3(@types/node@20.12.7))': + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 5.3.3(@types/node@20.12.7) + transitivePeerDependencies: + - supports-color + '@volar/kit@2.1.6(typescript@5.4.5)': dependencies: '@volar/language-service': 2.1.6 @@ -5628,6 +5898,32 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + escalade@3.1.2: {} escape-html@1.0.3: {} @@ -7145,6 +7441,8 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} pify@4.0.1: {} @@ -7195,6 +7493,12 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.2.0 + postcss@8.4.39: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + prebuild-install@7.1.2: dependencies: detect-libc: 2.0.3 @@ -8057,13 +8361,13 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.10(@types/node@20.12.7)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.3.3(@types/node@20.12.7)): dependencies: debug: 4.3.4 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 5.2.10(@types/node@20.12.7) + vite: 5.3.3(@types/node@20.12.7) transitivePeerDependencies: - supports-color - typescript @@ -8077,6 +8381,15 @@ snapshots: '@types/node': 20.12.7 fsevents: 2.3.3 + vite@5.3.3(@types/node@20.12.7): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.39 + rollup: 4.16.1 + optionalDependencies: + '@types/node': 20.12.7 + fsevents: 2.3.3 + vitefu@0.2.5(vite@5.2.10(@types/node@20.12.7)): optionalDependencies: vite: 5.2.10(@types/node@20.12.7)