diff --git a/.changeset/blue-colts-film.md b/.changeset/blue-colts-film.md new file mode 100644 index 000000000000..9df2e9e56031 --- /dev/null +++ b/.changeset/blue-colts-film.md @@ -0,0 +1,23 @@ +--- +'@astrojs/db': minor +--- + +Removes the `AstroDbIntegration` type + +Astro integration hooks can now be extended and as such `@astrojs/db` no longer needs to declare it's own integration type. Using `AstroIntegration` will have the same type. + +If you were using the `AstroDbIntegration` type, apply this change to your integration code: + +```diff +- import { defineDbIntegration, type AstroDbIntegration } from '@astrojs/db/utils'; ++ import { defineDbIntegration } from '@astrojs/db/utils'; +import type { AstroIntegration } from 'astro'; + +- export default (): AstroDbIntegration => { ++ export default (): AstroIntegration => { + return defineDbIntegration({ + name: 'your-integration', + hooks: {}, + }); +} +``` diff --git a/.changeset/chilled-impalas-dance.md b/.changeset/chilled-impalas-dance.md new file mode 100644 index 000000000000..51d6708011fd --- /dev/null +++ b/.changeset/chilled-impalas-dance.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes an issue where the development server was emitting a 404 status code when the user uses a rewrite that emits a 200 status code. diff --git a/.changeset/cold-crabs-arrive.md b/.changeset/cold-crabs-arrive.md new file mode 100644 index 000000000000..6bde11b6a818 --- /dev/null +++ b/.changeset/cold-crabs-arrive.md @@ -0,0 +1,32 @@ +--- +'@astrojs/markdown-remark': minor +'astro': minor +--- + +Adds support for [Shiki's `defaultColor` option](https://shiki.style/guide/dual-themes#without-default-color). + +This option allows you to override the values of a theme's inline style, adding only CSS variables to give you more flexibility in applying multiple color themes. + +Configure `defaultColor: false` in your Shiki config to apply throughout your site, or pass to Astro's built-in `` component to style an individual code block. + +```js title="astro.config.mjs" +import { defineConfig } from 'astro/config'; +export default defineConfig({ + markdown: { + shikiConfig: { + themes: { + light: 'github-light', + dark: 'github-dark', + }, + defaultColor: false, + }, + }, +}); +``` + +```astro +--- +import { Code } from 'astro:components'; +--- + +``` diff --git a/.changeset/curvy-otters-jog.md b/.changeset/curvy-otters-jog.md new file mode 100644 index 000000000000..8bfa0a17ced7 --- /dev/null +++ b/.changeset/curvy-otters-jog.md @@ -0,0 +1,58 @@ +--- +'astro': minor +--- + +Refactors the type for integration hooks so that integration authors writing custom integration hooks can now allow runtime interactions between their integration and other integrations. + +This internal change should not break existing code for integration authors. + +To declare your own hooks for your integration, extend the `Astro.IntegrationHooks` interface: + +```ts +// your-integration/types.ts +declare global { + namespace Astro { + interface IntegrationHooks { + 'myLib:eventHappened': (your: string, parameters: number) => Promise; + } + } +} +``` + +Call your hooks on all other integrations installed in a project at the appropriate time. For example, you can call your hook on initialization before either the Vite or Astro config have resolved: + +```ts +// your-integration/index.ts +import './types.ts'; + +export default (): AstroIntegration => { + return { + name: 'your-integration', + hooks: { + 'astro:config:setup': async ({ config }) => { + for (const integration of config.integrations) { + await integration.hooks['myLib:eventHappened'].?('your values', 123); + } + }, + } + } +} +``` + +Other integrations can also now declare your hooks: + +```ts +// other-integration/index.ts +import 'your-integration/types.ts'; + +export default (): AstroIntegration => { + return { + name: 'other-integration', + hooks: { + 'myLib:eventHappened': async (your, values) => { + // ... + }, + } + } +} +``` diff --git a/.changeset/large-geese-play.md b/.changeset/large-geese-play.md new file mode 100644 index 000000000000..2cfd9788df9a --- /dev/null +++ b/.changeset/large-geese-play.md @@ -0,0 +1,20 @@ +--- +"astro": minor +--- + +Adds a new `inferRemoteSize()` function that can be used to infer the dimensions of a remote image. + +Previously, the ability to infer these values was only available by adding the [`inferSize`] attribute to the `` and `` components or `getImage()`. Now, you can also access this data outside of these components. + +This is useful for when you need to know the dimensions of an image for styling purposes or to calculate different densities for responsive images. + +```astro +--- +import { inferRemoteSize, Image } from 'astro:assets'; + +const imageUrl = 'https://...'; +const { width, height } = await inferRemoteSize(imageUrl); +--- + + +``` diff --git a/.changeset/loud-socks-doubt.md b/.changeset/loud-socks-doubt.md deleted file mode 100644 index 4af3b4607703..000000000000 --- a/.changeset/loud-socks-doubt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fixes a case where Astro's config `experimental.env.schema` keys did not allow numbers. Numbers are still not allowed as the first character to be able to generate valid JavaScript identifiers diff --git a/.changeset/modern-buses-check.md b/.changeset/modern-buses-check.md new file mode 100644 index 000000000000..3cf7482c1bf1 --- /dev/null +++ b/.changeset/modern-buses-check.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Refactors how `sync` works and when it's called. Fixes an issue with `astro:env` types in dev not being generated diff --git a/.changeset/nasty-poems-juggle.md b/.changeset/nasty-poems-juggle.md deleted file mode 100644 index 74e1b176d036..000000000000 --- a/.changeset/nasty-poems-juggle.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -'astro': patch ---- - -Expands the `isInputError()` utility from `astro:actions` to accept errors of any type. This should now allow type narrowing from a try / catch block. - -```ts -// example.ts -import { actions, isInputError } from 'astro:actions'; - -try { - await actions.like(new FormData()); -} catch (error) { - if (isInputError(error)) { - console.log(error.fields); - } -} -``` diff --git a/.changeset/plenty-socks-talk.md b/.changeset/plenty-socks-talk.md deleted file mode 100644 index 2749228dd952..000000000000 --- a/.changeset/plenty-socks-talk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Exposes utility types from `astro:actions` for the `defineAction` handler (`ActionHandler`) and the `ActionError` code (`ActionErrorCode`). diff --git a/.changeset/seven-donuts-happen.md b/.changeset/seven-donuts-happen.md new file mode 100644 index 000000000000..cf6b85b5b958 --- /dev/null +++ b/.changeset/seven-donuts-happen.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Supports importing Astro components with Vite queries, like `?url`, `?raw`, and `?direct` diff --git a/.changeset/slow-roses-call.md b/.changeset/slow-roses-call.md deleted file mode 100644 index 9217f96fe965..000000000000 --- a/.changeset/slow-roses-call.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -'astro': patch ---- - -Adds a new property `experimental.env.validateSecrets` to allow validating private variables on the server. - -By default, this is set to `false` and only public variables are checked on start. If enabled, secrets will also be checked on start (dev/build modes). This is useful for example in some CIs to make sure all your secrets are correctly set before deploying. - -```js -// astro.config.mjs -import { defineConfig, envField } from "astro/config" - -export default defineConfig({ - experimental: { - env: { - schema: { - // ... - }, - validateSecrets: true - } - } -}) -``` diff --git a/.changeset/small-vans-own.md b/.changeset/small-vans-own.md deleted file mode 100644 index 06352e256af0..000000000000 --- a/.changeset/small-vans-own.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -'astro': patch ---- - -Expose new `ActionReturnType` utility from `astro:actions`. This infers the return type of an action by passing `typeof actions.name` as a type argument. This example defines a `like` action that returns `likes` as an object: - -```ts -// actions/index.ts -import { defineAction } from 'astro:actions'; - -export const server = { - like: defineAction({ - handler: () => { - /* ... */ - return { likes: 42 } - } - }) -} -``` - -In your client code, you can infer this handler return value with `ActionReturnType`: - -```ts -// client.ts -import { actions, ActionReturnType } from 'astro:actions'; - -type LikesResult = ActionReturnType; -// -> { likes: number } -``` diff --git a/.changeset/swift-cows-walk.md b/.changeset/swift-cows-walk.md deleted file mode 100644 index 212d0417e699..000000000000 --- a/.changeset/swift-cows-walk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"astro": patch ---- - -Fixes `astro:actions` autocompletion for the `defineAction` `accept` property diff --git a/.changeset/twenty-maps-glow.md b/.changeset/twenty-maps-glow.md new file mode 100644 index 000000000000..9588a45bc2e4 --- /dev/null +++ b/.changeset/twenty-maps-glow.md @@ -0,0 +1,5 @@ +--- +'astro': minor +--- + +Adds two new values to the [pagination `page` prop](https://docs.astro.build/en/reference/api-reference/#the-pagination-page-prop): `page.first` and `page.last` for accessing the URLs of the first and last pages. diff --git a/examples/basics/package.json b/examples/basics/package.json index ed7f452c2051..d922caebfbb8 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index 29d33e4f9c4a..6954ca7e03eb 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^3.1.2", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/component/package.json b/examples/component/package.json index dadb92b7b359..1d40ec2f1247 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/container-with-vitest/package.json b/examples/container-with-vitest/package.json index 21ae4bea31dc..de2bec8281a8 100644 --- a/examples/container-with-vitest/package.json +++ b/examples/container-with-vitest/package.json @@ -16,7 +16,7 @@ "astro": "^4.11.5", "react": "^18.3.1", "react-dom": "^18.3.1", - "vitest": "^1.6.0" + "vitest": "^2.0.3" }, "devDependencies": { "@types/react": "^18.3.3", diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index 60d3bd55984d..22d788d8617a 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.4.0", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index 701d46f235df..9d4baa253e74 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/lit": "^4.3.0", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^4.11.5", + "astro": "^4.11.6", "lit": "^3.1.4" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index ef70525d9c6a..941b71491297 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -11,14 +11,14 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.0", + "@astrojs/preact": "^3.5.1", "@astrojs/react": "^3.6.0", "@astrojs/solid-js": "^4.4.0", "@astrojs/svelte": "^5.6.0", "@astrojs/vue": "^4.5.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "preact": "^10.22.1", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index b1b672385bd5..77a95ac08f07 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.0", - "@preact/signals": "^1.2.3", - "astro": "^4.11.5", + "@astrojs/preact": "^3.5.1", + "@preact/signals": "^1.3.0", + "astro": "^4.11.6", "preact": "^10.22.1" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index 20484e8dd198..b9d21852400a 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.6.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index 945aa9987359..42a886518188 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^4.4.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "solid-js": "^1.8.18" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 60658a81a378..adb56ccb1e99 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^5.6.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "svelte": "^4.2.18" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 2225addab524..8632013551d7 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^4.5.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "vue": "^3.4.31" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index fa6298bc5356..f81f208c38fc 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^8.3.2", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index cf3d457f731f..3c80d79c2c3e 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index 4daf9ed748f5..51b813736a5a 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^8.3.2", - "astro": "^4.11.5", + "astro": "^4.11.6", "html-minifier": "^4.0.0" }, "devDependencies": { diff --git a/examples/minimal/package.json b/examples/minimal/package.json index c4290981616d..120306263178 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 988bec080883..7485ab41914f 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index 93454dcae621..9f446ac7473e 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/ssr/package.json b/examples/ssr/package.json index c59ebd382edd..18bda715305e 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^8.3.2", "@astrojs/svelte": "^5.6.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "svelte": "^4.2.18" } } diff --git a/examples/starlog/package.json b/examples/starlog/package.json index ec3a948803ce..dd06787c1a78 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -10,8 +10,8 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5", - "sass": "^1.77.6", + "astro": "^4.11.6", + "sass": "^1.77.8", "sharp": "^0.33.3" } } diff --git a/examples/toolbar-app/package.json b/examples/toolbar-app/package.json index bb93e381a785..c34863aae384 100644 --- a/examples/toolbar-app/package.json +++ b/examples/toolbar-app/package.json @@ -15,6 +15,6 @@ "./app": "./dist/app.js" }, "devDependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index c0847ef49ae3..1b1cb9936f16 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^5.1.0", "@astrojs/node": "^8.3.2", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index cf908daad7dd..f74158cb5c0c 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -11,7 +11,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/markdoc": "^0.11.1", - "astro": "^4.11.5" + "@astrojs/markdoc": "^0.11.2", + "astro": "^4.11.6" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index dc53eb70d0ef..cacf0fdb559b 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^5.1.1", - "astro": "^4.11.5", + "astro": "^4.11.6", "hast-util-select": "^6.0.2", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 2c681672dec8..89da7396b270 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index d3a50340be37..b517d7d1d51d 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "@astrojs/mdx": "^3.1.2", - "@astrojs/preact": "^3.5.0", - "astro": "^4.11.5", + "@astrojs/preact": "^3.5.1", + "astro": "^4.11.6", "preact": "^10.22.1" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index c5d22c730680..a1903af8b5a2 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.0", + "@astrojs/preact": "^3.5.1", "@nanostores/preact": "^0.5.1", - "astro": "^4.11.5", + "astro": "^4.11.6", "nanostores": "^0.10.3", "preact": "^10.22.1" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 8d35a24a1737..9a8a0cea622a 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,10 +14,10 @@ "@astrojs/mdx": "^3.1.2", "@astrojs/tailwind": "^5.1.0", "@types/canvas-confetti": "^1.6.4", - "astro": "^4.11.5", + "astro": "^4.11.6", "autoprefixer": "^10.4.19", "canvas-confetti": "^1.9.3", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index 91bb845784b8..60f1a0a9ee83 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^4.11.5", - "vitest": "^1.6.0" + "astro": "^4.11.6", + "vitest": "^2.0.3" } } diff --git a/package.json b/package.json index e99e740da097..d1948fb2bb06 100644 --- a/package.json +++ b/package.json @@ -52,25 +52,25 @@ "astro-benchmark": "workspace:*" }, "devDependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@biomejs/biome": "1.8.1", "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.6", + "@changesets/cli": "^2.27.7", "@eslint/eslintrc": "^3.1.0", "@types/node": "^18.17.8", "esbuild": "^0.21.5", - "eslint": "^9.6.0", + "eslint": "^9.7.0", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-regexp": "^2.6.0", "globby": "^14.0.2", "only-allow": "^1.2.1", "organize-imports-cli": "^0.10.0", - "prettier": "^3.3.2", + "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.0", "tiny-glob": "^0.2.9", "turbo": "^1.13.4", - "typescript": "~5.5.2", - "typescript-eslint": "^7.14.1" + "typescript": "~5.5.3", + "typescript-eslint": "^7.16.1" }, "pnpm": { "packageExtensions": { diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 935f0bcf39af..b7c6c6df77b9 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,88 @@ # astro +## 4.11.6 + +### Patch Changes + +- [#11459](https://github.com/withastro/astro/pull/11459) [`bc2e74d`](https://github.com/withastro/astro/commit/bc2e74de384776caa252fd47dbeda895c0488c11) Thanks [@mingjunlu](https://github.com/mingjunlu)! - Fixes false positive audit warnings on elements with the role "tabpanel". + +- [#11472](https://github.com/withastro/astro/pull/11472) [`cb4e6d0`](https://github.com/withastro/astro/commit/cb4e6d09deb7507058115a3fd2a567019a501e4d) Thanks [@delucis](https://github.com/delucis)! - Avoids targeting all files in the `src/` directory for eager optimization by Vite. After this change, only JSX, Vue, Svelte, and Astro components get scanned for early optimization. + +- [#11387](https://github.com/withastro/astro/pull/11387) [`b498461`](https://github.com/withastro/astro/commit/b498461e277bffb0abe21b59a94b1e56a8c69d47) Thanks [@bluwy](https://github.com/bluwy)! - Fixes prerendering not removing unused dynamic imported chunks + +- [#11437](https://github.com/withastro/astro/pull/11437) [`6ccb30e`](https://github.com/withastro/astro/commit/6ccb30e610eed34c2cc2c275485a8ac45c9b6b9e) Thanks [@NuroDev](https://github.com/NuroDev)! - Fixes a case where Astro's config `experimental.env.schema` keys did not allow numbers. Numbers are still not allowed as the first character to be able to generate valid JavaScript identifiers + +- [#11439](https://github.com/withastro/astro/pull/11439) [`08baf56`](https://github.com/withastro/astro/commit/08baf56f328ce4b6814a7f90089c0b3398d8bbfe) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Expands the `isInputError()` utility from `astro:actions` to accept errors of any type. This should now allow type narrowing from a try / catch block. + + ```ts + // example.ts + import { actions, isInputError } from 'astro:actions'; + + try { + await actions.like(new FormData()); + } catch (error) { + if (isInputError(error)) { + console.log(error.fields); + } + } + ``` + +- [#11452](https://github.com/withastro/astro/pull/11452) [`0e66849`](https://github.com/withastro/astro/commit/0e6684983b9b24660a8fef83fe401ec1d567378a) Thanks [@FugiTech](https://github.com/FugiTech)! - Fixes an issue where using .nullish() in a formdata Astro action would always parse as a string + +- [#11438](https://github.com/withastro/astro/pull/11438) [`619f07d`](https://github.com/withastro/astro/commit/619f07db701ebab2d2f2598dd2dcf93ba1e5719c) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Exposes utility types from `astro:actions` for the `defineAction` handler (`ActionHandler`) and the `ActionError` code (`ActionErrorCode`). + +- [#11456](https://github.com/withastro/astro/pull/11456) [`17e048d`](https://github.com/withastro/astro/commit/17e048de0e79d76b933d128676be2388954b419e) Thanks [@RickyC0626](https://github.com/RickyC0626)! - Fixes `astro dev --open` unexpected behavior that spawns a new tab every time a config file is saved + +- [#11337](https://github.com/withastro/astro/pull/11337) [`0a4b31f`](https://github.com/withastro/astro/commit/0a4b31ffeb41ad1dfb3141384e22787763fcae3d) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Adds a new property `experimental.env.validateSecrets` to allow validating private variables on the server. + + By default, this is set to `false` and only public variables are checked on start. If enabled, secrets will also be checked on start (dev/build modes). This is useful for example in some CIs to make sure all your secrets are correctly set before deploying. + + ```js + // astro.config.mjs + import { defineConfig, envField } from 'astro/config'; + + export default defineConfig({ + experimental: { + env: { + schema: { + // ... + }, + validateSecrets: true, + }, + }, + }); + ``` + +- [#11443](https://github.com/withastro/astro/pull/11443) [`ea4bc04`](https://github.com/withastro/astro/commit/ea4bc04e9489c456e2b4b5dbd67d5e4cf3f89f97) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Expose new `ActionReturnType` utility from `astro:actions`. This infers the return type of an action by passing `typeof actions.name` as a type argument. This example defines a `like` action that returns `likes` as an object: + + ```ts + // actions/index.ts + import { defineAction } from 'astro:actions'; + + export const server = { + like: defineAction({ + handler: () => { + /* ... */ + return { likes: 42 }; + }, + }), + }; + ``` + + In your client code, you can infer this handler return value with `ActionReturnType`: + + ```ts + // client.ts + import { actions, ActionReturnType } from 'astro:actions'; + + type LikesResult = ActionReturnType; + // -> { likes: number } + ``` + +- [#11436](https://github.com/withastro/astro/pull/11436) [`7dca68f`](https://github.com/withastro/astro/commit/7dca68ff2e0f089a3fd090650ee05b1942792fed) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Fixes `astro:actions` autocompletion for the `defineAction` `accept` property + +- [#11455](https://github.com/withastro/astro/pull/11455) [`645e128`](https://github.com/withastro/astro/commit/645e128537f1f20da6703afc115d06371d7da5dd) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Improves `astro:env` invalid variables errors + ## 4.11.5 ### Patch Changes diff --git a/packages/astro/client.d.ts b/packages/astro/client.d.ts index 0870d3dcc566..d74e5fa488cb 100644 --- a/packages/astro/client.d.ts +++ b/packages/astro/client.d.ts @@ -54,6 +54,7 @@ declare module 'astro:assets' { ) => Promise; imageConfig: import('./dist/@types/astro.js').AstroConfig['image']; getConfiguredImageService: typeof import('./dist/assets/index.js').getConfiguredImageService; + inferRemoteSize: typeof import('./dist/assets/utils/index.js').inferRemoteSize; Image: typeof import('./components/Image.astro').default; Picture: typeof import('./components/Picture.astro').default; }; diff --git a/packages/astro/e2e/fixtures/actions-blog/package.json b/packages/astro/e2e/fixtures/actions-blog/package.json index 8b2c3824d2fe..d536e64fb93e 100644 --- a/packages/astro/e2e/fixtures/actions-blog/package.json +++ b/packages/astro/e2e/fixtures/actions-blog/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@astrojs/db": "workspace:*", "@astrojs/node": "workspace:*", "@astrojs/react": "workspace:*", @@ -19,6 +19,6 @@ "astro": "workspace:*", "react": "^18.3.1", "react-dom": "^18.3.1", - "typescript": "^5.5.2" + "typescript": "^5.5.3" } } diff --git a/packages/astro/e2e/fixtures/actions-react-19/package.json b/packages/astro/e2e/fixtures/actions-react-19/package.json index d7294977320d..5927a6782675 100644 --- a/packages/astro/e2e/fixtures/actions-react-19/package.json +++ b/packages/astro/e2e/fixtures/actions-react-19/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@astrojs/db": "workspace:*", "@astrojs/node": "workspace:*", "@astrojs/react": "workspace:*", @@ -19,7 +19,7 @@ "astro": "workspace:*", "react": "19.0.0-rc-fb9a90fa48-20240614", "react-dom": "19.0.0-rc-fb9a90fa48-20240614", - "typescript": "^5.5.2" + "typescript": "^5.5.3" }, "overrides": { "@types/react": "npm:types-react", diff --git a/packages/astro/e2e/fixtures/error-sass/package.json b/packages/astro/e2e/fixtures/error-sass/package.json index 57d060439ed2..9658b550a1f6 100644 --- a/packages/astro/e2e/fixtures/error-sass/package.json +++ b/packages/astro/e2e/fixtures/error-sass/package.json @@ -4,6 +4,6 @@ "private": true, "dependencies": { "astro": "workspace:*", - "sass": "^1.77.6" + "sass": "^1.77.8" } } diff --git a/packages/astro/e2e/fixtures/errors/package.json b/packages/astro/e2e/fixtures/errors/package.json index cdafd19203e4..43cc930720f2 100644 --- a/packages/astro/e2e/fixtures/errors/package.json +++ b/packages/astro/e2e/fixtures/errors/package.json @@ -12,7 +12,7 @@ "preact": "^10.22.1", "react": "^18.3.1", "react-dom": "^18.3.1", - "sass": "^1.77.6", + "sass": "^1.77.8", "solid-js": "^1.8.18", "svelte": "^4.2.18", "vue": "^3.4.31" diff --git a/packages/astro/e2e/fixtures/hmr/package.json b/packages/astro/e2e/fixtures/hmr/package.json index 8f65a830d5e8..87d59ab7f6e2 100644 --- a/packages/astro/e2e/fixtures/hmr/package.json +++ b/packages/astro/e2e/fixtures/hmr/package.json @@ -4,6 +4,6 @@ "private": true, "devDependencies": { "astro": "workspace:*", - "sass": "^1.77.6" + "sass": "^1.77.8" } } diff --git a/packages/astro/e2e/fixtures/tailwindcss/package.json b/packages/astro/e2e/fixtures/tailwindcss/package.json index 94acb613eedb..09ccca0040d5 100644 --- a/packages/astro/e2e/fixtures/tailwindcss/package.json +++ b/packages/astro/e2e/fixtures/tailwindcss/package.json @@ -7,6 +7,6 @@ "astro": "workspace:*", "autoprefixer": "^10.4.19", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/packages/astro/package.json b/packages/astro/package.json index 78d7d017244e..68051ccc7f22 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "4.11.5", + "version": "4.11.6", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", @@ -63,6 +63,7 @@ "./actions/runtime/*": "./dist/actions/runtime/*", "./assets": "./dist/assets/index.js", "./assets/utils": "./dist/assets/utils/index.js", + "./assets/utils/inferRemoteSize.js": "./dist/assets/utils/remoteProbe.js", "./assets/endpoint/*": "./dist/assets/endpoint/*.js", "./assets/services/sharp": "./dist/assets/services/sharp.js", "./assets/services/squoosh": "./dist/assets/services/squoosh.js", @@ -125,23 +126,23 @@ "test:node": "astro-scripts test \"test/**/*.test.js\"" }, "dependencies": { - "@astrojs/compiler": "^2.8.1", + "@astrojs/compiler": "^2.8.2", "@astrojs/internal-helpers": "workspace:*", "@astrojs/markdown-remark": "workspace:*", "@astrojs/telemetry": "workspace:*", - "@babel/core": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/parser": "^7.24.7", + "@babel/core": "^7.24.9", + "@babel/generator": "^7.24.10", + "@babel/parser": "^7.24.8", "@babel/plugin-transform-react-jsx": "^7.24.7", "@babel/traverse": "^7.24.7", "@babel/types": "^7.24.7", "@rollup/pluginutils": "^5.1.0", "@types/babel__core": "^7.20.5", "@types/cookie": "^0.6.0", - "acorn": "^8.12.0", + "acorn": "^8.12.1", "aria-query": "^5.3.0", - "axobject-query": "^4.0.0", - "boxen": "^7.1.1", + "axobject-query": "^4.1.0", + "boxen": "^8.0.0", "chokidar": "^3.6.0", "ci-info": "^4.0.0", "clsx": "^2.1.1", @@ -170,22 +171,22 @@ "micromatch": "^4.0.7", "mrmime": "^2.0.0", "ora": "^8.0.1", - "p-limit": "^5.0.0", + "p-limit": "^6.1.0", "p-queue": "^8.0.1", "path-to-regexp": "^6.2.2", - "preferred-pm": "^3.1.3", + "preferred-pm": "^4.0.0", "prompts": "^2.4.2", "rehype": "^13.0.1", "semver": "^7.6.2", - "shiki": "^1.10.0", + "shiki": "^1.10.3", "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "tsconfck": "^3.1.1", "unist-util-visit": "^5.0.0", - "vfile": "^6.0.1", - "vite": "^5.3.2", + "vfile": "^6.0.2", + "vite": "^5.3.4", "vitefu": "^0.2.5", - "which-pm": "^2.2.0", + "which-pm": "^3.0.0", "yargs-parser": "^21.1.1", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1", @@ -195,8 +196,8 @@ "sharp": "^0.33.3" }, "devDependencies": { - "@astrojs/check": "^0.7.0", - "@playwright/test": "^1.45.0", + "@astrojs/check": "^0.8.1", + "@playwright/test": "^1.45.2", "@types/aria-query": "^5.0.4", "@types/babel__generator": "^7.6.8", "@types/babel__traverse": "^7.20.6", @@ -231,8 +232,8 @@ "rehype-slug": "^6.0.0", "rehype-toc": "^3.0.2", "remark-code-titles": "^0.1.2", - "rollup": "^4.18.0", - "sass": "^1.77.6", + "rollup": "^4.18.1", + "sass": "^1.77.8", "srcset-parse": "^1.1.0", "undici": "^6.19.2", "unified": "^11.0.5" @@ -245,4 +246,4 @@ "publishConfig": { "provenance": true } -} \ No newline at end of file +} diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index e624b69c8d37..e4487c6852d1 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -2647,6 +2647,10 @@ export interface Page { prev: string | undefined; /** url of the next page (if there is one) */ next: string | undefined; + /** url of the first page (if the current page is not the first page) */ + first: string | undefined; + /** url of the next page (if the current page in not the last page) */ + last: string | undefined; }; } @@ -3052,83 +3056,92 @@ export type HookParameters< Fn = AstroIntegration['hooks'][Hook], > = Fn extends (...args: any) => any ? Parameters[0] : never; +declare global { + // eslint-disable-next-line @typescript-eslint/no-namespace + namespace Astro { + export interface IntegrationHooks { + 'astro:config:setup': (options: { + config: AstroConfig; + command: 'dev' | 'build' | 'preview'; + isRestart: boolean; + updateConfig: (newConfig: DeepPartial) => AstroConfig; + addRenderer: (renderer: AstroRenderer) => void; + addWatchFile: (path: URL | string) => void; + injectScript: (stage: InjectedScriptStage, content: string) => void; + injectRoute: (injectRoute: InjectedRoute) => void; + addClientDirective: (directive: ClientDirectiveConfig) => void; + /** + * @deprecated Use `addDevToolbarApp` instead. + * TODO: Fully remove in Astro 5.0 + */ + addDevOverlayPlugin: (entrypoint: string) => void; + // TODO: Deprecate the `string` overload once a few apps have been migrated to the new API. + addDevToolbarApp: (entrypoint: DevToolbarAppEntry | string) => void; + addMiddleware: (mid: AstroIntegrationMiddleware) => void; + logger: AstroIntegrationLogger; + // TODO: Add support for `injectElement()` for full HTML element injection, not just scripts. + // This may require some refactoring of `scripts`, `styles`, and `links` into something + // more generalized. Consider the SSR use-case as well. + // injectElement: (stage: vite.HtmlTagDescriptor, element: string) => void; + }) => void | Promise; + 'astro:config:done': (options: { + config: AstroConfig; + setAdapter: (adapter: AstroAdapter) => void; + logger: AstroIntegrationLogger; + }) => void | Promise; + 'astro:server:setup': (options: { + server: vite.ViteDevServer; + logger: AstroIntegrationLogger; + toolbar: ReturnType; + }) => void | Promise; + 'astro:server:start': (options: { + address: AddressInfo; + logger: AstroIntegrationLogger; + }) => void | Promise; + 'astro:server:done': (options: { logger: AstroIntegrationLogger }) => void | Promise; + 'astro:build:ssr': (options: { + manifest: SerializedSSRManifest; + /** + * This maps a {@link RouteData} to an {@link URL}, this URL represents + * the physical file you should import. + */ + entryPoints: Map; + /** + * File path of the emitted middleware + */ + middlewareEntryPoint: URL | undefined; + logger: AstroIntegrationLogger; + }) => void | Promise; + 'astro:build:start': (options: { logger: AstroIntegrationLogger }) => void | Promise; + 'astro:build:setup': (options: { + vite: vite.InlineConfig; + pages: Map; + target: 'client' | 'server'; + updateConfig: (newConfig: vite.InlineConfig) => void; + logger: AstroIntegrationLogger; + }) => void | Promise; + 'astro:build:generated': (options: { + dir: URL; + logger: AstroIntegrationLogger; + }) => void | Promise; + 'astro:build:done': (options: { + pages: { pathname: string }[]; + dir: URL; + routes: RouteData[]; + logger: AstroIntegrationLogger; + cacheManifest: boolean; + }) => void | Promise; + } + } +} + export interface AstroIntegration { /** The name of the integration. */ name: string; /** The different hooks available to extend. */ hooks: { - 'astro:config:setup'?: (options: { - config: AstroConfig; - command: 'dev' | 'build' | 'preview'; - isRestart: boolean; - updateConfig: (newConfig: DeepPartial) => AstroConfig; - addRenderer: (renderer: AstroRenderer) => void; - addWatchFile: (path: URL | string) => void; - injectScript: (stage: InjectedScriptStage, content: string) => void; - injectRoute: (injectRoute: InjectedRoute) => void; - addClientDirective: (directive: ClientDirectiveConfig) => void; - /** - * @deprecated Use `addDevToolbarApp` instead. - * TODO: Fully remove in Astro 5.0 - */ - addDevOverlayPlugin: (entrypoint: string) => void; - // TODO: Deprecate the `string` overload once a few apps have been migrated to the new API. - addDevToolbarApp: (entrypoint: DevToolbarAppEntry | string) => void; - addMiddleware: (mid: AstroIntegrationMiddleware) => void; - logger: AstroIntegrationLogger; - // TODO: Add support for `injectElement()` for full HTML element injection, not just scripts. - // This may require some refactoring of `scripts`, `styles`, and `links` into something - // more generalized. Consider the SSR use-case as well. - // injectElement: (stage: vite.HtmlTagDescriptor, element: string) => void; - }) => void | Promise; - 'astro:config:done'?: (options: { - config: AstroConfig; - setAdapter: (adapter: AstroAdapter) => void; - logger: AstroIntegrationLogger; - }) => void | Promise; - 'astro:server:setup'?: (options: { - server: vite.ViteDevServer; - logger: AstroIntegrationLogger; - toolbar: ReturnType; - }) => void | Promise; - 'astro:server:start'?: (options: { - address: AddressInfo; - logger: AstroIntegrationLogger; - }) => void | Promise; - 'astro:server:done'?: (options: { logger: AstroIntegrationLogger }) => void | Promise; - 'astro:build:ssr'?: (options: { - manifest: SerializedSSRManifest; - /** - * This maps a {@link RouteData} to an {@link URL}, this URL represents - * the physical file you should import. - */ - entryPoints: Map; - /** - * File path of the emitted middleware - */ - middlewareEntryPoint: URL | undefined; - logger: AstroIntegrationLogger; - }) => void | Promise; - 'astro:build:start'?: (options: { logger: AstroIntegrationLogger }) => void | Promise; - 'astro:build:setup'?: (options: { - vite: vite.InlineConfig; - pages: Map; - target: 'client' | 'server'; - updateConfig: (newConfig: vite.InlineConfig) => void; - logger: AstroIntegrationLogger; - }) => void | Promise; - 'astro:build:generated'?: (options: { - dir: URL; - logger: AstroIntegrationLogger; - }) => void | Promise; - 'astro:build:done'?: (options: { - pages: { pathname: string }[]; - dir: URL; - routes: RouteData[]; - logger: AstroIntegrationLogger; - cacheManifest: boolean; - }) => void | Promise; - }; + [K in keyof Astro.IntegrationHooks]?: Astro.IntegrationHooks[K]; + } & Partial>; } export type RewritePayload = string | URL | Request; diff --git a/packages/astro/src/actions/index.ts b/packages/astro/src/actions/index.ts index e20f8647dd97..f4ab24e2d428 100644 --- a/packages/astro/src/actions/index.ts +++ b/packages/astro/src/actions/index.ts @@ -1,4 +1,4 @@ -import { mkdir, readFile, writeFile } from 'node:fs/promises'; +import fsMod from 'node:fs'; import type { Plugin as VitePlugin } from 'vite'; import type { AstroIntegration } from '../@types/astro.js'; import { ActionsWithoutServerOutputError } from '../core/errors/errors-data.js'; @@ -6,7 +6,7 @@ import { AstroError } from '../core/errors/errors.js'; import { isServerLikeOutput, viteID } from '../core/util.js'; import { ACTIONS_TYPES_FILE, RESOLVED_VIRTUAL_MODULE_ID, VIRTUAL_MODULE_ID } from './consts.js'; -export default function astroActions(): AstroIntegration { +export default function astroActions({ fs = fsMod }: { fs?: typeof fsMod }): AstroIntegration { return { name: VIRTUAL_MODULE_ID, hooks: { @@ -25,7 +25,7 @@ export default function astroActions(): AstroIntegration { define: { 'import.meta.env.ACTIONS_PATH': stringifiedActionsImport, }, - plugins: [vitePluginActions], + plugins: [vitePluginActions(fs)], }, }); @@ -43,13 +43,14 @@ export default function astroActions(): AstroIntegration { await typegen({ stringifiedActionsImport, root: params.config.root, + fs, }); }, }, }; } -const vitePluginActions: VitePlugin = { +const vitePluginActions = (fs: typeof fsMod): VitePlugin => ({ name: VIRTUAL_MODULE_ID, enforce: 'pre', resolveId(id) { @@ -60,7 +61,10 @@ const vitePluginActions: VitePlugin = { async load(id, opts) { if (id !== RESOLVED_VIRTUAL_MODULE_ID) return; - let code = await readFile(new URL('../../templates/actions.mjs', import.meta.url), 'utf-8'); + let code = await fs.promises.readFile( + new URL('../../templates/actions.mjs', import.meta.url), + 'utf-8' + ); if (opts?.ssr) { code += `\nexport * from 'astro/actions/runtime/virtual/server.js';`; } else { @@ -68,14 +72,16 @@ const vitePluginActions: VitePlugin = { } return code; }, -}; +}); async function typegen({ stringifiedActionsImport, root, + fs, }: { stringifiedActionsImport: string; root: URL; + fs: typeof fsMod; }) { const content = `declare module "astro:actions" { type Actions = typeof import(${stringifiedActionsImport})["server"]; @@ -85,6 +91,6 @@ async function typegen({ const dotAstroDir = new URL('.astro/', root); - await mkdir(dotAstroDir, { recursive: true }); - await writeFile(new URL(ACTIONS_TYPES_FILE, dotAstroDir), content); + await fs.promises.mkdir(dotAstroDir, { recursive: true }); + await fs.promises.writeFile(new URL(ACTIONS_TYPES_FILE, dotAstroDir), content); } diff --git a/packages/astro/src/actions/runtime/virtual/server.ts b/packages/astro/src/actions/runtime/virtual/server.ts index 326bbf4f9be6..3efa7ca149a0 100644 --- a/packages/astro/src/actions/runtime/virtual/server.ts +++ b/packages/astro/src/actions/runtime/virtual/server.ts @@ -124,8 +124,8 @@ export function formDataToObject( const obj: Record = {}; for (const [key, baseValidator] of Object.entries(schema.shape)) { let validator = baseValidator; - if (baseValidator instanceof z.ZodOptional || baseValidator instanceof z.ZodNullable) { - validator = baseValidator._def.innerType; + while (validator instanceof z.ZodOptional || validator instanceof z.ZodNullable) { + validator = validator._def.innerType; } if (validator instanceof z.ZodBoolean) { obj[key] = formData.has(key); diff --git a/packages/astro/src/assets/internal.ts b/packages/astro/src/assets/internal.ts index 8770f27b5998..7265e85dfb10 100644 --- a/packages/astro/src/assets/internal.ts +++ b/packages/astro/src/assets/internal.ts @@ -10,7 +10,7 @@ import { isImageMetadata, } from './types.js'; import { isESMImportedImage, isRemoteImage, resolveSrc } from './utils/imageKind.js'; -import { probe } from './utils/remoteProbe.js'; +import { inferRemoteSize } from './utils/remoteProbe.js'; export async function getConfiguredImageService(): Promise { if (!globalThis?.astroAsset?.imageService) { @@ -66,17 +66,10 @@ export async function getImage( // Infer size for remote images if inferSize is true if (options.inferSize && isRemoteImage(resolvedOptions.src)) { - try { - const result = await probe(resolvedOptions.src); // Directly probe the image URL - resolvedOptions.width ??= result.width; - resolvedOptions.height ??= result.height; - delete resolvedOptions.inferSize; // Delete so it doesn't end up in the attributes - } catch { - throw new AstroError({ - ...AstroErrorData.FailedToFetchRemoteImageDimensions, - message: AstroErrorData.FailedToFetchRemoteImageDimensions.message(resolvedOptions.src), - }); - } + const result = await inferRemoteSize(resolvedOptions.src); // Directly probe the image URL + resolvedOptions.width ??= result.width; + resolvedOptions.height ??= result.height; + delete resolvedOptions.inferSize; // Delete so it doesn't end up in the attributes } const originalFilePath = isESMImportedImage(resolvedOptions.src) diff --git a/packages/astro/src/assets/utils/index.ts b/packages/astro/src/assets/utils/index.ts index 4fb4e42db373..69e7c88dc401 100644 --- a/packages/astro/src/assets/utils/index.ts +++ b/packages/astro/src/assets/utils/index.ts @@ -1,4 +1,4 @@ -export { emitESMImage } from './emitAsset.js'; +export { emitESMImage } from './node/emitAsset.js'; export { isESMImportedImage, isRemoteImage } from './imageKind.js'; export { imageMetadata } from './metadata.js'; export { getOrigQueryParams } from './queryParams.js'; @@ -12,3 +12,4 @@ export { type RemotePattern, } from './remotePattern.js'; export { hashTransform, propsToFilename } from './transformToPath.js'; +export { inferRemoteSize } from './remoteProbe.js'; diff --git a/packages/astro/src/assets/utils/emitAsset.ts b/packages/astro/src/assets/utils/node/emitAsset.ts similarity index 93% rename from packages/astro/src/assets/utils/emitAsset.ts rename to packages/astro/src/assets/utils/node/emitAsset.ts index 1b6bb207bbb1..3a590e3a6814 100644 --- a/packages/astro/src/assets/utils/emitAsset.ts +++ b/packages/astro/src/assets/utils/node/emitAsset.ts @@ -2,9 +2,9 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import { fileURLToPath, pathToFileURL } from 'node:url'; import type * as vite from 'vite'; -import { prependForwardSlash, slash } from '../../core/path.js'; -import type { ImageMetadata } from '../types.js'; -import { imageMetadata } from './metadata.js'; +import { prependForwardSlash, slash } from '../../../core/path.js'; +import type { ImageMetadata } from '../../types.js'; +import { imageMetadata } from '../metadata.js'; type FileEmitter = vite.Rollup.EmitFile; diff --git a/packages/astro/src/assets/utils/remoteProbe.ts b/packages/astro/src/assets/utils/remoteProbe.ts index 1cda4ca45818..c71413069e68 100644 --- a/packages/astro/src/assets/utils/remoteProbe.ts +++ b/packages/astro/src/assets/utils/remoteProbe.ts @@ -1,11 +1,15 @@ -import { lookup } from './vendor/image-size/lookup.js'; -import type { ISize } from './vendor/image-size/types/interface.ts'; +import { AstroError, AstroErrorData } from '../../core/errors/index.js'; +import type { ImageMetadata } from '../types.js'; +import { imageMetadata } from './metadata.js'; -export async function probe(url: string): Promise { +export async function inferRemoteSize(url: string): Promise> { // Start fetching the image const response = await fetch(url); if (!response.body || !response.ok) { - throw new Error('Failed to fetch image'); + throw new AstroError({ + ...AstroErrorData.FailedToFetchRemoteImageDimensions, + message: AstroErrorData.FailedToFetchRemoteImageDimensions.message(url), + }); } const reader = response.body.getReader(); @@ -31,17 +35,22 @@ export async function probe(url: string): Promise { try { // Attempt to determine the size with each new chunk - const dimensions = lookup(accumulatedChunks); + const dimensions = await imageMetadata(accumulatedChunks, url); + if (dimensions) { await reader.cancel(); // stop stream as we have size now + return dimensions; } } catch (error) { - // This catch block is specifically for `sizeOf` failures, + // This catch block is specifically for `imageMetadata` errors // which might occur if the accumulated data isn't yet sufficient. } } } - throw new Error('Failed to parse the size'); + throw new AstroError({ + ...AstroErrorData.NoImageMetadata, + message: AstroErrorData.NoImageMetadata.message(url), + }); } diff --git a/packages/astro/src/assets/vite-plugin-assets.ts b/packages/astro/src/assets/vite-plugin-assets.ts index eda4b6cfbc2a..949a6e6722d5 100644 --- a/packages/astro/src/assets/vite-plugin-assets.ts +++ b/packages/astro/src/assets/vite-plugin-assets.ts @@ -14,9 +14,9 @@ import { } from '../core/path.js'; import { isServerLikeOutput } from '../core/util.js'; import { VALID_INPUT_FORMATS, VIRTUAL_MODULE_ID, VIRTUAL_SERVICE_ID } from './consts.js'; -import { emitESMImage } from './utils/emitAsset.js'; import { getAssetsPrefix } from './utils/getAssetsPrefix.js'; import { isESMImportedImage } from './utils/imageKind.js'; +import { emitESMImage } from './utils/node/emitAsset.js'; import { getProxyCode } from './utils/proxy.js'; import { hashTransform, propsToFilename } from './utils/transformToPath.js'; @@ -133,6 +133,7 @@ export default function assets({ import { getImage as getImageInternal } from "astro/assets"; export { default as Image } from "astro/components/Image.astro"; export { default as Picture } from "astro/components/Picture.astro"; + export { inferRemoteSize } from "astro/assets/utils/inferRemoteSize.js"; export const imageConfig = ${JSON.stringify(settings.config.image)}; // This is used by the @astrojs/node integration to locate images. diff --git a/packages/astro/src/cli/check/index.ts b/packages/astro/src/cli/check/index.ts index 721a0bf6911b..ff7835fdca08 100644 --- a/packages/astro/src/cli/check/index.ts +++ b/packages/astro/src/cli/check/index.ts @@ -28,10 +28,10 @@ export async function check(flags: Arguments) { // NOTE: In the future, `@astrojs/check` can expose a `before lint` hook so that this works during `astro check --watch` too. // For now, we run this once as usually `astro check --watch` is ran alongside `astro dev` which also calls `astro sync`. const { default: sync } = await import('../../core/sync/index.js'); - const inlineConfig = flagsToAstroInlineConfig(flags); - const exitCode = await sync(inlineConfig); - if (exitCode !== 0) { - process.exit(exitCode); + try { + await sync({ inlineConfig: flagsToAstroInlineConfig(flags) }); + } catch (_) { + return process.exit(1); } const { check: checker, parseArgsAsCheckConfig } = checkPackage; diff --git a/packages/astro/src/cli/sync/index.ts b/packages/astro/src/cli/sync/index.ts index 8650bf904655..6849fee70844 100644 --- a/packages/astro/src/cli/sync/index.ts +++ b/packages/astro/src/cli/sync/index.ts @@ -20,8 +20,10 @@ export async function sync({ flags }: SyncOptions) { return 0; } - const inlineConfig = flagsToAstroInlineConfig(flags); - - const exitCode = await _sync(inlineConfig); - return exitCode; + try { + await _sync({ inlineConfig: flagsToAstroInlineConfig(flags), telemetry: true }); + return 0; + } catch (_) { + return 1; + } } diff --git a/packages/astro/src/content/runtime-assets.ts b/packages/astro/src/content/runtime-assets.ts index 26d98fd6e8db..42969042c678 100644 --- a/packages/astro/src/content/runtime-assets.ts +++ b/packages/astro/src/content/runtime-assets.ts @@ -1,7 +1,7 @@ import type { PluginContext } from 'rollup'; import { z } from 'zod'; import type { ImageMetadata, OmitBrand } from '../assets/types.js'; -import { emitESMImage } from '../assets/utils/emitAsset.js'; +import { emitESMImage } from '../assets/utils/node/emitAsset.js'; export function createImage( pluginContext: PluginContext, diff --git a/packages/astro/src/core/app/index.ts b/packages/astro/src/core/app/index.ts index 0ef48a926542..aa3c7370d37c 100644 --- a/packages/astro/src/core/app/index.ts +++ b/packages/astro/src/core/app/index.ts @@ -314,10 +314,12 @@ export class App { } const pathname = this.#getPathnameFromRequest(request); const defaultStatus = this.#getDefaultStatusCode(routeData, pathname); - const mod = await this.#pipeline.getModuleForRoute(routeData); let response; try { + // Load route module. We also catch its error here if it fails on initialization + const mod = await this.#pipeline.getModuleForRoute(routeData); + const renderContext = RenderContext.create({ pipeline: this.#pipeline, locals, diff --git a/packages/astro/src/core/build/index.ts b/packages/astro/src/core/build/index.ts index 854a3fbd0914..9376cf439445 100644 --- a/packages/astro/src/core/build/index.ts +++ b/packages/astro/src/core/build/index.ts @@ -144,11 +144,12 @@ class AstroBuilder { ); await runHookConfigDone({ settings: this.settings, logger: logger }); - const { syncContentCollections } = await import('../sync/index.js'); - const syncRet = await syncContentCollections(this.settings, { logger: logger, fs }); - if (syncRet !== 0) { - return process.exit(syncRet); - } + const { syncInternal } = await import('../sync/index.js'); + await syncInternal({ + settings: this.settings, + logger, + fs, + }); const dataStore = await DataStore.fromModule(); globalDataStore.set(dataStore); diff --git a/packages/astro/src/core/build/plugins/plugin-pages.ts b/packages/astro/src/core/build/plugins/plugin-pages.ts index 9b7faf07c6bb..4df70eac4b56 100644 --- a/packages/astro/src/core/build/plugins/plugin-pages.ts +++ b/packages/astro/src/core/build/plugins/plugin-pages.ts @@ -44,8 +44,8 @@ function vitePluginPages(opts: StaticBuildOptions, internals: BuildInternals): V for (const pageData of pageDatas) { const resolvedPage = await this.resolve(pageData.moduleSpecifier); if (resolvedPage) { - imports.push(`const page = () => import(${JSON.stringify(pageData.moduleSpecifier)});`); - exports.push(`export { page }`); + imports.push(`import * as _page from ${JSON.stringify(pageData.moduleSpecifier)};`); + exports.push(`export const page = () => _page`); imports.push(`import { renderers } from "${RENDERERS_MODULE_ID}";`); exports.push(`export { renderers };`); diff --git a/packages/astro/src/core/build/plugins/plugin-prerender.ts b/packages/astro/src/core/build/plugins/plugin-prerender.ts index b7feb70e36a0..a8ace9a2549e 100644 --- a/packages/astro/src/core/build/plugins/plugin-prerender.ts +++ b/packages/astro/src/core/build/plugins/plugin-prerender.ts @@ -40,7 +40,7 @@ function getNonPrerenderOnlyChunks(bundle: Rollup.OutputBundle, internals: Build const prerenderOnlyEntryChunks = new Set(); const nonPrerenderOnlyEntryChunks = new Set(); for (const chunk of chunks) { - if (chunk.type === 'chunk' && (chunk.isEntry || chunk.isDynamicEntry)) { + if (chunk.type === 'chunk' && chunk.isEntry) { // See if this entry chunk is prerendered, if so, skip it if (chunk.facadeModuleId?.startsWith(ASTRO_PAGE_RESOLVED_MODULE_ID)) { const pageDatas = getPagesFromVirtualModulePageName( diff --git a/packages/astro/src/core/build/static-build.ts b/packages/astro/src/core/build/static-build.ts index 5b75dbc9354f..da651effdcdd 100644 --- a/packages/astro/src/core/build/static-build.ts +++ b/packages/astro/src/core/build/static-build.ts @@ -215,14 +215,15 @@ async function ssrBuild( if (isContentCache) { prefix += `${buildID}/`; suffix = '.mjs'; - } - if (isContentCache && name.includes('/content/')) { - const parts = name.split('/'); - if (parts.at(1) === 'content') { - return encodeName(parts.slice(1).join('/')); + if (name.includes('/content/')) { + const parts = name.split('/'); + if (parts.at(1) === 'content') { + return encodeName(parts.slice(1).join('/')); + } } } + // Sometimes chunks have the `@_@astro` suffix due to SSR logic. Remove it! // TODO: refactor our build logic to avoid this if (name.includes(ASTRO_PAGE_EXTENSION_POST_PATTERN)) { diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index bb3130137eeb..c27dc682449b 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -321,6 +321,9 @@ export const AstroConfigSchema = z.object({ .or(z.custom()) ) .default(ASTRO_CONFIG_DEFAULTS.markdown.shikiConfig.themes!), + defaultColor: z + .union([z.literal('light'), z.literal('dark'), z.string(), z.literal(false)]) + .optional(), wrap: z.boolean().or(z.null()).default(ASTRO_CONFIG_DEFAULTS.markdown.shikiConfig.wrap!), transformers: z .custom() diff --git a/packages/astro/src/core/constants.ts b/packages/astro/src/core/constants.ts index 0930ea6f0f7d..8e9f5ac74e0a 100644 --- a/packages/astro/src/core/constants.ts +++ b/packages/astro/src/core/constants.ts @@ -22,6 +22,14 @@ export const ASTRO_VERSION = process.env.PACKAGE_VERSION ?? 'development'; */ export const REROUTE_DIRECTIVE_HEADER = 'X-Astro-Reroute'; +/** + * Header and value that are attached to a Response object when a **user rewrite** occurs. + * + * This metadata is used to determine the origin of a Response. If a rewrite has occurred, it should be prioritised over other logic. + */ +export const REWRITE_DIRECTIVE_HEADER_KEY = 'X-Astro-Rewrite'; +export const REWRITE_DIRECTIVE_HEADER_VALUE = 'yes'; + /** * The name for the header used to help i18n middleware, which only needs to act on "page" and "fallback" route types. */ diff --git a/packages/astro/src/core/create-vite.ts b/packages/astro/src/core/create-vite.ts index e07150c39db8..4462bb088539 100644 --- a/packages/astro/src/core/create-vite.ts +++ b/packages/astro/src/core/create-vite.ts @@ -25,7 +25,6 @@ import envVitePlugin from '../vite-plugin-env/index.js'; import vitePluginFileURL from '../vite-plugin-fileurl/index.js'; import astroHeadPlugin from '../vite-plugin-head/index.js'; import htmlVitePlugin from '../vite-plugin-html/index.js'; -import { astroInjectEnvTsPlugin } from '../vite-plugin-inject-env-ts/index.js'; import astroIntegrationsContainerPlugin from '../vite-plugin-integrations-container/index.js'; import astroLoadFallbackPlugin from '../vite-plugin-load-fallback/index.js'; import markdownVitePlugin from '../vite-plugin-markdown/index.js'; @@ -120,13 +119,8 @@ export async function createVite( customLogger: createViteLogger(logger, settings.config.vite.logLevel), appType: 'custom', optimizeDeps: { - // Scan all files within `srcDir` except for known server-code (e.g endpoints) - entries: [ - `${srcDirPattern}!(pages)/**/*`, // All files except for pages - `${srcDirPattern}pages/**/!(*.js|*.mjs|*.ts|*.mts)`, // All pages except for endpoints - `${srcDirPattern}pages/**/_*.{js,mjs,ts,mts}`, // Remaining JS/TS files prefixed with `_` (not endpoints) - `${srcDirPattern}pages/**/_*/**/*.{js,mjs,ts,mts}`, // Remaining JS/TS files within directories prefixed with `_` (not endpoints) - ], + // Scan for component code within `srcDir` + entries: [`${srcDirPattern}**/*.{jsx,tsx,vue,svelte,html,astro}`], exclude: ['astro', 'node-fetch'], }, plugins: [ @@ -147,7 +141,6 @@ export async function createVite( astroScriptsPageSSRPlugin({ settings }), astroHeadPlugin(), astroScannerPlugin({ settings, logger }), - astroInjectEnvTsPlugin({ settings, logger, fs }), astroContentVirtualModPlugin({ fs, settings }), astroContentImportPlugin({ fs, settings, logger }), astroContentAssetPropagationPlugin({ mode, settings }), diff --git a/packages/astro/src/core/dev/container.ts b/packages/astro/src/core/dev/container.ts index 0102a87cd0be..aaf6506e9d81 100644 --- a/packages/astro/src/core/dev/container.ts +++ b/packages/astro/src/core/dev/container.ts @@ -14,6 +14,7 @@ import { import { createVite } from '../create-vite.js'; import type { Logger } from '../logger/core.js'; import { apply as applyPolyfill } from '../polyfill.js'; +import { syncInternal } from '../sync/index.js'; export interface Container { fs: typeof nodeFs; @@ -56,9 +57,22 @@ export async function createContainer({ base, server: { host, headers, open: serverOpen }, } = settings.config; + + // serverOpen = true, isRestart = false + // when astro dev --open command is run the first time + // expected behavior: spawn a new tab + // ------------------------------------------------------ + // serverOpen = true, isRestart = true + // when config file is saved + // expected behavior: do not spawn a new tab + // ------------------------------------------------------ + // Non-config files don't reach this point + const isServerOpenURL = typeof serverOpen == 'string' && !isRestart; + const isServerOpenBoolean = serverOpen && !isRestart; + // Open server to the correct path. We pass the `base` here as we didn't pass the // base to the initial Vite config - const open = typeof serverOpen == 'string' ? serverOpen : serverOpen ? base : false; + const open = isServerOpenURL ? serverOpen : isServerOpenBoolean ? base : false; // The client entrypoint for renderers. Since these are imported dynamically // we need to tell Vite to preoptimize them. @@ -77,6 +91,14 @@ export async function createContainer({ { settings, logger, mode: 'dev', command: 'dev', fs, sync: false } ); await runHookConfigDone({ settings, logger }); + await syncInternal({ + settings, + logger, + skip: { + content: true, + }, + }); + const viteServer = await vite.createServer(viteConfig); const container: Container = { diff --git a/packages/astro/src/core/errors/dev/vite.ts b/packages/astro/src/core/errors/dev/vite.ts index 96e53d41c2e7..4d70a52686dd 100644 --- a/packages/astro/src/core/errors/dev/vite.ts +++ b/packages/astro/src/core/errors/dev/vite.ts @@ -146,8 +146,7 @@ export async function getViteErrorPayload(err: ErrorWithMetadata): Promise - `The following environment variables do not match the data type and/or properties defined in \`experimental.env.schema\`:\n\n${variables}\n`, + message: (errors: Array) => + `The following environment variables defined in \`experimental.env.schema\` are invalid:\n\n${errors.map((err) => `- ${err}`).join('\n')}\n`, } satisfies ErrorData; /** diff --git a/packages/astro/src/core/errors/overlay.ts b/packages/astro/src/core/errors/overlay.ts index 4a7818d66844..c4caa3e8de9a 100644 --- a/packages/astro/src/core/errors/overlay.ts +++ b/packages/astro/src/core/errors/overlay.ts @@ -695,6 +695,10 @@ class ErrorOverlay extends HTMLElement { const el = this.root.querySelector(selector); + if (!el) { + return; + } + if (html) { // Automatically detect links text = text @@ -706,14 +710,10 @@ class ErrorOverlay extends HTMLElement { return `${v}`; }) .join(' '); - } - if (el) { - if (!html) { - el.textContent = text.trim(); - } else { - el.innerHTML = text.trim(); - } + el.innerHTML = text.trim(); + } else { + el.textContent = text.trim(); } } diff --git a/packages/astro/src/core/index.ts b/packages/astro/src/core/index.ts index 31d868311455..e0f9f6c82412 100644 --- a/packages/astro/src/core/index.ts +++ b/packages/astro/src/core/index.ts @@ -22,5 +22,5 @@ export const build = (inlineConfig: AstroInlineConfig) => _build(inlineConfig); * * @experimental The JavaScript API is experimental */ -// Wrap `_sync` to prevent exposing the second internal options parameter -export const sync = (inlineConfig: AstroInlineConfig) => _sync(inlineConfig); +// Wrap `_sync` to prevent exposing internal options +export const sync = (inlineConfig: AstroInlineConfig) => _sync({ inlineConfig }); diff --git a/packages/astro/src/core/middleware/callMiddleware.ts b/packages/astro/src/core/middleware/callMiddleware.ts index d52ba01265f2..5f4fb3d0f5e5 100644 --- a/packages/astro/src/core/middleware/callMiddleware.ts +++ b/packages/astro/src/core/middleware/callMiddleware.ts @@ -56,15 +56,16 @@ export async function callMiddleware( let responseFunctionPromise: Promise | Response | undefined = undefined; const next: MiddlewareNext = async (payload) => { nextCalled = true; - if (!enableRerouting && payload) { - logger.warn( - 'router', - 'The rewrite API is experimental. To use this feature, add the `rewriting` flag to the `experimental` object in your Astro config.' - ); - } + if (enableRerouting) { responseFunctionPromise = responseFunction(apiContext, payload); } else { + if (payload) { + logger.warn( + 'router', + 'The rewrite API is experimental. To use this feature, add the `rewriting` flag to the `experimental` object in your Astro config.' + ); + } responseFunctionPromise = responseFunction(apiContext); } // We need to pass the APIContext pass to `callMiddleware` because it can be mutated across middleware functions diff --git a/packages/astro/src/core/redirects/render.ts b/packages/astro/src/core/redirects/render.ts index 24361fde471f..379f26e3ba48 100644 --- a/packages/astro/src/core/redirects/render.ts +++ b/packages/astro/src/core/redirects/render.ts @@ -25,8 +25,7 @@ function redirectRouteGenerate(renderContext: RenderContext): string { let target = redirect; for (const param of Object.keys(params)) { const paramValue = params[param]!; - target = target.replace(`[${param}]`, paramValue); - target = target.replace(`[...${param}]`, paramValue); + target = target.replace(`[${param}]`, paramValue).replace(`[...${param}]`, paramValue); } return target; } else if (typeof redirect === 'undefined') { diff --git a/packages/astro/src/core/render-context.ts b/packages/astro/src/core/render-context.ts index 910ee679e274..561d5b7f3e87 100644 --- a/packages/astro/src/core/render-context.ts +++ b/packages/astro/src/core/render-context.ts @@ -21,6 +21,8 @@ import { renderPage } from '../runtime/server/index.js'; import { ASTRO_VERSION, REROUTE_DIRECTIVE_HEADER, + REWRITE_DIRECTIVE_HEADER_KEY, + REWRITE_DIRECTIVE_HEADER_VALUE, ROUTE_TYPE_HEADER, clientAddressSymbol, clientLocalsSymbol, @@ -184,13 +186,12 @@ export class RenderContext { // Signal to the i18n middleware to maybe act on this response response.headers.set(ROUTE_TYPE_HEADER, 'page'); // Signal to the error-page-rerouting infra to let this response pass through to avoid loops - if ( - this.routeData.route === '/404' || - this.routeData.route === '/500' || - this.isRewriting - ) { + if (this.routeData.route === '/404' || this.routeData.route === '/500') { response.headers.set(REROUTE_DIRECTIVE_HEADER, 'no'); } + if (this.isRewriting) { + response.headers.set(REWRITE_DIRECTIVE_HEADER_KEY, REWRITE_DIRECTIVE_HEADER_VALUE); + } break; } case 'fallback': { @@ -381,6 +382,7 @@ export class RenderContext { } #astroPagePartial?: Omit; + /** * The Astro global is sourced in 3 different phases: * - **Static**: `.generator` and `.glob` is printed by the compiler, instantiated once per process per astro file @@ -512,6 +514,7 @@ export class RenderContext { * So, it is computed and saved here on creation of the first APIContext and reused for later ones. */ #currentLocale: APIContext['currentLocale']; + computeCurrentLocale() { const { url, @@ -537,6 +540,7 @@ export class RenderContext { } #preferredLocale: APIContext['preferredLocale']; + computePreferredLocale() { const { pipeline: { i18n }, @@ -547,6 +551,7 @@ export class RenderContext { } #preferredLocaleList: APIContext['preferredLocaleList']; + computePreferredLocaleList() { const { pipeline: { i18n }, diff --git a/packages/astro/src/core/render/paginate.ts b/packages/astro/src/core/render/paginate.ts index 00aba3702bac..591d739c5b05 100644 --- a/packages/astro/src/core/render/paginate.ts +++ b/packages/astro/src/core/render/paginate.ts @@ -56,6 +56,19 @@ export function generatePaginateFunction( !includesFirstPageNumber && pageNum - 1 === 1 ? undefined : String(pageNum - 1), }) ); + const first = + pageNum === 1 + ? undefined + : correctIndexRoute( + routeMatch.generate({ + ...params, + page: includesFirstPageNumber ? '1' : undefined, + }) + ); + const last = + pageNum === lastPage + ? undefined + : correctIndexRoute(routeMatch.generate({ ...params, page: String(lastPage) })); return { params, props: { @@ -68,7 +81,7 @@ export function generatePaginateFunction( total: data.length, currentPage: pageNum, lastPage: lastPage, - url: { current, next, prev }, + url: { current, next, prev, first, last }, } as Page, }, }; diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index d1b80f00ac4f..ece724cec989 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -12,7 +12,6 @@ import { syncAstroEnv } from '../../env/sync.js'; import { telemetry } from '../../events/index.js'; import { eventCliSession } from '../../events/session.js'; import { runHookConfigSetup } from '../../integrations/hooks.js'; -import { setUpEnvTs } from '../../vite-plugin-inject-env-ts/index.js'; import { getTimeStat } from '../build/util.js'; import { resolveConfig } from '../config/config.js'; import { createNodeLogger } from '../config/logging.js'; @@ -29,46 +28,58 @@ import { import type { Logger } from '../logger/core.js'; import { formatErrorMessage } from '../messages.js'; import { ensureProcessNodeEnv } from '../util.js'; - -export type ProcessExit = 0 | 1; +import { setUpEnvTs } from './setup-env-ts.js'; export type SyncOptions = { /** * @internal only used for testing */ fs?: typeof fsMod; -}; - -export type SyncInternalOptions = SyncOptions & { logger: Logger; + settings: AstroSettings; + skip?: { + // Must be skipped in dev + content?: boolean; + }; }; type DBPackage = { typegen?: (args: Pick) => Promise; }; +export default async function sync({ + inlineConfig, + fs, + telemetry: _telemetry = false, +}: { inlineConfig: AstroInlineConfig; fs?: typeof fsMod; telemetry?: boolean }) { + ensureProcessNodeEnv('production'); + const logger = createNodeLogger(inlineConfig); + const { astroConfig, userConfig } = await resolveConfig(inlineConfig ?? {}, 'sync'); + if (_telemetry) { + telemetry.record(eventCliSession('sync', userConfig)); + } + let settings = await createSettings(astroConfig, inlineConfig.root); + settings = await runHookConfigSetup({ + command: 'build', + settings, + logger, + }); + return await syncInternal({ settings, logger, fs }); +} + /** * Generates TypeScript types for all Astro modules. This sets up a `src/env.d.ts` file for type inferencing, * and defines the `astro:content` module for the Content Collections API. * * @experimental The JavaScript API is experimental */ -export default async function sync( - inlineConfig: AstroInlineConfig, - options?: SyncOptions -): Promise { - ensureProcessNodeEnv('production'); - const logger = createNodeLogger(inlineConfig); - const { userConfig, astroConfig } = await resolveConfig(inlineConfig ?? {}, 'sync'); - telemetry.record(eventCliSession('sync', userConfig)); - - const _settings = await createSettings(astroConfig, fileURLToPath(astroConfig.root)); - - const settings = await runHookConfigSetup({ - settings: _settings, - logger: logger, - command: 'build', - }); +export async function syncInternal({ + logger, + fs = fsMod, + settings, + skip, +}: SyncOptions): Promise { + const cwd = fileURLToPath(settings.config.root); const timerStart = performance.now(); const dbPackage = await getPackage( @@ -76,28 +87,30 @@ export default async function sync( logger, { optional: true, - cwd: inlineConfig.root, + cwd, }, [] ); try { - await dbPackage?.typegen?.(astroConfig); - const exitCode = await syncContentCollections(settings, { ...options, logger }); - if (exitCode !== 0) return exitCode; - syncAstroEnv(settings, options?.fs); + await dbPackage?.typegen?.(settings.config); + if (!skip?.content) { + await syncContentCollections(settings, { fs, logger }); + } + syncAstroEnv(settings, fs); await syncContentLayer({ settings, logger }); - logger.info(null, `Types generated ${dim(getTimeStat(timerStart, performance.now()))}`); - return 0; + await setUpEnvTs({ settings, logger, fs }); + logger.info('types', `Generated ${dim(getTimeStat(timerStart, performance.now()))}`); } catch (err) { const error = createSafeError(err); logger.error( - 'content', + 'types', formatErrorMessage(collectErrorMetadata(error), logger.level() === 'debug') + '\n' ); - return 1; + // Will return exit code 1 in CLI + throw error; } } @@ -115,10 +128,10 @@ export default async function sync( * @param {LogOptions} options.logging Logging options * @return {Promise} */ -export async function syncContentCollections( +async function syncContentCollections( settings: AstroSettings, - { logger, fs }: SyncInternalOptions -): Promise { + { logger, fs }: Required> +): Promise { // Needed to load content config const tempViteServer = await createServer( await createVite( @@ -146,7 +159,7 @@ export async function syncContentCollections( const contentTypesGenerator = await createContentTypesGenerator({ contentConfigObserver: globalContentConfigObserver, logger: logger, - fs: fs ?? fsMod, + fs, settings, viteServer: tempViteServer, }); @@ -162,7 +175,6 @@ export async function syncContentCollections( case 'no-content-dir': default: logger.debug('types', 'No content directory found. Skipping type generation.'); - return 0; } } } catch (e) { @@ -182,8 +194,4 @@ export async function syncContentCollections( } finally { await tempViteServer.close(); } - - await setUpEnvTs({ settings, logger, fs: fs ?? fsMod }); - - return 0; } diff --git a/packages/astro/src/vite-plugin-inject-env-ts/index.ts b/packages/astro/src/core/sync/setup-env-ts.ts similarity index 68% rename from packages/astro/src/vite-plugin-inject-env-ts/index.ts rename to packages/astro/src/core/sync/setup-env-ts.ts index 3ebecce2dd51..5a380271a297 100644 --- a/packages/astro/src/vite-plugin-inject-env-ts/index.ts +++ b/packages/astro/src/core/sync/setup-env-ts.ts @@ -2,36 +2,12 @@ import type fsMod from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { bold } from 'kleur/colors'; -import { type Plugin, normalizePath } from 'vite'; -import type { AstroSettings } from '../@types/astro.js'; -import { ACTIONS_TYPES_FILE } from '../actions/consts.js'; -import { CONTENT_TYPES_FILE } from '../content/consts.js'; -import { type Logger } from '../core/logger/core.js'; -import { ENV_TYPES_FILE } from '../env/constants.js'; - -export function getEnvTsPath({ srcDir }: { srcDir: URL }) { - return new URL('env.d.ts', srcDir); -} - -export function astroInjectEnvTsPlugin({ - settings, - logger, - fs, -}: { - settings: AstroSettings; - logger: Logger; - fs: typeof fsMod; -}): Plugin { - return { - name: 'astro-inject-env-ts', - // Use `post` to ensure project setup is complete - // Ex. `.astro` types have been written - enforce: 'post', - async config() { - await setUpEnvTs({ settings, logger, fs }); - }, - }; -} +import { normalizePath } from 'vite'; +import type { AstroSettings } from '../../@types/astro.js'; +import { ACTIONS_TYPES_FILE } from '../../actions/consts.js'; +import { CONTENT_TYPES_FILE } from '../../content/consts.js'; +import { ENV_TYPES_FILE } from '../../env/constants.js'; +import { type Logger } from '../logger/core.js'; function getDotAstroTypeReference({ settings, @@ -58,7 +34,7 @@ export async function setUpEnvTs({ logger: Logger; fs: typeof fsMod; }) { - const envTsPath = getEnvTsPath(settings.config); + const envTsPath = new URL('env.d.ts', settings.config.srcDir); const envTsPathRelativetoRoot = normalizePath( path.relative(fileURLToPath(settings.config.root), fileURLToPath(envTsPath)) ); @@ -80,7 +56,8 @@ export async function setUpEnvTs({ } if (fs.existsSync(envTsPath)) { - let typesEnvContents = await fs.promises.readFile(envTsPath, 'utf-8'); + const initialEnvContents = await fs.promises.readFile(envTsPath, 'utf-8'); + let typesEnvContents = initialEnvContents; for (const injectedType of injectedTypes) { if (!injectedType.meetsCondition || (await injectedType.meetsCondition?.())) { @@ -95,8 +72,10 @@ export async function setUpEnvTs({ } } - logger.info('types', `Added ${bold(envTsPathRelativetoRoot)} type declarations.`); - await fs.promises.writeFile(envTsPath, typesEnvContents, 'utf-8'); + if (initialEnvContents !== typesEnvContents) { + logger.info('types', `Updated ${bold(envTsPathRelativetoRoot)} type declarations.`); + await fs.promises.writeFile(envTsPath, typesEnvContents, 'utf-8'); + } } else { // Otherwise, inject the `env.d.ts` file let referenceDefs: string[] = []; diff --git a/packages/astro/src/env/validators.ts b/packages/astro/src/env/validators.ts index a09eeda8fcff..4e5d342875c5 100644 --- a/packages/astro/src/env/validators.ts +++ b/packages/astro/src/env/validators.ts @@ -1,16 +1,16 @@ import type { EnumSchema, EnvFieldType, NumberSchema, StringSchema } from './schema.js'; export type ValidationResultValue = EnvFieldType['default']; +export type ValidationResultErrors = ['missing'] | ['type'] | Array; type ValidationResult = | { ok: true; - type: string; value: ValidationResultValue; } | { ok: false; - type: string; + errors: ValidationResultErrors; }; export function getEnvFieldType(options: EnvFieldType) { @@ -26,45 +26,50 @@ export function getEnvFieldType(options: EnvFieldType) { return `${type}${optional ? ' | undefined' : ''}`; } -type ValueValidator = (input: string | undefined) => { - valid: boolean; - parsed: ValidationResultValue; -}; +type ValueValidator = (input: string | undefined) => ValidationResult; const stringValidator = ({ max, min, length, url, includes, startsWith, endsWith }: StringSchema): ValueValidator => (input) => { - let valid = typeof input === 'string'; + if (typeof input !== 'string') { + return { + ok: false, + errors: ['type'], + }; + } + const errors: Array = []; - if (valid && max !== undefined) { - valid = input!.length <= max; + if (max !== undefined && !(input.length <= max)) { + errors.push('max'); } - if (valid && min !== undefined) { - valid = input!.length >= min; + if (min !== undefined && !(input.length >= min)) { + errors.push('min'); } - if (valid && length !== undefined) { - valid = input!.length === length; + if (length !== undefined && !(input.length === length)) { + errors.push('length'); } - if (valid && url !== undefined) { - try { - new URL(input!); - } catch (_) { - valid = false; - } + if (url !== undefined && !URL.canParse(input)) { + errors.push('url'); } - if (valid && includes !== undefined) { - valid = input!.includes(includes); + if (includes !== undefined && !input.includes(includes)) { + errors.push('includes'); } - if (valid && startsWith !== undefined) { - valid = input!.startsWith(startsWith); + if (startsWith !== undefined && !input.startsWith(startsWith)) { + errors.push('startsWith'); } - if (valid && endsWith !== undefined) { - valid = input!.endsWith(endsWith); + if (endsWith !== undefined && !input.endsWith(endsWith)) { + errors.push('endsWith'); } + if (errors.length > 0) { + return { + ok: false, + errors, + }; + } return { - valid, - parsed: input, + ok: true, + value: input, }; }; @@ -72,45 +77,71 @@ const numberValidator = ({ gt, min, lt, max, int }: NumberSchema): ValueValidator => (input) => { const num = parseFloat(input ?? ''); - let valid = !isNaN(num); + if (isNaN(num)) { + return { + ok: false, + errors: ['type'], + }; + } + const errors: Array = []; - if (valid && gt !== undefined) { - valid = num > gt; + if (gt !== undefined && !(num > gt)) { + errors.push('gt'); } - if (valid && min !== undefined) { - valid = num >= min; + if (min !== undefined && !(num >= min)) { + errors.push('min'); } - if (valid && lt !== undefined) { - valid = num < lt; + if (lt !== undefined && !(num < lt)) { + errors.push('lt'); } - if (valid && max !== undefined) { - valid = num <= max; + if (max !== undefined && !(num <= max)) { + errors.push('max'); } - if (valid && int !== undefined) { + if (int !== undefined) { const isInt = Number.isInteger(num); - valid = int ? isInt : !isInt; + if (!(int ? isInt : !isInt)) { + errors.push('int'); + } } + if (errors.length > 0) { + return { + ok: false, + errors, + }; + } return { - valid, - parsed: num, + ok: true, + value: num, }; }; const booleanValidator: ValueValidator = (input) => { const bool = input === 'true' ? true : input === 'false' ? false : undefined; + if (typeof bool !== 'boolean') { + return { + ok: false, + errors: ['type'], + }; + } return { - valid: typeof bool === 'boolean', - parsed: bool, + ok: true, + value: bool, }; }; const enumValidator = ({ values }: EnumSchema): ValueValidator => (input) => { + if (!(typeof input === 'string' ? values.includes(input) : false)) { + return { + ok: false, + errors: ['type'], + }; + } return { - valid: typeof input === 'string' ? values.includes(input) : false, - parsed: input, + ok: true, + value: input, }; }; @@ -131,29 +162,19 @@ export function validateEnvVariable( value: string | undefined, options: EnvFieldType ): ValidationResult { - const validator = selectValidator(options); - - const type = getEnvFieldType(options); - - if (options.optional || options.default !== undefined) { - if (value === undefined) { - return { - ok: true, - value: options.default, - type, - }; - } - } - const { valid, parsed } = validator(value); - if (valid) { + const isOptional = options.optional || options.default !== undefined; + if (isOptional && value === undefined) { return { ok: true, - value: parsed, - type, + value: options.default, }; } - return { - ok: false, - type, - }; + if (!isOptional && value === undefined) { + return { + ok: false, + errors: ['missing'], + }; + } + + return selectValidator(options)(value); } diff --git a/packages/astro/src/env/vite-plugin-env.ts b/packages/astro/src/env/vite-plugin-env.ts index 1bcb021e0f51..3f1ca2b6bde5 100644 --- a/packages/astro/src/env/vite-plugin-env.ts +++ b/packages/astro/src/env/vite-plugin-env.ts @@ -9,7 +9,7 @@ import { VIRTUAL_MODULES_IDS_VALUES, } from './constants.js'; import type { EnvSchema } from './schema.js'; -import { validateEnvVariable } from './validators.js'; +import { type ValidationResultErrors, getEnvFieldType, validateEnvVariable } from './validators.js'; // TODO: reminders for when astro:env comes out of experimental // Types should always be generated (like in types/content.d.ts). That means the client module will be empty @@ -105,7 +105,7 @@ function validatePublicVariables({ validateSecrets: boolean; }) { const valid: Array<{ key: string; value: any; type: string; context: 'server' | 'client' }> = []; - const invalid: Array<{ key: string; type: string }> = []; + const invalid: Array<{ key: string; type: string; errors: ValidationResultErrors }> = []; for (const [key, options] of Object.entries(schema)) { const variable = loadedEnv[key] === '' ? undefined : loadedEnv[key]; @@ -115,20 +115,30 @@ function validatePublicVariables({ } const result = validateEnvVariable(variable, options); + const type = getEnvFieldType(options); if (!result.ok) { - invalid.push({ key, type: result.type }); + invalid.push({ key, type, errors: result.errors }); // We don't do anything with validated secrets so we don't store them } else if (options.access === 'public') { - valid.push({ key, value: result.value, type: result.type, context: options.context }); + valid.push({ key, value: result.value, type, context: options.context }); } } if (invalid.length > 0) { + const _errors: Array = []; + for (const { key, type, errors } of invalid) { + if (errors[0] === 'missing') { + _errors.push(`${key} is missing`); + } else if (errors[0] === 'type') { + _errors.push(`${key}'s type is invalid, expected: ${type}`); + } else { + // constraints + _errors.push(`The following constraints for ${key} are not met: ${errors.join(', ')}`); + } + } throw new AstroError({ ...AstroErrorData.EnvInvalidVariables, - message: AstroErrorData.EnvInvalidVariables.message( - invalid.map(({ key, type }) => `Variable ${key} is not of type: ${type}.`).join('\n') - ), + message: AstroErrorData.EnvInvalidVariables.message(_errors), }); } diff --git a/packages/astro/src/integrations/hooks.ts b/packages/astro/src/integrations/hooks.ts index 0e58f7e8588f..48a9777e8c89 100644 --- a/packages/astro/src/integrations/hooks.ts +++ b/packages/astro/src/integrations/hooks.ts @@ -1,4 +1,4 @@ -import fs from 'node:fs'; +import fsMod from 'node:fs'; import type { AddressInfo } from 'node:net'; import { fileURLToPath } from 'node:url'; import { bold } from 'kleur/colors'; @@ -105,11 +105,13 @@ export async function runHookConfigSetup({ command, logger, isRestart = false, + fs = fsMod, }: { settings: AstroSettings; command: 'dev' | 'build' | 'preview'; logger: Logger; isRestart?: boolean; + fs?: typeof fsMod; }): Promise { // An adapter is an integration, so if one is provided push it. if (settings.config.adapter) { @@ -117,7 +119,7 @@ export async function runHookConfigSetup({ } if (settings.config.experimental?.actions) { const { default: actionsIntegration } = await import('../actions/index.js'); - settings.config.integrations.push(actionsIntegration()); + settings.config.integrations.push(actionsIntegration({ fs })); } let updatedConfig: AstroConfig = { ...settings.config }; @@ -532,7 +534,7 @@ export async function runHookBuildDone({ cacheManifest, }: RunHookBuildDone) { const dir = isServerLikeOutput(config) ? config.build.client : config.outDir; - await fs.promises.mkdir(dir, { recursive: true }); + await fsMod.promises.mkdir(dir, { recursive: true }); for (const integration of config.integrations) { if (integration?.hooks?.['astro:build:done']) { diff --git a/packages/astro/src/jsx-runtime/index.ts b/packages/astro/src/jsx-runtime/index.ts index b82fd97dc340..45093db14ef0 100644 --- a/packages/astro/src/jsx-runtime/index.ts +++ b/packages/astro/src/jsx-runtime/index.ts @@ -29,8 +29,7 @@ export function transformSlots(vnode: AstroVNode) { slots[name]['$$slot'] = true; delete child.props.slot; delete vnode.props.children; - } - if (Array.isArray(vnode.props.children)) { + } else if (Array.isArray(vnode.props.children)) { // Handle many children with slot attributes vnode.props.children = vnode.props.children .map((child) => { diff --git a/packages/astro/src/runtime/client/dev-toolbar/apps/audit/rules/a11y.ts b/packages/astro/src/runtime/client/dev-toolbar/apps/audit/rules/a11y.ts index 6d07f36e0ac7..64b13f67b172 100644 --- a/packages/astro/src/runtime/client/dev-toolbar/apps/audit/rules/a11y.ts +++ b/packages/astro/src/runtime/client/dev-toolbar/apps/audit/rules/a11y.ts @@ -101,6 +101,7 @@ const aria_non_interactive_roles = [ 'rowheader', 'search', 'status', + 'tabpanel', 'term', 'timer', 'toolbar', @@ -503,7 +504,7 @@ export const a11y: AuditRuleWithSelector[] = [ description: 'The `tabindex` attribute should only be used on interactive elements, as it can be confusing for keyboard-only users to navigate through non-interactive elements. If your element is only conditionally interactive, consider using `tabindex="-1"` to make it focusable only when it is actually interactive.', message: (element) => `${element.localName} elements should not have \`tabindex\` attribute`, - selector: '[tabindex]', + selector: '[tabindex]:not([role="tabpanel"])', match(element) { // Scrollable elements are considered interactive // See: https://www.w3.org/WAI/standards-guidelines/act/rules/0ssw9k/proposed/ diff --git a/packages/astro/src/runtime/client/dev-toolbar/entrypoint.ts b/packages/astro/src/runtime/client/dev-toolbar/entrypoint.ts index 2558a4db2339..48cdac72f7af 100644 --- a/packages/astro/src/runtime/client/dev-toolbar/entrypoint.ts +++ b/packages/astro/src/runtime/client/dev-toolbar/entrypoint.ts @@ -92,8 +92,9 @@ document.addEventListener('DOMContentLoaded', async () => { if (!(evt instanceof CustomEvent)) return; const target = overlay.shadowRoot?.querySelector(`[data-app-id="${app.id}"]`); - const notificationElement = target?.querySelector('.notification'); - if (!target || !notificationElement) return; + if (!target) return; + const notificationElement = target.querySelector('.notification'); + if (!notificationElement) return; let newState = evt.detail.state ?? true; let level = notificationLevels.includes(evt?.detail?.level) diff --git a/packages/astro/src/vite-plugin-astro-server/route.ts b/packages/astro/src/vite-plugin-astro-server/route.ts index 64caf04f0940..36449ea24359 100644 --- a/packages/astro/src/vite-plugin-astro-server/route.ts +++ b/packages/astro/src/vite-plugin-astro-server/route.ts @@ -3,6 +3,7 @@ import type { ComponentInstance, ManifestData, RouteData } from '../@types/astro import { DEFAULT_404_COMPONENT, REROUTE_DIRECTIVE_HEADER, + REWRITE_DIRECTIVE_HEADER_KEY, clientLocalsSymbol, } from '../core/constants.js'; import { AstroErrorData, isAstroError } from '../core/errors/index.js'; @@ -218,8 +219,12 @@ export async function handleRoute({ }); let response; + let isReroute = false; + let isRewrite = false; try { response = await renderContext.render(mod); + isReroute = response.headers.has(REROUTE_DIRECTIVE_HEADER); + isRewrite = response.headers.has(REWRITE_DIRECTIVE_HEADER_KEY); } catch (err: any) { const custom500 = getCustom500Route(manifestData); if (!custom500) { @@ -264,7 +269,10 @@ export async function handleRoute({ } // We remove the internally-used header before we send the response to the user agent. - if (response.headers.has(REROUTE_DIRECTIVE_HEADER)) { + if (isReroute) { + response.headers.delete(REROUTE_DIRECTIVE_HEADER); + } + if (isRewrite) { response.headers.delete(REROUTE_DIRECTIVE_HEADER); } @@ -272,6 +280,14 @@ export async function handleRoute({ await writeWebResponse(incomingResponse, response); return; } + + // This check is important in case of rewrites. + // A route can start with a 404 code, then the rewrite kicks in and can return a 200 status code + if (isRewrite) { + await writeSSRResult(request, response, incomingResponse); + return; + } + // We are in a recursion, and it's possible that this function is called itself with a status code // By default, the status code passed via parameters is computed by the matched route. // diff --git a/packages/astro/src/vite-plugin-astro/index.ts b/packages/astro/src/vite-plugin-astro/index.ts index 6c0f76b0ffe5..cedf49e95bce 100644 --- a/packages/astro/src/vite-plugin-astro/index.ts +++ b/packages/astro/src/vite-plugin-astro/index.ts @@ -9,7 +9,7 @@ import type { } from './types.js'; import { normalizePath } from 'vite'; -import { normalizeFilename } from '../vite-plugin-utils/index.js'; +import { hasSpecialQueries, normalizeFilename } from '../vite-plugin-utils/index.js'; import { type CompileAstroResult, compileAstro } from './compile.js'; import { handleHotUpdate } from './hmr.js'; import { parseAstroRequest } from './query.js'; @@ -200,6 +200,8 @@ export default function astro({ settings, logger }: AstroPluginOptions): vite.Pl } }, async transform(source, id) { + if (hasSpecialQueries(id)) return; + const parsedId = parseAstroRequest(id); // ignore astro file sub-requests, e.g. Foo.astro?astro&type=script&index=0&lang.ts if (!parsedId.filename.endsWith('.astro') || parsedId.query.astro) { diff --git a/packages/astro/src/vite-plugin-utils/index.ts b/packages/astro/src/vite-plugin-utils/index.ts index 74f60305d59a..74167a36a9cf 100644 --- a/packages/astro/src/vite-plugin-utils/index.ts +++ b/packages/astro/src/vite-plugin-utils/index.ts @@ -50,3 +50,12 @@ const postfixRE = /[?#].*$/s; export function cleanUrl(url: string): string { return url.replace(postfixRE, ''); } + +const specialQueriesRE = /(?:\?|&)(?:url|raw|direct)(?:&|$)/; +/** + * Detect `?url`, `?raw`, and `?direct`, in which case we usually want to skip + * transforming any code with this queries as Vite will handle it directly. + */ +export function hasSpecialQueries(id: string): boolean { + return specialQueriesRE.test(id); +} diff --git a/packages/astro/test/astro-basic.test.js b/packages/astro/test/astro-basic.test.js index cb7c06ce0efd..957be04fb6f2 100644 --- a/packages/astro/test/astro-basic.test.js +++ b/packages/astro/test/astro-basic.test.js @@ -159,6 +159,12 @@ describe('Astro basic build', () => { assert.equal($('h1').text(), 'WORKS'); }); + it('Handles importing .astro?raw correctly', async () => { + const html = await fixture.readFile('/import-queries/raw/index.html'); + const $ = cheerio.load(html); + assert.equal($('.raw-value').text(), '

Hello

\n'); + }); + describe('preview', () => { it('returns 200 for valid URLs', async () => { const result = await fixture.fetch('/'); @@ -211,4 +217,12 @@ describe('Astro basic development', () => { html.includes(''); assert.ok(isUtf8); }); + + it('Handles importing .astro?raw correctly', async () => { + const res = await fixture.fetch('/import-queries/raw/index.html'); + assert.equal(res.status, 200); + const html = await res.text(); + const $ = cheerio.load(html); + assert.equal($('.raw-value').text(), '

Hello

\n'); + }); }); diff --git a/packages/astro/test/astro-markdown-plugins.test.js b/packages/astro/test/astro-markdown-plugins.test.js index 1ea2afd8ef88..09cb76d2decc 100644 --- a/packages/astro/test/astro-markdown-plugins.test.js +++ b/packages/astro/test/astro-markdown-plugins.test.js @@ -60,7 +60,7 @@ describe('Astro Markdown plugins', () => { const smartypantsHtml = await fixture.readFile('/with-smartypants/index.html'); const $2 = cheerio.load(smartypantsHtml); - assert.equal($2('p').html(), '”Smartypants” is — awesome'); + assert.equal($2('p').html(), '“Smartypants” is — awesome'); testRemark(gfmHtml); testRehype(gfmHtml, '#github-flavored-markdown-test'); @@ -82,7 +82,7 @@ describe('Astro Markdown plugins', () => { const $ = cheerio.load(html); // test 1: smartypants applied correctly - assert.equal($('p').html(), '”Smartypants” is — awesome'); + assert.equal($('p').html(), '“Smartypants” is — awesome'); testRemark(html); testRehype(html, '#smartypants-test'); diff --git a/packages/astro/test/astro-markdown-shiki.test.js b/packages/astro/test/astro-markdown-shiki.test.js index 24ab7d2b3026..3e0fa9734a78 100644 --- a/packages/astro/test/astro-markdown-shiki.test.js +++ b/packages/astro/test/astro-markdown-shiki.test.js @@ -78,6 +78,22 @@ describe('Astro Markdown Shiki', () => { ); }); }); + + describe('Default color', async () => { + let fixture; + + before(async () => { + fixture = await loadFixture({ root: './fixtures/astro-markdown-shiki/default-color/' }); + await fixture.build(); + }); + + it('Renders default color without themes', async () => { + const html = await fixture.readFile('/index.html'); + const $ = cheerio.load(html); + + assert.doesNotMatch($('pre').attr().style, /background-color/); + }); + }); }); describe('Languages', () => { diff --git a/packages/astro/test/astro-sync.test.js b/packages/astro/test/astro-sync.test.js index 11152f77b2d8..f6faa6722551 100644 --- a/packages/astro/test/astro-sync.test.js +++ b/packages/astro/test/astro-sync.test.js @@ -1,6 +1,7 @@ import assert from 'node:assert/strict'; import * as fs from 'node:fs'; import { before, describe, it } from 'node:test'; +import { fileURLToPath } from 'node:url'; import ts from 'typescript'; import { loadFixture } from './test-utils.js'; @@ -47,10 +48,10 @@ const createFixture = () => { }, }; - const code = await astroFixture.sync({}, { fs: fsMock }); - if (code !== 0) { - throw new Error(`Process error code ${code}`); - } + await astroFixture.sync({ + inlineConfig: { root: fileURLToPath(new URL(root, import.meta.url)) }, + fs: fsMock, + }); }, /** @param {string} path */ thenFileShouldExist(path) { diff --git a/packages/astro/test/core-image-infersize.test.js b/packages/astro/test/core-image-infersize.test.js index 9abf24b1f79e..355d6a6911f2 100644 --- a/packages/astro/test/core-image-infersize.test.js +++ b/packages/astro/test/core-image-infersize.test.js @@ -70,6 +70,11 @@ describe('astro:image:infersize', () => { true ); }); + + it('direct function call work', async () => { + let $dimensions = $('#direct'); + assert.equal($dimensions.text().trim(), '64x64'); + }); }); }); }); diff --git a/packages/astro/test/env-secret.test.js b/packages/astro/test/env-secret.test.js index 4505254a6b62..7a569e35a524 100644 --- a/packages/astro/test/env-secret.test.js +++ b/packages/astro/test/env-secret.test.js @@ -84,7 +84,7 @@ describe('astro:env secret variables', () => { } catch (error) { assert.equal(error instanceof Error, true); assert.equal(error.title, 'Invalid Environment Variables'); - assert.equal(error.message.includes('Variable KNOWN_SECRET is not of type: number.'), true); + assert.equal(error.message.includes('KNOWN_SECRET is missing'), true); } }); }); diff --git a/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/_content.astro b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/_content.astro new file mode 100644 index 000000000000..986a4a1a25bc --- /dev/null +++ b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/_content.astro @@ -0,0 +1 @@ +

Hello

diff --git a/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/raw.astro b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/raw.astro new file mode 100644 index 000000000000..8b88cbe10d10 --- /dev/null +++ b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/raw.astro @@ -0,0 +1,5 @@ +--- +import contentStr from './_content.astro?raw'; +--- + +
{contentStr}
diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/astro.config.mjs b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/astro.config.mjs new file mode 100644 index 000000000000..815e56cf388c --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/astro.config.mjs @@ -0,0 +1,13 @@ +export default { + markdown: { + syntaxHighlight: 'shiki', + shikiConfig: { + theme: 'github-light', + themes: { + light: 'github-light', + dark: 'github-light' + }, + defaultColor: false + }, + }, +} diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/package.json b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/package.json new file mode 100644 index 000000000000..12460ffa73c2 --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/package.json @@ -0,0 +1,8 @@ +{ + "name": "@test/astro-markdown-skiki-default-color", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + } +} diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/layouts/content.astro b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/layouts/content.astro new file mode 100644 index 000000000000..925a243a9368 --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/layouts/content.astro @@ -0,0 +1,10 @@ + + + + + +
+ +
+ + diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/pages/index.md b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/pages/index.md new file mode 100644 index 000000000000..a75170537cce --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/pages/index.md @@ -0,0 +1,24 @@ +--- +layout: ../layouts/content.astro +--- + +# Hello world + +```yaml +apiVersion: v3 +kind: Pod +metadata: + name: rss-site + labels: + app: web +spec: + containers: + - name: front-end + image: nginx + ports: + - containerPort: 80 + - name: rss-reader + image: nickchase/rss-php-nginx:v1 + ports: + - containerPort: 88 +``` diff --git a/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro b/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro index 947c9a4f6bcd..ef7bf57c012d 100644 --- a/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro +++ b/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro @@ -1,6 +1,9 @@ --- // https://avatars.githubusercontent.com/u/622227?s=64 is a .jpeg -import { Image, Picture, getImage } from 'astro:assets'; +import { Image, Picture, getImage, inferRemoteSize } from 'astro:assets'; + +const { width, height } = await inferRemoteSize('https://avatars.githubusercontent.com/u/622227?s=64'); + const remoteImg = await getImage({ src: 'https://avatars.githubusercontent.com/u/622227?s=64', inferSize: true, @@ -10,3 +13,7 @@ const remoteImg = await getImage({ + +
+ {width}x{height} +
diff --git a/packages/astro/test/fixtures/postcss/package.json b/packages/astro/test/fixtures/postcss/package.json index 2afde7679b3f..783dc24380b8 100644 --- a/packages/astro/test/fixtures/postcss/package.json +++ b/packages/astro/test/fixtures/postcss/package.json @@ -14,6 +14,6 @@ "vue": "^3.4.31" }, "devDependencies": { - "postcss-preset-env": "^9.5.15" + "postcss-preset-env": "^9.6.0" } } diff --git a/packages/astro/test/fixtures/preact-component/package.json b/packages/astro/test/fixtures/preact-component/package.json index 341752468642..f0c105e1c184 100644 --- a/packages/astro/test/fixtures/preact-component/package.json +++ b/packages/astro/test/fixtures/preact-component/package.json @@ -4,7 +4,7 @@ "private": true, "dependencies": { "@astrojs/preact": "workspace:*", - "@preact/signals": "1.2.3", + "@preact/signals": "1.3.0", "astro": "workspace:*", "preact": "^10.22.1" } diff --git a/packages/astro/test/fixtures/solid-component/package.json b/packages/astro/test/fixtures/solid-component/package.json index bc58b8472526..aff7c7e7b42a 100644 --- a/packages/astro/test/fixtures/solid-component/package.json +++ b/packages/astro/test/fixtures/solid-component/package.json @@ -4,7 +4,7 @@ "private": true, "dependencies": { "@astrojs/solid-js": "workspace:*", - "@solidjs/router": "^0.13.6", + "@solidjs/router": "^0.14.1", "@test/solid-jsx-component": "file:./deps/solid-jsx-component", "astro": "workspace:*", "solid-js": "^1.8.18" diff --git a/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro b/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro index 21a503211bc0..05ac05b680cd 100644 --- a/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro +++ b/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro @@ -5,7 +5,7 @@ - Static Page + Static Page should not exist in chunks diff --git a/packages/astro/test/fixtures/tailwindcss-ts/package.json b/packages/astro/test/fixtures/tailwindcss-ts/package.json index 20970d06f1fc..772a7bf98f4c 100644 --- a/packages/astro/test/fixtures/tailwindcss-ts/package.json +++ b/packages/astro/test/fixtures/tailwindcss-ts/package.json @@ -6,6 +6,6 @@ "@astrojs/tailwind": "workspace:*", "astro": "workspace:*", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/packages/astro/test/fixtures/tailwindcss/package.json b/packages/astro/test/fixtures/tailwindcss/package.json index cc9b1d82d001..2886bdf20d75 100644 --- a/packages/astro/test/fixtures/tailwindcss/package.json +++ b/packages/astro/test/fixtures/tailwindcss/package.json @@ -8,6 +8,6 @@ "astro": "workspace:*", "autoprefixer": "^10.4.19", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/packages/astro/test/rewrite.test.js b/packages/astro/test/rewrite.test.js index d14fb069a7c7..7839e7d3350b 100644 --- a/packages/astro/test/rewrite.test.js +++ b/packages/astro/test/rewrite.test.js @@ -520,6 +520,34 @@ describe('Runtime error in SSR, custom 500', () => { }); }); +describe('Runtime error in dev, custom 500', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + let devServer; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/rewrite-i18n-manual-routing/', + }); + + devServer = await fixture.startDevServer(); + }); + + after(async () => { + await devServer.stop(); + }); + + it('should return a status 200 when rewriting from the middleware to the homepage', async () => { + const response = await fixture.fetch('/reroute'); + assert.equal(response.status, 200); + const html = await response.text(); + + const $ = cheerioLoad(html); + + assert.equal($('h1').text(), 'Expected http status of index page is 200'); + }); +}); + describe('Runtime error in SSR, custom 500', () => { /** @type {import('./test-utils').Fixture} */ let fixture; diff --git a/packages/astro/test/ssr-prerender-chunks.test.js b/packages/astro/test/ssr-prerender-chunks.test.js index 7bd916814938..86c906288628 100644 --- a/packages/astro/test/ssr-prerender-chunks.test.js +++ b/packages/astro/test/ssr-prerender-chunks.test.js @@ -18,4 +18,15 @@ describe('Chunks', () => { const hasImportFromPrerender = !content.includes(`React } from './chunks/prerender`); assert.ok(hasImportFromPrerender); }); + + it('does not have prerender code', async () => { + const files = await fixture.readdir('/_worker.js/chunks'); + assert.ok(files.length > 0); + for (const file of files) { + // Skip astro folder + if (file === 'astro') continue; + const content = await fixture.readFile(`/_worker.js/chunks/${file}`); + assert.doesNotMatch(content, /Static Page should not exist in chunks/); + } + }); }); diff --git a/packages/astro/test/test-utils.js b/packages/astro/test/test-utils.js index 18ef7966077f..acb2f1e5cba0 100644 --- a/packages/astro/test/test-utils.js +++ b/packages/astro/test/test-utils.js @@ -161,9 +161,7 @@ export async function loadFixture(inlineConfig) { process.env.NODE_ENV = 'production'; return build(mergeConfig(inlineConfig, extraInlineConfig), { teardownCompiler: false }); }, - sync: async (extraInlineConfig = {}, opts) => { - return sync(mergeConfig(inlineConfig, extraInlineConfig), opts); - }, + sync, check: async (opts) => { return await check(opts); }, diff --git a/packages/astro/test/units/dev/collections-mixed-content-errors.test.js b/packages/astro/test/units/dev/collections-mixed-content-errors.test.js index 0086b51e83ac..d63e42d53323 100644 --- a/packages/astro/test/units/dev/collections-mixed-content-errors.test.js +++ b/packages/astro/test/units/dev/collections-mixed-content-errors.test.js @@ -6,8 +6,19 @@ import { createFsWithFallback } from '../test-utils.js'; const root = new URL('../../fixtures/content-mixed-errors/', import.meta.url); -async function sync({ fs, config = {} }) { - return _sync({ ...config, root: fileURLToPath(root), logLevel: 'silent' }, { fs }); +async function sync({ fs }) { + try { + await _sync({ + inlineConfig: { + root: fileURLToPath(root), + logLevel: 'silent', + }, + fs, + }); + return 0; + } catch (_) { + return 1; + } } describe('Content Collections - mixed content errors', () => { @@ -114,7 +125,7 @@ title: Post const res = await sync({ fs }); assert.equal(res, 0); } catch (e) { - expect.fail(0, 1, `Did not expect sync to throw: ${e.message}`); + assert.fail(`Did not expect sync to throw: ${e.message}`); } }); }); diff --git a/packages/astro/test/units/env/env-validators.test.js b/packages/astro/test/units/env/env-validators.test.js index 468c86d8ef81..890123d2476c 100644 --- a/packages/astro/test/units/env/env-validators.test.js +++ b/packages/astro/test/units/env/env-validators.test.js @@ -29,9 +29,17 @@ const createFixture = () => { assert.equal(result.value, value); input = undefined; }, - thenResultShouldBeInvalid() { + /** + * @param {string | Array} providedErrors + */ + thenResultShouldBeInvalid(providedErrors) { const result = validateEnvVariable(input.value, input.options); assert.equal(result.ok, false); + const errors = typeof providedErrors === 'string' ? [providedErrors] : providedErrors; + assert.equal( + result.errors.every((element) => errors.includes(element)), + true + ); input = undefined; }, }; @@ -158,7 +166,7 @@ describe('astro:env validators', () => { fixture.givenInput(undefined, { type: 'string', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should not fail is the variable type is incorrect', () => { @@ -179,7 +187,7 @@ describe('astro:env validators', () => { type: 'string', max: 3, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('max'); fixture.givenInput('abc', { type: 'string', @@ -191,7 +199,7 @@ describe('astro:env validators', () => { type: 'string', min: 5, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('min'); fixture.givenInput('abc', { type: 'string', @@ -203,13 +211,13 @@ describe('astro:env validators', () => { type: 'string', length: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('length'); fixture.givenInput('abc', { type: 'string', url: true, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('url'); fixture.givenInput('https://example.com', { type: 'string', @@ -221,7 +229,7 @@ describe('astro:env validators', () => { type: 'string', includes: 'cd', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('includes'); fixture.givenInput('abc', { type: 'string', @@ -233,7 +241,7 @@ describe('astro:env validators', () => { type: 'string', startsWith: 'za', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('startsWith'); fixture.givenInput('abc', { type: 'string', @@ -245,7 +253,7 @@ describe('astro:env validators', () => { type: 'string', endsWith: 'za', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('endsWith'); fixture.givenInput('abc', { type: 'string', @@ -264,7 +272,14 @@ describe('astro:env validators', () => { type: 'string', min: 5, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); + + fixture.givenInput('ab', { + type: 'string', + startsWith: 'x', + min: 5, + }); + fixture.thenResultShouldBeInvalid(['startsWith', 'min']); }); it('Should not fail if the optional variable is missing', () => { @@ -297,14 +312,14 @@ describe('astro:env validators', () => { fixture.givenInput(undefined, { type: 'number', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should fail is the variable type is incorrect', () => { fixture.givenInput('abc', { type: 'number', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('type'); }); it('Should fail if conditions are not met', () => { @@ -312,13 +327,13 @@ describe('astro:env validators', () => { type: 'number', gt: 15, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('gt'); fixture.givenInput('10', { type: 'number', gt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('gt'); fixture.givenInput('10', { type: 'number', @@ -330,7 +345,7 @@ describe('astro:env validators', () => { type: 'number', min: 25, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('min'); fixture.givenInput('20', { type: 'number', @@ -348,13 +363,13 @@ describe('astro:env validators', () => { type: 'number', lt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('lt'); fixture.givenInput('10', { type: 'number', lt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('lt'); fixture.givenInput('5', { type: 'number', @@ -366,7 +381,7 @@ describe('astro:env validators', () => { type: 'number', max: 20, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('max'); fixture.givenInput('25', { type: 'number', @@ -384,7 +399,7 @@ describe('astro:env validators', () => { type: 'number', int: true, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('int'); fixture.givenInput('25', { type: 'number', @@ -396,7 +411,7 @@ describe('astro:env validators', () => { type: 'number', int: false, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('int'); fixture.givenInput('4.5', { type: 'number', @@ -408,7 +423,7 @@ describe('astro:env validators', () => { type: 'number', gt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should accept integers', () => { @@ -455,14 +470,14 @@ describe('astro:env validators', () => { fixture.givenInput(undefined, { type: 'boolean', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should fail is the variable type is incorrect', () => { fixture.givenInput('abc', { type: 'boolean', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('type'); }); it('Should not fail if the optional variable is missing', () => { @@ -496,7 +511,7 @@ describe('astro:env validators', () => { type: 'enum', values: ['a', 'b'], }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should fail is the variable type is incorrect', () => { @@ -504,7 +519,7 @@ describe('astro:env validators', () => { type: 'enum', values: ['a', 'b'], }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('type'); }); it('Should not fail if the optional variable is missing', () => { diff --git a/packages/db/package.json b/packages/db/package.json index a1ec3c8f3f3a..c4508b0f72c5 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -94,7 +94,7 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12", - "typescript": "^5.5.2", - "vite": "^5.3.2" + "typescript": "^5.5.3", + "vite": "^5.3.4" } } diff --git a/packages/db/src/core/load-file.ts b/packages/db/src/core/load-file.ts index dd48df928cbd..cbdb6d2436ed 100644 --- a/packages/db/src/core/load-file.ts +++ b/packages/db/src/core/load-file.ts @@ -2,19 +2,16 @@ import { existsSync } from 'node:fs'; import { unlink, writeFile } from 'node:fs/promises'; import { createRequire } from 'node:module'; import { fileURLToPath, pathToFileURL } from 'node:url'; -import type { AstroConfig, AstroIntegration } from 'astro'; +import type { AstroConfig } from 'astro'; import { build as esbuild } from 'esbuild'; import { CONFIG_FILE_NAMES, VIRTUAL_MODULE_ID } from './consts.js'; import { INTEGRATION_TABLE_CONFLICT_ERROR } from './errors.js'; import { errorMap } from './integration/error-map.js'; import { getConfigVirtualModContents } from './integration/vite-plugin-db.js'; import { dbConfigSchema } from './schemas.js'; -import { type AstroDbIntegration } from './types.js'; +import './types.js'; import { getAstroEnv, getDbDirectoryUrl } from './utils.js'; -const isDbIntegration = (integration: AstroIntegration): integration is AstroDbIntegration => - 'astro:db:setup' in integration.hooks; - /** * Load a user’s `astro:db` configuration file and additional configuration files provided by integrations. */ @@ -31,7 +28,6 @@ export async function resolveDbConfig({ const integrationDbConfigPaths: Array<{ name: string; configEntrypoint: string | URL }> = []; const integrationSeedPaths: Array = []; for (const integration of integrations) { - if (!isDbIntegration(integration)) continue; const { name, hooks } = integration; if (hooks['astro:db:setup']) { hooks['astro:db:setup']({ diff --git a/packages/db/src/core/types.ts b/packages/db/src/core/types.ts index 79bbdf371927..5efc6507c828 100644 --- a/packages/db/src/core/types.ts +++ b/packages/db/src/core/types.ts @@ -1,4 +1,3 @@ -import type { AstroIntegration } from 'astro'; import type { z } from 'zod'; import type { MaybeArray, @@ -88,13 +87,16 @@ interface LegacyIndexConfig export type NumberColumnOpts = z.input; export type TextColumnOpts = z.input; -export type AstroDbIntegration = AstroIntegration & { - hooks: { - 'astro:db:setup'?: (options: { - extendDb: (options: { - configEntrypoint?: URL | string; - seedEntrypoint?: URL | string; - }) => void; - }) => void | Promise; - }; -}; +declare global { + // eslint-disable-next-line @typescript-eslint/no-namespace + namespace Astro { + export interface IntegrationHooks { + 'astro:db:setup'?: (options: { + extendDb: (options: { + configEntrypoint?: URL | string; + seedEntrypoint?: URL | string; + }) => void; + }) => void | Promise; + } + } +} diff --git a/packages/db/src/core/utils.ts b/packages/db/src/core/utils.ts index 4fef5fbe18b1..c1cf5657940f 100644 --- a/packages/db/src/core/utils.ts +++ b/packages/db/src/core/utils.ts @@ -1,7 +1,7 @@ import { getAstroStudioEnv } from '@astrojs/studio'; import type { AstroConfig, AstroIntegration } from 'astro'; import { loadEnv } from 'vite'; -import type { AstroDbIntegration } from './types.js'; +import './types.js'; export type VitePlugin = Required['plugins'][number]; @@ -19,7 +19,7 @@ export function getDbDirectoryUrl(root: URL | string) { return new URL('db/', root); } -export function defineDbIntegration(integration: AstroDbIntegration): AstroIntegration { +export function defineDbIntegration(integration: AstroIntegration): AstroIntegration { return integration; } diff --git a/packages/db/test/fixtures/ticketing-example/package.json b/packages/db/test/fixtures/ticketing-example/package.json index e4771893061d..3f6e5510d9a6 100644 --- a/packages/db/test/fixtures/ticketing-example/package.json +++ b/packages/db/test/fixtures/ticketing-example/package.json @@ -10,18 +10,18 @@ "astro": "astro" }, "dependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@astrojs/db": "workspace:*", "@astrojs/node": "workspace:*", "@astrojs/react": "^3.6.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "astro": "workspace:*", - "open-props": "^1.7.4", + "open-props": "^1.7.5", "react": "^18.3.1", "react-dom": "^18.3.1", "simple-stack-form": "^0.1.12", - "typescript": "^5.5.2", + "typescript": "^5.5.3", "zod": "^3.23.8" } } diff --git a/packages/integrations/alpinejs/package.json b/packages/integrations/alpinejs/package.json index 3d3338aace12..b7699c22d55b 100644 --- a/packages/integrations/alpinejs/package.json +++ b/packages/integrations/alpinejs/package.json @@ -38,10 +38,10 @@ "alpinejs": "^3.0.0" }, "devDependencies": { - "@playwright/test": "1.45.0", + "@playwright/test": "1.45.2", "astro": "workspace:*", "astro-scripts": "workspace:*", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "publishConfig": { "provenance": true diff --git a/packages/integrations/lit/package.json b/packages/integrations/lit/package.json index 2c5efcd9ffdf..a5c56370a48b 100644 --- a/packages/integrations/lit/package.json +++ b/packages/integrations/lit/package.json @@ -61,7 +61,7 @@ "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12", "lit": "^3.1.4", - "sass": "^1.77.6" + "sass": "^1.77.8" }, "peerDependencies": { "@webcomponents/template-shadowroot": "^0.2.1", diff --git a/packages/integrations/markdoc/CHANGELOG.md b/packages/integrations/markdoc/CHANGELOG.md index 8548d7faa8ef..db4667b09e31 100644 --- a/packages/integrations/markdoc/CHANGELOG.md +++ b/packages/integrations/markdoc/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/markdoc +## 0.11.2 + +### Patch Changes + +- [#11450](https://github.com/withastro/astro/pull/11450) [`eb303e1`](https://github.com/withastro/astro/commit/eb303e1ad5dade7787c0d9bbb520c21292cf3950) Thanks [@schpet](https://github.com/schpet)! - Adds support for markdown-it's typographer option + ## 0.11.1 ### Patch Changes diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json index 599d3cbc12d3..994f92983250 100644 --- a/packages/integrations/markdoc/package.json +++ b/packages/integrations/markdoc/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/markdoc", "description": "Add support for Markdoc in your Astro site", - "version": "0.11.1", + "version": "0.11.2", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -83,7 +83,7 @@ "astro-scripts": "workspace:*", "devalue": "^5.0.0", "linkedom": "^0.18.4", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "engines": { "node": "^18.17.1 || ^20.3.0 || >=21.0.0" diff --git a/packages/integrations/markdoc/src/options.ts b/packages/integrations/markdoc/src/options.ts index 450285bcf718..abaeb5a964e5 100644 --- a/packages/integrations/markdoc/src/options.ts +++ b/packages/integrations/markdoc/src/options.ts @@ -1,4 +1,5 @@ export interface MarkdocIntegrationOptions { allowHTML?: boolean; ignoreIndentation?: boolean; + typographer?: boolean; } diff --git a/packages/integrations/markdoc/src/tokenizer.ts b/packages/integrations/markdoc/src/tokenizer.ts index 79d0d7358beb..1f5b1de28165 100644 --- a/packages/integrations/markdoc/src/tokenizer.ts +++ b/packages/integrations/markdoc/src/tokenizer.ts @@ -24,6 +24,10 @@ export function getMarkdocTokenizer(options: MarkdocIntegrationOptions | undefin // allow indentation so nested Markdoc tags can be formatted for better readability tokenizerOptions.allowIndentation = true; } + if (options?.typographer) { + // enable typographer to convert straight quotes to curly quotes, etc. + tokenizerOptions.typographer = options.typographer; + } _cachedMarkdocTokenizers[key] = new Markdoc.Tokenizer(tokenizerOptions); } diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/astro.config.mjs b/packages/integrations/markdoc/test/fixtures/render-typographer/astro.config.mjs new file mode 100644 index 000000000000..408e036c7aca --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/astro.config.mjs @@ -0,0 +1,7 @@ +import markdoc from '@astrojs/markdoc'; +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({ + integrations: [markdoc({ typographer: true })], +}); diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/package.json b/packages/integrations/markdoc/test/fixtures/render-typographer/package.json new file mode 100644 index 000000000000..02fd6788f310 --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/package.json @@ -0,0 +1,9 @@ +{ + "name": "@test/markdoc-render-typographer", + "version": "0.0.0", + "private": true, + "dependencies": { + "@astrojs/markdoc": "workspace:*", + "astro": "workspace:*" + } +} diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/src/content/blog/typographer.mdoc b/packages/integrations/markdoc/test/fixtures/render-typographer/src/content/blog/typographer.mdoc new file mode 100644 index 000000000000..2180e7a47b1f --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/src/content/blog/typographer.mdoc @@ -0,0 +1,7 @@ +--- +title: Typographer +--- + +## Typographer's post + +This is a post to test the "typographer" option. diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/src/pages/index.astro b/packages/integrations/markdoc/test/fixtures/render-typographer/src/pages/index.astro new file mode 100644 index 000000000000..88fc531fa2e1 --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/src/pages/index.astro @@ -0,0 +1,19 @@ +--- +import { getEntryBySlug } from "astro:content"; + +const post = await getEntryBySlug('blog', 'typographer'); +const { Content } = await post.render(); +--- + + + + + + + + Content + + + + + diff --git a/packages/integrations/markdoc/test/render.test.js b/packages/integrations/markdoc/test/render.test.js index d439adcd2b8e..364604405d56 100644 --- a/packages/integrations/markdoc/test/render.test.js +++ b/packages/integrations/markdoc/test/render.test.js @@ -117,6 +117,15 @@ describe('Markdoc - render', () => { renderWithRootFolderContainingSpace(html); }); + + it('renders content - with typographer option', async () => { + const fixture = await getFixture('render-typographer'); + await fixture.build(); + + const html = await fixture.readFile('/index.html'); + + renderTypographerChecks(html); + }); }); }); @@ -173,3 +182,16 @@ function renderWithRootFolderContainingSpace(html) { const p = document.querySelector('p'); assert.equal(p.textContent, 'This is a simple Markdoc post with root folder containing a space.'); } + +/** + * @param {string} html + */ +function renderTypographerChecks(html) { + const { document } = parseHTML(html); + + const h2 = document.querySelector('h2'); + assert.equal(h2.textContent, 'Typographer’s post'); + + const p = document.querySelector('p'); + assert.equal(p.textContent, 'This is a post to test the “typographer” option.'); +} diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index 43d735f13edd..0ef90280c389 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -35,7 +35,7 @@ "dependencies": { "@astrojs/markdown-remark": "workspace:*", "@mdx-js/mdx": "^3.0.1", - "acorn": "^8.12.0", + "acorn": "^8.12.1", "es-module-lexer": "^1.5.4", "estree-util-visit": "^2.0.0", "github-slugger": "^2.0.0", @@ -44,10 +44,10 @@ "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.0", - "remark-smartypants": "^3.0.1", + "remark-smartypants": "^3.0.2", "source-map": "^0.7.4", "unist-util-visit": "^5.0.0", - "vfile": "^6.0.1" + "vfile": "^6.0.2" }, "peerDependencies": { "astro": "^4.8.0" @@ -72,7 +72,7 @@ "remark-shiki-twoslash": "^3.1.3", "remark-toc": "^9.0.0", "unified": "^11.0.5", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "engines": { "node": "^18.17.1 || ^20.3.0 || >=21.0.0" diff --git a/packages/integrations/mdx/test/mdx-plugins.test.js b/packages/integrations/mdx/test/mdx-plugins.test.js index 6bc8e096c268..124ec52c14ec 100644 --- a/packages/integrations/mdx/test/mdx-plugins.test.js +++ b/packages/integrations/mdx/test/mdx-plugins.test.js @@ -47,7 +47,7 @@ describe('MDX plugins', () => { const quote = selectSmartypantsQuote(document); assert.notEqual(quote, null); - assert.equal(quote.textContent.includes('”Smartypants” is — awesome'), true); + assert.equal(quote.textContent.includes('“Smartypants” is — awesome'), true); }); it('supports custom rehype plugins', async () => { @@ -198,7 +198,7 @@ describe('MDX plugins', () => { ); } else { assert.equal( - quote.textContent.includes('”Smartypants” is — awesome'), + quote.textContent.includes('“Smartypants” is — awesome'), true, 'Respects `markdown.smartypants` unexpectedly.' ); diff --git a/packages/integrations/preact/CHANGELOG.md b/packages/integrations/preact/CHANGELOG.md index 9f02be58da74..e714d2471b00 100644 --- a/packages/integrations/preact/CHANGELOG.md +++ b/packages/integrations/preact/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/preact +## 3.5.1 + +### Patch Changes + +- [#11464](https://github.com/withastro/astro/pull/11464) [`2cdb685`](https://github.com/withastro/astro/commit/2cdb685ce757fc9932b67b8a52b465296dbaedcd) Thanks [@rschristian](https://github.com/rschristian)! - Swap out `preact-ssr-prepass` for `renderToStringAsync` from `preact-render-to-string` + ## 3.5.0 ### Minor Changes diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json index 2b5249aa454b..9ab0a4649ee4 100644 --- a/packages/integrations/preact/package.json +++ b/packages/integrations/preact/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/preact", "description": "Use Preact components within Astro", - "version": "3.5.0", + "version": "3.5.1", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -38,10 +38,9 @@ "@babel/plugin-transform-react-jsx": "^7.24.7", "@babel/plugin-transform-react-jsx-development": "^7.24.7", "@preact/preset-vite": "2.8.2", - "@preact/signals": "^1.2.3", + "@preact/signals": "^1.3.0", "babel-plugin-transform-hook-names": "^1.0.2", - "preact-render-to-string": "~6.3.1", - "preact-ssr-prepass": "^1.2.1" + "preact-render-to-string": "^6.5.5" }, "devDependencies": { "astro": "workspace:*", diff --git a/packages/integrations/preact/src/server.ts b/packages/integrations/preact/src/server.ts index c10c01c0e8fc..88e012d02047 100644 --- a/packages/integrations/preact/src/server.ts +++ b/packages/integrations/preact/src/server.ts @@ -1,7 +1,6 @@ import type { AstroComponentMetadata, NamedSSRLoadedRendererValue } from 'astro'; import { Component as BaseComponent, type VNode, h } from 'preact'; -import { render } from 'preact-render-to-string'; -import prepass from 'preact-ssr-prepass'; +import { renderToStringAsync } from 'preact-render-to-string'; import { getContext } from './context.js'; import { restoreSignalsOnProps, serializeSignals } from './signals.js'; import StaticHtml from './static-html.js'; @@ -89,8 +88,7 @@ async function renderToStaticMarkup( : children ); - await prepass(vNode); - const html = render(vNode); + const html = await renderToStringAsync(vNode); return { attrs, html }; } diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json index 5dd00c110ae8..16ae0b279f77 100644 --- a/packages/integrations/react/package.json +++ b/packages/integrations/react/package.json @@ -66,7 +66,7 @@ "cheerio": "1.0.0-rc.12", "react": "^18.3.1", "react-dom": "^18.3.1", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "peerDependencies": { "@types/react": "^17.0.50 || ^18.0.21", diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json index 7905de118fb8..3ed5438bd727 100644 --- a/packages/integrations/solid/package.json +++ b/packages/integrations/solid/package.json @@ -41,7 +41,7 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "solid-js": "^1.8.18", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "peerDependencies": { "solid-devtools": "^0.30.1", diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json index b3495a725115..7d544328aca7 100644 --- a/packages/integrations/svelte/package.json +++ b/packages/integrations/svelte/package.json @@ -57,7 +57,7 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "svelte": "^4.2.18", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "peerDependencies": { "astro": "^4.0.0", diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json index f7c91ed39d6d..533608cac582 100644 --- a/packages/integrations/tailwind/package.json +++ b/packages/integrations/tailwind/package.json @@ -40,8 +40,8 @@ "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", - "tailwindcss": "^3.4.4", - "vite": "^5.3.2" + "tailwindcss": "^3.4.5", + "vite": "^5.3.4" }, "peerDependencies": { "astro": "^3.0.0 || ^4.0.0", diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index b252d05a89f4..9294e69f1137 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -54,7 +54,7 @@ "@astrojs/internal-helpers": "workspace:*", "@vercel/analytics": "^1.3.1", "@vercel/edge": "^1.1.1", - "@vercel/nft": "^0.27.2", + "@vercel/nft": "^0.27.3", "esbuild": "^0.21.5", "fast-glob": "^3.3.2", "set-cookie-parser": "^2.6.0", @@ -64,7 +64,7 @@ "astro": "^4.2.0" }, "devDependencies": { - "@types/set-cookie-parser": "^2.4.9", + "@types/set-cookie-parser": "^2.4.10", "astro": "workspace:*", "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12" diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index 5f8d0a4654bd..a8789251443e 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -47,14 +47,14 @@ "@vitejs/plugin-vue": "^5.0.5", "@vitejs/plugin-vue-jsx": "^4.0.0", "@vue/compiler-sfc": "^3.4.31", - "vite-plugin-vue-devtools": "^7.3.5" + "vite-plugin-vue-devtools": "^7.3.6" }, "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12", "linkedom": "^0.18.4", - "vite": "^5.3.2", + "vite": "^5.3.4", "vue": "^3.4.31" }, "peerDependencies": { diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json index 8b6eb5266682..fe68eaca44e7 100644 --- a/packages/markdown/remark/package.json +++ b/packages/markdown/remark/package.json @@ -45,13 +45,13 @@ "remark-gfm": "^4.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.0", - "remark-smartypants": "^3.0.1", - "shiki": "^1.10.0", + "remark-smartypants": "^3.0.2", + "shiki": "^1.10.3", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", - "vfile": "^6.0.1" + "vfile": "^6.0.2" }, "devDependencies": { "@types/estree": "^1.0.5", diff --git a/packages/markdown/remark/src/shiki.ts b/packages/markdown/remark/src/shiki.ts index 66f85b85bd09..fa29c9c06a1f 100644 --- a/packages/markdown/remark/src/shiki.ts +++ b/packages/markdown/remark/src/shiki.ts @@ -42,6 +42,7 @@ export async function createShikiHighlighter({ langs = [], theme = 'github-dark', themes = {}, + defaultColor, wrap = false, transformers = [], }: ShikiConfig = {}): Promise { @@ -73,6 +74,7 @@ export async function createShikiHighlighter({ return highlighter.codeToHtml(code, { ...themeOptions, + defaultColor, lang, // NOTE: while we can spread `options.attributes` here so that Shiki can auto-serialize this as rendered // attributes on the top-level tag, it's not clear whether it is fine to pass all attributes as meta, as diff --git a/packages/markdown/remark/src/types.ts b/packages/markdown/remark/src/types.ts index 5861f9e6f9c6..e3496ec5dd95 100644 --- a/packages/markdown/remark/src/types.ts +++ b/packages/markdown/remark/src/types.ts @@ -9,7 +9,7 @@ import type { ThemeRegistrationRaw, } from 'shiki'; import type * as unified from 'unified'; -import type { VFile } from 'vfile'; +import type { DataMap, VFile } from 'vfile'; export type { Node } from 'unist'; @@ -39,6 +39,7 @@ export interface ShikiConfig { langs?: LanguageRegistration[]; theme?: ThemePresets | ThemeRegistration | ThemeRegistrationRaw; themes?: Record; + defaultColor?: 'light' | 'dark' | string | false; wrap?: boolean | null; transformers?: ShikiTransformer[]; } @@ -82,9 +83,11 @@ export interface MarkdownHeading { text: string; } +// TODO: Remove `MarkdownVFile` and move all additional properties to `DataMap` instead export interface MarkdownVFile extends VFile { - data: { - __astroHeadings?: MarkdownHeading[]; - imagePaths?: Set; - }; + data: Record & + Partial & { + __astroHeadings?: MarkdownHeading[]; + imagePaths?: Set; + }; } diff --git a/packages/markdown/remark/test/shiki.test.js b/packages/markdown/remark/test/shiki.test.js index d856b54b7f25..149fa38bb5d5 100644 --- a/packages/markdown/remark/test/shiki.test.js +++ b/packages/markdown/remark/test/shiki.test.js @@ -85,4 +85,20 @@ describe('shiki syntax highlighting', () => { assert.match(html, /data-test="\{1,3-4\}"/); }); + + it('supports the defaultColor setting', async () => { + const processor = await createMarkdownProcessor({ + shikiConfig: { + themes: { + light: 'github-light', + dark: 'github-dark', + }, + defaultColor: false, + }, + }); + const { code } = await processor.render('```\ntest\n```'); + + // Doesn't have `color` or `background-color` properties. + assert.doesNotMatch(code, /color:/); + }); }); diff --git a/packages/studio/package.json b/packages/studio/package.json index c59e9ffbef3b..fc3ec911d74c 100644 --- a/packages/studio/package.json +++ b/packages/studio/package.json @@ -41,7 +41,7 @@ "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", - "typescript": "^5.5.2", - "vite": "^5.3.2" + "typescript": "^5.5.3", + "vite": "^5.3.4" } } diff --git a/packages/upgrade/package.json b/packages/upgrade/package.json index 7fe27e1b5541..69cd744ba975 100644 --- a/packages/upgrade/package.json +++ b/packages/upgrade/package.json @@ -31,7 +31,7 @@ "dependencies": { "@astrojs/cli-kit": "^0.4.1", "semver": "^7.6.2", - "preferred-pm": "^3.1.3", + "preferred-pm": "^4.0.0", "terminal-link": "^3.0.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d06fa8df6d7..ae5847a258cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: version: link:benchmark devDependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.2(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@biomejs/biome': specifier: 1.8.1 version: 1.8.1 @@ -28,8 +28,8 @@ importers: specifier: ^0.5.0 version: 0.5.0 '@changesets/cli': - specifier: ^2.27.6 - version: 2.27.6 + specifier: ^2.27.7 + version: 2.27.7 '@eslint/eslintrc': specifier: ^3.1.0 version: 3.1.0 @@ -40,14 +40,14 @@ importers: specifier: ^0.21.5 version: 0.21.5 eslint: - specifier: ^9.6.0 - version: 9.6.0 + specifier: ^9.7.0 + version: 9.7.0 eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-regexp: specifier: ^2.6.0 - version: 2.6.0(eslint@9.6.0) + version: 2.6.0(eslint@9.7.0) globby: specifier: ^14.0.2 version: 14.0.2 @@ -58,8 +58,8 @@ importers: specifier: ^0.10.0 version: 0.10.0 prettier: - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.3.3 + version: 3.3.3 prettier-plugin-astro: specifier: ^0.14.0 version: 0.14.0 @@ -70,11 +70,11 @@ importers: specifier: ^1.13.4 version: 1.13.4 typescript: - specifier: ~5.5.2 - version: 5.5.2 + specifier: ~5.5.3 + version: 5.5.3 typescript-eslint: - specifier: ^7.14.1 - version: 7.14.1(eslint@9.6.0)(typescript@5.5.2) + specifier: ^7.16.1 + version: 7.16.1(eslint@9.7.0)(typescript@5.5.3) benchmark: dependencies: @@ -128,7 +128,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/blog: @@ -143,13 +143,13 @@ importers: specifier: ^3.1.6 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/container-with-vitest: @@ -167,8 +167,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.6) + specifier: ^2.0.3 + version: 2.0.3(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.8) devDependencies: '@types/react': specifier: ^18.3.3 @@ -189,7 +189,7 @@ importers: specifier: ^3.14.1 version: 3.14.1 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/framework-lit: @@ -201,7 +201,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro lit: specifier: ^3.1.4 @@ -210,7 +210,7 @@ importers: examples/framework-multiple: dependencies: '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact '@astrojs/react': specifier: ^3.6.0 @@ -231,7 +231,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro preact: specifier: ^10.22.1 @@ -250,18 +250,18 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) examples/framework-preact: dependencies: '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact '@preact/signals': - specifier: ^1.2.3 - version: 1.2.3(preact@10.22.1) + specifier: ^1.3.0 + version: 1.3.0(preact@10.22.1) astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro preact: specifier: ^10.22.1 @@ -279,7 +279,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -294,7 +294,7 @@ importers: specifier: ^4.4.0 version: link:../../packages/integrations/solid astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro solid-js: specifier: ^1.8.18 @@ -306,7 +306,7 @@ importers: specifier: ^5.6.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro svelte: specifier: ^4.2.18 @@ -318,11 +318,11 @@ importers: specifier: ^4.5.0 version: link:../../packages/integrations/vue astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) examples/hackernews: dependencies: @@ -330,13 +330,13 @@ importers: specifier: ^8.3.2 version: link:../../packages/integrations/node astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/middleware: @@ -345,7 +345,7 @@ importers: specifier: ^8.3.2 version: link:../../packages/integrations/node astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -358,19 +358,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/ssr: @@ -382,7 +382,7 @@ importers: specifier: ^5.6.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro svelte: specifier: ^4.2.18 @@ -391,11 +391,11 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 sharp: specifier: ^0.33.3 version: 0.33.3 @@ -403,7 +403,7 @@ importers: examples/toolbar-app: devDependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/view-transitions: @@ -415,16 +415,16 @@ importers: specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/with-markdoc: dependencies: '@astrojs/markdoc': - specifier: ^0.11.1 + specifier: ^0.11.2 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/with-markdown-plugins: @@ -433,7 +433,7 @@ importers: specifier: ^5.1.1 version: link:../../packages/markdown/remark astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -454,7 +454,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/with-mdx: @@ -463,10 +463,10 @@ importers: specifier: ^3.1.2 version: link:../../packages/integrations/mdx '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro preact: specifier: ^10.22.1 @@ -475,13 +475,13 @@ importers: examples/with-nanostores: dependencies: '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact '@nanostores/preact': specifier: ^0.5.1 version: 0.5.1(nanostores@0.10.3)(preact@10.22.1) astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro nanostores: specifier: ^0.10.3 @@ -502,7 +502,7 @@ importers: specifier: ^1.6.4 version: 1.6.4 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro autoprefixer: specifier: ^10.4.19 @@ -514,23 +514,23 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.6 examples/with-vitest: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.6) + specifier: ^2.0.3 + version: 2.0.3(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.8) packages/astro: dependencies: '@astrojs/compiler': - specifier: ^2.8.1 - version: 2.8.1 + specifier: ^2.8.2 + version: 2.9.1 '@astrojs/internal-helpers': specifier: workspace:* version: link:../internal-helpers @@ -541,17 +541,17 @@ importers: specifier: workspace:* version: link:../telemetry '@babel/core': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.9 + version: 7.24.9 '@babel/generator': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.10 + version: 7.24.10 '@babel/parser': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.8 + version: 7.24.8 '@babel/plugin-transform-react-jsx': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + version: 7.24.7(@babel/core@7.24.9) '@babel/traverse': specifier: ^7.24.7 version: 7.24.7 @@ -560,7 +560,7 @@ importers: version: 7.24.7 '@rollup/pluginutils': specifier: ^5.1.0 - version: 5.1.0(rollup@4.18.0) + version: 5.1.0(rollup@4.18.1) '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -568,17 +568,17 @@ importers: specifier: ^0.6.0 version: 0.6.0 acorn: - specifier: ^8.12.0 - version: 8.12.0 + specifier: ^8.12.1 + version: 8.12.1 aria-query: specifier: ^5.3.0 version: 5.3.0 axobject-query: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.1.0 + version: 4.1.0 boxen: - specifier: ^7.1.1 - version: 7.1.1 + specifier: ^8.0.0 + version: 8.0.0 chokidar: specifier: ^3.6.0 version: 3.6.0 @@ -664,8 +664,8 @@ importers: specifier: ^8.0.1 version: 8.0.1 p-limit: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^6.1.0 + version: 6.1.0 p-queue: specifier: ^8.0.1 version: 8.0.1 @@ -673,8 +673,8 @@ importers: specifier: ^6.2.2 version: 6.2.2 preferred-pm: - specifier: ^3.1.3 - version: 3.1.3 + specifier: ^4.0.0 + version: 4.0.0 prompts: specifier: ^2.4.2 version: 2.4.2 @@ -685,8 +685,8 @@ importers: specifier: ^7.6.2 version: 7.6.2 shiki: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.10.3 + version: 1.10.3 string-width: specifier: ^7.2.0 version: 7.2.0 @@ -695,22 +695,22 @@ importers: version: 7.1.0 tsconfck: specifier: ^3.1.1 - version: 3.1.1(typescript@5.5.2) + version: 3.1.1(typescript@5.5.3) unist-util-visit: specifier: ^5.0.0 version: 5.0.0 vfile: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^6.0.2 + version: 6.0.2 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) vitefu: specifier: ^0.2.5 - version: 0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) which-pm: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^3.0.0 + version: 3.0.0 yargs-parser: specifier: ^21.1.1 version: 21.1.1 @@ -722,18 +722,18 @@ importers: version: 3.23.1(zod@3.23.8) zod-to-ts: specifier: ^1.2.0 - version: 1.2.0(typescript@5.5.2)(zod@3.23.8) + version: 1.2.0(typescript@5.5.3)(zod@3.23.8) optionalDependencies: sharp: specifier: ^0.33.3 version: 0.33.3 devDependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.2(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@playwright/test': - specifier: ^1.45.0 - version: 1.45.0 + specifier: ^1.45.2 + version: 1.45.2 '@types/aria-query': specifier: ^5.0.4 version: 5.0.4 @@ -837,11 +837,11 @@ importers: specifier: ^0.1.2 version: 0.1.2 rollup: - specifier: ^4.18.0 - version: 4.18.0 + specifier: ^4.18.1 + version: 4.18.1 sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 srcset-parse: specifier: ^1.1.0 version: 1.1.0 @@ -896,8 +896,8 @@ importers: packages/astro/e2e/fixtures/actions-blog: dependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.2(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@astrojs/db': specifier: workspace:* version: link:../../../../db @@ -923,14 +923,14 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 packages/astro/e2e/fixtures/actions-react-19: dependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.2(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@astrojs/db': specifier: workspace:* version: link:../../../../db @@ -956,8 +956,8 @@ importers: specifier: 19.0.0-rc-fb9a90fa48-20240614 version: 19.0.0-rc-fb9a90fa48-20240614(react@19.0.0-rc-fb9a90fa48-20240614) typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 packages/astro/e2e/fixtures/astro-component: dependencies: @@ -984,7 +984,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/e2e/fixtures/client-only: dependencies: @@ -1005,7 +1005,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1086,8 +1086,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 packages/astro/e2e/fixtures/errors: dependencies: @@ -1119,8 +1119,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 solid-js: specifier: ^1.8.18 version: 1.8.18 @@ -1129,7 +1129,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/e2e/fixtures/hmr: devDependencies: @@ -1137,8 +1137,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 packages/astro/e2e/fixtures/hydration-race: dependencies: @@ -1198,7 +1198,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/lit': specifier: workspace:* @@ -1257,7 +1257,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1297,7 +1297,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1337,7 +1337,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1377,7 +1377,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1417,7 +1417,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1457,7 +1457,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1637,8 +1637,8 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.6 packages/astro/e2e/fixtures/ts-resolution: dependencies: @@ -1683,7 +1683,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/e2e/fixtures/vue-component: dependencies: @@ -1698,7 +1698,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/performance: devDependencies: @@ -1827,7 +1827,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/actions: dependencies: @@ -2000,7 +2000,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/astro-class-list: dependencies: @@ -2158,7 +2158,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/astro-expr: dependencies: @@ -2262,6 +2262,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/astro-markdown-shiki/default-color: + dependencies: + astro: + specifier: workspace:* + version: link:../../../.. + packages/astro/test/fixtures/astro-markdown-shiki/langs: dependencies: astro: @@ -2443,7 +2449,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/before-hydration: dependencies: @@ -2582,7 +2588,7 @@ importers: version: 18.3.1(react@18.3.1) vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/content: dependencies: @@ -3040,7 +3046,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/fontsource-package: dependencies: @@ -3238,7 +3244,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/mdx': specifier: workspace:* @@ -3426,11 +3432,11 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: postcss-preset-env: - specifier: ^9.5.15 - version: 9.5.15(postcss@8.4.39) + specifier: ^9.6.0 + version: 9.6.0(postcss@8.4.39) packages/astro/test/fixtures/preact-compat-component: dependencies: @@ -3459,8 +3465,8 @@ importers: specifier: workspace:* version: link:../../../../integrations/preact '@preact/signals': - specifier: 1.2.3 - version: 1.2.3(preact@10.22.1) + specifier: 1.3.0 + version: 1.3.0(preact@10.22.1) astro: specifier: workspace:* version: link:../../.. @@ -3689,7 +3695,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/solid-component: dependencies: @@ -3697,8 +3703,8 @@ importers: specifier: workspace:* version: link:../../../../integrations/solid '@solidjs/router': - specifier: ^0.13.6 - version: 0.13.6(solid-js@1.8.18) + specifier: ^0.14.1 + version: 0.14.1(solid-js@1.8.18) '@test/solid-jsx-component': specifier: file:./deps/solid-jsx-component version: link:deps/solid-jsx-component @@ -4019,8 +4025,8 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.6 packages/astro/test/fixtures/tailwindcss-ts: dependencies: @@ -4034,8 +4040,8 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.6 packages/astro/test/fixtures/third-party-astro: dependencies: @@ -4095,7 +4101,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/vue-jsx: dependencies: @@ -4107,7 +4113,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/vue-with-multi-renderer: dependencies: @@ -4125,7 +4131,7 @@ importers: version: 4.2.18 vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/with-endpoint-routes: dependencies: @@ -4242,11 +4248,11 @@ importers: specifier: 1.0.0-rc.12 version: 1.0.0-rc.12 typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/db/test/fixtures/basics: dependencies: @@ -4341,8 +4347,8 @@ importers: packages/db/test/fixtures/ticketing-example: dependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.2(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@astrojs/db': specifier: workspace:* version: link:../../.. @@ -4362,8 +4368,8 @@ importers: specifier: workspace:* version: link:../../../../astro open-props: - specifier: ^1.7.4 - version: 1.7.4 + specifier: ^1.7.5 + version: 1.7.5 react: specifier: ^18.3.1 version: 18.3.1 @@ -4374,8 +4380,8 @@ importers: specifier: ^0.1.12 version: 0.1.12(astro@packages+astro)(zod@3.23.8) typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 zod: specifier: ^3.23.8 version: 3.23.8 @@ -4383,8 +4389,8 @@ importers: packages/integrations/alpinejs: devDependencies: '@playwright/test': - specifier: 1.45.0 - version: 1.45.0 + specifier: 1.45.2 + version: 1.45.2 astro: specifier: workspace:* version: link:../../astro @@ -4392,8 +4398,8 @@ importers: specifier: workspace:* version: link:../../../scripts vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -4470,8 +4476,8 @@ importers: specifier: ^3.1.4 version: 3.1.4 sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 packages/integrations/markdoc: dependencies: @@ -4525,8 +4531,8 @@ importers: specifier: ^0.18.4 version: 0.18.4 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -4618,6 +4624,15 @@ importers: specifier: workspace:* version: link:../../../../../astro + packages/integrations/markdoc/test/fixtures/render-typographer: + dependencies: + '@astrojs/markdoc': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../../astro + packages/integrations/markdoc/test/fixtures/render-with-components: dependencies: '@astrojs/markdoc': @@ -4669,8 +4684,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 acorn: - specifier: ^8.12.0 - version: 8.12.0 + specifier: ^8.12.1 + version: 8.12.1 es-module-lexer: specifier: ^1.5.4 version: 1.5.4 @@ -4696,8 +4711,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 remark-smartypants: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 source-map: specifier: ^0.7.4 version: 0.7.4 @@ -4705,8 +4720,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 vfile: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^6.0.2 + version: 6.0.2 devDependencies: '@types/estree': specifier: ^1.0.5 @@ -4749,7 +4764,7 @@ importers: version: 6.0.0 rehype-pretty-code: specifier: ^0.13.2 - version: 0.13.2(shiki@1.10.0) + version: 0.13.2(shiki@1.10.3) remark-math: specifier: ^6.0.0 version: 6.0.0 @@ -4758,7 +4773,7 @@ importers: version: 11.1.0 remark-shiki-twoslash: specifier: ^3.1.3 - version: 3.1.3(typescript@5.5.2) + version: 3.1.3(typescript@5.5.3) remark-toc: specifier: ^9.0.0 version: 9.0.0 @@ -4766,8 +4781,8 @@ importers: specifier: ^11.0.5 version: 11.0.5 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -5107,25 +5122,22 @@ importers: dependencies: '@babel/plugin-transform-react-jsx': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + version: 7.24.7(@babel/core@7.24.9) '@babel/plugin-transform-react-jsx-development': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + version: 7.24.7(@babel/core@7.24.9) '@preact/preset-vite': specifier: 2.8.2 - version: 2.8.2(@babel/core@7.24.7)(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 2.8.2(@babel/core@7.24.9)(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) '@preact/signals': - specifier: ^1.2.3 - version: 1.2.3(preact@10.22.1) + specifier: ^1.3.0 + version: 1.3.0(preact@10.22.1) babel-plugin-transform-hook-names: specifier: ^1.0.2 - version: 1.0.2(@babel/core@7.24.7) + version: 1.0.2(@babel/core@7.24.9) preact-render-to-string: - specifier: ~6.3.1 - version: 6.3.1(preact@10.22.1) - preact-ssr-prepass: - specifier: ^1.2.1 - version: 1.2.1(preact@10.22.1) + specifier: ^6.5.5 + version: 6.5.5(preact@10.22.1) devDependencies: astro: specifier: workspace:* @@ -5141,7 +5153,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 4.3.1(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) ultrahtml: specifier: ^1.5.3 version: 1.5.3 @@ -5168,8 +5180,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/react/test/fixtures/react-component: dependencies: @@ -5190,7 +5202,7 @@ importers: version: 18.3.1(react@18.3.1) vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/integrations/sitemap: dependencies: @@ -5257,7 +5269,7 @@ importers: dependencies: vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(solid-js@1.8.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 2.10.2(solid-js@1.8.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) devDependencies: astro: specifier: workspace:* @@ -5269,17 +5281,17 @@ importers: specifier: ^1.8.18 version: 1.8.18 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/svelte: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.1.1 - version: 3.1.1(svelte@4.2.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 3.1.1(svelte@4.2.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) svelte2tsx: specifier: ^0.7.13 - version: 0.7.13(svelte@4.2.18)(typescript@5.5.2) + version: 0.7.13(svelte@4.2.18)(typescript@5.5.3) devDependencies: astro: specifier: workspace:* @@ -5291,8 +5303,8 @@ importers: specifier: ^4.2.18 version: 4.2.18 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/tailwind: dependencies: @@ -5313,11 +5325,11 @@ importers: specifier: workspace:* version: link:../../../scripts tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.6 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/tailwind/test/fixtures/basic: dependencies: @@ -5340,8 +5352,8 @@ importers: specifier: ^1.1.1 version: 1.1.1 '@vercel/nft': - specifier: ^0.27.2 - version: 0.27.2 + specifier: ^0.27.3 + version: 0.27.3 esbuild: specifier: ^0.21.5 version: 0.21.5 @@ -5356,8 +5368,8 @@ importers: version: 3.5.2 devDependencies: '@types/set-cookie-parser': - specifier: ^2.4.9 - version: 2.4.9 + specifier: ^2.4.10 + version: 2.4.10 astro: specifier: workspace:* version: link:../../astro @@ -5552,16 +5564,16 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.0.5 - version: 5.0.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) + version: 5.0.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.0 - version: 4.0.0(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) + version: 4.0.0(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) '@vue/compiler-sfc': specifier: ^3.4.31 version: 3.4.31 vite-plugin-vue-devtools: - specifier: ^7.3.5 - version: 7.3.5(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) + specifier: ^7.3.6 + version: 7.3.6(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) devDependencies: astro: specifier: workspace:* @@ -5576,11 +5588,11 @@ importers: specifier: ^0.18.4 version: 0.18.4 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/integrations/vue/test/fixtures/app-entrypoint: dependencies: @@ -5592,7 +5604,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.31(typescript@5.5.2)) + version: 5.1.0(vue@3.4.31(typescript@5.5.3)) packages/integrations/vue/test/fixtures/app-entrypoint-async: dependencies: @@ -5604,7 +5616,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.31(typescript@5.5.2)) + version: 5.1.0(vue@3.4.31(typescript@5.5.3)) packages/integrations/vue/test/fixtures/app-entrypoint-css: dependencies: @@ -5625,7 +5637,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.31(typescript@5.5.2)) + version: 5.1.0(vue@3.4.31(typescript@5.5.3)) packages/integrations/vue/test/fixtures/app-entrypoint-relative: dependencies: @@ -5730,11 +5742,11 @@ importers: specifier: ^11.1.0 version: 11.1.0 remark-smartypants: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 shiki: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.10.3 + version: 1.10.3 unified: specifier: ^11.0.5 version: 11.0.5 @@ -5748,8 +5760,8 @@ importers: specifier: ^6.0.1 version: 6.0.1 vfile: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^6.0.2 + version: 6.0.2 devDependencies: '@types/estree': specifier: ^1.0.5 @@ -5792,11 +5804,11 @@ importers: specifier: workspace:* version: link:../../scripts typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/telemetry: dependencies: @@ -5853,8 +5865,8 @@ importers: specifier: ^0.4.1 version: 0.4.1 preferred-pm: - specifier: ^3.1.3 - version: 3.1.3 + specifier: ^4.0.0 + version: 4.0.0 semver: specifier: ^7.6.2 version: 7.6.2 @@ -5890,8 +5902,8 @@ importers: specifier: ^4.1.5 version: 4.1.5 p-limit: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^6.1.0 + version: 6.1.0 svelte: specifier: ^4.2.18 version: 4.2.18 @@ -5964,8 +5976,8 @@ packages: peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta - '@astrojs/check@0.7.0': - resolution: {integrity: sha512-UTqwOeKNu9IYZmJXEeWnQuTdSd/pX58Hl4TUARsMlT97SVDL//kLBE4T/ctxRz6J573N87oE5ddtW/uOOnQTug==} + '@astrojs/check@0.8.2': + resolution: {integrity: sha512-L0V9dGb2PGvK9Mf3kby99Y+qm7EqxaC9tN1MVCvaqp/3pPPZBadR4XAySHipxXqQsxwJS25WQow8/1kMl1e25g==} hasBin: true peerDependencies: typescript: ^5.0.0 @@ -5977,11 +5989,11 @@ packages: '@astrojs/compiler@1.8.2': resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} - '@astrojs/compiler@2.8.1': - resolution: {integrity: sha512-NGfPAgU/9rvDEwsXu82RI1AxiivaxtEYBK9saW1f+2fTHUUqCJQ27HYtb2akG2QxCmFikgZ9zk26BEWgiHho1Q==} + '@astrojs/compiler@2.9.1': + resolution: {integrity: sha512-s8Ge2lWHx/s3kl4UoerjL/iPtwdtogNM/BLOaGCwQA6crMOVYpphy5wUkYlKyuh8GAeGYH/5haLAFBsgNy9AQQ==} - '@astrojs/language-server@2.10.0': - resolution: {integrity: sha512-crHXpqYfA5qWioiuZnZFpTsNItgBlF1f0S9MzDYS7/pfCALkHNJ7K3w9U/j0uMKymsT4hC7BfMaX0DYlfdSzHg==} + '@astrojs/language-server@2.12.1': + resolution: {integrity: sha512-CCibE6XwSmrZEKlPDr48LZJN7NWxOurOJK1yOzqZFMNV8Y6DIqF6s1e60gbNNHMZkthWYBNTPno4Ni/XyviinQ==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -5996,24 +6008,24 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} + '@babel/compat-data@7.24.9': + resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + '@babel/core@7.24.9': + resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + '@babel/generator@7.24.10': + resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.24.7': resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + '@babel/helper-compilation-targets@7.24.8': + resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.24.7': @@ -6050,8 +6062,8 @@ packages: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + '@babel/helper-module-transforms@7.24.9': + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -6086,24 +6098,28 @@ packages: resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + '@babel/helpers@7.24.8': + resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + '@babel/parser@7.24.8': + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} engines: {node: '>=6.0.0'} hasBin: true @@ -6184,10 +6200,18 @@ packages: resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.8': + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.24.7': resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.9': + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + engines: {node: '>=6.9.0'} + '@biomejs/biome@1.8.1': resolution: {integrity: sha512-fQXGfvq6DIXem12dGQCM2tNF+vsNHH1qs3C7WeOu75Pd0trduoTmoO7G4ntLJ2qDs5wuw981H+cxQhi1uHnAtA==} engines: {node: '>=14.21.3'} @@ -6246,11 +6270,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - '@changesets/apply-release-plan@7.0.3': - resolution: {integrity: sha512-klL6LCdmfbEe9oyfLxnidIf/stFXmrbFO/3gT5LU5pcyoZytzJe4gWpTBx3BPmyNPl16dZ1xrkcW7b98e3tYkA==} + '@changesets/apply-release-plan@7.0.4': + resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} - '@changesets/assemble-release-plan@6.0.2': - resolution: {integrity: sha512-n9/Tdq+ze+iUtjmq0mZO3pEhJTKkku9hUxtUadW30jlN7kONqJG3O6ALeXrmc6gsi/nvoCuKjqEJ68Hk8RbMTQ==} + '@changesets/assemble-release-plan@6.0.3': + resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} @@ -6258,24 +6282,24 @@ packages: '@changesets/changelog-github@0.5.0': resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} - '@changesets/cli@2.27.6': - resolution: {integrity: sha512-PB7KS5JkCQ4WSXlnfThn8CXAHVwYxFdZvYTimhi12fls/tzj9iimUhKsYwkrKSbw1AiVlGCZtihj5Wkt6siIjA==} + '@changesets/cli@2.27.7': + resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} hasBin: true - '@changesets/config@3.0.1': - resolution: {integrity: sha512-nCr8pOemUjvGJ8aUu8TYVjqnUL+++bFOQHBVmtNbLvKzIDkN/uiP/Z4RKmr7NNaiujIURHySDEGFPftR4GbTUA==} + '@changesets/config@3.0.2': + resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@2.1.0': - resolution: {integrity: sha512-QOt6pQq9RVXKGHPVvyKimJDYJumx7p4DO5MO9AhRJYgAPgv0emhNqAqqysSVKHBm4sxKlGN4S1zXOIb5yCFuhQ==} + '@changesets/get-dependents-graph@2.1.1': + resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.2': - resolution: {integrity: sha512-rOalz7nMuMV2vyeP7KBeAhqEB7FM2GFPO5RQSoOoUKKH9L6wW3QyPA2K+/rG9kBrWl2HckPVES73/AuwPvbH3w==} + '@changesets/get-release-plan@4.0.3': + resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -6319,47 +6343,47 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@csstools/cascade-layer-name-parser@1.0.12': - resolution: {integrity: sha512-iNCCOnaoycAfcIot3v/orjkTol+j8+Z5xgpqxUpZSdqeaxCADQZtldHhlvzDipmi7OoWdcJUO6DRZcnkMSBEIg==} + '@csstools/cascade-layer-name-parser@1.0.13': + resolution: {integrity: sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 '@csstools/color-helpers@4.2.1': resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==} engines: {node: ^14 || ^16 || >=18} - '@csstools/css-calc@1.2.3': - resolution: {integrity: sha512-rlOh81K3CvtY969Od5b1h29YT6MpCHejMCURKrRrXFeCpz67HGaBNvBmWT5S7S+CKn+V7KJ+qxSmK8jNd/aZWA==} + '@csstools/css-calc@1.2.4': + resolution: {integrity: sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-color-parser@2.0.3': - resolution: {integrity: sha512-Qqhb5I/gEh1wI4brf6Kmy0Xn4J1IqO8OTDKWGRsBYtL4bGkHcV9i0XI2Mmo/UYFtSRoXW/RmKTcMh6sCI433Cw==} + '@csstools/css-color-parser@2.0.5': + resolution: {integrity: sha512-lRZSmtl+DSjok3u9hTWpmkxFZnz7stkbZxzKc08aDUsdrWwhSgWo8yq9rq9DaFUtbAyAq2xnH92fj01S+pwIww==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-parser-algorithms@2.7.0': - resolution: {integrity: sha512-qvBMcOU/uWFCH/VO0MYe0AMs0BGMWAt6FTryMbFIKYtZtVnqTZtT8ktv5o718llkaGZWomJezJZjq3vJDHeJNQ==} + '@csstools/css-parser-algorithms@2.7.1': + resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-tokenizer@2.3.2': - resolution: {integrity: sha512-0xYOf4pQpAaE6Sm2Q0x3p25oRukzWQ/O8hWVvhIt9Iv98/uu053u2CGm/g3kJ+P0vOYTAYzoU8Evq2pg9ZPXtw==} + '@csstools/css-tokenizer@2.4.1': + resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} engines: {node: ^14 || ^16 || >=18} - '@csstools/media-query-list-parser@2.1.12': - resolution: {integrity: sha512-t1/CdyVJzOQUiGUcIBXRzTAkWTFPxiPnoKwowKW2z9Uj78c2bBWI/X94BeVfUwVq1xtCjD7dnO8kS6WONgp8Jw==} + '@csstools/media-query-list-parser@2.1.13': + resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 '@csstools/postcss-cascade-layers@4.0.6': resolution: {integrity: sha512-Xt00qGAQyqAODFiFEJNkTpSUz5VfYqnDLECdlA/Vv17nl/OIV5QfTRHGAXrBGG5YcJyHpJ+GF9gF/RZvOQz4oA==} @@ -6367,20 +6391,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@3.0.17': - resolution: {integrity: sha512-hi6g5KHMvxpxf01LCVu5xnNxX5h2Vkn9aKRmspn2esWjWtshuTXVOavTjwvogA+Eycm9Rn21QTYNU+qbKw6IeQ==} + '@csstools/postcss-color-function@3.0.19': + resolution: {integrity: sha512-d1OHEXyYGe21G3q88LezWWx31ImEDdmINNDy0LyLNN9ChgN2bPxoubUPiHf9KmwypBMaHmNcMuA/WZOKdZk/Lg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@2.0.17': - resolution: {integrity: sha512-Y65GHGCY1R+9+/5KrJjN7gAF1NZydng4AGknMggeUJIyo2ckLb4vBrlDmpIcHDdjQtV5631j1hxvalVTbpoiFw==} + '@csstools/postcss-color-mix-function@2.0.19': + resolution: {integrity: sha512-mLvQlMX+keRYr16AuvuV8WYKUwF+D0DiCqlBdvhQ0KYEtcQl9/is9Ssg7RcIys8x0jIn2h1zstS4izckdZj9wg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@1.0.8': - resolution: {integrity: sha512-/4WHpu4MrCCsUWRaDreyBcdF+5xnudk1JJLg6aWREeMaSpr3vsD0eywmOXct3xUm28TCqKS//S86IlcDJJdzoQ==} + '@csstools/postcss-content-alt-text@1.0.0': + resolution: {integrity: sha512-SkHdj7EMM/57GVvSxSELpUg7zb5eAndBeuvGwFzYtU06/QXJ/h9fuK7wO5suteJzGhm3GDF/EWPCdWV2h1IGHQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-exponential-functions@1.0.9': + resolution: {integrity: sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6391,26 +6421,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@1.0.10': - resolution: {integrity: sha512-iPz4/cO8YiNjAYdtAiKGBdKZdFlAvDtUr2AgvAMxCa83e9MwTIKmsJZC3Frw7VYmkfknmdElEZr1FJU+PmB2PA==} + '@csstools/postcss-gamut-mapping@1.0.11': + resolution: {integrity: sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@4.0.18': - resolution: {integrity: sha512-rZH7RnNYY911I/n8+DRrcri89GffptdyuFDGGj/UbxDISFirdR1uI/wcur9KYR/uFHXqrnJjrfi1cisfB7bL+g==} + '@csstools/postcss-gradients-interpolation-method@4.0.20': + resolution: {integrity: sha512-ZFl2JBHano6R20KB5ZrB8KdPM2pVK0u+/3cGQ2T8VubJq982I2LSOvQ4/VtxkAXjkPkk1rXt4AD1ni7UjTZ1Og==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@3.0.16': - resolution: {integrity: sha512-nlC4D5xB7pomgR4kDZ1lqbVqrs6gxPqsM2OE5CkCn0EqCMxtqqtadtbK2dcFwzyujv3DL4wYNo+fgF4rJgLPZA==} + '@csstools/postcss-hwb-function@3.0.18': + resolution: {integrity: sha512-3ifnLltR5C7zrJ+g18caxkvSRnu9jBBXCYgnBznRjxm6gQJGnnCO9H6toHfywNdNr/qkiVf2dymERPQLDnjLRQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-ic-unit@3.0.6': - resolution: {integrity: sha512-fHaU9C/sZPauXMrzPitZ/xbACbvxbkPpHoUgB9Kw5evtsBWdVkVrajOyiT9qX7/c+G1yjApoQjP1fQatldsy9w==} + '@csstools/postcss-ic-unit@3.0.7': + resolution: {integrity: sha512-YoaNHH2wNZD+c+rHV02l4xQuDpfR8MaL7hD45iJyr+USwvr0LOheeytJ6rq8FN6hXBmEeoJBeXXgGmM8fkhH4g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6427,8 +6457,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@1.0.6': - resolution: {integrity: sha512-bu+cxKpcTrMDMkVCv7QURwKNPZEuXA3J0Udvz3HfmQHt4+OIvvfvDpTgejFXdOliCU4zK9/QdqebPcYneygZtg==} + '@csstools/postcss-light-dark-function@1.0.8': + resolution: {integrity: sha512-x0UtpCyVnERsplUeoaY6nEtp1HxTf4lJjoK/ULEm40DraqFfUdUSt76yoOyX5rGY6eeOUOkurHyYlFHVKv/pew==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6457,20 +6487,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@2.0.10': - resolution: {integrity: sha512-nGP0KanI/jXrUMpaIBz6mdy/vNs3d/cjbNYuoEc7lCdNkntmxZvwxC2zIKI8QzGWaYsh9jahozMVceZ0jNyjgg==} + '@csstools/postcss-logical-viewport-units@2.0.11': + resolution: {integrity: sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@1.1.7': - resolution: {integrity: sha512-AjLG+vJvhrN2geUjYNvzncW1TJ+vC4QrVPGrLPxOSJ2QXC94krQErSW4aXMj0b13zhvVWeqf2NHIOVQknqV9cg==} + '@csstools/postcss-media-minmax@1.1.8': + resolution: {integrity: sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10': - resolution: {integrity: sha512-DXae3i7OYJTejxcoUuf/AOIpy+6FWfGGKo/I3WefZI538l3k+ErU6V2xQOx/UmUXT2FDIdE1Ucl9JkZib2rEsA==} + '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11': + resolution: {integrity: sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6487,20 +6517,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@3.0.17': - resolution: {integrity: sha512-kIng3Xmw6NKUvD/eEoHGwbyDFXDsuzsVGtNo3ndgZYYqy+DLiD+3drxwRKiViE5LUieLB1ERczXpLVmpSw61eg==} + '@csstools/postcss-oklab-function@3.0.19': + resolution: {integrity: sha512-e3JxXmxjU3jpU7TzZrsNqSX4OHByRC3XjItV3Ieo/JEQmLg5rdOL4lkv/1vp27gXemzfNt44F42k/pn0FpE21Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@3.2.0': - resolution: {integrity: sha512-BZlirVxCRgKlE7yVme+Xvif72eTn1MYXj8oZ4Knb+jwaH4u3AN1DjbhM7j86RP5vvuAOexJ4JwfifYYKWMN/QQ==} + '@csstools/postcss-progressive-custom-properties@3.3.0': + resolution: {integrity: sha512-W2oV01phnILaRGYPmGFlL2MT/OgYjQDrL9sFlbdikMFi6oQkFki9B86XqEWR7HCsTZFVq7dbzr/o71B75TKkGg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@2.0.17': - resolution: {integrity: sha512-EVckAtG8bocItZflXLJ50Su+gwg/4Jhkz1BztyNsT0/svwS6QMAeLjyUA75OsgtejNWQHvBMWna4xc9LCqdjrQ==} + '@csstools/postcss-relative-color-syntax@2.0.19': + resolution: {integrity: sha512-MxUMSNvio1WwuS6WRLlQuv6nNPXwIWUFzBBAvL/tBdWfiKjiJnAa6eSSN5gtaacSqUkQ/Ce5Z1OzLRfeaWhADA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6511,8 +6541,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@3.0.9': - resolution: {integrity: sha512-uAw1J8hiZ0mM1DLaziI7CP5oagSwDnS5kufuROGIJFzESYfTqNVS3b7FgDZto9AxXdkwI+Sn48+cvG8PwzGMog==} + '@csstools/postcss-stepped-value-functions@3.0.10': + resolution: {integrity: sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6523,8 +6553,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@3.0.9': - resolution: {integrity: sha512-rCAtKX3EsH91ZIHoxFzAAcMQeQCS+PsjzHl6fvsGXz/SV3lqzSmO7MWgFXyPktC2zjZXgOObAJ/2QkhMqVpgNg==} + '@csstools/postcss-trigonometric-functions@3.0.10': + resolution: {integrity: sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6725,6 +6755,10 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/config-array@0.17.0': resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6733,8 +6767,8 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.6.0': - resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} + '@eslint/js@9.7.0': + resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -6876,13 +6910,6 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': - resolution: {integrity: sha512-etqLfpSJ5zaw76KUNF603be6d6QsiQPmaHr9FKEp4zhLZJzWCCMH6Icak7MtLUFLZLMpL761mZNImi/joBo1ZA==} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -7090,8 +7117,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.45.0': - resolution: {integrity: sha512-TVYsfMlGAaxeUllNkywbwek67Ncf8FRGn8ZlRdO291OL3NjG9oMbfVhyP82HQF0CZLMrYsvesqoUekxdWuF9Qw==} + '@playwright/test@1.45.2': + resolution: {integrity: sha512-JxG9eq92ET75EbVi3s+4sYbcG7q72ECeZNbdBlaMkGcNbiDQ4cAi8U2QP5oKkOx+1gpaiL1LDStmzCaEM1Z6fQ==} engines: {node: '>=18'} hasBin: true @@ -7104,11 +7131,11 @@ packages: '@babel/core': 7.x vite: 2.x || 3.x || 4.x || 5.x - '@preact/signals-core@1.6.0': - resolution: {integrity: sha512-O/XGxwP85h1F7+ouqTMOIZ3+V1whfaV9ToIVcuyGriD4JkSD00cQo54BKdqjvBJxbenvp7ynfqRHEwI6e+NIhw==} + '@preact/signals-core@1.7.0': + resolution: {integrity: sha512-bEZLgmJGSBVP5PUPDowhPW3bVdMmp9Tr5OEl+SQK+8Tv9T7UsIfyN905cfkmmeqw8z4xp8T6zrl4M1uj9+HAfg==} - '@preact/signals@1.2.3': - resolution: {integrity: sha512-M2DXse3Wi8HwjI1d2vQWOLJ3lHogvqTsJYvl4ofXRXgMFQzJ7kmlZvlt5i8x5S5VwgZu0ghru4HkLqOoFfU2JQ==} + '@preact/signals@1.3.0': + resolution: {integrity: sha512-EOMeg42SlLS72dhoq6Vjq08havnLseWmPQ8A0YsgIAqMgWgx7V1a39+Pxo6i7SY5NwJtH4849JogFq3M67AzWg==} peerDependencies: preact: 10.x @@ -7142,98 +7169,95 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + '@rollup/rollup-android-arm-eabi@4.18.1': + resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + '@rollup/rollup-android-arm64@4.18.1': + resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + '@rollup/rollup-darwin-arm64@4.18.1': + resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + '@rollup/rollup-darwin-x64@4.18.1': + resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': + resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + '@rollup/rollup-linux-arm-musleabihf@4.18.1': + resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + '@rollup/rollup-linux-arm64-gnu@4.18.1': + resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + '@rollup/rollup-linux-arm64-musl@4.18.1': + resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': + resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + '@rollup/rollup-linux-riscv64-gnu@4.18.1': + resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + '@rollup/rollup-linux-s390x-gnu@4.18.1': + resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + '@rollup/rollup-linux-x64-gnu@4.18.1': + resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + '@rollup/rollup-linux-x64-musl@4.18.1': + resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + '@rollup/rollup-win32-arm64-msvc@4.18.1': + resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + '@rollup/rollup-win32-ia32-msvc@4.18.1': + resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + '@rollup/rollup-win32-x64-msvc@4.18.1': + resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} cpu: [x64] os: [win32] - '@shikijs/core@1.10.0': - resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@shikijs/core@1.10.3': + resolution: {integrity: sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==} '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@solidjs/router@0.13.6': - resolution: {integrity: sha512-CdpFsBYoiJ/FQ4wZIamj3KEFRkmrYu5sVXM6PouNkmSENta1YJamsm9wa/VjaPmkw2RsnDnO0UvZ705v6EgOXQ==} + '@solidjs/router@0.14.1': + resolution: {integrity: sha512-GumQ4jbt5xDngLypAndC4EjapY/3DP0G8Az4YWEVQHdCtjHwB8IOm32eEBxE9lKpOffbtXV0r/0X0mofHJ1m5w==} peerDependencies: solid-js: ^1.8.6 @@ -7454,8 +7478,8 @@ packages: '@types/server-destroy@1.0.3': resolution: {integrity: sha512-Qq0fn70C7TLDG1W9FCblKufNWW1OckQ41dVKV2Dku5KdZF7bexezG4e2WBaBKhdwL3HZ+cYCEIKwg2BRgzrWmA==} - '@types/set-cookie-parser@2.4.9': - resolution: {integrity: sha512-bCorlULvl0xTdjj4BPUHX4cqs9I+go2TfW/7Do1nnFYWS0CPP429Qr1AY42kiFhCwLpvAkWFr1XIBHd8j6/MCQ==} + '@types/set-cookie-parser@2.4.10': + resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} '@types/strip-bom@3.0.0': resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} @@ -7490,8 +7514,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@typescript-eslint/eslint-plugin@7.14.1': - resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} + '@typescript-eslint/eslint-plugin@7.16.1': + resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -7501,8 +7525,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.14.1': - resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} + '@typescript-eslint/parser@7.16.1': + resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -7511,12 +7535,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.14.1': - resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} + '@typescript-eslint/scope-manager@7.16.1': + resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.14.1': - resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} + '@typescript-eslint/type-utils@7.16.1': + resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -7525,12 +7549,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.14.1': - resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} + '@typescript-eslint/types@7.16.1': + resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.14.1': - resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} + '@typescript-eslint/typescript-estree@7.16.1': + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -7538,14 +7562,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.14.1': - resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} + '@typescript-eslint/utils@7.16.1': + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.14.1': - resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} + '@typescript-eslint/visitor-keys@7.16.1': + resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript/twoslash@3.1.0': @@ -7574,8 +7598,8 @@ packages: '@vercel/edge@1.1.1': resolution: {integrity: sha512-NtKiIbn9Cq6HWGy+qRudz28mz5nxfOJWls5Pnckjw1yCfSX8rhXdvY/il3Sy3Zd5n/sKCM2h7VSCCpJF/oaDrQ==} - '@vercel/nft@0.27.2': - resolution: {integrity: sha512-7LeioS1yE5hwPpQfD3DdH04tuugKjo5KrJk3yK5kAI3Lh76iSsK/ezoFQfzuT08X3ZASQOd1y9ePjLNI9+TxTQ==} + '@vercel/nft@0.27.3': + resolution: {integrity: sha512-oySTdDSzUAFDXpsSLk9Q943o+/Yu/+TCFxnehpFQEf/3khi2stMpTHPVNwFdvZq/Z4Ky93lE+MGHpXCRpMkSCA==} engines: {node: '>=16'} hasBin: true @@ -7599,49 +7623,49 @@ packages: vite: ^5.0.0 vue: ^3.2.25 - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + '@vitest/expect@2.0.3': + resolution: {integrity: sha512-X6AepoOYePM0lDNUPsGXTxgXZAl3EXd0GYe/MZyVE4HzkUqyUVC6S3PrY5mClDJ6/7/7vALLMV3+xD/Ko60Hqg==} - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + '@vitest/pretty-format@2.0.3': + resolution: {integrity: sha512-URM4GLsB2xD37nnTyvf6kfObFafxmycCL8un3OC9gaCs5cti2u+5rJdIflZ2fUJUen4NbvF6jCufwViAFLvz1g==} - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + '@vitest/runner@2.0.3': + resolution: {integrity: sha512-EmSP4mcjYhAcuBWwqgpjR3FYVeiA4ROzRunqKltWjBfLNs1tnMLtF+qtgd5ClTwkDP6/DGlKJTNa6WxNK0bNYQ==} - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + '@vitest/snapshot@2.0.3': + resolution: {integrity: sha512-6OyA6v65Oe3tTzoSuRPcU6kh9m+mPL1vQ2jDlPdn9IQoUxl8rXhBnfICNOC+vwxWY684Vt5UPgtcA2aPFBb6wg==} - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@vitest/spy@2.0.3': + resolution: {integrity: sha512-sfqyAw/ypOXlaj4S+w8689qKM1OyPOqnonqOc9T91DsoHbfN5mU7FdifWWv3MtQFf0lEUstEwR9L/q/M390C+A==} - '@volar/kit@2.2.5': - resolution: {integrity: sha512-Bmn0UCaT43xUGGRwcmFG9lKhiCCLjRT4ScSLLPn5C9ltUcSGnIFFDlbZZa1PreHYHq25/4zkXt9Ap32klAh17w==} + '@vitest/utils@2.0.3': + resolution: {integrity: sha512-c/UdELMuHitQbbc/EVctlBaxoYAwQPQdSNwv7z/vHyBKy2edYZaFgptE27BRueZB7eW8po+cllotMNTDpL3HWg==} + + '@volar/kit@2.4.0-alpha.16': + resolution: {integrity: sha512-jRPfMrxl8N53UkFINMoY777FBqG49RUqWkJt4yOlNEW8CmUS8fmUw4cz/jMv08KnQUyD3IeZWFtt3XZcQqe4Zw==} peerDependencies: typescript: '*' - '@volar/language-core@2.2.5': - resolution: {integrity: sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==} - - '@volar/language-server@2.2.5': - resolution: {integrity: sha512-PV/jkUkI+m72HTXwnY7hsGqLY3VNi96ZRoWFRzVC9QG/853bixxjveXPJIiydMJ9I739lO3kcj3hnGrF5Sm+HA==} + '@volar/language-core@2.4.0-alpha.16': + resolution: {integrity: sha512-oOTnIZlx0P/idFwVw+W0NbzKDtZAQMzXSdIFfTePCKcXlb4Ys12GaGkx8NF9dsvPYV3nbv3ZsSxnkZWBmNKd7A==} - '@volar/language-service@2.2.5': - resolution: {integrity: sha512-a97e/0uCe+uSu23F4zvgvldqJtZe6jugQeEHWjTfhgOEO8+Be0t5CZNNVItQqmPyAsD8eElg0S/cP6uxvCmCSQ==} + '@volar/language-server@2.4.0-alpha.16': + resolution: {integrity: sha512-DswMBlmmXPo9fb1Dmb2qrCtxRDgQPej5jUjAoUm+1wO5k02Tk+jIvbbd/R3EzyHFTARmiRH5/bSOfRefHyuMsg==} - '@volar/snapshot-document@2.2.5': - resolution: {integrity: sha512-MTOvWVKxM7ugKO3Amffkv2pND03fe2JtfygYaputqjVFML7YxtTXj8SPnI2pODLeSwOKzDYL6Q8r5j6Y5AgUzQ==} + '@volar/language-service@2.4.0-alpha.16': + resolution: {integrity: sha512-iIRUY0EL9jp8Od7Py/GlYpCu469GFDYl7ai716pQgwipjpjEjRQiuGAD2+cSFjOVXDsMPFpJ+Dpei7aSvE/8pQ==} - '@volar/source-map@2.2.5': - resolution: {integrity: sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==} + '@volar/snapshot-document@2.4.0-alpha.16': + resolution: {integrity: sha512-X9xZeLvkmhjkrz27J6nq9JhYWV8AUT1KS9fi4s+Mo1FOh5HHUIx/QzhrwsUN/pY1z3kO+vtrl2DE6NVJRYwwbw==} - '@volar/typescript@2.2.5': - resolution: {integrity: sha512-eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==} + '@volar/source-map@2.4.0-alpha.16': + resolution: {integrity: sha512-sL9vNG7iR2hiKZor7UkD5Sufu3QCia4cbp2gX/nGRNSdaPbhOpdAoavwlBm0PrVkpiA19NZuavZoobD8krviFg==} - '@vscode/emmet-helper@2.9.2': - resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} + '@volar/typescript@2.4.0-alpha.16': + resolution: {integrity: sha512-WCx7z5O81McCQp2cC0c8081y+MgTiAR2WAiJjVL4tr4Qh4GgqK0lgn3CqAjcKizaK1R5y3wfrUqgIYr+QeFYcw==} - '@vscode/l10n@0.0.16': - resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} @@ -7662,15 +7686,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.4.30': - resolution: {integrity: sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==} - '@vue/compiler-core@3.4.31': resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} - '@vue/compiler-dom@3.4.30': - resolution: {integrity: sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==} - '@vue/compiler-dom@3.4.31': resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} @@ -7680,16 +7698,16 @@ packages: '@vue/compiler-ssr@3.4.31': resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} - '@vue/devtools-core@7.3.5': - resolution: {integrity: sha512-uSC3IkIp6MtyJYSh5xzY99sgqlAXLq+peE2KKXTi6JeRHOtMngFWFWENXi70IJ1EVGYztiFQoHhI9WZcgKBz8g==} + '@vue/devtools-core@7.3.6': + resolution: {integrity: sha512-XqFYVkyS3eySHF4bgLt+KF6yL6nYzVY/JTJHnK6KIJXIE4GIAxmn5Gxfsb4cUG9sl0FGiMqRCnM37Q+P08wr8A==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.3.5': - resolution: {integrity: sha512-wwfi10gJ1HMtjzcd8aIOnzBHlIRqsYDgcDyrKvkeyc0Gbcoe7UrkXRVHZUOtcxxoplHA0PwpT6wFg0uUCmi8Ww==} + '@vue/devtools-kit@7.3.6': + resolution: {integrity: sha512-5Ym9V3fkJenEoptqKoo+cgY5RTVwrSssFdzRsuyIgaeiskCT+rRJeQdwoo81tyrQ1mfS7Er1rYZlSzr3Y3L/ew==} - '@vue/devtools-shared@7.3.5': - resolution: {integrity: sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A==} + '@vue/devtools-shared@7.3.6': + resolution: {integrity: sha512-R/FOmdJV+hhuwcNoxp6e87RRkEeDMVhWH+nOsnHUrwjjsyeXJ2W1475Ozmw+cbZhejWQzftkHVKO28Fuo1yqCw==} '@vue/reactivity@3.1.5': resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} @@ -7711,9 +7729,6 @@ packages: '@vue/shared@3.1.5': resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==} - '@vue/shared@3.4.30': - resolution: {integrity: sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg==} - '@vue/shared@3.4.31': resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} @@ -7737,15 +7752,16 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - acorn@8.12.0: resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} engines: {node: '>=0.4.0'} hasBin: true + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -7791,10 +7807,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -7836,8 +7848,9 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} @@ -7882,6 +7895,10 @@ packages: axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + babel-plugin-jsx-dom-expressions@0.37.19: resolution: {integrity: sha512-nef2eLpWBgFggwrYwN6O3dNKn3RnlX6n4DIamNEAeHwp03kVQUaKUiLaEPnHPJHwxie1KwPelyIY9QikU03vUA==} peerDependencies: @@ -7939,9 +7956,9 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + boxen@8.0.0: + resolution: {integrity: sha512-Mzw0gi6A0zH9bVVLSuoyaPFbae4gv3luQkkt3FmVgA1g/oeKpqxFII39OuV58AiwcN2FR+rwlZhJ2mfggjEWKw==} + engines: {node: '>=18'} brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -8001,9 +8018,9 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} caniuse-lite@1.0.30001610: resolution: {integrity: sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==} @@ -8017,9 +8034,9 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -8051,8 +8068,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} @@ -8092,9 +8110,9 @@ packages: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + cli-boxes@4.0.0: + resolution: {integrity: sha512-RU4tOq6V6/HggQwAumv7c8O2tuvg0gElkQ5FEdWULl4itMhvgqy1kWXq5oy3FbKOF65Ml8J4lxWbHDZcKaWLQA==} + engines: {node: '>=18.20'} cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} @@ -8185,9 +8203,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -8266,8 +8281,8 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - cssdb@8.0.0: - resolution: {integrity: sha512-hfpm8VXc7/dhcEWpLvKDLwImOSk1sa2DxL36OEiY/4h2MGfKjPYIMZo4hnEEl+TCJr2GwcX46jF5TafRASDe9w==} + cssdb@8.1.0: + resolution: {integrity: sha512-BQN57lfS4dYt2iL0LgyrlDbefZKEtUyrO8rbzrbGrqBk6OoyNTQLF+porY9DrpDBjLo4NEvj2IJttC7vf3x+Ew==} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -8328,8 +8343,8 @@ packages: deep-diff@1.0.2: resolution: {integrity: sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==} - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-is@0.1.4: @@ -8410,10 +8425,6 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -8633,8 +8644,8 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -8645,8 +8656,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.6.0: - resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} + eslint@9.7.0: + resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -8784,6 +8795,10 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -9291,9 +9306,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -9377,7 +9389,6 @@ packages: libsql@0.3.12: resolution: {integrity: sha512-to30hj8O3DjS97wpbKN6ERZ8k66MN1IaOfFLR6oHqd25GMiPJ/ZX0VaZ7w+TsPmxcFS3p71qArj/hiedCyvXCg==} - cpu: [x64, arm64, wasm32] os: [darwin, linux, win32] lilconfig@2.1.0: @@ -9413,10 +9424,6 @@ packages: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} @@ -9458,8 +9465,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lower-case@1.1.4: resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} @@ -9723,10 +9730,6 @@ packages: micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} @@ -9811,9 +9814,6 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -9970,8 +9970,8 @@ packages: resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} hasBin: true - open-props@1.7.4: - resolution: {integrity: sha512-LfzWOJq4I79GxtpT1/CucxujndqWjAdcC2H6gSJo1TmFGzyGv1VJWJQ1BQnui0/YgTNI+AaG1pEcq5/DCGL8RQ==} + open-props@1.7.5: + resolution: {integrity: sha512-DajjLQDJgIa0i+QdB2q5M8lNLo2ICk+DbDh4TsqNsT1tAO8Zm8F7dndSkLMQkobT98lbvDMMpJWO8NT0ibjrjA==} open@10.1.0: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} @@ -10008,8 +10008,8 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} engines: {node: '>=18'} p-locate@4.1.0: @@ -10118,8 +10118,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} @@ -10153,16 +10154,13 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} - - playwright-core@1.45.0: - resolution: {integrity: sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==} + playwright-core@1.45.2: + resolution: {integrity: sha512-ha175tAWb0dTK0X4orvBIqi3jGEt701SMxMhyujxNrgd8K0Uy5wMSwwcQHtyB4om7INUkfndx02XnQ2p6dvLDw==} engines: {node: '>=18'} hasBin: true - playwright@1.45.0: - resolution: {integrity: sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==} + playwright@1.45.2: + resolution: {integrity: sha512-ReywF2t/0teRvNBpfIgh5e4wnrI/8Su8ssdo5XsQKpjxJj+jspm00jSoz9BTg91TT0c9HRjXO7LBNVrgYj9X0g==} engines: {node: '>=18'} hasBin: true @@ -10181,8 +10179,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@6.0.12: - resolution: {integrity: sha512-LGLWl6EDofJwDHMElYvt4YU9AeH+oijzOfeKhE0ebuu0aBSDeEg7CfFXMi0iiXWV1VKxn3MLGOtcBNnOiQS9Yg==} + postcss-color-functional-notation@6.0.14: + resolution: {integrity: sha512-dNUX+UH4dAozZ8uMHZ3CtCNYw8fyFAmqqdcyxMr7PEdM9jLXV19YscoYO0F25KqZYhmtWKQ+4tKrIZQrwzwg7A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10199,20 +10197,20 @@ packages: peerDependencies: postcss: ^8.4 - postcss-custom-media@10.0.7: - resolution: {integrity: sha512-o2k5nnvRZhF36pr1fGFM7a1EMTcNdKNO70Tp1g2lfpYgiwIctR7ic4acBCDHBMYRcQ8mFlaBB1QsEywqrSIaFQ==} + postcss-custom-media@10.0.8: + resolution: {integrity: sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-custom-properties@13.3.11: - resolution: {integrity: sha512-CAIgz03I/GMhVbAKIi3u3P8j5JY2KHl0TlePcfUX3OUy8t0ynnWvyJaS1D92pEAw1LjmeKWi7+aIU0s53iYdOQ==} + postcss-custom-properties@13.3.12: + resolution: {integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-custom-selectors@7.1.11: - resolution: {integrity: sha512-IoGprXOueDJL5t3ZuWR+QzPpmrQCFNhvoICsg0vDSehGwWNG0YV/Z4A+zouGRonC7NJThoV+A8A74IEMqMQUQw==} + postcss-custom-selectors@7.1.12: + resolution: {integrity: sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10223,8 +10221,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-double-position-gradients@5.0.6: - resolution: {integrity: sha512-QJ+089FKMaqDxOhhIHsJrh4IP7h4PIHNC5jZP5PMmnfUScNu8Hji2lskqpFWCvu+5sj+2EJFyzKd13sLEWOZmQ==} + postcss-double-position-gradients@5.0.7: + resolution: {integrity: sha512-1xEhjV9u1s4l3iP5lRt1zvMjI/ya8492o9l/ivcxHhkO3nOz16moC4JpMxDUGrOs4R3hX+KWT7gKoV842cwRgg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10270,8 +10268,8 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@6.0.17: - resolution: {integrity: sha512-QzjC6/3J6XKZzHGuUKhWNvlDMfWo+08dQOfQj4vWQdpZFdOxCh9QCR4w4XbV68EkdzywJie1mcm81jwFyV0+kg==} + postcss-lab-function@6.0.19: + resolution: {integrity: sha512-vwln/mgvFrotJuGV8GFhpAOu9iGf3pvTBr6dLPDmUcqVD5OsQpEFyQMAFTxSxWXGEzBj6ld4pZ/9GDfEpXvo0g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10329,8 +10327,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@9.5.15: - resolution: {integrity: sha512-z/2akOVQChOGAdzaUR4pQrDOM3xGZc5/k4THHWyREbWAfngaJATA2SkEQMkiyV5Y/EoSwE0nt0IiaIs6CMmxfQ==} + postcss-preset-env@9.6.0: + resolution: {integrity: sha512-Lxfk4RYjUdwPCYkc321QMdgtdCP34AeI94z+/8kVmqnTIlD4bMRQeGcMZgwz8BxHrzQiFXYIR5d7k/9JMs2MEA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10363,16 +10361,11 @@ packages: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} - preact-render-to-string@6.3.1: - resolution: {integrity: sha512-NQ28WrjLtWY6lKDlTxnFpKHZdpjfF+oE6V4tZ0rTrunHrtZp6Dm0oFrcJalt/5PNeqJz4j1DuZDS0Y6rCBoqDA==} + preact-render-to-string@6.5.5: + resolution: {integrity: sha512-KiMFTKNTmT/ccE79BURR/r6XRc2I2TCTZ0MpeWqHW2XnllbeghXvwGsdAfF/MzMilUcTfODtSmMxgoRFL9TM5g==} peerDependencies: preact: '>=10' - preact-ssr-prepass@1.2.1: - resolution: {integrity: sha512-bLgbUfy8nL+PZghAPpyk9MF+cmXjdwEnxYPaJBmwbzFQqzIz8dQVBqjwB60RqZ9So/vIf6BRfHCiwFGuMCyfbQ==} - peerDependencies: - preact: '>=10 || ^10.0.0-beta.0 || ^10.0.0-alpha.0' - preact@10.22.1: resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} @@ -10380,6 +10373,10 @@ packages: resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} engines: {node: '>=10'} + preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -10393,8 +10390,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -10406,13 +10403,6 @@ packages: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - pretty-format@3.8.0: - resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} - prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -10473,9 +10463,6 @@ packages: peerDependencies: react: 19.0.0-rc-fb9a90fa48-20240614 - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -10584,8 +10571,8 @@ packages: peerDependencies: typescript: '>3' - remark-smartypants@3.0.1: - resolution: {integrity: sha512-qyshfCl2eLO0i0558e79ZJsfojC5wjnYLByjt0FmjJQN6aYwcRxpoj784LZJSoWCdnA2ubh5rLNGb8Uur/wDng==} + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} engines: {node: '>=16.0.0'} remark-stringify@11.0.0: @@ -10656,8 +10643,8 @@ packages: engines: {node: '>=14'} hasBin: true - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + rollup@4.18.1: + resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10683,8 +10670,8 @@ packages: sass-formatter@0.7.9: resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sass@1.77.6: - resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} + sass@1.77.8: + resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -10787,8 +10774,8 @@ packages: shiki@0.10.1: resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} - shiki@1.10.0: - resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} + shiki@1.10.3: + resolution: {integrity: sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -10964,9 +10951,6 @@ packages: resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -11034,8 +11018,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tailwindcss@3.4.4: - resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} + tailwindcss@3.4.6: + resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==} engines: {node: '>=14.0.0'} hasBin: true @@ -11085,12 +11069,16 @@ packages: tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} tmp@0.0.33: @@ -11208,22 +11196,18 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - type-fest@3.0.0: resolution: {integrity: sha512-MINvUN5ug9u+0hJDzSZNSnuKXI8M4F5Yvb6SQZ2CYqe7SgKXKOosEcU5R7tRgo85I6eAVBbkVF7TCvB4AUK2xQ==} engines: {node: '>=14.16'} + type-fest@4.22.0: + resolution: {integrity: sha512-hxMO1k4ip1uTVGgPbs1hVpYyhz2P91A6tQyH2H9POx3U6T3MdhIcfY8L2hRu/LRmzPFdfduOS0RIDjFlP2urPw==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -11237,11 +11221,11 @@ packages: typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - typescript-auto-import-cache@0.3.2: - resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@7.14.1: - resolution: {integrity: sha512-Eo1X+Y0JgGPspcANKjeR6nIqXl4VL5ldXLc15k4m9upq+eY5fhU2IueiEZL6jmHrKH8aCfbIvM/v3IrX5Hg99w==} + typescript-eslint@7.16.1: + resolution: {integrity: sha512-889oE5qELj65q/tGeOSvlreNKhimitFwZqQ0o7PcWC7/lgRkAMknznsCsV8J8mZGTP/Z+cIbX8accf2DE33hrA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -11250,8 +11234,8 @@ packages: typescript: optional: true - typescript@5.5.2: - resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} hasBin: true @@ -11404,16 +11388,16 @@ packages: vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} vite-hot-client@0.2.3: resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + vite-node@2.0.3: + resolution: {integrity: sha512-14jzwMx7XTcMB+9BhGQyoEAmSl0eOr3nrnn+Z12WNERtOvLN+d2scbRUvyni05rT3997Bg+rZb47NyP4IQPKXg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -11437,8 +11421,8 @@ packages: '@testing-library/jest-dom': optional: true - vite-plugin-vue-devtools@7.3.5: - resolution: {integrity: sha512-6omLXTfYu0bmSmncPSbj4mdMPB3t5dAZkUyriJikahGEnvv5gynHlydDsJShHT6l/5dCkvmSesSji/2a6FfutQ==} + vite-plugin-vue-devtools@7.3.6: + resolution: {integrity: sha512-j4Cssv6DVBtMZfyVBEm/4MZy7BiL6RedEn+f9jT3zFyGZKG1vNuEpTO86XvPPbHbYdITFyrkWb7VQuWyhfSgqA==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 @@ -11456,8 +11440,8 @@ packages: vue: optional: true - vite@5.3.2: - resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + vite@5.3.4: + resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -11492,15 +11476,15 @@ packages: vite: optional: true - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + vitest@2.0.3: + resolution: {integrity: sha512-o3HRvU93q6qZK4rI2JrhKyZMMuxg/JRt30E6qeQs6ueaiz5hr1cPj+Sk2kATgQzMMqsa2DiNI0TIK++1ULx8Jw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 + '@vitest/browser': 2.0.3 + '@vitest/ui': 2.0.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -11517,34 +11501,34 @@ packages: jsdom: optional: true - volar-service-css@0.0.45: - resolution: {integrity: sha512-f+AlUI1+kESbcZSVaNJVAnK0c/9Da5StoxzPqA5/8VqUHJWNdubWNnwG5xpFVTfgh6pgTcey3UBhBfHytFaIOg==} + volar-service-css@0.0.59: + resolution: {integrity: sha512-gLNjJnECbalPvQB7qeJjhkDN8sR5M3ItbVYjnyio61aHaWptIiXm/HfDahcQ2ApwmvWidkMWWegjGq5L0BENDA==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.45: - resolution: {integrity: sha512-9nLXSDkR1vA/3fQkFEsSXAu3XovQxOpTkVG2jilQgfek/K1ZLkaA/WMhN/TtmPmQg4NxE9Ni6mA5udBQ5gVXIA==} + volar-service-emmet@0.0.59: + resolution: {integrity: sha512-6EynHcuMwMBETpK29TbZvIMmvzdVG+Tkokk9VWfZeI+SwDptk2tgdhEqiXXvIkqYNgbuu73Itp66lpH76cAU+Q==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.45: - resolution: {integrity: sha512-tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==} + volar-service-html@0.0.59: + resolution: {integrity: sha512-hEXOsYpILDlITZxnqRLV9OepVWD63GZBsyjMxszwdzlxvGZjzbGcBBinJGGJRwFIV8djdJwnt91bkdg1V5tj6Q==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-prettier@0.0.45: - resolution: {integrity: sha512-+mBS2EsDgp/kunKEBnHvhBwIQm5v2ahw4NKpKdg4sTpXy3UxqHt+Fq/wRYQ7Z8LlNVNRVfp75ThjM+w2zaZBAw==} + volar-service-prettier@0.0.59: + resolution: {integrity: sha512-FmBR4lsgFRGR3V0LnxZZal0WqdOJjuLL6mQSj4p57M15APtQwuocG/FiF+ONGFnwRXMOIBDBTCARdth+TKgL3A==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 prettier: ^2.2 || ^3.0 peerDependenciesMeta: '@volar/language-service': @@ -11552,28 +11536,31 @@ packages: prettier: optional: true - volar-service-typescript-twoslash-queries@0.0.45: - resolution: {integrity: sha512-KrPUUvKggZgV9mrDpstCzmf20irgv0ooMv+FGDzIIQUkya+d2+nSS8Mx2h9FvsYgLccUVw5jU3Rhwhd3pv/7qg==} + volar-service-typescript-twoslash-queries@0.0.59: + resolution: {integrity: sha512-skm8e6yhCIkqLwJB6S9MqT5lO9LNFuMD3dYxKpmOZs1CKbXmCZZTmLfEaD5VkJae1xdleEDZFFTHl2O5HLjOGQ==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.45: - resolution: {integrity: sha512-i/mMIIAMastJ2kgPo3qvX0Rrl7NyxhIYZ0ug/B4ambZcLPI1vzBgS2fmvyWX3jhBYHh8NmbAotFj+0Y9JtN47A==} + volar-service-typescript@0.0.59: + resolution: {integrity: sha512-VCOpfiu+lUo5lapWLB5L5vmQGtwzmNWn5MueV915eku7blpphmE+Z7hCNcL1NApn7AetXWhiblv8ZhmUx/dGIA==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - vscode-css-languageservice@6.2.13: - resolution: {integrity: sha512-2rKWXfH++Kxd9Z4QuEgd1IF7WmblWWU7DScuyf1YumoGLkY9DW6wF/OTlhOyO2rN63sWHX2dehIpKBbho4ZwvA==} + vscode-css-languageservice@6.3.0: + resolution: {integrity: sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==} vscode-html-languageservice@5.2.0: resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} + vscode-html-languageservice@5.3.0: + resolution: {integrity: sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==} + vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} engines: {node: '>=14.0.0'} @@ -11661,9 +11648,9 @@ packages: resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} engines: {node: '>=8.15'} - which-pm@2.2.0: - resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} - engines: {node: '>=8.15'} + which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} @@ -11685,9 +11672,9 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -11697,6 +11684,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -11765,8 +11756,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} zod-to-json-schema@3.23.1: @@ -11841,13 +11832,13 @@ snapshots: astro: link:packages/astro lite-youtube-embed: 0.3.2 - '@astrojs/check@0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2)': + '@astrojs/check@0.8.2(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3)': dependencies: - '@astrojs/language-server': 2.10.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + '@astrojs/language-server': 2.12.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.5.2 + typescript: 5.5.3 yargs: 17.7.2 transitivePeerDependencies: - prettier @@ -11861,28 +11852,29 @@ snapshots: '@astrojs/compiler@1.8.2': {} - '@astrojs/compiler@2.8.1': {} + '@astrojs/compiler@2.9.1': {} - '@astrojs/language-server@2.10.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2)': + '@astrojs/language-server@2.12.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3)': dependencies: - '@astrojs/compiler': 2.8.1 + '@astrojs/compiler': 2.9.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.2.5(typescript@5.5.2) - '@volar/language-core': 2.2.5 - '@volar/language-server': 2.2.5 - '@volar/language-service': 2.2.5 - '@volar/typescript': 2.2.5 + '@volar/kit': 2.4.0-alpha.16(typescript@5.5.3) + '@volar/language-core': 2.4.0-alpha.16 + '@volar/language-server': 2.4.0-alpha.16 + '@volar/language-service': 2.4.0-alpha.16 + '@volar/typescript': 2.4.0-alpha.16 fast-glob: 3.3.2 - volar-service-css: 0.0.45(@volar/language-service@2.2.5) - volar-service-emmet: 0.0.45(@volar/language-service@2.2.5) - volar-service-html: 0.0.45(@volar/language-service@2.2.5) - volar-service-prettier: 0.0.45(@volar/language-service@2.2.5)(prettier@3.3.2) - volar-service-typescript: 0.0.45(@volar/language-service@2.2.5) - volar-service-typescript-twoslash-queries: 0.0.45(@volar/language-service@2.2.5) + muggle-string: 0.4.1 + volar-service-css: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-emmet: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-prettier: 0.0.59(@volar/language-service@2.4.0-alpha.16)(prettier@3.3.3) + volar-service-typescript: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-typescript-twoslash-queries: 0.0.59(@volar/language-service@2.4.0-alpha.16) vscode-html-languageservice: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - prettier: 3.3.2 + prettier: 3.3.3 prettier-plugin-astro: 0.14.0 transitivePeerDependencies: - typescript @@ -11892,20 +11884,20 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - '@babel/compat-data@7.24.7': {} + '@babel/compat-data@7.24.9': {} - '@babel/core@7.24.7': + '@babel/core@7.24.9': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 convert-source-map: 2.0.0 debug: 4.3.5 gensync: 1.0.0-beta.2 @@ -11914,9 +11906,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.24.7': + '@babel/generator@7.24.10': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -11925,23 +11917,23 @@ snapshots: dependencies: '@babel/types': 7.24.7 - '@babel/helper-compilation-targets@7.24.7': + '@babel/helper-compilation-targets@7.24.8': dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 + '@babel/compat-data': 7.24.9 + '@babel/helper-validator-option': 7.24.8 browserslist: 4.23.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)': + '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 @@ -11983,9 +11975,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 @@ -12000,9 +11992,9 @@ snapshots: '@babel/helper-plugin-utils@7.24.7': {} - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 @@ -12011,8 +12003,8 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color @@ -12029,14 +12021,16 @@ snapshots: '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.24.7': + '@babel/helpers@7.24.8': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/highlight@7.24.7': dependencies: @@ -12045,79 +12039,79 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - '@babel/parser@7.24.7': + '@babel/parser@7.24.8': dependencies: '@babel/types': 7.24.7 - '@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.7) + '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) '@babel/types': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) transitivePeerDependencies: - supports-color @@ -12128,30 +12122,51 @@ snapshots: '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@babel/types': 7.24.7 '@babel/traverse@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 + '@babel/generator': 7.24.10 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@babel/types': 7.24.7 debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color + '@babel/traverse@7.24.8': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.24.7': dependencies: '@babel/helper-string-parser': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@babel/types@7.24.9': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@biomejs/biome@1.8.1': optionalDependencies: '@biomejs/cli-darwin-arm64': 1.8.1 @@ -12189,10 +12204,10 @@ snapshots: '@builder.io/partytown@0.10.2': {} - '@changesets/apply-release-plan@7.0.3': + '@changesets/apply-release-plan@7.0.4': dependencies: '@babel/runtime': 7.24.4 - '@changesets/config': 3.0.1 + '@changesets/config': 3.0.2 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 '@changesets/should-skip-package': 0.1.0 @@ -12206,11 +12221,11 @@ snapshots: resolve-from: 5.0.0 semver: 7.6.2 - '@changesets/assemble-release-plan@6.0.2': + '@changesets/assemble-release-plan@6.0.3': dependencies: '@babel/runtime': 7.24.4 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.0 + '@changesets/get-dependents-graph': 2.1.1 '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -12228,16 +12243,16 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.27.6': + '@changesets/cli@2.27.7': dependencies: '@babel/runtime': 7.24.4 - '@changesets/apply-release-plan': 7.0.3 - '@changesets/assemble-release-plan': 6.0.2 + '@changesets/apply-release-plan': 7.0.4 + '@changesets/assemble-release-plan': 6.0.3 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.1 + '@changesets/config': 3.0.2 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.0 - '@changesets/get-release-plan': 4.0.2 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/get-release-plan': 4.0.3 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/pre': 2.0.0 @@ -12263,21 +12278,21 @@ snapshots: spawndamnit: 2.0.0 term-size: 2.2.1 - '@changesets/config@3.0.1': + '@changesets/config@3.0.2': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.0 + '@changesets/get-dependents-graph': 2.1.1 '@changesets/logger': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - micromatch: 4.0.5 + micromatch: 4.0.7 '@changesets/errors@0.2.0': dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.0': + '@changesets/get-dependents-graph@2.1.1': dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -12292,11 +12307,11 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.2': + '@changesets/get-release-plan@4.0.3': dependencies: '@babel/runtime': 7.24.4 - '@changesets/assemble-release-plan': 6.0.2 - '@changesets/config': 3.0.1 + '@changesets/assemble-release-plan': 6.0.3 + '@changesets/config': 3.0.2 '@changesets/pre': 2.0.0 '@changesets/read': 0.6.0 '@changesets/types': 6.0.0 @@ -12311,7 +12326,7 @@ snapshots: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 - micromatch: 4.0.5 + micromatch: 4.0.7 spawndamnit: 2.0.0 '@changesets/logger@0.1.0': @@ -12374,35 +12389,35 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 '@csstools/color-helpers@4.2.1': {} - '@csstools/css-calc@1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/css-calc@1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-color-parser@2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/css-color-parser@2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: '@csstools/color-helpers': 4.2.1 - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2)': + '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-tokenizer@2.3.2': {} + '@csstools/css-tokenizer@2.4.1': {} - '@csstools/media-query-list-parser@2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 '@csstools/postcss-cascade-layers@4.0.6(postcss@8.4.39)': dependencies: @@ -12410,29 +12425,37 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - '@csstools/postcss-color-function@3.0.17(postcss@8.4.39)': + '@csstools/postcss-color-function@3.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-color-mix-function@2.0.17(postcss@8.4.39)': + '@csstools/postcss-color-mix-function@2.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-exponential-functions@1.0.8(postcss@8.4.39)': + '@csstools/postcss-content-alt-text@1.0.0(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) + '@csstools/utilities': 1.0.0(postcss@8.4.39) + postcss: 8.4.39 + + '@csstools/postcss-exponential-functions@1.0.9(postcss@8.4.39)': + dependencies: + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 '@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.39)': @@ -12441,34 +12464,34 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@1.0.10(postcss@8.4.39)': + '@csstools/postcss-gamut-mapping@1.0.11(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 - '@csstools/postcss-gradients-interpolation-method@4.0.18(postcss@8.4.39)': + '@csstools/postcss-gradients-interpolation-method@4.0.20(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-hwb-function@3.0.16(postcss@8.4.39)': + '@csstools/postcss-hwb-function@3.0.18(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-ic-unit@3.0.6(postcss@8.4.39)': + '@csstools/postcss-ic-unit@3.0.7(postcss@8.4.39)': dependencies: - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 postcss-value-parser: 4.2.0 @@ -12483,11 +12506,11 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - '@csstools/postcss-light-dark-function@1.0.6(postcss@8.4.39)': + '@csstools/postcss-light-dark-function@1.0.8(postcss@8.4.39)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -12508,25 +12531,25 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@2.0.10(postcss@8.4.39)': + '@csstools/postcss-logical-viewport-units@2.0.11(postcss@8.4.39)': dependencies: - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-tokenizer': 2.4.1 '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-media-minmax@1.1.7(postcss@8.4.39)': + '@csstools/postcss-media-minmax@1.1.8(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.39 - '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10(postcss@8.4.39)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11(postcss@8.4.39)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.39 '@csstools/postcss-nested-calc@3.0.2(postcss@8.4.39)': @@ -12540,26 +12563,26 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@3.0.17(postcss@8.4.39)': + '@csstools/postcss-oklab-function@3.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-progressive-custom-properties@3.2.0(postcss@8.4.39)': + '@csstools/postcss-progressive-custom-properties@3.3.0(postcss@8.4.39)': dependencies: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@2.0.17(postcss@8.4.39)': + '@csstools/postcss-relative-color-syntax@2.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -12568,11 +12591,11 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - '@csstools/postcss-stepped-value-functions@3.0.9(postcss@8.4.39)': + '@csstools/postcss-stepped-value-functions@3.0.10(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 '@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.4.39)': @@ -12581,11 +12604,11 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@3.0.9(postcss@8.4.39)': + '@csstools/postcss-trigonometric-functions@3.0.10(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 '@csstools/postcss-unset-value@3.0.1(postcss@8.4.39)': @@ -12701,13 +12724,15 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.7.0)': dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.11.0': {} + '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 @@ -12730,7 +12755,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.6.0': {} + '@eslint/js@9.7.0': {} '@eslint/object-schema@2.1.4': {} @@ -12830,17 +12855,6 @@ snapshots: dependencies: minipass: 7.1.2 - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.11 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -13019,7 +13033,7 @@ snapshots: unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 transitivePeerDependencies: - supports-color @@ -13113,20 +13127,20 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.45.0': + '@playwright/test@1.45.2': dependencies: - playwright: 1.45.0 + playwright: 1.45.2 '@polka/url@1.0.0-next.25': {} - '@preact/preset-vite@2.8.2(@babel/core@7.24.7)(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@preact/preset-vite@2.8.2(@babel/core@7.24.9)(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.7) - '@prefresh/vite': 2.4.5(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.9) + '@prefresh/vite': 2.4.5(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) '@rollup/pluginutils': 4.2.1 - babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.24.7) + babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.24.9) debug: 4.3.5 kolorist: 1.8.0 magic-string: 0.30.5 @@ -13134,16 +13148,16 @@ snapshots: resolve: 1.22.8 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - preact - supports-color - '@preact/signals-core@1.6.0': {} + '@preact/signals-core@1.7.0': {} - '@preact/signals@1.2.3(preact@10.22.1)': + '@preact/signals@1.3.0(preact@10.22.1)': dependencies: - '@preact/signals-core': 1.6.0 + '@preact/signals-core': 1.7.0 preact: 10.22.1 '@prefresh/babel-plugin@0.5.1': {} @@ -13154,15 +13168,15 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.5(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@prefresh/vite@2.4.5(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@prefresh/babel-plugin': 0.5.1 '@prefresh/core': 1.5.2(preact@10.22.1) '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.22.1 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color @@ -13171,92 +13185,92 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.0(rollup@4.18.0)': + '@rollup/pluginutils@5.1.0(rollup@4.18.1)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.18.0 + rollup: 4.18.1 - '@rollup/rollup-android-arm-eabi@4.18.0': + '@rollup/rollup-android-arm-eabi@4.18.1': optional: true - '@rollup/rollup-android-arm64@4.18.0': + '@rollup/rollup-android-arm64@4.18.1': optional: true - '@rollup/rollup-darwin-arm64@4.18.0': + '@rollup/rollup-darwin-arm64@4.18.1': optional: true - '@rollup/rollup-darwin-x64@4.18.0': + '@rollup/rollup-darwin-x64@4.18.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': + '@rollup/rollup-linux-arm-musleabihf@4.18.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': + '@rollup/rollup-linux-arm64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': + '@rollup/rollup-linux-arm64-musl@4.18.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': + '@rollup/rollup-linux-riscv64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': + '@rollup/rollup-linux-s390x-gnu@4.18.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': + '@rollup/rollup-linux-x64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': + '@rollup/rollup-linux-x64-musl@4.18.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': + '@rollup/rollup-win32-arm64-msvc@4.18.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': + '@rollup/rollup-win32-ia32-msvc@4.18.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': + '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true - '@shikijs/core@1.10.0': {} - - '@sinclair/typebox@0.27.8': {} + '@shikijs/core@1.10.3': + dependencies: + '@types/hast': 3.0.4 '@sindresorhus/merge-streams@2.3.0': {} - '@solidjs/router@0.13.6(solid-js@1.8.18)': + '@solidjs/router@0.14.1(solid-js@1.8.18)': dependencies: solid-js: 1.8.18 - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)))(svelte@4.2.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)))(svelte@4.2.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) debug: 4.3.5 svelte: 4.2.18 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)))(svelte@4.2.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)))(svelte@4.2.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) debug: 4.3.5 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.10 svelte: 4.2.18 svelte-hmr: 0.16.0(svelte@4.2.18) - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vitefu: 0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vitefu: 0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) transitivePeerDependencies: - supports-color @@ -13279,7 +13293,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@babel/types': 7.24.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -13291,7 +13305,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@babel/types': 7.24.7 '@types/babel__traverse@7.20.6': @@ -13483,7 +13497,7 @@ snapshots: dependencies: '@types/node': 18.19.31 - '@types/set-cookie-parser@2.4.9': + '@types/set-cookie-parser@2.4.10': dependencies: '@types/node': 18.19.31 @@ -13515,85 +13529,85 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.2))(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.14.1 - eslint: 9.6.0 + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/type-utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 + eslint: 9.7.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.2) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.14.1': + '@typescript-eslint/scope-manager@7.16.1': dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 - '@typescript-eslint/type-utils@7.14.1(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/type-utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5 - eslint: 9.6.0 - ts-api-utils: 1.3.0(typescript@5.5.2) + eslint: 9.7.0 + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.14.1': {} + '@typescript-eslint/types@7.16.1': {} - '@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.2)': + '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.2) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.14.1(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - eslint: 9.6.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.14.1': + '@typescript-eslint/visitor-keys@7.16.1': dependencies: - '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/types': 7.16.1 eslint-visitor-keys: 3.4.3 '@typescript/twoslash@3.1.0': @@ -13626,99 +13640,102 @@ snapshots: '@vercel/edge@1.1.1': {} - '@vercel/nft@0.27.2': + '@vercel/nft@0.27.3': dependencies: '@mapbox/node-pre-gyp': 1.0.11 '@rollup/pluginutils': 4.2.1 - acorn: 8.12.0 - acorn-import-attributes: 1.9.5(acorn@8.12.0) + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 glob: 7.2.3 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 node-gyp-build: 4.8.0 resolve-from: 5.0.0 transitivePeerDependencies: - encoding - supports-color - '@vitejs/plugin-react@4.3.1(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@vitejs/plugin-react@4.3.1(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) - '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vue: 3.4.31(typescript@5.5.2) + '@babel/core': 7.24.9 + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.9) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.9) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vue: 3.4.31(typescript@5.5.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2))': + '@vitejs/plugin-vue@5.0.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3))': + dependencies: + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vue: 3.4.31(typescript@5.5.3) + + '@vitest/expect@2.0.3': dependencies: - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vue: 3.4.31(typescript@5.5.2) + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@vitest/expect@1.6.0': + '@vitest/pretty-format@2.0.3': dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 + tinyrainbow: 1.2.0 - '@vitest/runner@1.6.0': + '@vitest/runner@2.0.3': dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 + '@vitest/utils': 2.0.3 pathe: 1.1.2 - '@vitest/snapshot@1.6.0': + '@vitest/snapshot@2.0.3': dependencies: + '@vitest/pretty-format': 2.0.3 magic-string: 0.30.10 pathe: 1.1.2 - pretty-format: 29.7.0 - '@vitest/spy@1.6.0': + '@vitest/spy@2.0.3': dependencies: - tinyspy: 2.2.1 + tinyspy: 3.0.0 - '@vitest/utils@1.6.0': + '@vitest/utils@2.0.3': dependencies: - diff-sequences: 29.6.3 + '@vitest/pretty-format': 2.0.3 estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + loupe: 3.1.1 + tinyrainbow: 1.2.0 - '@volar/kit@2.2.5(typescript@5.5.2)': + '@volar/kit@2.4.0-alpha.16(typescript@5.5.3)': dependencies: - '@volar/language-service': 2.2.5 - '@volar/typescript': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 + '@volar/typescript': 2.4.0-alpha.16 typesafe-path: 0.2.2 - typescript: 5.5.2 + typescript: 5.5.3 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-core@2.2.5': + '@volar/language-core@2.4.0-alpha.16': dependencies: - '@volar/source-map': 2.2.5 + '@volar/source-map': 2.4.0-alpha.16 - '@volar/language-server@2.2.5': + '@volar/language-server@2.4.0-alpha.16': dependencies: - '@volar/language-core': 2.2.5 - '@volar/language-service': 2.2.5 - '@volar/snapshot-document': 2.2.5 - '@volar/typescript': 2.2.5 - '@vscode/l10n': 0.0.16 + '@volar/language-core': 2.4.0-alpha.16 + '@volar/language-service': 2.4.0-alpha.16 + '@volar/snapshot-document': 2.4.0-alpha.16 + '@volar/typescript': 2.4.0-alpha.16 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -13726,28 +13743,27 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-service@2.2.5': + '@volar/language-service@2.4.0-alpha.16': dependencies: - '@volar/language-core': 2.2.5 + '@volar/language-core': 2.4.0-alpha.16 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/snapshot-document@2.2.5': + '@volar/snapshot-document@2.4.0-alpha.16': dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - '@volar/source-map@2.2.5': - dependencies: - muggle-string: 0.4.1 + '@volar/source-map@2.4.0-alpha.16': {} - '@volar/typescript@2.2.5': + '@volar/typescript@2.4.0-alpha.16': dependencies: - '@volar/language-core': 2.2.5 + '@volar/language-core': 2.4.0-alpha.16 path-browserify: 1.0.1 + vscode-uri: 3.0.8 - '@vscode/emmet-helper@2.9.2': + '@vscode/emmet-helper@2.9.3': dependencies: emmet: 2.4.7 jsonc-parser: 2.3.1 @@ -13755,60 +13771,45 @@ snapshots: vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 - '@vscode/l10n@0.0.16': {} - '@vscode/l10n@0.0.18': {} '@vue/babel-helper-vue-transform-on@1.2.2': {} - '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.9)': dependencies: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) '@babel/template': 7.24.7 '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 '@vue/babel-helper-vue-transform-on': 1.2.2 - '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.7) + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.9) camelcase: 6.3.0 html-tags: 3.3.1 svg-tags: 1.0.0 optionalDependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.7)': + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.9)': dependencies: '@babel/code-frame': 7.24.7 - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@vue/compiler-sfc': 3.4.31 - '@vue/compiler-core@3.4.30': - dependencies: - '@babel/parser': 7.24.7 - '@vue/shared': 3.4.30 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - '@vue/compiler-core@3.4.31': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@vue/shared': 3.4.31 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.30': - dependencies: - '@vue/compiler-core': 3.4.30 - '@vue/shared': 3.4.30 - '@vue/compiler-dom@3.4.31': dependencies: '@vue/compiler-core': 3.4.31 @@ -13816,7 +13817,7 @@ snapshots: '@vue/compiler-sfc@3.4.31': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@vue/compiler-core': 3.4.31 '@vue/compiler-dom': 3.4.31 '@vue/compiler-ssr': 3.4.31 @@ -13831,21 +13832,21 @@ snapshots: '@vue/compiler-dom': 3.4.31 '@vue/shared': 3.4.31 - '@vue/devtools-core@7.3.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2))': + '@vue/devtools-core@7.3.6(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3))': dependencies: - '@vue/devtools-kit': 7.3.5 - '@vue/devtools-shared': 7.3.5 + '@vue/devtools-kit': 7.3.6 + '@vue/devtools-shared': 7.3.6 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) - vue: 3.4.31(typescript@5.5.2) + vite-hot-client: 0.2.3(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) + vue: 3.4.31(typescript@5.5.3) transitivePeerDependencies: - vite - '@vue/devtools-kit@7.3.5': + '@vue/devtools-kit@7.3.6': dependencies: - '@vue/devtools-shared': 7.3.5 + '@vue/devtools-shared': 7.3.6 birpc: 0.2.17 hookable: 5.5.3 mitt: 3.0.1 @@ -13853,7 +13854,7 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 - '@vue/devtools-shared@7.3.5': + '@vue/devtools-shared@7.3.6': dependencies: rfdc: 1.4.1 @@ -13877,16 +13878,14 @@ snapshots: '@vue/shared': 3.4.31 csstype: 3.1.3 - '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.2))': + '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3))': dependencies: '@vue/compiler-ssr': 3.4.31 '@vue/shared': 3.4.31 - vue: 3.4.31(typescript@5.5.2) + vue: 3.4.31(typescript@5.5.3) '@vue/shared@3.1.5': {} - '@vue/shared@3.4.30': {} - '@vue/shared@3.4.31': {} '@webcomponents/template-shadowroot@0.2.1': {} @@ -13898,20 +13897,18 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.12.0): + acorn-import-attributes@1.9.5(acorn@8.12.1): dependencies: - acorn: 8.12.0 + acorn: 8.12.1 - acorn-jsx@5.3.2(acorn@8.12.0): + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.12.0 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.0 + acorn: 8.12.1 acorn@8.12.0: {} + acorn@8.12.1: {} + agent-base@6.0.2: dependencies: debug: 4.3.5 @@ -13962,8 +13959,6 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} any-promise@1.3.0: {} @@ -13998,14 +13993,14 @@ snapshots: array-union@2.1.0: {} - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} astring@1.8.6: {} astro-auto-import@0.4.2(astro@packages+astro): dependencies: '@types/node': 18.19.31 - acorn: 8.12.0 + acorn: 8.12.1 astro: link:packages/astro astro-embed@0.7.2(astro@packages+astro): @@ -14071,23 +14066,25 @@ snapshots: dependencies: dequal: 2.0.3 - babel-plugin-jsx-dom-expressions@0.37.19(@babel/core@7.24.7): + axobject-query@4.1.0: {} + + babel-plugin-jsx-dom-expressions@0.37.19(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) '@babel/types': 7.24.7 html-entities: 2.3.3 validate-html-nesting: 1.2.2 - babel-plugin-transform-hook-names@1.0.2(@babel/core@7.24.7): + babel-plugin-transform-hook-names@1.0.2(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 - babel-preset-solid@1.8.16(@babel/core@7.24.7): + babel-preset-solid@1.8.16(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 - babel-plugin-jsx-dom-expressions: 0.37.19(@babel/core@7.24.7) + '@babel/core': 7.24.9 + babel-plugin-jsx-dom-expressions: 0.37.19(@babel/core@7.24.9) bail@2.0.2: {} @@ -14136,16 +14133,16 @@ snapshots: boolbase@1.0.0: {} - boxen@7.1.1: + boxen@8.0.0: dependencies: ansi-align: 3.0.1 - camelcase: 7.0.1 + camelcase: 8.0.0 chalk: 5.3.0 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 + cli-boxes: 4.0.0 + string-width: 7.2.0 + type-fest: 4.22.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 brace-expansion@1.1.11: dependencies: @@ -14210,7 +14207,7 @@ snapshots: camelcase@6.3.0: {} - camelcase@7.0.1: {} + camelcase@8.0.0: {} caniuse-lite@1.0.30001610: {} @@ -14220,15 +14217,13 @@ snapshots: ccount@2.0.1: {} - chai@4.4.1: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk@2.4.2: dependencies: @@ -14255,9 +14250,7 @@ snapshots: chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} cheerio-select@2.1.0: dependencies: @@ -14310,7 +14303,7 @@ snapshots: dependencies: escape-string-regexp: 5.0.0 - cli-boxes@3.0.0: {} + cli-boxes@4.0.0: {} cli-cursor@4.0.0: dependencies: @@ -14338,7 +14331,7 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 '@types/estree': 1.0.5 - acorn: 8.12.0 + acorn: 8.12.1 estree-walker: 3.0.3 periscopic: 3.1.0 @@ -14390,8 +14383,6 @@ snapshots: concat-map@0.0.1: {} - confbox@0.1.7: {} - consola@3.2.3: {} console-control-strings@1.1.0: {} @@ -14466,7 +14457,7 @@ snapshots: css-what@6.1.0: {} - cssdb@8.0.0: {} + cssdb@8.1.0: {} cssesc@3.0.0: {} @@ -14509,9 +14500,7 @@ snapshots: deep-diff@1.0.2: {} - deep-eql@4.1.4: - dependencies: - type-detect: 4.0.8 + deep-eql@5.0.2: {} deep-is@0.1.4: {} @@ -14575,8 +14564,6 @@ snapshots: didyoumean@1.2.2: {} - diff-sequences@29.6.3: {} - diff@5.2.0: {} dir-glob@3.0.1: @@ -14713,18 +14700,18 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-plugin-regexp@2.6.0(eslint@9.6.0): + eslint-plugin-regexp@2.6.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.6.0 + eslint: 9.7.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-scope@8.0.1: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -14733,13 +14720,13 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.6.0: + eslint@9.7.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.17.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.6.0 + '@eslint/js': 9.7.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -14748,7 +14735,7 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.5 escape-string-regexp: 4.0.0 - eslint-scope: 8.0.1 + eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 espree: 10.1.0 esquery: 1.5.0 @@ -14776,14 +14763,14 @@ snapshots: espree@10.0.1: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 espree@10.1.0: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 esprima@4.0.1: {} @@ -14953,6 +14940,8 @@ snapshots: transitivePeerDependencies: - supports-color + find-up-simple@1.0.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -15185,7 +15174,7 @@ snapshots: devlop: 1.1.0 hast-util-from-parse5: 8.0.1 parse5: 7.1.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message: 4.0.2 hast-util-from-parse5@8.0.1: @@ -15195,7 +15184,7 @@ snapshots: devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 - vfile: 6.0.1 + vfile: 6.0.2 vfile-location: 5.0.2 web-namespaces: 2.0.1 @@ -15227,7 +15216,7 @@ snapshots: parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -15559,8 +15548,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@9.0.0: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -15707,11 +15694,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - local-pkg@0.5.0: - dependencies: - mlly: 1.7.1 - pkg-types: 1.1.3 - locate-character@3.0.0: {} locate-path@5.0.0: @@ -15751,7 +15733,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: + loupe@3.1.1: dependencies: get-func-name: 2.0.2 @@ -15974,7 +15956,7 @@ snapshots: trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 mdast-util-to-markdown@2.1.0: dependencies: @@ -16159,8 +16141,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -16304,11 +16286,6 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - micromatch@4.0.7: dependencies: braces: 3.0.3 @@ -16370,13 +16347,6 @@ snapshots: mkdirp@3.0.1: {} - mlly@1.7.1: - dependencies: - acorn: 8.12.0 - pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.3 - mri@1.2.0: {} mrmime@2.0.0: {} @@ -16519,7 +16489,7 @@ snapshots: dependencies: which-pm-runs: 1.1.0 - open-props@1.7.4: {} + open-props@1.7.5: {} open@10.1.0: dependencies: @@ -16572,9 +16542,9 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@5.0.0: + p-limit@6.1.0: dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 p-locate@4.1.0: dependencies: @@ -16627,7 +16597,7 @@ snapshots: nlcst-to-string: 4.0.0 unist-util-modify-children: 4.0.0 unist-util-visit-children: 3.0.0 - vfile: 6.0.1 + vfile: 6.0.2 parse-numeric-range@1.3.0: {} @@ -16676,7 +16646,7 @@ snapshots: pathe@1.1.2: {} - pathval@1.1.1: {} + pathval@2.0.0: {} perfect-debounce@1.0.0: {} @@ -16702,17 +16672,11 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.1.3: - dependencies: - confbox: 0.1.7 - mlly: 1.7.1 - pathe: 1.1.2 - - playwright-core@1.45.0: {} + playwright-core@1.45.2: {} - playwright@1.45.0: + playwright@1.45.2: dependencies: - playwright-core: 1.45.0 + playwright-core: 1.45.2 optionalDependencies: fsevents: 2.3.2 @@ -16728,12 +16692,12 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@6.0.12(postcss@8.4.39): + postcss-color-functional-notation@6.0.14(postcss@8.4.39): dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -16749,28 +16713,28 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-custom-media@10.0.7(postcss@8.4.39): + postcss-custom-media@10.0.8(postcss@8.4.39): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.39 - postcss-custom-properties@13.3.11(postcss@8.4.39): + postcss-custom-properties@13.3.12(postcss@8.4.39): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-custom-selectors@7.1.11(postcss@8.4.39): + postcss-custom-selectors@7.1.12(postcss@8.4.39): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 postcss-selector-parser: 6.1.0 @@ -16779,9 +16743,9 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - postcss-double-position-gradients@5.0.6(postcss@8.4.39): + postcss-double-position-gradients@5.0.7(postcss@8.4.39): dependencies: - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 postcss-value-parser: 4.2.0 @@ -16822,12 +16786,12 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.39 - postcss-lab-function@6.0.17(postcss@8.4.39): + postcss-lab-function@6.0.19(postcss@8.4.39): dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -16873,60 +16837,61 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-preset-env@9.5.15(postcss@8.4.39): + postcss-preset-env@9.6.0(postcss@8.4.39): dependencies: '@csstools/postcss-cascade-layers': 4.0.6(postcss@8.4.39) - '@csstools/postcss-color-function': 3.0.17(postcss@8.4.39) - '@csstools/postcss-color-mix-function': 2.0.17(postcss@8.4.39) - '@csstools/postcss-exponential-functions': 1.0.8(postcss@8.4.39) + '@csstools/postcss-color-function': 3.0.19(postcss@8.4.39) + '@csstools/postcss-color-mix-function': 2.0.19(postcss@8.4.39) + '@csstools/postcss-content-alt-text': 1.0.0(postcss@8.4.39) + '@csstools/postcss-exponential-functions': 1.0.9(postcss@8.4.39) '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.39) - '@csstools/postcss-gamut-mapping': 1.0.10(postcss@8.4.39) - '@csstools/postcss-gradients-interpolation-method': 4.0.18(postcss@8.4.39) - '@csstools/postcss-hwb-function': 3.0.16(postcss@8.4.39) - '@csstools/postcss-ic-unit': 3.0.6(postcss@8.4.39) + '@csstools/postcss-gamut-mapping': 1.0.11(postcss@8.4.39) + '@csstools/postcss-gradients-interpolation-method': 4.0.20(postcss@8.4.39) + '@csstools/postcss-hwb-function': 3.0.18(postcss@8.4.39) + '@csstools/postcss-ic-unit': 3.0.7(postcss@8.4.39) '@csstools/postcss-initial': 1.0.1(postcss@8.4.39) '@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.4.39) - '@csstools/postcss-light-dark-function': 1.0.6(postcss@8.4.39) + '@csstools/postcss-light-dark-function': 1.0.8(postcss@8.4.39) '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.39) '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.39) '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.39) '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.39) - '@csstools/postcss-logical-viewport-units': 2.0.10(postcss@8.4.39) - '@csstools/postcss-media-minmax': 1.1.7(postcss@8.4.39) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.10(postcss@8.4.39) + '@csstools/postcss-logical-viewport-units': 2.0.11(postcss@8.4.39) + '@csstools/postcss-media-minmax': 1.1.8(postcss@8.4.39) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.11(postcss@8.4.39) '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.39) '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.39) - '@csstools/postcss-oklab-function': 3.0.17(postcss@8.4.39) - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) - '@csstools/postcss-relative-color-syntax': 2.0.17(postcss@8.4.39) + '@csstools/postcss-oklab-function': 3.0.19(postcss@8.4.39) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) + '@csstools/postcss-relative-color-syntax': 2.0.19(postcss@8.4.39) '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.39) - '@csstools/postcss-stepped-value-functions': 3.0.9(postcss@8.4.39) + '@csstools/postcss-stepped-value-functions': 3.0.10(postcss@8.4.39) '@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.4.39) - '@csstools/postcss-trigonometric-functions': 3.0.9(postcss@8.4.39) + '@csstools/postcss-trigonometric-functions': 3.0.10(postcss@8.4.39) '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.39) autoprefixer: 10.4.19(postcss@8.4.39) browserslist: 4.23.1 css-blank-pseudo: 6.0.2(postcss@8.4.39) css-has-pseudo: 6.0.5(postcss@8.4.39) css-prefers-color-scheme: 9.0.1(postcss@8.4.39) - cssdb: 8.0.0 + cssdb: 8.1.0 postcss: 8.4.39 postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.39) postcss-clamp: 4.1.0(postcss@8.4.39) - postcss-color-functional-notation: 6.0.12(postcss@8.4.39) + postcss-color-functional-notation: 6.0.14(postcss@8.4.39) postcss-color-hex-alpha: 9.0.4(postcss@8.4.39) postcss-color-rebeccapurple: 9.0.3(postcss@8.4.39) - postcss-custom-media: 10.0.7(postcss@8.4.39) - postcss-custom-properties: 13.3.11(postcss@8.4.39) - postcss-custom-selectors: 7.1.11(postcss@8.4.39) + postcss-custom-media: 10.0.8(postcss@8.4.39) + postcss-custom-properties: 13.3.12(postcss@8.4.39) + postcss-custom-selectors: 7.1.12(postcss@8.4.39) postcss-dir-pseudo-class: 8.0.1(postcss@8.4.39) - postcss-double-position-gradients: 5.0.6(postcss@8.4.39) + postcss-double-position-gradients: 5.0.7(postcss@8.4.39) postcss-focus-visible: 9.0.1(postcss@8.4.39) postcss-focus-within: 8.0.1(postcss@8.4.39) postcss-font-variant: 5.0.0(postcss@8.4.39) postcss-gap-properties: 5.0.1(postcss@8.4.39) postcss-image-set-function: 6.0.3(postcss@8.4.39) - postcss-lab-function: 6.0.17(postcss@8.4.39) + postcss-lab-function: 6.0.19(postcss@8.4.39) postcss-logical: 7.0.1(postcss@8.4.39) postcss-nesting: 12.1.5(postcss@8.4.39) postcss-opacity-percentage: 2.0.0(postcss@8.4.39) @@ -16964,12 +16929,7 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - preact-render-to-string@6.3.1(preact@10.22.1): - dependencies: - preact: 10.22.1 - pretty-format: 3.8.0 - - preact-ssr-prepass@1.2.1(preact@10.22.1): + preact-render-to-string@6.5.5(preact@10.22.1): dependencies: preact: 10.22.1 @@ -16982,30 +16942,28 @@ snapshots: path-exists: 4.0.0 which-pm: 2.0.0 + preferred-pm@4.0.0: + dependencies: + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 + prelude-ls@1.2.1: {} prettier-plugin-astro@0.14.0: dependencies: '@astrojs/compiler': 1.8.2 - prettier: 3.3.2 + prettier: 3.3.3 sass-formatter: 0.7.9 prettier@2.8.8: {} - prettier@3.3.2: {} + prettier@3.3.3: {} pretty-bytes@5.6.0: {} pretty-bytes@6.1.1: {} - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - - pretty-format@3.8.0: {} - prismjs@1.29.0: {} progress@2.0.3: {} @@ -17058,8 +17016,6 @@ snapshots: react: 19.0.0-rc-fb9a90fa48-20240614 scheduler: 0.25.0-rc-fb9a90fa48-20240614 - react-is@18.3.1: {} - react-refresh@0.14.2: {} react@18.3.1: @@ -17135,7 +17091,7 @@ snapshots: hast-util-from-html: 2.0.1 unified: 11.0.5 - rehype-pretty-code@0.13.2(shiki@1.10.0): + rehype-pretty-code@0.13.2(shiki@1.10.3): dependencies: '@types/hast': 3.0.4 hast-util-to-string: 3.0.0 @@ -17144,13 +17100,13 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.0.0 optionalDependencies: - shiki: 1.10.0 + shiki: 1.10.3 rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.2 - vfile: 6.0.1 + vfile: 6.0.2 rehype-slug@6.0.0: dependencies: @@ -17227,9 +17183,9 @@ snapshots: '@types/mdast': 4.0.4 mdast-util-to-hast: 13.1.0 unified: 11.0.5 - vfile: 6.0.1 + vfile: 6.0.2 - remark-shiki-twoslash@3.1.3(typescript@5.5.2): + remark-shiki-twoslash@3.1.3(typescript@5.5.3): dependencies: '@types/unist': 2.0.10 '@typescript/twoslash': 3.1.0 @@ -17237,14 +17193,14 @@ snapshots: fenceparser: 1.1.1 regenerator-runtime: 0.13.11 shiki: 0.10.1 - shiki-twoslash: 3.1.2(typescript@5.5.2) + shiki-twoslash: 3.1.2(typescript@5.5.3) tslib: 2.1.0 - typescript: 5.5.2 + typescript: 5.5.3 unist-util-visit: 2.0.3 transitivePeerDependencies: - supports-color - remark-smartypants@3.0.1: + remark-smartypants@3.0.2: dependencies: retext: 9.0.0 retext-smartypants: 6.1.0 @@ -17324,26 +17280,26 @@ snapshots: dependencies: glob: 10.3.12 - rollup@4.18.0: + rollup@4.18.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.18.1 + '@rollup/rollup-android-arm64': 4.18.1 + '@rollup/rollup-darwin-arm64': 4.18.1 + '@rollup/rollup-darwin-x64': 4.18.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 + '@rollup/rollup-linux-arm-musleabihf': 4.18.1 + '@rollup/rollup-linux-arm64-gnu': 4.18.1 + '@rollup/rollup-linux-arm64-musl': 4.18.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 + '@rollup/rollup-linux-riscv64-gnu': 4.18.1 + '@rollup/rollup-linux-s390x-gnu': 4.18.1 + '@rollup/rollup-linux-x64-gnu': 4.18.1 + '@rollup/rollup-linux-x64-musl': 4.18.1 + '@rollup/rollup-win32-arm64-msvc': 4.18.1 + '@rollup/rollup-win32-ia32-msvc': 4.18.1 + '@rollup/rollup-win32-x64-msvc': 4.18.1 fsevents: 2.3.3 rrweb-cssom@0.6.0: {} @@ -17364,7 +17320,7 @@ snapshots: dependencies: suf-log: 2.5.3 - sass@1.77.6: + sass@1.77.8: dependencies: chokidar: 3.6.0 immutable: 4.3.5 @@ -17489,13 +17445,13 @@ snapshots: shebang-regex@3.0.0: {} - shiki-twoslash@3.1.2(typescript@5.5.2): + shiki-twoslash@3.1.2(typescript@5.5.3): dependencies: '@typescript/twoslash': 3.1.0 '@typescript/vfs': 1.3.4 fenceparser: 1.1.1 shiki: 0.10.1 - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color @@ -17505,9 +17461,10 @@ snapshots: vscode-oniguruma: 1.7.0 vscode-textmate: 5.2.0 - shiki@1.10.0: + shiki@1.10.3: dependencies: - '@shikijs/core': 1.10.0 + '@shikijs/core': 1.10.3 + '@types/hast': 3.0.4 side-channel@1.0.6: dependencies: @@ -17573,7 +17530,7 @@ snapshots: solid-refresh@0.6.3(solid-js@1.8.18): dependencies: - '@babel/generator': 7.24.7 + '@babel/generator': 7.24.10 '@babel/helper-module-imports': 7.24.7 '@babel/types': 7.24.7 solid-js: 1.8.18 @@ -17666,10 +17623,6 @@ snapshots: strip-json-comments@5.0.1: {} - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - strnum@1.0.5: {} style-to-object@0.4.4: @@ -17721,12 +17674,12 @@ snapshots: dependencies: svelte: 4.2.18 - svelte2tsx@0.7.13(svelte@4.2.18)(typescript@5.5.2): + svelte2tsx@0.7.13(svelte@4.2.18)(typescript@5.5.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 svelte: 4.2.18 - typescript: 5.5.2 + typescript: 5.5.3 svelte@4.2.18: dependencies: @@ -17759,7 +17712,7 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@3.4.4: + tailwindcss@3.4.6: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -17771,10 +17724,10 @@ snapshots: is-glob: 4.0.3 jiti: 1.21.0 lilconfig: 2.1.0 - micromatch: 4.0.5 + micromatch: 4.0.7 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.39 postcss-import: 15.1.0(postcss@8.4.39) postcss-js: 4.0.1(postcss@8.4.39) @@ -17836,9 +17789,11 @@ snapshots: tinybench@2.8.0: {} - tinypool@0.8.4: {} + tinypool@1.0.0: {} - tinyspy@2.2.1: {} + tinyrainbow@1.2.0: {} + + tinyspy@3.0.0: {} tmp@0.0.33: dependencies: @@ -17875,9 +17830,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.5.2): + ts-api-utils@1.3.0(typescript@5.5.3): dependencies: - typescript: 5.5.2 + typescript: 5.5.3 ts-interface-checker@0.1.13: {} @@ -17886,9 +17841,9 @@ snapshots: '@ts-morph/common': 0.20.0 code-block-writer: 12.0.0 - tsconfck@3.1.1(typescript@5.5.2): + tsconfck@3.1.1(typescript@5.5.3): optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 tsconfig-resolver@3.0.1: dependencies: @@ -17941,14 +17896,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@1.4.0: {} - type-fest@2.19.0: {} - type-fest@3.0.0: {} + type-fest@4.22.0: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -17964,22 +17917,22 @@ snapshots: typesafe-path@0.2.2: {} - typescript-auto-import-cache@0.3.2: + typescript-auto-import-cache@0.3.3: dependencies: semver: 7.6.2 - typescript-eslint@7.14.1(eslint@9.6.0)(typescript@5.5.2): + typescript-eslint@7.16.1(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.2))(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - eslint: 9.6.0 + '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - typescript@5.5.2: {} + typescript@5.5.3: {} ufo@1.5.3: {} @@ -18003,7 +17956,7 @@ snapshots: extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 - vfile: 6.0.1 + vfile: 6.0.2 unified@11.0.5: dependencies: @@ -18013,7 +17966,7 @@ snapshots: extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 - vfile: 6.0.1 + vfile: 6.0.2 unist-util-find-after@5.0.0: dependencies: @@ -18139,30 +18092,30 @@ snapshots: vfile-location@5.0.2: dependencies: '@types/unist': 3.0.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - vfile@6.0.1: + vfile@6.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-hot-client@0.2.3(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) - vite-node@1.6.0(@types/node@20.12.7)(sass@1.77.6): + vite-node@2.0.3(@types/node@20.12.7)(sass@1.77.8): dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + tinyrainbow: 1.2.0 + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - '@types/node' - less @@ -18173,107 +18126,106 @@ snapshots: - supports-color - terser - vite-plugin-inspect@0.8.4(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-plugin-inspect@0.8.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: '@antfu/utils': 0.7.8 - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) debug: 4.3.5 error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 open: 10.1.0 perfect-debounce: 1.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.10.2(solid-js@1.8.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-plugin-solid@2.10.2(solid-js@1.8.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.16(@babel/core@7.24.7) + babel-preset-solid: 1.8.16(@babel/core@7.24.9) merge-anything: 5.1.7 solid-js: 1.8.18 solid-refresh: 0.6.3(solid-js@1.8.18) - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vitefu: 0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vitefu: 0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.3.5(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)): + vite-plugin-vue-devtools@7.3.6(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)): dependencies: - '@vue/devtools-core': 7.3.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) - '@vue/devtools-kit': 7.3.5 - '@vue/devtools-shared': 7.3.5 + '@vue/devtools-core': 7.3.6(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) + '@vue/devtools-kit': 7.3.6 + '@vue/devtools-shared': 7.3.6 execa: 8.0.1 sirv: 2.0.4 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vite-plugin-inspect: 0.8.4(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) - vite-plugin-vue-inspector: 5.1.2(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vite-plugin-inspect: 0.8.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) + vite-plugin-vue-inspector: 5.1.2(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.1.2(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-plugin-vue-inspector@5.1.2(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.7) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) - '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - '@vue/compiler-dom': 3.4.30 + '@babel/core': 7.24.9 + '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.9) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.9) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.9) + '@vue/compiler-dom': 3.4.31 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color - vite-svg-loader@5.1.0(vue@3.4.31(typescript@5.5.2)): + vite-svg-loader@5.1.0(vue@3.4.31(typescript@5.5.3)): dependencies: svgo: 3.2.0 optionalDependencies: - vue: 3.4.31(typescript@5.5.2) + vue: 3.4.31(typescript@5.5.3) - vite@5.3.2(@types/node@20.12.7)(sass@1.77.6): + vite@5.3.4(@types/node@20.12.7)(sass@1.77.8): dependencies: esbuild: 0.21.5 postcss: 8.4.39 - rollup: 4.18.0 + rollup: 4.18.1 optionalDependencies: '@types/node': 20.12.7 fsevents: 2.3.3 - sass: 1.77.6 + sass: 1.77.8 - vitefu@0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vitefu@0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): optionalDependencies: - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) - vitest@1.6.0(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.6): + vitest@2.0.3(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.8): dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.3 - chai: 4.4.1 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.3 + '@vitest/pretty-format': 2.0.3 + '@vitest/runner': 2.0.3 + '@vitest/snapshot': 2.0.3 + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 + chai: 5.1.1 debug: 4.3.5 execa: 8.0.1 - local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 - picocolors: 1.0.1 std-env: 3.7.0 - strip-literal: 2.1.0 tinybench: 2.8.0 - tinypool: 0.8.4 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vite-node: 1.6.0(@types/node@20.12.7)(sass@1.77.6) + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vite-node: 2.0.3(@types/node@20.12.7)(sass@1.77.8) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.12.7 @@ -18287,52 +18239,56 @@ snapshots: - supports-color - terser - volar-service-css@0.0.45(@volar/language-service@2.2.5): + volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: - vscode-css-languageservice: 6.2.13 + vscode-css-languageservice: 6.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-emmet@0.0.45(@volar/language-service@2.2.5): + volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 - '@vscode/emmet-helper': 2.9.2 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-html@0.0.45(@volar/language-service@2.2.5): + volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: - vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' + vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-prettier@0.0.45(@volar/language-service@2.2.5)(prettier@3.3.2): + volar-service-prettier@0.0.59(@volar/language-service@2.4.0-alpha.16)(prettier@3.3.3): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 - prettier: 3.3.2 + '@volar/language-service': 2.4.0-alpha.16 + prettier: 3.3.3 - volar-service-typescript-twoslash-queries@0.0.45(@volar/language-service@2.2.5): + volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.16): + dependencies: + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-typescript@0.0.45(@volar/language-service@2.2.5): + volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: path-browserify: 1.0.1 semver: 7.6.2 - typescript-auto-import-cache: 0.3.2 + typescript-auto-import-cache: 0.3.3 vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - vscode-css-languageservice@6.2.13: + vscode-css-languageservice@6.3.0: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 @@ -18346,6 +18302,13 @@ snapshots: vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 + vscode-html-languageservice@5.3.0: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + vscode-jsonrpc@8.2.0: {} vscode-languageserver-protocol@3.17.5: @@ -18371,15 +18334,15 @@ snapshots: vscode-uri@3.0.8: {} - vue@3.4.31(typescript@5.5.2): + vue@3.4.31(typescript@5.5.3): dependencies: '@vue/compiler-dom': 3.4.31 '@vue/compiler-sfc': 3.4.31 '@vue/runtime-dom': 3.4.31 - '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.2)) + '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.3)) '@vue/shared': 3.4.31 optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 w3c-xmlserializer@5.0.0: dependencies: @@ -18420,10 +18383,9 @@ snapshots: load-yaml-file: 0.2.0 path-exists: 4.0.0 - which-pm@2.2.0: + which-pm@3.0.0: dependencies: load-yaml-file: 0.2.0 - path-exists: 4.0.0 which@1.3.1: dependencies: @@ -18444,9 +18406,9 @@ snapshots: dependencies: string-width: 4.2.3 - widest-line@4.0.1: + widest-line@5.0.0: dependencies: - string-width: 5.1.2 + string-width: 7.2.0 wrap-ansi@7.0.0: dependencies: @@ -18460,6 +18422,12 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} ws@8.16.0: {} @@ -18503,15 +18471,15 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} + yocto-queue@1.1.1: {} zod-to-json-schema@3.23.1(zod@3.23.8): dependencies: zod: 3.23.8 - zod-to-ts@1.2.0(typescript@5.5.2)(zod@3.23.8): + zod-to-ts@1.2.0(typescript@5.5.3)(zod@3.23.8): dependencies: - typescript: 5.5.2 + typescript: 5.5.3 zod: 3.23.8 zod@3.23.8: {} diff --git a/scripts/package.json b/scripts/package.json index 61b480b0a44b..dd6807936b13 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -12,7 +12,7 @@ "esbuild": "^0.21.5", "globby": "^14.0.2", "kleur": "^4.1.5", - "p-limit": "^5.0.0", + "p-limit": "^6.1.0", "svelte": "^4.2.18", "tar": "^7.4.0" },