From c48916cc4e6f7c31e3563d04b68a8698d8775b65 Mon Sep 17 00:00:00 2001 From: Michael Stramel Date: Tue, 19 Nov 2024 08:51:37 -0800 Subject: [PATCH] feat(astro): add Built-in SVG component support (#12067) Co-authored-by: Sarah Rainsberger Co-authored-by: Emanuele Stoppa --- .changeset/blue-socks-doubt.md | 30 + packages/astro/client.d.ts | 25 +- packages/astro/package.json | 2 + packages/astro/src/assets/runtime.ts | 102 + packages/astro/src/assets/services/service.ts | 4 +- packages/astro/src/assets/utils/imageKind.ts | 2 +- packages/astro/src/assets/utils/index.ts | 1 + .../astro/src/assets/utils/node/emitAsset.ts | 12 +- packages/astro/src/assets/utils/svg.ts | 27 + .../astro/src/assets/vite-plugin-assets.ts | 9 +- packages/astro/src/core/config/schema.ts | 21 + packages/astro/src/types/public/config.ts | 60 +- packages/astro/test/core-image-svg.test.js | 406 ++++ .../fixtures/core-image-svg/astro.config.mjs | 9 + .../test/fixtures/core-image-svg/package.json | 12 + .../src/assets/alpine-multi-color.svg | 10 + .../core-image-svg/src/assets/astro.svg | 4 + .../src/assets/chevron-right.svg | 3 + .../core-image-svg/src/assets/github.svg | 6 + .../core-image-svg/src/assets/penguin.svg | 1 + .../core-image-svg/src/assets/plus.svg | 3 + .../core-image-svg/src/content/blog/basic.mdx | 7 + .../core-image-svg/src/content/blog/props.mdx | 14 + .../src/content/blog/sprite.mdx | 8 + .../core-image-svg/src/content/config.ts | 10 + .../src/pages/blog/[...slug].astro | 22 + .../core-image-svg/src/pages/index.astro | 27 + .../core-image-svg/src/pages/inline.astro | 25 + .../core-image-svg/src/pages/multiple.astro | 27 + .../core-image-svg/src/pages/props.astro | 16 + .../core-image-svg/src/pages/size.astro | 35 + .../core-image-svg/src/pages/strip.astro | 13 + .../core-image-svg/src/pages/title.astro | 13 + .../fixtures/core-image-svg/tsconfig.json | 11 + pnpm-lock.yaml | 1868 +++++++++++------ 35 files changed, 2144 insertions(+), 701 deletions(-) create mode 100644 .changeset/blue-socks-doubt.md create mode 100644 packages/astro/src/assets/runtime.ts create mode 100644 packages/astro/src/assets/utils/svg.ts create mode 100644 packages/astro/test/core-image-svg.test.js create mode 100644 packages/astro/test/fixtures/core-image-svg/astro.config.mjs create mode 100644 packages/astro/test/fixtures/core-image-svg/package.json create mode 100644 packages/astro/test/fixtures/core-image-svg/src/assets/alpine-multi-color.svg create mode 100644 packages/astro/test/fixtures/core-image-svg/src/assets/astro.svg create mode 100644 packages/astro/test/fixtures/core-image-svg/src/assets/chevron-right.svg create mode 100644 packages/astro/test/fixtures/core-image-svg/src/assets/github.svg create mode 100644 packages/astro/test/fixtures/core-image-svg/src/assets/penguin.svg create mode 100644 packages/astro/test/fixtures/core-image-svg/src/assets/plus.svg create mode 100644 packages/astro/test/fixtures/core-image-svg/src/content/blog/basic.mdx create mode 100644 packages/astro/test/fixtures/core-image-svg/src/content/blog/props.mdx create mode 100644 packages/astro/test/fixtures/core-image-svg/src/content/blog/sprite.mdx create mode 100644 packages/astro/test/fixtures/core-image-svg/src/content/config.ts create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/blog/[...slug].astro create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/index.astro create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/inline.astro create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/multiple.astro create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/props.astro create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/size.astro create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/strip.astro create mode 100644 packages/astro/test/fixtures/core-image-svg/src/pages/title.astro create mode 100644 packages/astro/test/fixtures/core-image-svg/tsconfig.json diff --git a/.changeset/blue-socks-doubt.md b/.changeset/blue-socks-doubt.md new file mode 100644 index 0000000000..638e22e080 --- /dev/null +++ b/.changeset/blue-socks-doubt.md @@ -0,0 +1,30 @@ +--- +'astro': minor +--- + +Adds experimental support for built-in SVG components. + + +This feature allows you to import SVG files directly into your Astro project as components. By default, Astro will inline the SVG content into your HTML output. + +To enable this feature, set `experimental.svg` to `true` in your Astro config: + +```js +{ + experimental: { + svg: true, + }, +} +``` + +To use this feature, import an SVG file in your Astro project, passing any common SVG attributes to the imported component. Astro also provides a `size` attribute to set equal `height` and `width` properties: + +```astro +--- +import Logo from './path/to/svg/file.svg'; +--- + + +``` + +For a complete overview, and to give feedback on this experimental API, see the [Feature RFC](https://github.com/withastro/roadmap/pull/1035). diff --git a/packages/astro/client.d.ts b/packages/astro/client.d.ts index a2e4cf0eb9..f9badff245 100644 --- a/packages/astro/client.d.ts +++ b/packages/astro/client.d.ts @@ -103,14 +103,31 @@ declare module '*.webp' { const metadata: ImageMetadata; export default metadata; } -declare module '*.svg' { - const metadata: ImageMetadata; - export default metadata; -} declare module '*.avif' { const metadata: ImageMetadata; export default metadata; } +declare module '*.svg' { + type Props = { + /** + * Accesible, short-text description + * + * {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title|MDN Reference} + */ + title?: string; + /** + * Shorthand for setting the `height` and `width` properties + */ + size?: number | string; + /** + * Override the default rendering mode for SVGs + */ + mode?: import('./dist/assets/utils/svg.js').SvgRenderMode + } & astroHTML.JSX.SVGAttributes + + const Component: ((_props: Props) => any) & ImageMetadata; + export default Component; +} declare module 'astro:transitions' { type TransitionModule = typeof import('./dist/virtual-modules/transitions.js'); diff --git a/packages/astro/package.json b/packages/astro/package.json index d29b01932b..e0cf3eef4c 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -59,6 +59,7 @@ "./toolbar": "./dist/toolbar/index.js", "./actions/runtime/*": "./dist/actions/runtime/*", "./assets": "./dist/assets/index.js", + "./assets/runtime": "./dist/assets/runtime.js", "./assets/utils": "./dist/assets/utils/index.js", "./assets/utils/inferRemoteSize.js": "./dist/assets/utils/remoteProbe.js", "./assets/endpoint/*": "./dist/assets/endpoint/*.js", @@ -163,6 +164,7 @@ "shiki": "^1.22.2", "tinyexec": "^0.3.1", "tsconfck": "^3.1.4", + "ultrahtml": "^1.5.3", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", "vite": "6.0.0-beta.6", diff --git a/packages/astro/src/assets/runtime.ts b/packages/astro/src/assets/runtime.ts new file mode 100644 index 0000000000..e48a7139f4 --- /dev/null +++ b/packages/astro/src/assets/runtime.ts @@ -0,0 +1,102 @@ +import { + createComponent, + render, + spreadAttributes, + unescapeHTML, +} from '../runtime/server/index.js'; +import type { SSRResult } from '../types/public/index.js'; +import type { ImageMetadata } from './types.js'; + +export interface SvgComponentProps { + meta: ImageMetadata; + attributes: Record; + children: string; +} + +/** + * Make sure these IDs are kept on the module-level so they're incremented on a per-page basis + */ +const ids = new WeakMap(); +let counter = 0; + +export function createSvgComponent({ meta, attributes, children }: SvgComponentProps) { + const rendered = new WeakSet(); + const Component = createComponent((result, props) => { + let id; + if (ids.has(result)) { + id = ids.get(result)!; + } else { + counter += 1; + ids.set(result, counter); + id = counter; + } + id = `a:${id}`; + + const { + title: titleProp, + viewBox, + mode, + ...normalizedProps + } = normalizeProps(attributes, props); + const title = titleProp ? unescapeHTML(`${titleProp}`) : ''; + + if (mode === 'sprite') { + // On the first render, include the symbol definition + let symbol: any = ''; + if (!rendered.has(result.response)) { + // We only need the viewBox on the symbol definition, we can drop it everywhere else + symbol = unescapeHTML(`${children}`); + rendered.add(result.response); + } + + return render`${title}${symbol}`; + } + + // Default to inline mode + return render`${title}${unescapeHTML(children)}`; + }); + + if (import.meta.env.DEV) { + // Prevent revealing that this is a component + makeNonEnumerable(Component); + + // Maintaining the current `console.log` output for SVG imports + Object.defineProperty(Component, Symbol.for('nodejs.util.inspect.custom'), { + value: (_: any, opts: any, inspect: any) => inspect(meta, opts), + }); + } + + // Attaching the metadata to the component to maintain current functionality + return Object.assign(Component, meta); +} + +type SvgAttributes = Record; + +/** + * Some attributes required for `image/svg+xml` are irrelevant when inlined in a `text/html` document. We can save a few bytes by dropping them. + */ +const ATTRS_TO_DROP = ['xmlns', 'xmlns:xlink', 'version']; +const DEFAULT_ATTRS: SvgAttributes = { role: 'img' }; + +export function dropAttributes(attributes: SvgAttributes) { + for (const attr of ATTRS_TO_DROP) { + delete attributes[attr]; + } + + return attributes; +} + +function normalizeProps(attributes: SvgAttributes, { size, ...props }: SvgAttributes) { + if (size !== undefined && props.width === undefined && props.height === undefined) { + props.height = size; + props.width = size; + } + + return dropAttributes({ ...DEFAULT_ATTRS, ...attributes, ...props }); +} + +function makeNonEnumerable(object: Record) { + for (const property in object) { + Object.defineProperty(object, property, { enumerable: false }); + } +} diff --git a/packages/astro/src/assets/services/service.ts b/packages/astro/src/assets/services/service.ts index d84ec1728e..ee3bcb587f 100644 --- a/packages/astro/src/assets/services/service.ts +++ b/packages/astro/src/assets/services/service.ts @@ -8,7 +8,7 @@ import type { ImageTransform, UnresolvedSrcSetValue, } from '../types.js'; -import { isESMImportedImage } from '../utils/imageKind.js'; +import { isESMImportedImage, isRemoteImage } from '../utils/imageKind.js'; import { isRemoteAllowed } from '../utils/remotePattern.js'; export type ImageService = LocalImageService | ExternalImageService; @@ -151,7 +151,7 @@ export const baseService: Omit = { propertiesToHash: DEFAULT_HASH_PROPS, validateOptions(options) { // `src` is missing or is `undefined`. - if (!options.src || (typeof options.src !== 'string' && typeof options.src !== 'object')) { + if (!options.src || (!isRemoteImage(options.src) && !isESMImportedImage(options.src))) { throw new AstroError({ ...AstroErrorData.ExpectedImage, message: AstroErrorData.ExpectedImage.message( diff --git a/packages/astro/src/assets/utils/imageKind.ts b/packages/astro/src/assets/utils/imageKind.ts index e3e1b3341a..87946364f0 100644 --- a/packages/astro/src/assets/utils/imageKind.ts +++ b/packages/astro/src/assets/utils/imageKind.ts @@ -1,7 +1,7 @@ import type { ImageMetadata, UnresolvedImageTransform } from '../types.js'; export function isESMImportedImage(src: ImageMetadata | string): src is ImageMetadata { - return typeof src === 'object'; + return typeof src === 'object' || (typeof src === 'function' && 'src' in src); } export function isRemoteImage(src: ImageMetadata | string): src is string { diff --git a/packages/astro/src/assets/utils/index.ts b/packages/astro/src/assets/utils/index.ts index 69e7c88dc4..98044ac9fa 100644 --- a/packages/astro/src/assets/utils/index.ts +++ b/packages/astro/src/assets/utils/index.ts @@ -13,3 +13,4 @@ export { } from './remotePattern.js'; export { hashTransform, propsToFilename } from './transformToPath.js'; export { inferRemoteSize } from './remoteProbe.js'; +export { makeSvgComponent } from './svg.js' diff --git a/packages/astro/src/assets/utils/node/emitAsset.ts b/packages/astro/src/assets/utils/node/emitAsset.ts index 42dd1681f9..79a5287f64 100644 --- a/packages/astro/src/assets/utils/node/emitAsset.ts +++ b/packages/astro/src/assets/utils/node/emitAsset.ts @@ -7,6 +7,7 @@ import type { ImageMetadata } from '../../types.js'; import { imageMetadata } from '../metadata.js'; type FileEmitter = vite.Rollup.EmitFile; +type ImageMetadataWithContents = ImageMetadata & { contents?: Buffer }; export async function emitESMImage( id: string | undefined, @@ -15,7 +16,7 @@ export async function emitESMImage( // FIX: in Astro 6, this function should not be passed in dev mode at all. // Or rethink the API so that a function that throws isn't passed through. fileEmitter?: FileEmitter, -): Promise { +): Promise { if (!id) { return undefined; } @@ -30,7 +31,7 @@ export async function emitESMImage( const fileMetadata = await imageMetadata(fileData, id); - const emittedImage: Omit = { + const emittedImage: Omit = { src: '', ...fileMetadata, }; @@ -42,6 +43,11 @@ export async function emitESMImage( value: id, }); + // Attach file data for SVGs + if (fileMetadata.format === 'svg') { + emittedImage.contents = fileData; + } + // Build let isBuild = typeof fileEmitter === 'function'; if (isBuild) { @@ -71,7 +77,7 @@ export async function emitESMImage( emittedImage.src = `/@fs` + prependForwardSlash(fileURLToNormalizedPath(url)); } - return emittedImage as ImageMetadata; + return emittedImage as ImageMetadataWithContents; } function fileURLToNormalizedPath(filePath: URL): string { diff --git a/packages/astro/src/assets/utils/svg.ts b/packages/astro/src/assets/utils/svg.ts new file mode 100644 index 0000000000..70088ba64a --- /dev/null +++ b/packages/astro/src/assets/utils/svg.ts @@ -0,0 +1,27 @@ +import { parse, renderSync } from 'ultrahtml'; +import type { ImageMetadata } from '../types.js'; +import type { SvgComponentProps } from '../runtime.js'; +import { dropAttributes } from '../runtime.js'; + +function parseSvg(contents: string) { + const root = parse(contents); + const [{ attributes, children }] = root.children; + const body = renderSync({ ...root, children }); + + return { attributes, body }; +} + +export type SvgRenderMode = 'inline' | 'sprite'; + +export function makeSvgComponent(meta: ImageMetadata, contents: Buffer | string, options?: { mode?: SvgRenderMode }) { + const file = typeof contents === 'string' ? contents : contents.toString('utf-8'); + const { attributes, body: children } = parseSvg(file); + const props: SvgComponentProps = { + meta, + attributes: dropAttributes({ mode: options?.mode, ...attributes }), + children, + }; + + return `import { createSvgComponent } from 'astro/assets/runtime'; +export default createSvgComponent(${JSON.stringify(props)})`; +} diff --git a/packages/astro/src/assets/vite-plugin-assets.ts b/packages/astro/src/assets/vite-plugin-assets.ts index 8214ce6657..7cb04c1bde 100644 --- a/packages/astro/src/assets/vite-plugin-assets.ts +++ b/packages/astro/src/assets/vite-plugin-assets.ts @@ -18,6 +18,7 @@ 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'; +import { makeSvgComponent } from './utils/svg.js'; const resolvedVirtualModuleId = '\0' + VIRTUAL_MODULE_ID; @@ -52,7 +53,7 @@ const addStaticImageFactory = ( let finalFilePath: string; let transformsForPath = globalThis.astroAsset.staticImages.get(finalOriginalPath); - let transformForHash = transformsForPath?.transforms.get(hash); + const transformForHash = transformsForPath?.transforms.get(hash); // If the same image has already been transformed with the same options, we'll reuse the final path if (transformsForPath && transformForHash) { @@ -213,6 +214,12 @@ export default function assets({ settings }: { settings: AstroSettings }): vite. }); } + if (settings.config.experimental.svg && /\.svg$/.test(id)) { + const { contents, ...metadata } = imageMetadata; + // We know that the contents are present, as we only emit this property for SVG files + return makeSvgComponent(metadata, contents!, { mode: settings.config.experimental.svg.mode }); + } + // We can only reliably determine if an image is used on the server, as we need to track its usage throughout the entire build. // Since you cannot use image optimization on the client anyway, it's safe to assume that if the user imported // an image on the client, it should be present in the final build. diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index 67228cb097..af3dd82ea4 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -96,6 +96,9 @@ export const ASTRO_CONFIG_DEFAULTS = { clientPrerender: false, contentIntellisense: false, responsiveImages: false, + svg: { + mode: 'inline', + }, }, } satisfies AstroUserConfig & { server: { open: boolean } }; @@ -534,6 +537,24 @@ export const AstroConfigSchema = z.object({ .boolean() .optional() .default(ASTRO_CONFIG_DEFAULTS.experimental.responsiveImages), + svg: z.union([ + z.boolean(), + z + .object({ + mode: z + .union([z.literal('inline'), z.literal('sprite')]) + .optional() + .default(ASTRO_CONFIG_DEFAULTS.experimental.svg.mode), + }) + ]) + .optional() + .transform((svgConfig) => { + // Handle normalization of `experimental.svg` config boolean values + if (typeof svgConfig === 'boolean') { + return svgConfig ? ASTRO_CONFIG_DEFAULTS.experimental.svg : undefined; + } + return svgConfig; + }), }) .strict( `Invalid or outdated experimental feature.\nCheck for incorrect spelling or outdated Astro version.\nSee https://docs.astro.build/en/reference/configuration-reference/#experimental-flags for a list of all current experiments.`, diff --git a/packages/astro/src/types/public/config.ts b/packages/astro/src/types/public/config.ts index 220debb3be..6af76676aa 100644 --- a/packages/astro/src/types/public/config.ts +++ b/packages/astro/src/types/public/config.ts @@ -8,6 +8,7 @@ import type { import type { UserConfig as OriginalViteUserConfig, SSROptions as ViteSSROptions } from 'vite'; import type { ImageFit, ImageLayout } from '../../assets/types.js'; import type { RemotePattern } from '../../assets/utils/remotePattern.js'; +import type { SvgRenderMode } from '../../assets/utils/svg.js'; import type { AssetsPrefix } from '../../core/app/types.js'; import type { AstroConfigType } from '../../core/config/schema.js'; import type { REDIRECT_STATUS_CODES } from '../../core/constants.js'; @@ -1769,7 +1770,7 @@ export interface ViteUserConfig extends OriginalViteUserConfig { * @name experimental.contentIntellisense * @type {boolean} * @default `false` - * @version 4.14.0 + * @version 5.x * @description * * Enables Intellisense features (e.g. code completion, quick hints) for your content collection entries in compatible editors. @@ -1906,6 +1907,63 @@ export interface ViteUserConfig extends OriginalViteUserConfig { */ responsiveImages?: boolean; + + /** + * @docs + * @name experimental.svg + * @type {boolean|object} + * @default `undefined` + * @version 5.x + * @description + * + * This feature allows you to import SVG files directly into your Astro project. By default, Astro will inline the SVG content into your HTML output. + * + * To enable this feature, set `experimental.svg` to `true` in your Astro config: + * + * ```js + * { + * experimental: { + * svg: true, + * }, + * } + * ``` + * + * To use this feature, import an SVG file in your Astro project, passing any common SVG attributes to the imported component. + * Astro also provides a `size` attribute to set equal `height` and `width` properties: + * + * ```astro + * --- + * import Logo from './path/to/svg/file.svg'; + * --- + * + * + * ``` + * + * For a complete overview, and to give feedback on this experimental API, + * see the [Feature RFC](https://github.com/withastro/roadmap/pull/1035). + */ + svg?: { + /** + * @docs + * @name experimental.svg.mode + * @type {string} + * @default 'inline' + * + * The default technique for handling imported SVG files. Astro will inline the SVG content into your HTML output if not specified. + * + * - `inline`: Astro will inline the SVG content into your HTML output. + * - `sprite`: Astro will generate a sprite sheet with all imported SVG files. + * + * ```astro + * --- + * import Logo from './path/to/svg/file.svg'; + * --- + * + * + * ``` + */ + mode?: SvgRenderMode; + }; }; } diff --git a/packages/astro/test/core-image-svg.test.js b/packages/astro/test/core-image-svg.test.js new file mode 100644 index 0000000000..d6134aaf77 --- /dev/null +++ b/packages/astro/test/core-image-svg.test.js @@ -0,0 +1,406 @@ +import assert from 'node:assert/strict'; +import { Writable } from 'node:stream'; +import { after, before, describe, it } from 'node:test'; +import * as cheerio from 'cheerio'; +import { Logger } from '../dist/core/logger/core.js'; +import { loadFixture } from './test-utils.js'; + +describe('astro:assets - SVG Components', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + + describe('dev', () => { + /** @type {import('./test-utils').DevServer} */ + let devServer; + /** @type {Array<{ type: any, level: 'error', message: string; }>} */ + let logs = []; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/core-image-svg/', + }); + + devServer = await fixture.startDevServer({ + logger: new Logger({ + level: 'error', + dest: new Writable({ + objectMode: true, + write(event, _, callback) { + logs.push(event); + callback(); + }, + }), + }), + }); + }); + + after(async () => { + await devServer.stop(); + }); + + describe('basics', () => { + let $; + before(async () => { + let res = await fixture.fetch('/'); + let html = await res.text(); + $ = cheerio.load(html, { xml: true }); + }); + it('Inlines the SVG by default', () => { + const $svgs = $('.inline svg'); + assert.equal($svgs.length, 2); + $svgs.each(function () { + assert.equal($(this).attr('role'), 'img'); + assert.equal(!!$(this).attr('mode'), false); + const $use = $(this).children('use'); + assert.equal($use.length, 0); + }) + }); + + it('Adds the tag with the definition', () => { + const $svg = $('.sprite #definition svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('role'), 'img'); + + const $symbol = $svg.children('symbol'); + assert.equal($symbol.length, 1); + assert.equal($symbol.attr('id').startsWith('a:'), true); + + const $use = $svg.children('use'); + assert.equal($use.length, 1); + assert.equal($use.attr('href').startsWith('#a:'), true); + assert.equal($use.attr('href').slice(1), $symbol.attr('id')); + }); + it('Adds the tag that uses the definition', () => { + let $svg = $('.sprite #reused svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('role'), 'img'); + + const $symbol = $svg.children('symbol'); + assert.equal($symbol.length, 0); + + const definitionId = $('#definition svg symbol').attr('id') + const $use = $svg.children('use'); + assert.equal($use.length, 1); + assert.equal($use.attr('href').startsWith('#a:'), true); + assert.equal($use.attr('href').slice(1), definitionId); + }); + }); + + describe('props', () => { + describe('size', () => { + let $; + before(async () => { + let res = await fixture.fetch('/size'); + let html = await res.text(); + $ = cheerio.load(html, { xml: true }); + }); + + it('has no height and width - no dimensions set', () => { + let $svg = $('#base svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('height'), false); + assert.equal(!!$svg.attr('width'), false); + }); + it('has height and width - no dimensions set', () => { + let $svg = $('#base-with-defaults svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('height'), '1em'); + assert.equal($svg.attr('width'), '1em'); + }); + it('has height and width - string size set', () => { + let $svg = $('#size-string svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('height'), '32'); + assert.equal($svg.attr('width'), '32'); + assert.equal(!!$svg.attr('size'), false); + }); + it('has height and width - number size set', () => { + let $svg = $('#size-number svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('height'), '48'); + assert.equal($svg.attr('width'), '48'); + assert.equal(!!$svg.attr('size'), false); + }); + it('has height and width overridden - size set', () => { + let $svg = $('#override-attrs svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('height'), '16'); + assert.equal($svg.attr('width'), '16'); + assert.equal(!!$svg.attr('size'), false); + }); + it('has unchanged width - size set', () => { + let $svg = $('#ignore-size-for-width svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('height'), '1em'); + assert.equal($svg.attr('width'), '24'); + assert.equal(!!$svg.attr('size'), false); + }); + it('has unchanged height - size set', () => { + let $svg = $('#ignore-size-for-height svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('height'), '24'); + assert.equal($svg.attr('width'), '1em'); + assert.equal(!!$svg.attr('size'), false); + }); + it('has unchanged height and with - size set', () => { + let $svg = $('#ignore-size svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('height'), '24'); + assert.equal($svg.attr('width'), '24'); + assert.equal(!!$svg.attr('size'), false); + }); + }); + describe('mode', () => { + let $; + before(async () => { + let res = await fixture.fetch('/inline'); + let html = await res.text(); + $ = cheerio.load(html, { xml: true }); + }); + + it('adds the svg into the document directly by default', () => { + let $svg = $('#default svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('viewBox'), true); + assert.equal($svg.attr('height'), '1em'); + assert.equal($svg.attr('width'), '1em'); + assert.equal($svg.attr('role'), 'img'); + assert.equal(!!$svg.attr('mode'), false); + + const $symbol = $svg.children('symbol') + assert.equal($symbol.length, 0); + const $use = $svg.children('use') + assert.equal($use.length, 0); + const $path = $svg.children('path'); + assert.equal($path.length, 1); + }) + it('adds the svg into the document directly', () => { + let $svg = $('#inline svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('viewBox'), true); + assert.equal($svg.attr('height'), '1em'); + assert.equal($svg.attr('width'), '1em'); + assert.equal($svg.attr('role'), 'img'); + assert.equal(!!$svg.attr('mode'), false); + + const $symbol = $svg.children('symbol') + assert.equal($symbol.length, 0); + const $use = $svg.children('use') + assert.equal($use.length, 0); + const $path = $svg.children('path'); + assert.equal($path.length, 1); + }); + it('adds the svg into the document and overrides the dimensions', () => { + let $svg = $('#inline-with-size svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('viewBox'), true); + assert.equal($svg.attr('height'), '24'); + assert.equal($svg.attr('width'), '24'); + assert.equal($svg.attr('role'), 'img'); + assert.equal(!!$svg.attr('mode'), false); + + const $symbol = $svg.children('symbol') + assert.equal($symbol.length, 0); + const $use = $svg.children('use') + assert.equal($use.length, 0); + const $path = $svg.children('path'); + assert.equal($path.length, 1); + }) + it('adds the svg into the document as a sprite, overridding the default', () => { + let $svg = $('#definition svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('viewBox'), false); + assert.equal($svg.attr('height'), '1em'); + assert.equal($svg.attr('width'), '1em'); + assert.equal($svg.attr('role'), 'img'); + assert.equal(!!$svg.attr('mode'), false); + + let $symbol = $svg.children('symbol') + assert.equal($symbol.length, 1); + assert.equal(!!$symbol.attr('viewBox'), true); + let $use = $svg.children('use') + assert.equal($use.length, 1); + let $path = $svg.children('path'); + assert.equal($path.length, 0); + + $svg = $('#reused svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('viewBox'), false); + assert.equal($svg.attr('height'), '1em'); + assert.equal($svg.attr('width'), '1em'); + assert.equal($svg.attr('role'), 'img'); + assert.equal(!!$svg.attr('mode'), false); + + $symbol = $svg.children('symbol') + assert.equal($symbol.length, 0); + assert.equal(!!$symbol.attr('viewBox'), false); + $use = $svg.children('use') + assert.equal($use.length, 1); + $path = $svg.children('path'); + assert.equal($path.length, 0); + }) + }); + describe('title', () => { + let $; + before(async () => { + let res = await fixture.fetch('/title'); + let html = await res.text(); + $ = cheerio.load(html, { xml: true }); + }); + + it('adds a title into the SVG', () => { + let $svg = $('#base svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('title'), false); + + const $title = $('#base svg > title'); + assert.equal($title.length, 1); + assert.equal($title.text(), 'GitHub Logo') + }); + }); + describe('strip', () => { + let $; + before(async () => { + let res = await fixture.fetch('/strip'); + let html = await res.text(); + $ = cheerio.load(html, { xml: true }); + }); + + it('removes unnecessary attributes', () => { + let $svg = $('#base svg'); + assert.equal($svg.length, 1); + assert.equal(!!$svg.attr('xmlns'), false); + assert.equal(!!$svg.attr('xmlns:xlink'), false); + assert.equal(!!$svg.attr('version'), false); + }); + }); + describe('additional props', () => { + let $; + before(async () => { + let res = await fixture.fetch('/props'); + let html = await res.text(); + $ = cheerio.load(html, { xml: true }); + }); + + it('adds the props to the svg', () => { + let $svg = $('#base svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('aria-hidden'), 'true'); + assert.equal($svg.attr('id'), 'plus'); + assert.equal($svg.attr('style'), `color:red;font-size:32px`); + assert.equal($svg.attr('class'), 'foobar'); + assert.equal($svg.attr('data-state'), 'open'); + + const $symbol = $svg.children('symbol') + assert.equal($symbol.length, 0); + const $use = $svg.children('use') + assert.equal($use.length, 0); + const $path = $svg.children('path') + assert.equal($path.length, 1); + }); + it('allows overriding the role attribute', () => { + let $svg = $('#role svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('role'), 'presentation'); + }); + }); + }); + + describe('multiple', () => { + let $; + before(async () => { + let res = await fixture.fetch('/multiple'); + let html = await res.text(); + $ = cheerio.load(html, { xml: true }); + }); + + it('adds only one definition for each svg', () => { + // First SVG + let $svg = $('.one svg'); + assert.equal($svg.length, 2); + let $symbol = $('.one svg > symbol'); + assert.equal($symbol.length, 1); + let $use = $('.one svg > use'); + assert.equal($use.length, 2); + let defId = $('.one.def svg > use').attr('id'); + let useId = $('.one.use svg > use').attr('id'); + assert.equal(defId, useId); + + // Second SVG + $svg = $('.two svg'); + assert.equal($svg.length, 2); + $symbol = $('.two svg > symbol'); + assert.equal($symbol.length, 1); + $use = $('.two svg > use'); + assert.equal($use.length, 2); + defId = $('.two.def svg > use').attr('id'); + useId = $('.two.use svg > use').attr('id'); + assert.equal(defId, useId); + + + // Third SVG + $svg = $('.three svg'); + assert.equal($svg.length, 1); + $symbol = $('.three svg > symbol'); + assert.equal($symbol.length, 1); + $use = $('.three svg > use'); + assert.equal($use.length, 1); + }); + }); + + describe('markdown', () => { + it('Adds the tag with the definition', async () => { + let res = await fixture.fetch('/blog/basic'); + let html = await res.text(); + const $ = cheerio.load(html, { xml: true }); + + const $svg = $('svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('role'), 'img'); + + const $symbol = $svg.children('symbol'); + assert.equal($symbol.length, 0); + const $use = $svg.children('use'); + assert.equal($use.length, 0); + const $path = $svg.children('path'); + assert.equal($path.length > 0, true); + }); + it('Adds the tag that uses the definition', async () => { + let res = await fixture.fetch('/blog/sprite'); + let html = await res.text(); + const $ = cheerio.load(html, { xml: true }); + + const $svg = $('svg'); + assert.equal($svg.length, 2); + $svg.each(function() { assert.equal($(this).attr('role'), 'img') }); + + const definitionId = $($svg[0]).children('symbol').attr('id') + + const $reuse = $($svg[1]); + const $symbol = $reuse.children('symbol'); + assert.equal($symbol.length, 0); + + const $use = $reuse.children('use'); + assert.equal($use.length, 1); + assert.equal($use.attr('href').startsWith('#a:'), true); + assert.equal($use.attr('href').slice(1), definitionId); + }); + it('Adds the tag that applies props', async () => { + let res = await fixture.fetch('/blog/props'); + let html = await res.text(); + const $ = cheerio.load(html, { xml: true }); + + const $svg = $('svg'); + assert.equal($svg.length, 1); + assert.equal($svg.attr('role'), 'img'); + assert.equal($svg.attr('height'), '48'); + assert.equal($svg.attr('width'), '48'); + assert.equal(!!$svg.attr('size'), false); + assert.equal($svg.attr('class'), 'icon'); + assert.equal($svg.attr('data-icon'), 'github'); + assert.equal($svg.attr('aria-description'), 'Some description'); + assert.equal($svg.children('title').text(), 'Find out more on GitHub!'); + }); + }); + }); +}); diff --git a/packages/astro/test/fixtures/core-image-svg/astro.config.mjs b/packages/astro/test/fixtures/core-image-svg/astro.config.mjs new file mode 100644 index 0000000000..e6b44a9d9e --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/astro.config.mjs @@ -0,0 +1,9 @@ +import mdx from '@astrojs/mdx'; +import { defineConfig } from 'astro/config'; + +export default defineConfig({ + integrations: [mdx()], + experimental: { + svg: {} + } +}); diff --git a/packages/astro/test/fixtures/core-image-svg/package.json b/packages/astro/test/fixtures/core-image-svg/package.json new file mode 100644 index 0000000000..675c0b41ac --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/package.json @@ -0,0 +1,12 @@ +{ + "name": "@test/core-image-svg", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*", + "@astrojs/mdx": "workspace:*" + }, + "scripts": { + "dev": "astro dev" + } +} diff --git a/packages/astro/test/fixtures/core-image-svg/src/assets/alpine-multi-color.svg b/packages/astro/test/fixtures/core-image-svg/src/assets/alpine-multi-color.svg new file mode 100644 index 0000000000..3654564da0 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/assets/alpine-multi-color.svg @@ -0,0 +1,10 @@ + + Custom Preset 4 Copy 5 + + + + + + + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/assets/astro.svg b/packages/astro/test/fixtures/core-image-svg/src/assets/astro.svg new file mode 100644 index 0000000000..d9e8024ad1 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/assets/astro.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/assets/chevron-right.svg b/packages/astro/test/fixtures/core-image-svg/src/assets/chevron-right.svg new file mode 100644 index 0000000000..3fcc67a0e5 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/assets/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/assets/github.svg b/packages/astro/test/fixtures/core-image-svg/src/assets/github.svg new file mode 100644 index 0000000000..ce45f4c95b --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/assets/github.svg @@ -0,0 +1,6 @@ + + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/assets/penguin.svg b/packages/astro/test/fixtures/core-image-svg/src/assets/penguin.svg new file mode 100644 index 0000000000..d93379b684 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/assets/penguin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/astro/test/fixtures/core-image-svg/src/assets/plus.svg b/packages/astro/test/fixtures/core-image-svg/src/assets/plus.svg new file mode 100644 index 0000000000..d0f57e4f60 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/assets/plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/content/blog/basic.mdx b/packages/astro/test/fixtures/core-image-svg/src/content/blog/basic.mdx new file mode 100644 index 0000000000..b501cdb605 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/content/blog/basic.mdx @@ -0,0 +1,7 @@ +--- +title: Basic Test +description: Check that SVG Components work +--- +import Astro from '~/assets/astro.svg'; + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/content/blog/props.mdx b/packages/astro/test/fixtures/core-image-svg/src/content/blog/props.mdx new file mode 100644 index 0000000000..6d9586a94b --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/content/blog/props.mdx @@ -0,0 +1,14 @@ +--- +title: Props Test +description: Check that SVG Components work +--- +import Github from '~/assets/github.svg'; + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/content/blog/sprite.mdx b/packages/astro/test/fixtures/core-image-svg/src/content/blog/sprite.mdx new file mode 100644 index 0000000000..9f0ddb0278 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/content/blog/sprite.mdx @@ -0,0 +1,8 @@ +--- +title: Kitchen Sink Test +description: Check that SVG Components work +--- +import Astro from '~/assets/astro.svg'; + + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/content/config.ts b/packages/astro/test/fixtures/core-image-svg/src/content/config.ts new file mode 100644 index 0000000000..fbf0a26970 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/content/config.ts @@ -0,0 +1,10 @@ +import { defineCollection, z } from 'astro:content'; + +const blog = defineCollection({ + schema: z.object({ + title: z.string(), + description: z.string().max(60, 'For SEO purposes, keep descriptions short!'), + }), +}); + +export const collections = { blog }; diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/blog/[...slug].astro b/packages/astro/test/fixtures/core-image-svg/src/pages/blog/[...slug].astro new file mode 100644 index 0000000000..e1ced40b13 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/blog/[...slug].astro @@ -0,0 +1,22 @@ +--- +import { getCollection } from 'astro:content'; + +export async function getStaticPaths() { + const blogEntries = await getCollection('blog'); + return blogEntries.map(entry => ({ + params: { slug: entry.slug }, props: { entry }, + })); +} + +const { entry } = Astro.props; +const { Content } = await entry.render(); +--- + + + {entry.data.title} + + + + + + diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/index.astro b/packages/astro/test/fixtures/core-image-svg/src/pages/index.astro new file mode 100644 index 0000000000..17125868f3 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/index.astro @@ -0,0 +1,27 @@ +--- +import AstroLogo from "~/assets/astro.svg"; +--- + + + + + + +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ + diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/inline.astro b/packages/astro/test/fixtures/core-image-svg/src/pages/inline.astro new file mode 100644 index 0000000000..1d6ef11308 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/inline.astro @@ -0,0 +1,25 @@ +--- +import ChrevronRight from '~/assets/chevron-right.svg' +--- + + + + + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/multiple.astro b/packages/astro/test/fixtures/core-image-svg/src/pages/multiple.astro new file mode 100644 index 0000000000..9fe38460c7 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/multiple.astro @@ -0,0 +1,27 @@ +--- +import AstroLogo from '~/assets/astro.svg'; +import GithubLogo from '~/assets/github.svg'; +import AlpineLogo from '~/assets/alpine-multi-color.svg'; +--- + + + + + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/props.astro b/packages/astro/test/fixtures/core-image-svg/src/pages/props.astro new file mode 100644 index 0000000000..131a52269d --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/props.astro @@ -0,0 +1,16 @@ +--- +import Plus from '~/assets/plus.svg' +--- + + + + + +
+
+
+ +
+ + diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/size.astro b/packages/astro/test/fixtures/core-image-svg/src/pages/size.astro new file mode 100644 index 0000000000..fc06b1e1de --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/size.astro @@ -0,0 +1,35 @@ +--- +import AstroLogo from '~/assets/astro.svg'; +import Plus from '~/assets/plus.svg'; +--- + + + + + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/strip.astro b/packages/astro/test/fixtures/core-image-svg/src/pages/strip.astro new file mode 100644 index 0000000000..744b9cc8e1 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/strip.astro @@ -0,0 +1,13 @@ +--- +import Alpine from '~/assets/alpine-multi-color.svg' +--- + + + + + +
+ +
+ + diff --git a/packages/astro/test/fixtures/core-image-svg/src/pages/title.astro b/packages/astro/test/fixtures/core-image-svg/src/pages/title.astro new file mode 100644 index 0000000000..eb3b5f11d6 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/src/pages/title.astro @@ -0,0 +1,13 @@ +--- +import GitHub from '~/assets/github.svg' +--- + + + + + +
+ +
+ + diff --git a/packages/astro/test/fixtures/core-image-svg/tsconfig.json b/packages/astro/test/fixtures/core-image-svg/tsconfig.json new file mode 100644 index 0000000000..923ed4e24f --- /dev/null +++ b/packages/astro/test/fixtures/core-image-svg/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "astro/tsconfigs/strict", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "~/assets/*": [ + "src/assets/*" + ] + }, + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfe8af2034..428de532b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,10 +36,10 @@ importers: version: 0.21.5 eslint: specifier: ^9.14.0 - version: 9.14.0(jiti@1.21.6) + version: 9.15.0(jiti@1.21.6) eslint-plugin-regexp: specifier: ^2.6.0 - version: 2.6.0(eslint@9.14.0(jiti@1.21.6)) + version: 2.6.0(eslint@9.15.0(jiti@1.21.6)) globby: specifier: ^14.0.2 version: 14.0.2 @@ -60,7 +60,7 @@ importers: version: 5.6.3 typescript-eslint: specifier: ^8.13.0 - version: 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + version: 8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) benchmark: dependencies: @@ -183,7 +183,7 @@ importers: version: 18.3.1(react@18.3.1) vitest: specifier: ^2.1.4 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) + version: 2.1.5(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.81.0)(yaml@2.5.1) devDependencies: '@types/react': specifier: ^18.3.12 @@ -247,7 +247,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -298,7 +298,7 @@ importers: version: link:../../packages/astro solid-js: specifier: ^1.9.2 - version: 1.9.3 + version: 1.9.2 examples/framework-svelte: dependencies: @@ -310,7 +310,7 @@ importers: version: link:../../packages/astro svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 examples/framework-vue: dependencies: @@ -364,7 +364,7 @@ importers: version: link:../../packages/astro svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 examples/starlog: dependencies: @@ -373,7 +373,7 @@ importers: version: link:../../packages/astro sass: specifier: ^1.80.6 - version: 1.80.6 + version: 1.81.0 sharp: specifier: ^0.33.3 version: 0.33.3 @@ -460,7 +460,7 @@ importers: version: link:../../packages/astro vitest: specifier: ^2.1.4 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) + version: 2.1.5(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.81.0)(yaml@2.5.1) packages/astro: dependencies: @@ -481,7 +481,7 @@ importers: version: 1.1.0 '@rollup/pluginutils': specifier: ^5.1.3 - version: 5.1.3(rollup@4.24.4) + version: 5.1.3(rollup@4.27.3) '@types/cookie': specifier: ^0.6.0 version: 0.6.0 @@ -595,13 +595,16 @@ importers: version: 7.6.3 shiki: specifier: ^1.22.2 - version: 1.22.2 + version: 1.23.1 tinyexec: specifier: ^0.3.1 version: 0.3.1 tsconfck: specifier: ^3.1.4 version: 3.1.4(typescript@5.6.3) + ultrahtml: + specifier: ^1.5.3 + version: 1.5.3 unist-util-visit: specifier: ^5.0.0 version: 5.0.0 @@ -610,10 +613,10 @@ importers: version: 6.0.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) vitefu: specifier: ^1.0.3 - version: 1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + version: 1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) which-pm: specifier: ^3.0.0 version: 3.0.0 @@ -732,10 +735,10 @@ importers: version: 0.1.2 rollup: specifier: ^4.24.4 - version: 4.24.4 + version: 4.27.3 sass: specifier: ^1.80.6 - version: 1.80.6 + version: 1.81.0 undici: specifier: ^6.20.1 version: 6.20.1 @@ -744,7 +747,7 @@ importers: version: 11.0.5 vitest: specifier: ^2.1.1 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) + version: 2.1.3(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.81.0)(yaml@2.5.1) packages/astro-prism: dependencies: @@ -912,7 +915,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -997,7 +1000,7 @@ importers: version: link:../../.. sass: specifier: ^1.80.6 - version: 1.80.6 + version: 1.81.0 packages/astro/e2e/fixtures/errors: dependencies: @@ -1030,13 +1033,13 @@ importers: version: 18.3.1(react@18.3.1) sass: specifier: ^1.80.6 - version: 1.80.6 + version: 1.81.0 solid-js: specifier: ^1.9.3 version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1048,7 +1051,7 @@ importers: version: link:../../.. sass: specifier: ^1.80.6 - version: 1.80.6 + version: 1.81.0 packages/astro/e2e/fixtures/hydration-race: dependencies: @@ -1093,7 +1096,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1149,7 +1152,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1189,7 +1192,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1229,7 +1232,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1269,7 +1272,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1309,7 +1312,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1349,7 +1352,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1545,7 +1548,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/e2e/fixtures/tailwindcss: dependencies: @@ -1611,7 +1614,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1749,7 +1752,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1770,7 +1773,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/alias-tsconfig: dependencies: @@ -1785,7 +1788,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/alias-tsconfig-baseurl-only: dependencies: @@ -1797,7 +1800,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/alias-tsconfig/deps/namespace-package: {} @@ -1922,7 +1925,7 @@ importers: version: 10.24.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -1955,7 +1958,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/astro-client-only/pkg: {} @@ -2047,7 +2050,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/astro-env: dependencies: @@ -2380,7 +2383,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -2464,7 +2467,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/component-library-shared: dependencies: @@ -2743,6 +2746,15 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/core-image-svg: + dependencies: + '@astrojs/mdx': + specifier: workspace:* + version: link:../../../../integrations/mdx + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/core-image-unconventional-settings: dependencies: astro: @@ -2776,7 +2788,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/css-import-as-inline: dependencies: @@ -3028,7 +3040,7 @@ importers: version: 10.24.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -3232,7 +3244,7 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -3420,14 +3432,14 @@ importers: version: 1.9.3 svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) devDependencies: postcss-preset-env: specifier: ^10.0.9 - version: 10.0.9(postcss@8.4.47) + version: 10.1.1(postcss@8.4.47) packages/astro/test/fixtures/preact-compat-component: dependencies: @@ -3614,7 +3626,7 @@ importers: version: link:../../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/server-islands/ssr: dependencies: @@ -3626,7 +3638,7 @@ importers: version: link:../../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/set-html: dependencies: @@ -3695,7 +3707,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/slots-vue: dependencies: @@ -4020,7 +4032,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 packages/astro/test/fixtures/tailwindcss: dependencies: @@ -4113,7 +4125,7 @@ importers: version: link:../../.. vitest: specifier: ^2.1.1 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) + version: 2.1.3(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.81.0)(yaml@2.5.1) packages/astro/test/fixtures/vue-component: dependencies: @@ -4152,7 +4164,7 @@ importers: version: link:../../.. svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -4270,7 +4282,7 @@ importers: version: 5.6.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/db/test/fixtures/basics: dependencies: @@ -4426,7 +4438,7 @@ importers: version: link:../../../scripts vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -4516,7 +4528,7 @@ importers: version: 0.18.5 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -4745,7 +4757,7 @@ importers: version: 6.0.0 rehype-pretty-code: specifier: ^0.14.0 - version: 0.14.0(shiki@1.22.2) + version: 0.14.0(shiki@1.23.1) remark-math: specifier: ^6.0.0 version: 6.0.0 @@ -4760,13 +4772,13 @@ importers: version: 9.0.0 shiki: specifier: ^1.22.2 - version: 1.22.2 + version: 1.23.1 unified: specifier: ^11.0.5 version: 11.0.5 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -4948,19 +4960,19 @@ importers: dependencies: '@babel/plugin-transform-react-jsx': specifier: ^7.25.9 - version: 7.25.9(@babel/core@7.26.0) + version: 7.25.9(@babel/core@7.25.8) '@babel/plugin-transform-react-jsx-development': specifier: ^7.25.9 - version: 7.25.9(@babel/core@7.26.0) + version: 7.25.9(@babel/core@7.25.8) '@preact/preset-vite': specifier: 2.8.2 - version: 2.8.2(@babel/core@7.26.0)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + version: 2.8.2(@babel/core@7.25.8)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) '@preact/signals': specifier: ^1.3.0 version: 1.3.0(preact@10.24.3) babel-plugin-transform-hook-names: specifier: ^1.0.2 - version: 1.0.2(@babel/core@7.26.0) + version: 1.0.2(@babel/core@7.25.8) preact-render-to-string: specifier: ^6.5.11 version: 6.5.11(preact@10.24.3) @@ -4979,7 +4991,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + version: 4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) ultrahtml: specifier: ^1.5.3 version: 1.5.3 @@ -5007,7 +5019,7 @@ importers: version: 18.3.1(react@18.3.1) vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/integrations/react/test/fixtures/react-component: dependencies: @@ -5044,7 +5056,7 @@ importers: devDependencies: '@astrojs/node': specifier: ^8.3.3 - version: 8.3.4(astro@packages+astro) + version: 8.3.3(astro@packages+astro) astro: specifier: workspace:* version: link:../../astro @@ -5095,7 +5107,7 @@ importers: dependencies: vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + version: 2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) devDependencies: astro: specifier: workspace:* @@ -5108,16 +5120,16 @@ importers: version: 1.9.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/integrations/svelte: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^4.0.0 - version: 4.0.0(svelte@5.1.16)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + version: 4.0.1(svelte@5.2.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) svelte2tsx: specifier: ^0.7.22 - version: 0.7.22(svelte@5.1.16)(typescript@5.6.3) + version: 0.7.22(svelte@5.2.3)(typescript@5.6.3) devDependencies: astro: specifier: workspace:* @@ -5127,10 +5139,10 @@ importers: version: link:../../../scripts svelte: specifier: ^5.1.16 - version: 5.1.16 + version: 5.2.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/integrations/tailwind: dependencies: @@ -5155,7 +5167,7 @@ importers: version: 3.4.14 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/integrations/tailwind/test/fixtures/basic: dependencies: @@ -5172,16 +5184,16 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.1.4 - version: 5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.1 - version: 4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + version: 4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) '@vue/compiler-sfc': specifier: ^3.5.12 version: 3.5.12 vite-plugin-vue-devtools: specifier: ^7.6.3 - version: 7.6.3(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + version: 7.6.4(rollup@4.27.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) devDependencies: astro: specifier: workspace:* @@ -5197,7 +5209,7 @@ importers: version: 0.18.5 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -5366,7 +5378,7 @@ importers: version: 3.0.2 shiki: specifier: ^1.22.2 - version: 1.22.2 + version: 1.23.1 unified: specifier: ^11.0.5 version: 11.0.5 @@ -5431,7 +5443,7 @@ importers: version: 5.6.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) packages/telemetry: dependencies: @@ -5550,8 +5562,8 @@ packages: '@assemblyscript/loader@0.19.23': resolution: {integrity: sha512-ulkCYfFbYj01ie1MDOyxv2F6SpRN1TOj7fQxbP07D6HmeR+gr2JLSmINKjga2emB+b1L2KGrFKBTc+e00p54nw==} - '@astro-community/astro-embed-baseline-status@0.1.1': - resolution: {integrity: sha512-BiTQf4EP3SjMb/U5YN984BiGoGQNfc/lsJG0PosvNjUn5Q6+GjkSs77RjW3mQXOo64+sC3A0iOgdw2rlOmmjcQ==} + '@astro-community/astro-embed-baseline-status@0.1.2': + resolution: {integrity: sha512-u+3BwXCSjBIVW29MGTbdusRhRBhqcjHyE6dgBCsUK/nZ0BohP1Nfih8dB7YltTVZxgECakKWQWoSHabDbYteyA==} peerDependencies: astro: ^4.0.0-beta || ^5.0.0-beta @@ -5606,6 +5618,11 @@ packages: prettier-plugin-astro: optional: true + '@astrojs/node@8.3.3': + resolution: {integrity: sha512-idrKhnnPSi0ABV+PCQsRQqVNwpOvVDF/+fkwcIiE8sr9J8EMvW9g/oyAt8T4X2OBJ8FUzYPL8klfCdG7r0eB5g==} + peerDependencies: + astro: ^4.2.0 + '@astrojs/node@8.3.4': resolution: {integrity: sha512-xzQs39goN7xh9np9rypGmbgZj3AmmjNxEMj9ZWz5aBERlqqFF3n8A/w/uaJeZ/bkHS60l1BXVS0tgsQt9MFqBA==} peerDependencies: @@ -5619,28 +5636,40 @@ packages: '@astrojs/yaml2ts@0.2.1': resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} - '@babel/code-frame@7.26.0': - resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.0': - resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.0': - resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} + '@babel/core@7.25.8': + resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.7': + resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.25.4': @@ -5657,12 +5686,16 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.9': resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -5671,6 +5704,10 @@ packages: resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.25.9': resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} @@ -5681,28 +5718,49 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.1': - resolution: {integrity: sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.8': + resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -5729,6 +5787,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.25.7': + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.25.9': resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} @@ -5775,14 +5839,26 @@ packages: resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.9': resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.25.9': resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} + '@babel/types@7.25.8': + resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} + engines: {node: '>=6.9.0'} + '@babel/types@7.26.0': resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} @@ -5941,15 +6017,15 @@ packages: resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} engines: {node: '>=18'} - '@csstools/css-calc@2.0.4': - resolution: {integrity: sha512-8/iCd8lH10gKNsq5detnbGWiFd6PXK2wB8wjE6fHNNhtqvshyMrIJgffwRcw6yl/gzGTH+N1i+KRhjqHxqYTmg==} + '@csstools/css-calc@2.1.0': + resolution: {integrity: sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.4 '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-color-parser@3.0.5': - resolution: {integrity: sha512-4Wo8raj9YF3PnZ5iGrAl+BSsk2MYBOEUS/X4k1HL9mInhyCVftEG02MywdvelXlwZGUF2XTQ0qj9Jd398mhqrw==} + '@csstools/css-color-parser@3.0.6': + resolution: {integrity: sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.4 @@ -5978,14 +6054,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.5': - resolution: {integrity: sha512-6dHr2NDsBMiZCPkGDi2qMfIbzV2kWV8Dh7SVb1FZGnN/r2TI4TSAkVF8rCG5L70yQZHMcQGB84yp8Zm+RGhoHA==} + '@csstools/postcss-color-function@4.0.6': + resolution: {integrity: sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.5': - resolution: {integrity: sha512-jgq0oGbit7TxWYP8y2hWWfV64xzcAgJk54PBYZ2fDrRgEDy1l5YMCrFawnn+5JETh/E1jjXPDFhFEYhwr3vA3g==} + '@csstools/postcss-color-mix-function@3.0.6': + resolution: {integrity: sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -5996,8 +6072,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.4': - resolution: {integrity: sha512-xmzFCGTkkLDs7q9vVaRGlnu8s51lRRJzHsaJ/nXmkQuyg0q7gh7rTbJ0bY5sSVet+KB7MTIxRXRUCl2tm7RODA==} + '@csstools/postcss-exponential-functions@2.0.5': + resolution: {integrity: sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6008,20 +6084,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.5': - resolution: {integrity: sha512-VQDayRhC/Mg1fuo8/4F43La5aROgvVyqtCqdNyGvRKi6L1+zXfwQ583nImi7k/gn2GNJH82Bf9mutTuT1GtXzA==} + '@csstools/postcss-gamut-mapping@2.0.6': + resolution: {integrity: sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.5': - resolution: {integrity: sha512-l3ShDdAt/szbyBh3Jz27MRFt5WPAbnVCMsU7Vs7EbBxJQNgVDrcu1APBB2nPagDJOyhI6/IahuW7nb6grWVTpA==} + '@csstools/postcss-gradients-interpolation-method@5.0.6': + resolution: {integrity: sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.5': - resolution: {integrity: sha512-bPn/SQyiiYjWkwK2ykc7O9LliMR50YfUGukd6jQI2okHzB7NxNt/IS45tS1Muk7Hhf3B9Lbmg1Ofq36tBmM92Q==} + '@csstools/postcss-hwb-function@4.0.6': + resolution: {integrity: sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6080,8 +6156,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.4': - resolution: {integrity: sha512-zgdBOCI9aKoy5GK9tb/3ve0pl7vH0HJg7rfQEWT3TZiIKh7XEWucDSTSwnwgdgtgz50UxrOfbK+C59M+u2fE2Q==} + '@csstools/postcss-media-minmax@2.0.5': + resolution: {integrity: sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6104,8 +6180,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.5': - resolution: {integrity: sha512-19bsJQFyJNSEhpaVq0Mq1E0HDXfx8qMHa/bR1MaHr1UD4DWvM2/J6YXb9OVGS7eFl92Y3c84Yggn9uFv13vsiQ==} + '@csstools/postcss-oklab-function@4.0.6': + resolution: {integrity: sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6116,8 +6192,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.5': - resolution: {integrity: sha512-5VrE4hAwv/ZpuL1Yo0ZGGFi1QPpIikp/rzz7LnpQ31ACQVRIA5/M9qZmJbRlZVsJ4bUFSQ3dq6kHSHrCt2uM6Q==} + '@csstools/postcss-random-function@1.0.1': + resolution: {integrity: sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-relative-color-syntax@3.0.6': + resolution: {integrity: sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6128,8 +6210,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.4': - resolution: {integrity: sha512-JjShuWZkmIOT8EfI7lYjl7V5qM29LNDdnnSo5O7v/InJJHfeiQjtxyAaZzKGXzpkghPrCAcgLfJ+IyqTdXo7IA==} + '@csstools/postcss-sign-functions@1.1.0': + resolution: {integrity: sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-stepped-value-functions@4.0.5': + resolution: {integrity: sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6140,8 +6228,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.4': - resolution: {integrity: sha512-nn+gWTZZlSnwbyUtGQCnvBXIx1TX+HVStvIm3221dWGQvp47bB5giMBbuAK4a/UJGBbfDQhGKEbYq++WWM1i1A==} + '@csstools/postcss-trigonometric-functions@4.0.5': + resolution: {integrity: sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6482,32 +6570,36 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.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-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.18.0': - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + '@eslint/config-array@0.19.0': + resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.7.0': - resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} + '@eslint/core@0.9.0': + resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.14.0': - resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==} + '@eslint/js@9.15.0': + resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.0': - resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fontsource/monofett@5.1.0': @@ -6910,107 +7002,107 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.24.4': - resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==} + '@rollup/rollup-android-arm-eabi@4.27.3': + resolution: {integrity: sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.24.4': - resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==} + '@rollup/rollup-android-arm64@4.27.3': + resolution: {integrity: sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.24.4': - resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==} + '@rollup/rollup-darwin-arm64@4.27.3': + resolution: {integrity: sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.4': - resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==} + '@rollup/rollup-darwin-x64@4.27.3': + resolution: {integrity: sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.24.4': - resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==} + '@rollup/rollup-freebsd-arm64@4.27.3': + resolution: {integrity: sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.24.4': - resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==} + '@rollup/rollup-freebsd-x64@4.27.3': + resolution: {integrity: sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.24.4': - resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} + '@rollup/rollup-linux-arm-gnueabihf@4.27.3': + resolution: {integrity: sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.4': - resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} + '@rollup/rollup-linux-arm-musleabihf@4.27.3': + resolution: {integrity: sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.4': - resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} + '@rollup/rollup-linux-arm64-gnu@4.27.3': + resolution: {integrity: sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.4': - resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} + '@rollup/rollup-linux-arm64-musl@4.27.3': + resolution: {integrity: sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': - resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': + resolution: {integrity: sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.4': - resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} + '@rollup/rollup-linux-riscv64-gnu@4.27.3': + resolution: {integrity: sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.4': - resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} + '@rollup/rollup-linux-s390x-gnu@4.27.3': + resolution: {integrity: sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.4': - resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} + '@rollup/rollup-linux-x64-gnu@4.27.3': + resolution: {integrity: sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.4': - resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} + '@rollup/rollup-linux-x64-musl@4.27.3': + resolution: {integrity: sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.24.4': - resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} + '@rollup/rollup-win32-arm64-msvc@4.27.3': + resolution: {integrity: sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.4': - resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==} + '@rollup/rollup-win32-ia32-msvc@4.27.3': + resolution: {integrity: sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.4': - resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==} + '@rollup/rollup-win32-x64-msvc@4.27.3': + resolution: {integrity: sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==} cpu: [x64] os: [win32] - '@shikijs/core@1.22.2': - resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} + '@shikijs/core@1.23.1': + resolution: {integrity: sha512-NuOVgwcHgVC6jBVH5V7iblziw6iQbWWHrj5IlZI3Fqu2yx9awH7OIQkXIcsHsUmY19ckwSgUMgrqExEyP5A0TA==} - '@shikijs/engine-javascript@1.22.2': - resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==} + '@shikijs/engine-javascript@1.23.1': + resolution: {integrity: sha512-i/LdEwT5k3FVu07SiApRFwRcSJs5QM9+tod5vYCPig1Ywi8GR30zcujbxGQFJHwYD7A5BUqagi8o5KS+LEVgBg==} - '@shikijs/engine-oniguruma@1.22.2': - resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==} + '@shikijs/engine-oniguruma@1.23.1': + resolution: {integrity: sha512-KQ+lgeJJ5m2ISbUZudLR1qHeH3MnSs2mjFg7bnencgs5jDVPeJ2NVDJ3N5ZHbcTsOIh0qIueyAJnwg7lg7kwXQ==} - '@shikijs/types@1.22.2': - resolution: {integrity: sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==} + '@shikijs/types@1.23.1': + resolution: {integrity: sha512-98A5hGyEhzzAgQh2dAeHKrWW4HfCMeoFER2z16p5eJ+vmPeF6lZ/elEne6/UCU551F/WqkopqRsr1l2Yu6+A0g==} '@shikijs/vscode-textmate@9.3.0': resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} @@ -7032,8 +7124,8 @@ packages: svelte: ^5.0.0-next.96 || ^5.0.0 vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte@4.0.0': - resolution: {integrity: sha512-kpVJwF+gNiMEsoHaw+FJL76IYiwBikkxYU83+BpqQLdVMff19KeRKLd2wisS8niNBMJ2omv5gG+iGDDwd8jzag==} + '@sveltejs/vite-plugin-svelte@4.0.1': + resolution: {integrity: sha512-prXoAE/GleD2C4pKgHa9vkdjpzdYwCSw/kmjw6adIyu0vk5YKCfqIztkLg10m+kOYnzZu3bb0NaPTxlWre2a9Q==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} peerDependencies: svelte: ^5.0.0-next.96 || ^5.0.0 @@ -7094,6 +7186,9 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -7202,8 +7297,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@typescript-eslint/eslint-plugin@8.13.0': - resolution: {integrity: sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==} + '@typescript-eslint/eslint-plugin@8.15.0': + resolution: {integrity: sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -7213,8 +7308,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.13.0': - resolution: {integrity: sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==} + '@typescript-eslint/parser@8.15.0': + resolution: {integrity: sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7223,40 +7318,45 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.13.0': - resolution: {integrity: sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==} + '@typescript-eslint/scope-manager@8.15.0': + resolution: {integrity: sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.13.0': - resolution: {integrity: sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@8.13.0': - resolution: {integrity: sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.13.0': - resolution: {integrity: sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@8.13.0': - resolution: {integrity: sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==} + '@typescript-eslint/type-utils@8.15.0': + resolution: {integrity: sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/visitor-keys@8.13.0': - resolution: {integrity: sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==} + '@typescript-eslint/types@8.15.0': + resolution: {integrity: sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.15.0': + resolution: {integrity: sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.15.0': + resolution: {integrity: sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/visitor-keys@8.15.0': + resolution: {integrity: sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/twoslash@3.1.0': @@ -7291,11 +7391,25 @@ packages: vite: ^5.0.0 vue: ^3.2.25 - '@vitest/expect@2.1.4': - resolution: {integrity: sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==} + '@vitest/expect@2.1.3': + resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} - '@vitest/mocker@2.1.4': - resolution: {integrity: sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==} + '@vitest/expect@2.1.5': + resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} + + '@vitest/mocker@2.1.3': + resolution: {integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==} + peerDependencies: + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/mocker@2.1.5': + resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 @@ -7305,20 +7419,35 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.4': - resolution: {integrity: sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==} + '@vitest/pretty-format@2.1.3': + resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} - '@vitest/runner@2.1.4': - resolution: {integrity: sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==} + '@vitest/pretty-format@2.1.5': + resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} - '@vitest/snapshot@2.1.4': - resolution: {integrity: sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==} + '@vitest/runner@2.1.3': + resolution: {integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==} - '@vitest/spy@2.1.4': - resolution: {integrity: sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==} + '@vitest/runner@2.1.5': + resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==} - '@vitest/utils@2.1.4': - resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==} + '@vitest/snapshot@2.1.3': + resolution: {integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==} + + '@vitest/snapshot@2.1.5': + resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==} + + '@vitest/spy@2.1.3': + resolution: {integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==} + + '@vitest/spy@2.1.5': + resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==} + + '@vitest/utils@2.1.3': + resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} + + '@vitest/utils@2.1.5': + resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} '@volar/kit@2.4.6': resolution: {integrity: sha512-OaMtpmLns6IYD1nOSd0NdG/F5KzJ7Jr4B7TLeb4byPzu+ExuuRVeO56Dn1C7Frnw6bGudUQd90cpQAmxdB+RlQ==} @@ -7374,16 +7503,16 @@ packages: '@vue/compiler-ssr@3.5.12': resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} - '@vue/devtools-core@7.6.3': - resolution: {integrity: sha512-C7FOuh3Z+EmXXzDU9eRjHQL7zW7/CFovM6yCNNpUb+zXxhrn4fiqTum+a3gNau9DuzYfEtQXwZ9F7MeK0JKYVw==} + '@vue/devtools-core@7.6.4': + resolution: {integrity: sha512-blSwGVYpb7b5TALMjjoBiAl5imuBF7WEOAtaJaBMNikR8SQkm6mkUt4YlIKh9874/qoimwmpDOm+GHBZ4Y5m+g==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.6.3': - resolution: {integrity: sha512-ETsFc8GlOp04rSFN79tB2TpVloWfsSx9BoCSElV3w3CaJTSBfz42KsIi5Ka+dNTJs1jY7QVLTDeoBmUGgA9h2A==} + '@vue/devtools-kit@7.6.4': + resolution: {integrity: sha512-Zs86qIXXM9icU0PiGY09PQCle4TI750IPLmAJzW5Kf9n9t5HzSYf6Rz6fyzSwmfMPiR51SUKJh9sXVZu78h2QA==} - '@vue/devtools-shared@7.6.3': - resolution: {integrity: sha512-wJW5QF27i16+sNQIaes8QoEZg1eqEgF83GkiPUlEQe9k7ZoHXHV7PRrnrxOKem42sIHPU813J2V/ZK1uqTJe6g==} + '@vue/devtools-shared@7.6.4': + resolution: {integrity: sha512-nD6CUvBEel+y7zpyorjiUocy0nh77DThZJ0k1GRnJeOmY3ATq2fWijEp7wk37gb023Cb0R396uYh5qMSBQ5WFg==} '@vue/reactivity@3.1.5': resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} @@ -7462,6 +7591,10 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -7643,10 +7776,18 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} + chai@5.1.2: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -7727,10 +7868,16 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -7803,6 +7950,10 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + css-blank-pseudo@7.0.1: resolution: {integrity: sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==} engines: {node: '>=18'} @@ -7842,8 +7993,8 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - cssdb@8.1.2: - resolution: {integrity: sha512-ba3HmHU/lxy9nfz/fQLA/Ul+/oSdSOXqoR53BDmRvXTfRbkGqHKqr2rSxADYMRF4uD8vZhMlCQ6c5TEfLLkkVA==} + cssdb@8.2.1: + resolution: {integrity: sha512-KwEPys7lNsC8OjASI8RrmwOYYDcm0JOW9zQhcV83ejYcQkirTEyeAGui8aO2F5PiS6SLpxuTzl6qlMElIdsgIg==} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -8114,6 +8265,9 @@ packages: emmet@2.4.7: resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -8175,6 +8329,10 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -8201,8 +8359,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.14.0: - resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==} + eslint@9.15.0: + resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -8441,6 +8599,9 @@ packages: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -8485,6 +8646,10 @@ packages: has-async-hooks@1.0.0: resolution: {integrity: sha512-YF0VPGjkxr7AyyQQNykX8zK4PvtEDsUJAPqwu06UFz1lb6EvI53sPh5H1kWxg8NXI5LsfRCZ8uX9NkYDZBb/mw==} + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -8624,8 +8789,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -8707,8 +8872,8 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} @@ -8907,6 +9072,9 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + loupe@3.1.2: resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} @@ -9293,8 +9461,8 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-gyp-build@4.8.2: - resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true node-html-parser@6.1.13: @@ -9354,8 +9522,8 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + oniguruma-to-es@0.4.1: + resolution: {integrity: sha512-rNcEohFz095QKGRovP/yqPIKc+nP+Sjs4YTHMv33nMePGKrq/r2eu9Yh4646M5XluGJsUnmwoXuiXE69KDs+fQ==} only-allow@1.2.1: resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} @@ -9458,8 +9626,8 @@ packages: parse5-parser-stream@7.1.2: resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} @@ -9564,8 +9732,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.5: - resolution: {integrity: sha512-zW97tq5t2sSSSZQcIS4y6NDZj79zVv8hrBIJ4PSFZFmMBcjYqCt8sRXFGIYZohCpfFHmimMNqJje2Qd3qqMNdg==} + postcss-color-functional-notation@7.0.6: + resolution: {integrity: sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9653,8 +9821,8 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@7.0.5: - resolution: {integrity: sha512-q2M8CfQbjHxbwv1GPAny05EVuj0WByUgq/OWKgpfbTHnMchtUqsVQgaW1mztjSZ4UPufwuTLB14fmFGsoTE/VQ==} + postcss-lab-function@7.0.6: + resolution: {integrity: sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9712,8 +9880,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.0.9: - resolution: {integrity: sha512-mpfJWMAW6szov+ifW9HpNUUZE3BoXoHc4CDzNQHdH2I4CwsqulQ3bpFNUR6zh4tg0BUcqM7UUAbzG4UTel8QYw==} + postcss-preset-env@10.1.1: + resolution: {integrity: sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9896,8 +10064,14 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex@4.3.2: - resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} + regex-recursion@4.2.1: + resolution: {integrity: sha512-QHNZyZAeKdndD1G3bKAbBEKOSSK4KOHQrAJ01N1LJeb0SoH4DJIeFhp0uUpETgONifS4+P3sOgoA1dhzgrQvhA==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@5.0.2: + resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} @@ -10028,8 +10202,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.24.4: - resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} + rollup@4.27.3: + resolution: {integrity: sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10055,8 +10229,8 @@ packages: sass-formatter@0.7.9: resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sass@1.80.6: - resolution: {integrity: sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==} + sass@1.81.0: + resolution: {integrity: sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA==} engines: {node: '>=14.0.0'} hasBin: true @@ -10138,8 +10312,8 @@ packages: shiki@0.10.1: resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} - shiki@1.22.2: - resolution: {integrity: sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==} + shiki@1.23.1: + resolution: {integrity: sha512-8kxV9TH4pXgdKGxNOkrSMydn1Xf6It8lsle0fiqxf7a1149K1WGtdOu3Zb91T5r1JpvRPxqxU3C2XdZZXQnrig==} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -10193,6 +10367,9 @@ packages: resolution: {integrity: sha512-TzobUYoEft/xBtb2voRPryAUIvYguG0V7Tt3de79I1WfXgCwelqVsGuZSnu3GFGRZhXR90AeEYIM+icuB/S06Q==} hasBin: true + solid-js@1.9.2: + resolution: {integrity: sha512-fe/K03nV+kMFJYhAOE8AIQHcGxB4rMIEoEyrulbtmf217NffbbwBqJnJI4ovt16e+kaIt0czE2WA7mP/pYN9yg==} + solid-js@1.9.3: resolution: {integrity: sha512-5ba3taPoZGt9GY3YlsCB24kCg0Lv/rie/HTD4kG6h4daZZz7+yK02xn8Vx8dLYBc9i6Ps5JwAbEiqjmKaLB3Ag==} @@ -10201,6 +10378,10 @@ packages: peerDependencies: solid-js: ^1.3 + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -10240,6 +10421,9 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -10306,6 +10490,10 @@ packages: resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} engines: {node: '>=16'} + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -10324,8 +10512,8 @@ packages: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.1.16: - resolution: {integrity: sha512-QcY+om9r8+uTcSfeFuv8++ExdfwVCKeT+Y7GPSZ6rQPczvy62BMtvMoi0rScabgv+upGE5jxKjd7M4u23+AjGA==} + svelte@5.2.3: + resolution: {integrity: sha512-DRrWXdzo6+gfX9H/hQofQYyAtsGqC99+CFBvttImGt6gAy4Xzh0hHBrCHw5OtBgaPOdVGNW+S+mDcYcEsvTPOw==} engines: {node: '>=18'} svg-tags@1.0.0: @@ -10356,9 +10544,6 @@ packages: resolution: {integrity: sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==} engines: {node: '>=12'} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -10392,6 +10577,10 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -10511,10 +10700,11 @@ packages: typescript-auto-import-cache@0.3.3: resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@8.13.0: - resolution: {integrity: sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==} + typescript-eslint@8.15.0: + resolution: {integrity: sha512-wY4FRGl0ZI+ZU4Jo/yjdBu0lVTSML58pu6PgGtJmCufvzfV565pUF6iACQt092uFOd49iLOTX/sEVmHtbSrS+w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: @@ -10647,8 +10837,13 @@ packages: peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 - vite-node@2.1.4: - resolution: {integrity: sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==} + vite-node@2.1.3: + resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite-node@2.1.5: + resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -10672,8 +10867,8 @@ packages: '@testing-library/jest-dom': optional: true - vite-plugin-vue-devtools@7.6.3: - resolution: {integrity: sha512-p1rZMKzreWqxj9U05RaxY1vDoOhGYhA6iX8vKfo4nD6jqTmVoGjjk+U1g5HYwwTCdr/eck3kzO2f4gnPCjqVKA==} + vite-plugin-vue-devtools@7.6.4: + resolution: {integrity: sha512-jxSsLyuETfmZ1OSrmnDp28BG6rmURrP7lkeyHW2gBFDyo+4dUcqVeQNMhbV7uKZn80mDdv06Mysw/5AdGxDvJQ==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 @@ -10744,15 +10939,40 @@ packages: vite: optional: true - vitest@2.1.4: - resolution: {integrity: sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==} + vitest@2.1.3: + resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.4 - '@vitest/ui': 2.1.4 + '@vitest/browser': 2.1.3 + '@vitest/ui': 2.1.3 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vitest@2.1.5: + resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.5 + '@vitest/ui': 2.1.5 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -11096,7 +11316,7 @@ snapshots: '@assemblyscript/loader@0.19.23': {} - '@astro-community/astro-embed-baseline-status@0.1.1(astro@packages+astro)': + '@astro-community/astro-embed-baseline-status@0.1.2(astro@packages+astro)': dependencies: '@astro-community/astro-embed-utils': 0.1.3 astro: link:packages/astro @@ -11180,6 +11400,14 @@ snapshots: transitivePeerDependencies: - typescript + '@astrojs/node@8.3.3(astro@packages+astro)': + dependencies: + astro: link:packages/astro + send: 0.18.0 + server-destroy: 1.0.1 + transitivePeerDependencies: + - supports-color + '@astrojs/node@8.3.4(astro@packages+astro)': dependencies: astro: link:packages/astro @@ -11200,26 +11428,31 @@ snapshots: dependencies: yaml: 2.5.1 - '@babel/code-frame@7.26.0': + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.0 + + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/compat-data@7.26.0': {} + '@babel/compat-data@7.25.7': {} - '@babel/core@7.26.0': + '@babel/core@7.25.8': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.0 - '@babel/generator': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.1 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -11228,49 +11461,67 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.26.0': + '@babel/generator@7.25.7': dependencies: - '@babel/parser': 7.26.1 + '@babel/types': 7.25.8 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/generator@7.26.2': + dependencies: + '@babel/parser': 7.26.2 '@babel/types': 7.26.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 + '@babel/helper-annotate-as-pure@7.25.7': + dependencies: + '@babel/types': 7.25.8 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.26.0 - '@babel/helper-compilation-targets@7.25.9': + '@babel/helper-compilation-targets@7.25.7': dependencies: - '@babel/compat-data': 7.26.0 - '@babel/helper-validator-option': 7.25.9 + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.26.0)': + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/core': 7.25.8 + '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.26.0) + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.8) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.7 semver: 6.3.1 transitivePeerDependencies: - supports-color '@babel/helper-member-expression-to-functions@7.24.8': dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.25.8 + + '@babel/helper-module-imports@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color '@babel/helper-module-imports@7.25.9': dependencies: @@ -11279,122 +11530,152 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/core': 7.25.8 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.25.8 + + '@babel/helper-plugin-utils@7.25.7': {} '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-replace-supers@7.25.0(@babel/core@7.26.0)': + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 transitivePeerDependencies: - supports-color + '@babel/helper-string-parser@7.25.7': {} + '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-validator-identifier@7.25.7': {} + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.25.7': {} - '@babel/helpers@7.26.0': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 - '@babel/parser@7.26.1': + '@babel/highlight@7.25.7': + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + + '@babel/parser@7.25.8': + dependencies: + '@babel/types': 7.25.8 + + '@babel/parser@7.26.2': dependencies: '@babel/types': 7.26.0 - '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.26.0) + '@babel/core': 7.25.8 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.8) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.8) transitivePeerDependencies: - supports-color - '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.26.0)': + '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.25.8 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.25.8) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.25.8 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.25.8) '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.26.0)': + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.8)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.25.8 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.8) + '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.26.0) + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.8) transitivePeerDependencies: - supports-color @@ -11402,17 +11683,35 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/template@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 + '@babel/template@7.25.9': dependencies: - '@babel/code-frame': 7.26.0 - '@babel/parser': 7.26.1 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 '@babel/types': 7.26.0 + '@babel/traverse@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/traverse@7.25.9': dependencies: - '@babel/code-frame': 7.26.0 - '@babel/generator': 7.26.0 - '@babel/parser': 7.26.1 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 debug: 4.3.7 @@ -11420,6 +11719,12 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/types@7.25.8': + dependencies: + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + to-fast-properties: 2.0.0 + '@babel/types@7.26.0': dependencies: '@babel/helper-string-parser': 7.25.9 @@ -11639,7 +11944,7 @@ snapshots: axios: 1.7.7 find-up: 6.3.0 form-data: 4.0.0 - node-gyp-build: 4.8.2 + node-gyp-build: 4.8.4 transitivePeerDependencies: - debug @@ -11661,15 +11966,15 @@ snapshots: '@csstools/color-helpers@5.0.1': {} - '@csstools/css-calc@2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-color-parser@3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 @@ -11690,18 +11995,18 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 7.0.0 - '@csstools/postcss-color-function@4.0.5(postcss@8.4.47)': + '@csstools/postcss-color-function@4.0.6(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-color-mix-function@3.0.5(postcss@8.4.47)': + '@csstools/postcss-color-mix-function@3.0.6(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) @@ -11716,9 +12021,9 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-exponential-functions@2.0.4(postcss@8.4.47)': + '@csstools/postcss-exponential-functions@2.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 @@ -11729,25 +12034,25 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.5(postcss@8.4.47)': + '@csstools/postcss-gamut-mapping@2.0.6(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 - '@csstools/postcss-gradients-interpolation-method@5.0.5(postcss@8.4.47)': + '@csstools/postcss-gradients-interpolation-method@5.0.6(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-hwb-function@4.0.5(postcss@8.4.47)': + '@csstools/postcss-hwb-function@4.0.6(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) @@ -11802,9 +12107,9 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-media-minmax@2.0.4(postcss@8.4.47)': + '@csstools/postcss-media-minmax@2.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) @@ -11828,9 +12133,9 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.5(postcss@8.4.47)': + '@csstools/postcss-oklab-function@4.0.6(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) @@ -11842,9 +12147,16 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@3.0.5(postcss@8.4.47)': + '@csstools/postcss-random-function@1.0.1(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.4.47 + + '@csstools/postcss-relative-color-syntax@3.0.6(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) @@ -11856,9 +12168,16 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 7.0.0 - '@csstools/postcss-stepped-value-functions@4.0.4(postcss@8.4.47)': + '@csstools/postcss-sign-functions@1.1.0(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.4.47 + + '@csstools/postcss-stepped-value-functions@4.0.5(postcss@8.4.47)': + dependencies: + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 @@ -11869,9 +12188,9 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.4(postcss@8.4.47)': + '@csstools/postcss-trigonometric-functions@4.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 @@ -12061,14 +12380,16 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.15.0(jiti@1.21.6))': dependencies: - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.15.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.18.0': + '@eslint/config-array@0.19.0': dependencies: '@eslint/object-schema': 2.1.4 debug: 4.3.7 @@ -12076,9 +12397,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.7.0': {} + '@eslint/core@0.9.0': {} - '@eslint/eslintrc@3.1.0': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.7 @@ -12092,11 +12413,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.14.0': {} + '@eslint/js@9.15.0': {} '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.0': + '@eslint/plugin-kit@0.2.3': dependencies: levn: 0.4.1 @@ -12421,14 +12742,14 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@preact/preset-vite@2.8.2(@babel/core@7.26.0)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': + '@preact/preset-vite@2.8.2(@babel/core@7.25.8)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + '@babel/core': 7.25.8 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.25.8) + '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.25.8) + '@prefresh/vite': 2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) '@rollup/pluginutils': 4.2.1 - babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) + babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.25.8) debug: 4.3.7 kolorist: 1.8.0 magic-string: 0.30.5 @@ -12436,7 +12757,7 @@ snapshots: resolve: 1.22.8 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) transitivePeerDependencies: - preact - supports-color @@ -12456,15 +12777,15 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': + '@prefresh/vite@2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 '@prefresh/babel-plugin': 0.5.1 '@prefresh/core': 1.5.2(preact@10.24.3) '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.24.3 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -12473,89 +12794,89 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.3(rollup@4.24.4)': + '@rollup/pluginutils@5.1.3(rollup@4.27.3)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.24.4 + rollup: 4.27.3 - '@rollup/rollup-android-arm-eabi@4.24.4': + '@rollup/rollup-android-arm-eabi@4.27.3': optional: true - '@rollup/rollup-android-arm64@4.24.4': + '@rollup/rollup-android-arm64@4.27.3': optional: true - '@rollup/rollup-darwin-arm64@4.24.4': + '@rollup/rollup-darwin-arm64@4.27.3': optional: true - '@rollup/rollup-darwin-x64@4.24.4': + '@rollup/rollup-darwin-x64@4.27.3': optional: true - '@rollup/rollup-freebsd-arm64@4.24.4': + '@rollup/rollup-freebsd-arm64@4.27.3': optional: true - '@rollup/rollup-freebsd-x64@4.24.4': + '@rollup/rollup-freebsd-x64@4.27.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.4': + '@rollup/rollup-linux-arm-gnueabihf@4.27.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.4': + '@rollup/rollup-linux-arm-musleabihf@4.27.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.4': + '@rollup/rollup-linux-arm64-gnu@4.27.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.24.4': + '@rollup/rollup-linux-arm64-musl@4.27.3': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': + '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.4': + '@rollup/rollup-linux-riscv64-gnu@4.27.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.4': + '@rollup/rollup-linux-s390x-gnu@4.27.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.24.4': + '@rollup/rollup-linux-x64-gnu@4.27.3': optional: true - '@rollup/rollup-linux-x64-musl@4.24.4': + '@rollup/rollup-linux-x64-musl@4.27.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.4': + '@rollup/rollup-win32-arm64-msvc@4.27.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.4': + '@rollup/rollup-win32-ia32-msvc@4.27.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.24.4': + '@rollup/rollup-win32-x64-msvc@4.27.3': optional: true - '@shikijs/core@1.22.2': + '@shikijs/core@1.23.1': dependencies: - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 + '@shikijs/engine-javascript': 1.23.1 + '@shikijs/engine-oniguruma': 1.23.1 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 hast-util-to-html: 9.0.3 - '@shikijs/engine-javascript@1.22.2': + '@shikijs/engine-javascript@1.23.1': dependencies: - '@shikijs/types': 1.22.2 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-js: 0.4.3 + oniguruma-to-es: 0.4.1 - '@shikijs/engine-oniguruma@1.22.2': + '@shikijs/engine-oniguruma@1.23.1': dependencies: - '@shikijs/types': 1.22.2 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 - '@shikijs/types@1.22.2': + '@shikijs/types@1.23.1': dependencies: '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 @@ -12568,25 +12889,25 @@ snapshots: dependencies: solid-js: 1.9.3 - '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)))(svelte@5.1.16)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.1(svelte@5.2.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)))(svelte@5.2.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.16)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + '@sveltejs/vite-plugin-svelte': 4.0.1(svelte@5.2.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) debug: 4.3.7 - svelte: 5.1.16 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + svelte: 5.2.3 + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': + '@sveltejs/vite-plugin-svelte@4.0.1(svelte@5.2.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)))(svelte@5.1.16)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.1(svelte@5.2.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)))(svelte@5.2.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.12 - svelte: 5.1.16 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) - vitefu: 1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + svelte: 5.2.3 + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + vitefu: 1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) transitivePeerDependencies: - supports-color @@ -12602,24 +12923,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.1 - '@babel/types': 7.26.0 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.25.8 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.1 - '@babel/types': 7.26.0 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.25.8 '@types/braces@3.0.4': {} @@ -12645,6 +12966,8 @@ snapshots: dependencies: '@types/estree': 1.0.6 + '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} '@types/hast@3.0.4': @@ -12750,15 +13073,15 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.13.0 - '@typescript-eslint/type-utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.13.0 - eslint: 9.14.0(jiti@1.21.6) + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/type-utils': 8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.15.0 + eslint: 9.15.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -12768,42 +13091,42 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.13.0 - '@typescript-eslint/types': 8.13.0 - '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.13.0 + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.15.0 debug: 4.3.7 - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.15.0(jiti@1.21.6) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.13.0': + '@typescript-eslint/scope-manager@8.15.0': dependencies: - '@typescript-eslint/types': 8.13.0 - '@typescript-eslint/visitor-keys': 8.13.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 - '@typescript-eslint/type-utils@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) debug: 4.3.7 + eslint: 9.15.0(jiti@1.21.6) ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - - eslint - supports-color - '@typescript-eslint/types@8.13.0': {} + '@typescript-eslint/types@8.15.0': {} - '@typescript-eslint/typescript-estree@8.13.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.15.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.13.0 - '@typescript-eslint/visitor-keys': 8.13.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -12815,21 +13138,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/utils@8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.13.0 - '@typescript-eslint/types': 8.13.0 - '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) - eslint: 9.14.0(jiti@1.21.6) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) + eslint: 9.15.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.6.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/visitor-keys@8.13.0': + '@typescript-eslint/visitor-keys@8.15.0': dependencies: - '@typescript-eslint/types': 8.13.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.15.0 + eslint-visitor-keys: 4.2.0 '@typescript/twoslash@3.1.0': dependencies: @@ -12853,69 +13177,109 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': + '@vitejs/plugin-react@4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.26.0) + '@babel/core': 7.25.8 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.8) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.8) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.26.0) - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + '@babel/core': 7.25.8 + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.8) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': dependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) vue: 3.5.12(typescript@5.6.3) - '@vitest/expect@2.1.4': + '@vitest/expect@2.1.3': dependencies: - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 + '@vitest/spy': 2.1.3 + '@vitest/utils': 2.1.3 + chai: 5.1.1 + tinyrainbow: 1.2.0 + + '@vitest/expect@2.1.5': + dependencies: + '@vitest/spy': 2.1.5 + '@vitest/utils': 2.1.5 chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': + '@vitest/mocker@2.1.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))': dependencies: - '@vitest/spy': 2.1.4 + '@vitest/spy': 2.1.3 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) - '@vitest/pretty-format@2.1.4': + '@vitest/mocker@2.1.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))': + dependencies: + '@vitest/spy': 2.1.5 + estree-walker: 3.0.3 + magic-string: 0.30.12 + optionalDependencies: + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + + '@vitest/pretty-format@2.1.3': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.4': + '@vitest/pretty-format@2.1.5': dependencies: - '@vitest/utils': 2.1.4 + tinyrainbow: 1.2.0 + + '@vitest/runner@2.1.3': + dependencies: + '@vitest/utils': 2.1.3 pathe: 1.1.2 - '@vitest/snapshot@2.1.4': + '@vitest/runner@2.1.5': dependencies: - '@vitest/pretty-format': 2.1.4 + '@vitest/utils': 2.1.5 + pathe: 1.1.2 + + '@vitest/snapshot@2.1.3': + dependencies: + '@vitest/pretty-format': 2.1.3 magic-string: 0.30.12 pathe: 1.1.2 - '@vitest/spy@2.1.4': + '@vitest/snapshot@2.1.5': + dependencies: + '@vitest/pretty-format': 2.1.5 + magic-string: 0.30.12 + pathe: 1.1.2 + + '@vitest/spy@2.1.3': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.4': + '@vitest/spy@2.1.5': dependencies: - '@vitest/pretty-format': 2.1.4 + tinyspy: 3.0.2 + + '@vitest/utils@2.1.3': + dependencies: + '@vitest/pretty-format': 2.1.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + + '@vitest/utils@2.1.5': + dependencies: + '@vitest/pretty-format': 2.1.5 loupe: 3.1.2 tinyrainbow: 1.2.0 @@ -12971,37 +13335,37 @@ snapshots: '@vue/babel-helper-vue-transform-on@1.2.5': {} - '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.26.0)': + '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.25.8)': dependencies: - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 '@vue/babel-helper-vue-transform-on': 1.2.5 - '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.26.0) + '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.25.8) html-tags: 3.3.1 svg-tags: 1.0.0 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.26.0)': + '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.25.8)': dependencies: - '@babel/code-frame': 7.26.0 - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/parser': 7.26.1 + '@babel/code-frame': 7.25.7 + '@babel/core': 7.25.8 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/parser': 7.25.8 '@vue/compiler-sfc': 3.5.12 transitivePeerDependencies: - supports-color '@vue/compiler-core@3.5.12': dependencies: - '@babel/parser': 7.26.1 + '@babel/parser': 7.25.8 '@vue/shared': 3.5.12 entities: 4.5.0 estree-walker: 2.0.2 @@ -13014,7 +13378,7 @@ snapshots: '@vue/compiler-sfc@3.5.12': dependencies: - '@babel/parser': 7.26.1 + '@babel/parser': 7.25.8 '@vue/compiler-core': 3.5.12 '@vue/compiler-dom': 3.5.12 '@vue/compiler-ssr': 3.5.12 @@ -13022,28 +13386,28 @@ snapshots: estree-walker: 2.0.2 magic-string: 0.30.12 postcss: 8.4.47 - source-map-js: 1.2.1 + source-map-js: 1.2.0 '@vue/compiler-ssr@3.5.12': dependencies: '@vue/compiler-dom': 3.5.12 '@vue/shared': 3.5.12 - '@vue/devtools-core@7.6.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': + '@vue/devtools-core@7.6.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': dependencies: - '@vue/devtools-kit': 7.6.3 - '@vue/devtools-shared': 7.6.3 + '@vue/devtools-kit': 7.6.4 + '@vue/devtools-shared': 7.6.4 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + vite-hot-client: 0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - vite - '@vue/devtools-kit@7.6.3': + '@vue/devtools-kit@7.6.4': dependencies: - '@vue/devtools-shared': 7.6.3 + '@vue/devtools-shared': 7.6.4 birpc: 0.2.19 hookable: 5.5.3 mitt: 3.0.1 @@ -13051,7 +13415,7 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 - '@vue/devtools-shared@7.6.3': + '@vue/devtools-shared@7.6.4': dependencies: rfdc: 1.4.1 @@ -13140,6 +13504,10 @@ snapshots: ansi-regex@6.1.0: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -13179,7 +13547,7 @@ snapshots: astro-embed@0.8.0(astro@packages+astro): dependencies: - '@astro-community/astro-embed-baseline-status': 0.1.1(astro@packages+astro) + '@astro-community/astro-embed-baseline-status': 0.1.2(astro@packages+astro) '@astro-community/astro-embed-integration': 0.7.2(astro@packages+astro) '@astro-community/astro-embed-link-preview': 0.2.2 '@astro-community/astro-embed-twitter': 0.5.6(astro@packages+astro) @@ -13245,23 +13613,23 @@ snapshots: axobject-query@4.1.0: {} - babel-plugin-jsx-dom-expressions@0.38.5(@babel/core@7.26.0): + babel-plugin-jsx-dom-expressions@0.38.5(@babel/core@7.25.8): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) + '@babel/types': 7.25.8 html-entities: 2.3.3 validate-html-nesting: 1.2.2 - babel-plugin-transform-hook-names@1.0.2(@babel/core@7.26.0): + babel-plugin-transform-hook-names@1.0.2(@babel/core@7.25.8): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 - babel-preset-solid@1.8.22(@babel/core@7.26.0): + babel-preset-solid@1.8.22(@babel/core@7.25.8): dependencies: - '@babel/core': 7.26.0 - babel-plugin-jsx-dom-expressions: 0.38.5(@babel/core@7.26.0) + '@babel/core': 7.25.8 + babel-plugin-jsx-dom-expressions: 0.38.5(@babel/core@7.25.8) bail@2.0.2: {} @@ -13341,14 +13709,28 @@ snapshots: ccount@2.0.1: {} + chai@5.1.1: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + chai@5.1.2: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.2 + loupe: 3.1.1 pathval: 2.0.0 + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -13387,7 +13769,7 @@ snapshots: domutils: 3.1.0 encoding-sniffer: 0.2.0 htmlparser2: 9.1.0 - parse5: 7.2.1 + parse5: 7.2.0 parse5-htmlparser2-tree-adapter: 7.0.0 parse5-parser-stream: 7.1.2 undici: 6.20.1 @@ -13437,10 +13819,16 @@ snapshots: collapse-white-space@2.1.0: {} + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} color-string@1.9.1: @@ -13501,6 +13889,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + css-blank-pseudo@7.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 @@ -13541,7 +13935,7 @@ snapshots: css-what@6.1.0: {} - cssdb@8.1.2: {} + cssdb@8.2.1: {} cssesc@3.0.0: {} @@ -13679,6 +14073,8 @@ snapshots: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 + emoji-regex-xs@1.0.0: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -13784,16 +14180,18 @@ snapshots: escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} + escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} - eslint-plugin-regexp@2.6.0(eslint@9.14.0(jiti@1.21.6)): + eslint-plugin-regexp@2.6.0(eslint@9.15.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.15.0(jiti@1.21.6) jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -13808,15 +14206,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.14.0(jiti@1.21.6): + eslint@9.15.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.7.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.14.0 - '@eslint/plugin-kit': 0.2.0 + '@eslint/config-array': 0.19.0 + '@eslint/core': 0.9.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.15.0 + '@eslint/plugin-kit': 0.2.3 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -13824,7 +14222,7 @@ snapshots: '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 @@ -13844,7 +14242,6 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - text-table: 0.2.0 optionalDependencies: jiti: 1.21.6 transitivePeerDependencies: @@ -13910,7 +14307,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.5 esutils@2.0.3: {} @@ -14077,6 +14474,8 @@ snapshots: get-east-asian-width@1.2.0: {} + get-func-name@2.0.2: {} + get-stream@8.0.1: {} github-slugger@2.0.0: {} @@ -14126,6 +14525,8 @@ snapshots: has-async-hooks@1.0.0: {} + has-flag@3.0.0: {} + has-flag@4.0.0: {} hasown@2.0.2: @@ -14143,7 +14544,7 @@ snapshots: '@types/hast': 3.0.4 devlop: 1.1.0 hast-util-from-parse5: 8.0.1 - parse5: 7.2.1 + parse5: 7.2.0 vfile: 6.0.3 vfile-message: 4.0.2 @@ -14183,7 +14584,7 @@ snapshots: hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - parse5: 7.2.1 + parse5: 7.2.0 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 vfile: 6.0.3 @@ -14382,7 +14783,7 @@ snapshots: ignore@5.3.2: {} - immutable@4.3.7: {} + immutable@5.0.3: {} import-fresh@3.3.0: dependencies: @@ -14442,7 +14843,7 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-reference@3.0.2: + is-reference@3.0.3: dependencies: '@types/estree': 1.0.6 @@ -14496,7 +14897,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 is-potential-custom-element-name: 1.0.1 - parse5: 7.2.1 + parse5: 7.2.0 rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -14660,6 +15061,10 @@ snapshots: dependencies: js-tokens: 4.0.0 + loupe@3.1.1: + dependencies: + get-func-name: 2.0.2 + loupe@3.1.2: {} lower-case@2.0.2: @@ -14689,8 +15094,8 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.26.1 - '@babel/types': 7.26.0 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 source-map-js: 1.2.1 manage-path@2.0.0: {} @@ -15301,7 +15706,7 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-gyp-build@4.8.2: {} + node-gyp-build@4.8.4: {} node-html-parser@6.1.13: dependencies: @@ -15355,9 +15760,11 @@ snapshots: dependencies: mimic-fn: 4.0.0 - oniguruma-to-js@0.4.3: + oniguruma-to-es@0.4.1: dependencies: - regex: 4.3.2 + emoji-regex-xs: 1.0.0 + regex: 5.0.2 + regex-recursion: 4.2.1 only-allow@1.2.1: dependencies: @@ -15465,13 +15872,13 @@ snapshots: parse5-htmlparser2-tree-adapter@7.0.0: dependencies: domhandler: 5.0.3 - parse5: 7.2.1 + parse5: 7.2.0 parse5-parser-stream@7.1.2: dependencies: - parse5: 7.2.1 + parse5: 7.2.0 - parse5@7.2.1: + parse5@7.2.0: dependencies: entities: 4.5.0 @@ -15545,9 +15952,9 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.5(postcss@8.4.47): + postcss-color-functional-notation@7.0.6(postcss@8.4.47): dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) @@ -15639,9 +16046,9 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.47 - postcss-lab-function@7.0.5(postcss@8.4.47): + postcss-lab-function@7.0.6(postcss@8.4.47): dependencies: - '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) @@ -15690,17 +16097,17 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-preset-env@10.0.9(postcss@8.4.47): + postcss-preset-env@10.1.1(postcss@8.4.47): dependencies: '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.4.47) - '@csstools/postcss-color-function': 4.0.5(postcss@8.4.47) - '@csstools/postcss-color-mix-function': 3.0.5(postcss@8.4.47) + '@csstools/postcss-color-function': 4.0.6(postcss@8.4.47) + '@csstools/postcss-color-mix-function': 3.0.6(postcss@8.4.47) '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.4.47) - '@csstools/postcss-exponential-functions': 2.0.4(postcss@8.4.47) + '@csstools/postcss-exponential-functions': 2.0.5(postcss@8.4.47) '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.47) - '@csstools/postcss-gamut-mapping': 2.0.5(postcss@8.4.47) - '@csstools/postcss-gradients-interpolation-method': 5.0.5(postcss@8.4.47) - '@csstools/postcss-hwb-function': 4.0.5(postcss@8.4.47) + '@csstools/postcss-gamut-mapping': 2.0.6(postcss@8.4.47) + '@csstools/postcss-gradients-interpolation-method': 5.0.6(postcss@8.4.47) + '@csstools/postcss-hwb-function': 4.0.6(postcss@8.4.47) '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.47) '@csstools/postcss-initial': 2.0.0(postcss@8.4.47) '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.4.47) @@ -15710,28 +16117,30 @@ snapshots: '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.47) '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.47) '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.4.47) - '@csstools/postcss-media-minmax': 2.0.4(postcss@8.4.47) + '@csstools/postcss-media-minmax': 2.0.5(postcss@8.4.47) '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.4.47) '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.47) '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.47) - '@csstools/postcss-oklab-function': 4.0.5(postcss@8.4.47) + '@csstools/postcss-oklab-function': 4.0.6(postcss@8.4.47) '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/postcss-relative-color-syntax': 3.0.5(postcss@8.4.47) + '@csstools/postcss-random-function': 1.0.1(postcss@8.4.47) + '@csstools/postcss-relative-color-syntax': 3.0.6(postcss@8.4.47) '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.4.47) - '@csstools/postcss-stepped-value-functions': 4.0.4(postcss@8.4.47) + '@csstools/postcss-sign-functions': 1.1.0(postcss@8.4.47) + '@csstools/postcss-stepped-value-functions': 4.0.5(postcss@8.4.47) '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.47) - '@csstools/postcss-trigonometric-functions': 4.0.4(postcss@8.4.47) + '@csstools/postcss-trigonometric-functions': 4.0.5(postcss@8.4.47) '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.47) autoprefixer: 10.4.20(postcss@8.4.47) browserslist: 4.24.0 css-blank-pseudo: 7.0.1(postcss@8.4.47) css-has-pseudo: 7.0.1(postcss@8.4.47) css-prefers-color-scheme: 10.0.0(postcss@8.4.47) - cssdb: 8.1.2 + cssdb: 8.2.1 postcss: 8.4.47 postcss-attribute-case-insensitive: 7.0.1(postcss@8.4.47) postcss-clamp: 4.1.0(postcss@8.4.47) - postcss-color-functional-notation: 7.0.5(postcss@8.4.47) + postcss-color-functional-notation: 7.0.6(postcss@8.4.47) postcss-color-hex-alpha: 10.0.0(postcss@8.4.47) postcss-color-rebeccapurple: 10.0.0(postcss@8.4.47) postcss-custom-media: 11.0.5(postcss@8.4.47) @@ -15744,7 +16153,7 @@ snapshots: postcss-font-variant: 5.0.0(postcss@8.4.47) postcss-gap-properties: 6.0.0(postcss@8.4.47) postcss-image-set-function: 7.0.0(postcss@8.4.47) - postcss-lab-function: 7.0.5(postcss@8.4.47) + postcss-lab-function: 7.0.6(postcss@8.4.47) postcss-logical: 8.0.0(postcss@8.4.47) postcss-nesting: 13.0.1(postcss@8.4.47) postcss-opacity-percentage: 3.0.0(postcss@8.4.47) @@ -15915,17 +16324,25 @@ snapshots: refa@0.12.1: dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.11.0 regenerator-runtime@0.13.11: {} regenerator-runtime@0.14.1: {} - regex@4.3.2: {} + regex-recursion@4.2.1: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@5.0.2: + dependencies: + regex-utilities: 2.3.0 regexp-ast-analysis@0.7.1: dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.11.0 refa: 0.12.1 rehype-autolink-headings@7.1.0: @@ -15959,13 +16376,13 @@ snapshots: hast-util-from-html: 2.0.3 unified: 11.0.5 - rehype-pretty-code@0.14.0(shiki@1.22.2): + rehype-pretty-code@0.14.0(shiki@1.23.1): dependencies: '@types/hast': 3.0.4 hast-util-to-string: 3.0.0 parse-numeric-range: 1.3.0 rehype-parse: 9.0.0 - shiki: 1.22.2 + shiki: 1.23.1 unified: 11.0.5 unist-util-visit: 5.0.0 @@ -16147,28 +16564,28 @@ snapshots: rfdc@1.4.1: {} - rollup@4.24.4: + rollup@4.27.3: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.4 - '@rollup/rollup-android-arm64': 4.24.4 - '@rollup/rollup-darwin-arm64': 4.24.4 - '@rollup/rollup-darwin-x64': 4.24.4 - '@rollup/rollup-freebsd-arm64': 4.24.4 - '@rollup/rollup-freebsd-x64': 4.24.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.4 - '@rollup/rollup-linux-arm-musleabihf': 4.24.4 - '@rollup/rollup-linux-arm64-gnu': 4.24.4 - '@rollup/rollup-linux-arm64-musl': 4.24.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.4 - '@rollup/rollup-linux-riscv64-gnu': 4.24.4 - '@rollup/rollup-linux-s390x-gnu': 4.24.4 - '@rollup/rollup-linux-x64-gnu': 4.24.4 - '@rollup/rollup-linux-x64-musl': 4.24.4 - '@rollup/rollup-win32-arm64-msvc': 4.24.4 - '@rollup/rollup-win32-ia32-msvc': 4.24.4 - '@rollup/rollup-win32-x64-msvc': 4.24.4 + '@rollup/rollup-android-arm-eabi': 4.27.3 + '@rollup/rollup-android-arm64': 4.27.3 + '@rollup/rollup-darwin-arm64': 4.27.3 + '@rollup/rollup-darwin-x64': 4.27.3 + '@rollup/rollup-freebsd-arm64': 4.27.3 + '@rollup/rollup-freebsd-x64': 4.27.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.27.3 + '@rollup/rollup-linux-arm-musleabihf': 4.27.3 + '@rollup/rollup-linux-arm64-gnu': 4.27.3 + '@rollup/rollup-linux-arm64-musl': 4.27.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.27.3 + '@rollup/rollup-linux-riscv64-gnu': 4.27.3 + '@rollup/rollup-linux-s390x-gnu': 4.27.3 + '@rollup/rollup-linux-x64-gnu': 4.27.3 + '@rollup/rollup-linux-x64-musl': 4.27.3 + '@rollup/rollup-win32-arm64-msvc': 4.27.3 + '@rollup/rollup-win32-ia32-msvc': 4.27.3 + '@rollup/rollup-win32-x64-msvc': 4.27.3 fsevents: 2.3.3 rrweb-cssom@0.6.0: {} @@ -16189,10 +16606,10 @@ snapshots: dependencies: suf-log: 2.5.3 - sass@1.80.6: + sass@1.81.0: dependencies: chokidar: 4.0.1 - immutable: 4.3.7 + immutable: 5.0.3 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.4.1 @@ -16211,7 +16628,7 @@ snapshots: scslre@0.3.0: dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.11.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -16319,12 +16736,12 @@ snapshots: vscode-oniguruma: 1.7.0 vscode-textmate: 5.2.0 - shiki@1.22.2: + shiki@1.23.1: dependencies: - '@shikijs/core': 1.22.2 - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 + '@shikijs/core': 1.23.1 + '@shikijs/engine-javascript': 1.23.1 + '@shikijs/engine-oniguruma': 1.23.1 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 @@ -16379,6 +16796,12 @@ snapshots: smartypants@0.2.2: {} + solid-js@1.9.2: + dependencies: + csstype: 3.1.3 + seroval: 1.1.1 + seroval-plugins: 1.1.1(seroval@1.1.1) + solid-js@1.9.3: dependencies: csstype: 3.1.3 @@ -16387,13 +16810,15 @@ snapshots: solid-refresh@0.6.3(solid-js@1.9.3): dependencies: - '@babel/generator': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/types': 7.26.0 + '@babel/generator': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/types': 7.25.8 solid-js: 1.9.3 transitivePeerDependencies: - supports-color + source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map@0.7.4: {} @@ -16423,6 +16848,8 @@ snapshots: std-env@3.7.0: {} + std-env@3.8.0: {} + stream-replace-string@2.0.0: {} string-width@4.2.3: @@ -16496,6 +16923,10 @@ snapshots: dependencies: copy-anything: 3.0.5 + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -16507,14 +16938,14 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte2tsx@0.7.22(svelte@5.1.16)(typescript@5.6.3): + svelte2tsx@0.7.22(svelte@5.2.3)(typescript@5.6.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.1.16 + svelte: 5.2.3 typescript: 5.6.3 - svelte@5.1.16: + svelte@5.2.3: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -16525,7 +16956,7 @@ snapshots: axobject-query: 4.1.0 esm-env: 1.1.4 esrap: 1.2.2 - is-reference: 3.0.2 + is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.12 zimmerframe: 1.1.2 @@ -16587,8 +17018,6 @@ snapshots: ansi-escapes: 5.0.0 supports-hyperlinks: 2.3.0 - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -16613,6 +17042,8 @@ snapshots: dependencies: os-tmpdir: 1.0.2 + to-fast-properties@2.0.0: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -16708,15 +17139,15 @@ snapshots: dependencies: semver: 7.6.3 - typescript-eslint@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3): + typescript-eslint@8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.15.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + eslint: 9.15.0(jiti@1.21.6) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - - eslint - supports-color typescript@5.6.3: {} @@ -16861,16 +17292,16 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): + vite-hot-client@0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)): dependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) - vite-node@2.1.4(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1): + vite-node@2.1.3(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) transitivePeerDependencies: - '@types/node' - jiti @@ -16885,10 +17316,31 @@ snapshots: - tsx - yaml - vite-plugin-inspect@0.8.7(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): + vite-node@2.1.5(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1): + dependencies: + cac: 6.7.14 + debug: 4.3.7 + es-module-lexer: 1.5.4 + pathe: 1.1.2 + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-plugin-inspect@0.8.7(rollup@4.27.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.3(rollup@4.24.4) + '@rollup/pluginutils': 5.1.3(rollup@4.27.3) debug: 4.3.7 error-stack-parser-es: 0.1.5 fs-extra: 11.2.0 @@ -16896,52 +17348,52 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.0 sirv: 2.0.4 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): + vite-plugin-solid@2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.25.8 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.22(@babel/core@7.26.0) + babel-preset-solid: 1.8.22(@babel/core@7.25.8) merge-anything: 5.1.7 solid-js: 1.9.3 solid-refresh: 0.6.3(solid-js@1.9.3) - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) - vitefu: 0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + vitefu: 0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.6.3(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)): + vite-plugin-vue-devtools@7.6.4(rollup@4.27.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)): dependencies: - '@vue/devtools-core': 7.6.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) - '@vue/devtools-kit': 7.6.3 - '@vue/devtools-shared': 7.6.3 + '@vue/devtools-core': 7.6.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + '@vue/devtools-kit': 7.6.4 + '@vue/devtools-shared': 7.6.4 execa: 8.0.1 sirv: 3.0.0 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) - vite-plugin-inspect: 0.8.7(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) - vite-plugin-vue-inspector: 5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + vite-plugin-inspect: 0.8.7(rollup@4.27.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) + vite-plugin-vue-inspector: 5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): + vite-plugin-vue-inspector@5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)): dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.26.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.26.0) - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) + '@babel/core': 7.25.8 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.8) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.8) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.8) + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.8) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) '@vue/compiler-dom': 3.5.12 kolorist: 1.8.0 magic-string: 0.30.12 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -16950,38 +17402,37 @@ snapshots: svgo: 3.3.2 vue: 3.5.12(typescript@5.6.3) - vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1): + vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1): dependencies: esbuild: 0.24.0 postcss: 8.4.47 - rollup: 4.24.4 + rollup: 4.27.3 optionalDependencies: '@types/node': 18.19.50 fsevents: 2.3.3 jiti: 1.21.6 - sass: 1.80.6 + sass: 1.81.0 yaml: 2.5.1 - vitefu@0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): + vitefu@0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)): optionalDependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) - vitefu@1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): + vitefu@1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)): optionalDependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) - vitest@2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1): + vitest@2.1.3(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.81.0)(yaml@2.5.1): dependencies: - '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) - '@vitest/pretty-format': 2.1.4 - '@vitest/runner': 2.1.4 - '@vitest/snapshot': 2.1.4 - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 - chai: 5.1.2 + '@vitest/expect': 2.1.3 + '@vitest/mocker': 2.1.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) + '@vitest/pretty-format': 2.1.3 + '@vitest/runner': 2.1.3 + '@vitest/snapshot': 2.1.3 + '@vitest/spy': 2.1.3 + '@vitest/utils': 2.1.3 + chai: 5.1.1 debug: 4.3.7 - expect-type: 1.1.0 magic-string: 0.30.12 pathe: 1.1.2 std-env: 3.7.0 @@ -16989,8 +17440,47 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) - vite-node: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + vite-node: 2.1.3(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 18.19.50 + jsdom: 23.2.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vitest@2.1.5(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.81.0)(yaml@2.5.1): + dependencies: + '@vitest/expect': 2.1.5 + '@vitest/mocker': 2.1.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)) + '@vitest/pretty-format': 2.1.5 + '@vitest/runner': 2.1.5 + '@vitest/snapshot': 2.1.5 + '@vitest/spy': 2.1.5 + '@vitest/utils': 2.1.5 + chai: 5.1.2 + debug: 4.3.7 + expect-type: 1.1.0 + magic-string: 0.30.12 + pathe: 1.1.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) + vite-node: 2.1.5(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.19.50