diff --git a/.changeset/great-chairs-worry.md b/.changeset/great-chairs-worry.md new file mode 100644 index 000000000000..fbab08e17509 --- /dev/null +++ b/.changeset/great-chairs-worry.md @@ -0,0 +1,6 @@ +--- +'@astrojs/opentelemetry': minor +'astro': minor +--- + +Tracing hooks diff --git a/.github/workflows/preview-release.yml b/.github/workflows/preview-release.yml index b2134cc30bb4..1b264986880a 100644 --- a/.github/workflows/preview-release.yml +++ b/.github/workflows/preview-release.yml @@ -96,7 +96,7 @@ jobs: run: | packages=$(echo $AFFECTED_PACKAGES | jq -r '.[]' | tr '\n' ' ') if [ -n "$packages" ]; then - pnpm dlx pkg-pr-new publish --pnpm --compact --no-template $packages + pnpm dlx pkg-pr-new publish --pnpm --no-template $packages else echo "No affected packages to publish" fi diff --git a/API-bash.md b/API-bash.md new file mode 100644 index 000000000000..cc463b3fa3c1 --- /dev/null +++ b/API-bash.md @@ -0,0 +1,40 @@ +1. Pick a project: + +- Example: https://github.com/withastro/astro/tree/fryuni/tracing-hooks/examples/with-telemetry +- New project +- Existing project + +2. Use this version of Astro: https://pkg.pr.new/withastro/astro@fc5a126 +3. Add this integration: https://pkg.pr.new/withastro/astro/@astrojs/opentelemetry@fc5a126 +4. Add the integration to `astro.config.mjs/ts`: + +```ts +import node from '@astrojs/node'; +import opentelemetry from '@astrojs/opentelemetry'; +export default defineConfig({ + adapter: node({ mode: 'standalone' }), + integrations: [opentelemetry()], +}); +``` + +5. Start this docker compose: https://github.com/withastro/astro/blob/fryuni/tracing-hooks/examples/with-telemetry/docker-compose.yml + + Or run `otel-tui`, if you have that installed. + +6. Have fun! + +## See the data + +Traces will be available on http://localhost:16686/ + +Metrics will be availabe on http://localhost:9090/query + +Logs will be shown on the console + +## New APIs: + +```ts +import tracer from 'astro:otel:tracer'; +import meter from 'astro:otel:meter'; +import logger from 'astro:otel:logger'; +``` diff --git a/examples/with-telemetry/astro.config.mts b/examples/with-telemetry/astro.config.mts new file mode 100644 index 000000000000..a077f36c0372 --- /dev/null +++ b/examples/with-telemetry/astro.config.mts @@ -0,0 +1,18 @@ +import node from '@astrojs/node'; +import opentelemetry from '@astrojs/opentelemetry'; +import svelte from '@astrojs/svelte'; +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({ + output: 'server', + adapter: node({ + mode: 'standalone', + }), + integrations: [svelte(), opentelemetry()], + vite: { + build: { + sourcemap: true, + }, + }, +}); diff --git a/examples/with-telemetry/docker-compose.yml b/examples/with-telemetry/docker-compose.yml new file mode 100644 index 000000000000..eec6fb2b0319 --- /dev/null +++ b/examples/with-telemetry/docker-compose.yml @@ -0,0 +1,31 @@ +volumes: + developmentData: + driver: local + driver_opts: + type: none + device: ./data/development + +services: + jaeger: + image: jaegertracing/all-in-one:1.71.0 + ports: + - '6831:6831/udp' + - '16686:16686' + + prometheus: + image: prom/prometheus + volumes: + - './prometheus.yaml:/etc/prometheus/prometheus.yml' + ports: + - '9090:9090' + + otel: + image: otel/opentelemetry-collector-contrib:0.131.0 + command: --config /config/otel.yaml + volumes: + - ./otel.yaml:/config/otel.yaml:ro + ports: + - '4317:4317' + - '4318:4318' + - '8888:8888' + - '8889:8889' diff --git a/examples/with-telemetry/otel.yaml b/examples/with-telemetry/otel.yaml new file mode 100644 index 000000000000..7085feb41b00 --- /dev/null +++ b/examples/with-telemetry/otel.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + +processors: + batch: + +exporters: + otlp/jaeger: + endpoint: 'jaeger:4317' + tls: + insecure: true + + prometheus: + endpoint: '0.0.0.0:8889' + +service: + pipelines: + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp/jaeger] + + metrics: + receivers: [otlp] + processors: [batch] + exporters: [prometheus] + + telemetry: + metrics: + readers: + - pull: + exporter: + prometheus: + host: '0.0.0.0' + port: 8888 diff --git a/examples/with-telemetry/package.json b/examples/with-telemetry/package.json new file mode 100644 index 000000000000..3b323f5ba5be --- /dev/null +++ b/examples/with-telemetry/package.json @@ -0,0 +1,22 @@ +{ + "name": "@example/with-telemetry", + "type": "module", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro", + "server": "node dist/server/entry.mjs" + }, + "dependencies": { + "@astrojs/node": "^9.3.3", + "@astrojs/opentelemetry": "0.0.1", + "@astrojs/svelte": "^7.1.0", + "@opentelemetry/api": "^1", + "@opentelemetry/sdk-node": "^0.203.0", + "astro": "^5.12.8", + "svelte": "^5.25.7" + } +} diff --git a/examples/with-telemetry/prometheus.yaml b/examples/with-telemetry/prometheus.yaml new file mode 100644 index 000000000000..1468d6d145d7 --- /dev/null +++ b/examples/with-telemetry/prometheus.yaml @@ -0,0 +1,11 @@ +global: + scrape_interval: 10s +scrape_configs: + - job_name: otel_collector + static_configs: + - targets: + - otel:8888 + - job_name: app + static_configs: + - targets: + - otel:8889 diff --git a/examples/with-telemetry/public/favicon.svg b/examples/with-telemetry/public/favicon.svg new file mode 100644 index 000000000000..f157bd1c5e28 --- /dev/null +++ b/examples/with-telemetry/public/favicon.svg @@ -0,0 +1,9 @@ + + + + diff --git a/examples/with-telemetry/public/images/products/cereal.jpg b/examples/with-telemetry/public/images/products/cereal.jpg new file mode 100644 index 000000000000..35601a789c11 Binary files /dev/null and b/examples/with-telemetry/public/images/products/cereal.jpg differ diff --git a/examples/with-telemetry/public/images/products/muffins.jpg b/examples/with-telemetry/public/images/products/muffins.jpg new file mode 100644 index 000000000000..ced2d9a91264 Binary files /dev/null and b/examples/with-telemetry/public/images/products/muffins.jpg differ diff --git a/examples/with-telemetry/public/images/products/oats.jpg b/examples/with-telemetry/public/images/products/oats.jpg new file mode 100644 index 000000000000..54ae1ebdbcd6 Binary files /dev/null and b/examples/with-telemetry/public/images/products/oats.jpg differ diff --git a/examples/with-telemetry/public/images/products/yogurt.jpg b/examples/with-telemetry/public/images/products/yogurt.jpg new file mode 100644 index 000000000000..73c1b9a85b2e Binary files /dev/null and b/examples/with-telemetry/public/images/products/yogurt.jpg differ diff --git a/examples/with-telemetry/src/api.ts b/examples/with-telemetry/src/api.ts new file mode 100644 index 000000000000..b6d1bb392ad3 --- /dev/null +++ b/examples/with-telemetry/src/api.ts @@ -0,0 +1,90 @@ +import logger from 'astro:otel:logger'; +import meter from 'astro:otel:meter'; +import tracer from 'astro:otel:tracer'; + +export interface Product { + id: number; + name: string; + price: number; + image: string; +} + +interface User { + id: number; +} + +interface Cart { + items: Array<{ + id: number; + name: string; + count: number; + }>; +} + +const readCounter = meter.createCounter('api.reads'); + +async function getJson(incomingReq: Request, endpoint: string): Promise { + readCounter.add(1, { endpoint }); + + const origin = new URL(incomingReq.url).origin; + try { + const response = await fetch(`${origin}${endpoint}`, { + credentials: 'same-origin', + headers: incomingReq.headers, + }); + if (!response.ok) { + throw new Error(`GET ${endpoint} failed: ${response.statusText}`); + } + return (await response.json()) as Promise; + } catch (error) { + if (error instanceof DOMException || error instanceof TypeError) { + throw new Error(`GET ${endpoint} failed: ${error.message}`); + } + logger.emit({ + severityText: 'error', + eventName: 'api.error', + body: { + message: `GET ${endpoint} failed: ${error instanceof Error ? error.message : String(error)}`, + endpoint, + stack: error instanceof Error ? error.stack : undefined, + }, + }); + throw error; + } +} + +export function getProducts(incomingReq: Request): Promise { + return tracer.startActiveSpan('getProducts', () => + getJson(incomingReq, '/api/products'), + ); +} + +export function getProduct(incomingReq: Request, id: number): Promise { + return tracer.startActiveSpan('getProduct', () => + getJson(incomingReq, `/api/products/${id}`), + ); +} + +export function getUser(incomingReq: Request): Promise { + return tracer.startActiveSpan('getUser', () => getJson(incomingReq, `/api/user`)); +} + +export function getCart(incomingReq: Request): Promise { + return tracer.startActiveSpan('getCart', () => getJson(incomingReq, `/api/cart`)); +} + +export async function addToUserCart(id: number | string, name: string): Promise { + await fetch(`${location.origin}/api/cart`, { + credentials: 'same-origin', + method: 'POST', + mode: 'no-cors', + headers: { + 'Content-Type': 'application/json', + Cache: 'no-cache', + }, + body: JSON.stringify({ + id, + name, + }), + }); +} diff --git a/examples/with-telemetry/src/components/AddToCart.svelte b/examples/with-telemetry/src/components/AddToCart.svelte new file mode 100644 index 000000000000..9e6c8ba866e8 --- /dev/null +++ b/examples/with-telemetry/src/components/AddToCart.svelte @@ -0,0 +1,54 @@ + + + diff --git a/examples/with-telemetry/src/components/Cart.svelte b/examples/with-telemetry/src/components/Cart.svelte new file mode 100644 index 000000000000..5d4b7d2510c1 --- /dev/null +++ b/examples/with-telemetry/src/components/Cart.svelte @@ -0,0 +1,34 @@ + + + + + shopping_cart + {count} + diff --git a/examples/with-telemetry/src/components/Container.astro b/examples/with-telemetry/src/components/Container.astro new file mode 100644 index 000000000000..f1741156cce6 --- /dev/null +++ b/examples/with-telemetry/src/components/Container.astro @@ -0,0 +1,13 @@ +--- +const { tag = 'div' } = Astro.props; +const Tag = tag; +--- + + + diff --git a/examples/with-telemetry/src/components/Header.astro b/examples/with-telemetry/src/components/Header.astro new file mode 100644 index 000000000000..624a3b42ef2e --- /dev/null +++ b/examples/with-telemetry/src/components/Header.astro @@ -0,0 +1,49 @@ +--- +import { getCart } from '../api'; +import Cart from './Cart.svelte'; +import TextDecorationSkip from './TextDecorationSkip.astro'; + +const cart = await getCart(Astro.request); +const cartCount = cart.items.reduce((sum, item) => sum + item.count, 0); +--- + + + +
+

+ +
diff --git a/examples/with-telemetry/src/components/ProductListing.astro b/examples/with-telemetry/src/components/ProductListing.astro new file mode 100644 index 000000000000..14e6e1d8ca60 --- /dev/null +++ b/examples/with-telemetry/src/components/ProductListing.astro @@ -0,0 +1,70 @@ +--- +import type { Product } from '../api'; + +interface Props { + products: Product[]; +} + +const { products } = Astro.props; +--- + + + + diff --git a/examples/with-telemetry/src/components/TextDecorationSkip.astro b/examples/with-telemetry/src/components/TextDecorationSkip.astro new file mode 100644 index 000000000000..707027763167 --- /dev/null +++ b/examples/with-telemetry/src/components/TextDecorationSkip.astro @@ -0,0 +1,23 @@ +--- +interface Props { + text: string; +} + +const { text } = Astro.props; +const words = text.split(' '); +const last = words.length - 1; +--- + + +{ + words.map((word, i) => ( + + {word} + {i !== last && } + + )) +} diff --git a/examples/with-telemetry/src/middleware.ts b/examples/with-telemetry/src/middleware.ts new file mode 100644 index 000000000000..fef08c0e6d12 --- /dev/null +++ b/examples/with-telemetry/src/middleware.ts @@ -0,0 +1,15 @@ +import { defineMiddleware, sequence } from 'astro:middleware'; +import * as timers from 'node:timers/promises'; +import type { MiddlewareHandler } from 'astro'; + +const foo: MiddlewareHandler = async (_, next) => { + await timers.setTimeout(10); // Simulate some async operation + return next(); +}; + +const bar = defineMiddleware(async (_, next) => { + await timers.setTimeout(10); // Simulate some async operation + return next(); +}); + +export const onRequest = sequence(foo, ['bar', bar]); diff --git a/examples/with-telemetry/src/models/db.json b/examples/with-telemetry/src/models/db.json new file mode 100644 index 000000000000..76f9e4da3432 --- /dev/null +++ b/examples/with-telemetry/src/models/db.json @@ -0,0 +1,28 @@ +{ + "products": [ + { + "id": 1, + "name": "Cereal", + "price": 3.99, + "image": "/images/products/cereal.jpg" + }, + { + "id": 2, + "name": "Yogurt", + "price": 3.97, + "image": "/images/products/yogurt.jpg" + }, + { + "id": 3, + "name": "Rolled Oats", + "price": 2.89, + "image": "/images/products/oats.jpg" + }, + { + "id": 4, + "name": "Muffins", + "price": 4.39, + "image": "/images/products/muffins.jpg" + } + ] +} diff --git a/examples/with-telemetry/src/models/db.ts b/examples/with-telemetry/src/models/db.ts new file mode 100644 index 000000000000..0ec181f9acbf --- /dev/null +++ b/examples/with-telemetry/src/models/db.ts @@ -0,0 +1,6 @@ +import db from './db.json'; + +const products = db.products; +const productMap = new Map(products.map((product) => [product.id, product])); + +export { products, productMap }; diff --git a/examples/with-telemetry/src/models/session.ts b/examples/with-telemetry/src/models/session.ts new file mode 100644 index 000000000000..16dce00b4ef3 --- /dev/null +++ b/examples/with-telemetry/src/models/session.ts @@ -0,0 +1,2 @@ +// Normally this would be in a database. +export const userCartItems = new Map(); diff --git a/examples/with-telemetry/src/pages/api/cart.ts b/examples/with-telemetry/src/pages/api/cart.ts new file mode 100644 index 000000000000..8d64ec7d84de --- /dev/null +++ b/examples/with-telemetry/src/pages/api/cart.ts @@ -0,0 +1,38 @@ +import type { APIContext } from 'astro'; +import { userCartItems } from '../../models/session'; + +export function GET({ cookies }: APIContext) { + let userId = cookies.get('user-id')?.value; + + if (!userId || !userCartItems.has(userId)) { + return Response.json({ items: [] }); + } + let items = userCartItems.get(userId); + let array = Array.from(items.values()); + + return Response.json({ items: array }); +} + +interface AddToCartItem { + id: number; + name: string; +} + +export async function POST({ cookies, request }: APIContext) { + const item: AddToCartItem = await request.json(); + + let userId = cookies.get('user-id')?.value; + + if (!userCartItems.has(userId)) { + userCartItems.set(userId, new Map()); + } + + let cart = userCartItems.get(userId); + if (cart.has(item.id)) { + cart.get(item.id).count++; + } else { + cart.set(item.id, { id: item.id, name: item.name, count: 1 }); + } + + return Response.json({ ok: true }); +} diff --git a/examples/with-telemetry/src/pages/api/products.ts b/examples/with-telemetry/src/pages/api/products.ts new file mode 100644 index 000000000000..8bf02a03dd60 --- /dev/null +++ b/examples/with-telemetry/src/pages/api/products.ts @@ -0,0 +1,5 @@ +import { products } from '../../models/db'; + +export function GET() { + return new Response(JSON.stringify(products)); +} diff --git a/examples/with-telemetry/src/pages/api/products/[id].ts b/examples/with-telemetry/src/pages/api/products/[id].ts new file mode 100644 index 000000000000..6569ebb163af --- /dev/null +++ b/examples/with-telemetry/src/pages/api/products/[id].ts @@ -0,0 +1,16 @@ +import type { APIContext } from 'astro'; +import { productMap } from '../../../models/db'; + +export function GET({ params }: APIContext) { + const id = Number(params.id); + if (productMap.has(id)) { + const product = productMap.get(id); + + return new Response(JSON.stringify(product)); + } else { + return new Response(null, { + status: 400, + statusText: 'Not found', + }); + } +} diff --git a/examples/with-telemetry/src/pages/cart.astro b/examples/with-telemetry/src/pages/cart.astro new file mode 100644 index 000000000000..81dca933648d --- /dev/null +++ b/examples/with-telemetry/src/pages/cart.astro @@ -0,0 +1,51 @@ +--- +import { getCart } from '../api'; +import Container from '../components/Container.astro'; +import Header from '../components/Header.astro'; + +if (!Astro.cookies.get('user-id')) { + return Astro.redirect('/'); +} + +// They must be logged in. + +const user = { name: 'test' }; // getUser? +const cart = await getCart(Astro.request); +--- + + + + Cart | Online Store + + + +
+ + +

Cart

+

Hi {user.name}! Here are your cart items:

+ + + + + + + + + { + cart.items.map((item) => ( + + + + + )) + } + +
ItemCount
{item.name}{item.count}
+
+ + diff --git a/examples/with-telemetry/src/pages/index.astro b/examples/with-telemetry/src/pages/index.astro new file mode 100644 index 000000000000..caef48ec1e63 --- /dev/null +++ b/examples/with-telemetry/src/pages/index.astro @@ -0,0 +1,33 @@ +--- +import { getProducts } from '../api'; +import Container from '../components/Container.astro'; +import Header from '../components/Header.astro'; +import ProductListing from '../components/ProductListing.astro'; +import '../styles/common.css'; + +const products = await getProducts(Astro.request); +--- + + + + Online Store + + + +
+ + + +

Product Listing

+
+
+ + diff --git a/examples/with-telemetry/src/pages/login.astro b/examples/with-telemetry/src/pages/login.astro new file mode 100644 index 000000000000..6b909e734c76 --- /dev/null +++ b/examples/with-telemetry/src/pages/login.astro @@ -0,0 +1,58 @@ +--- +import Container from '../components/Container.astro'; +import Header from '../components/Header.astro'; +--- + + + + Online Store + + + + + +
+ + +

Login

+
+ + + + + + + +
+
+
+ + diff --git a/examples/with-telemetry/src/pages/login.form.async.ts b/examples/with-telemetry/src/pages/login.form.async.ts new file mode 100644 index 000000000000..94020d9c9b11 --- /dev/null +++ b/examples/with-telemetry/src/pages/login.form.async.ts @@ -0,0 +1,14 @@ +import type { APIContext, APIRoute } from 'astro'; + +export const POST: APIRoute = ({ cookies }: APIContext) => { + // add a new cookie + cookies.set('user-id', '1', { + path: '/', + maxAge: 2592000, + }); + + return Response.json({ + ok: true, + user: 1, + }); +}; diff --git a/examples/with-telemetry/src/pages/login.form.ts b/examples/with-telemetry/src/pages/login.form.ts new file mode 100644 index 000000000000..f3cd50db46c4 --- /dev/null +++ b/examples/with-telemetry/src/pages/login.form.ts @@ -0,0 +1,16 @@ +import type { APIContext } from 'astro'; + +export function POST({ cookies }: APIContext) { + // add a new cookie + cookies.set('user-id', '1', { + path: '/', + maxAge: 2592000, + }); + + return new Response(null, { + status: 301, + headers: { + Location: '/', + }, + }); +} diff --git a/examples/with-telemetry/src/pages/products/[id].astro b/examples/with-telemetry/src/pages/products/[id].astro new file mode 100644 index 000000000000..96fe3706e649 --- /dev/null +++ b/examples/with-telemetry/src/pages/products/[id].astro @@ -0,0 +1,45 @@ +--- +import { getProduct } from '../../api'; +import AddToCart from '../../components/AddToCart.svelte'; +import Container from '../../components/Container.astro'; +import Header from '../../components/Header.astro'; +import '../../styles/common.css'; + +const id = Number(Astro.params.id); +const product = await getProduct(Astro.request, id); +--- + + + + {product.name} | Online Store + + + +
+ + +

{product.name}

+
+ +
+ +

Description here...

+
+
+
+ + diff --git a/examples/with-telemetry/src/styles/common.css b/examples/with-telemetry/src/styles/common.css new file mode 100644 index 000000000000..9cd0c7e4d09d --- /dev/null +++ b/examples/with-telemetry/src/styles/common.css @@ -0,0 +1,3 @@ +body { + font-family: "GT America Standard", "Helvetica Neue", Helvetica, Arial, sans-serif; +} diff --git a/examples/with-telemetry/tsconfig.json b/examples/with-telemetry/tsconfig.json new file mode 100644 index 000000000000..8bf91d3bb997 --- /dev/null +++ b/examples/with-telemetry/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"] +} diff --git a/package.json b/package.json index 3807ef17dae6..3153e4ff5358 100644 --- a/package.json +++ b/package.json @@ -82,10 +82,13 @@ ] }, "onlyBuiltDependencies": [ - "esbuild", - "workerd", "@biomejs/biome", - "sharp" + "@tailwindcss/oxide", + "esbuild", + "oxc-resolver", + "protobufjs", + "sharp", + "workerd" ] } } diff --git a/packages/astro/src/container/index.ts b/packages/astro/src/container/index.ts index df400ae85ec6..08c12a520021 100644 --- a/packages/astro/src/container/index.ts +++ b/packages/astro/src/container/index.ts @@ -162,6 +162,7 @@ function createManifest( middleware: manifest?.middleware ?? middlewareInstance, key: createKey(), csp: manifest?.csp, + enableTracing: manifest?.enableTracing ?? false, }; } @@ -248,6 +249,7 @@ type AstroContainerManifest = Pick< | 'outDir' | 'cacheDir' | 'csp' + | 'enableTracing' >; type AstroContainerConstructor = { diff --git a/packages/astro/src/container/pipeline.ts b/packages/astro/src/container/pipeline.ts index 919edb0083b0..7edad1f1cb1c 100644 --- a/packages/astro/src/container/pipeline.ts +++ b/packages/astro/src/container/pipeline.ts @@ -1,5 +1,6 @@ import { type HeadElements, Pipeline, type TryRewriteResult } from '../core/base-pipeline.js'; import type { SinglePageBuiltModule } from '../core/build/types.js'; +import { sequence } from '../core/middleware/index.js'; import { createModuleScriptElement, createStylesheetElementSet, @@ -85,7 +86,7 @@ export class ContainerPipeline extends Pipeline { return Promise.resolve(componentInstance); }, renderers: this.manifest.renderers, - onRequest: this.resolvedMiddleware, + onRequest: sequence(...(this.resolvedMiddleware ?? [])), }); } diff --git a/packages/astro/src/core/app/types.ts b/packages/astro/src/core/app/types.ts index c736eda5eb4b..6fb8a36fe124 100644 --- a/packages/astro/src/core/app/types.ts +++ b/packages/astro/src/core/app/types.ts @@ -93,6 +93,7 @@ export type SSRManifest = { buildClientDir: string | URL; buildServerDir: string | URL; csp: SSRManifestCSP | undefined; + enableTracing: boolean; }; export type SSRActions = { diff --git a/packages/astro/src/core/base-pipeline.ts b/packages/astro/src/core/base-pipeline.ts index 1376b472f836..50c1ed45d0bd 100644 --- a/packages/astro/src/core/base-pipeline.ts +++ b/packages/astro/src/core/base-pipeline.ts @@ -3,7 +3,7 @@ import { NOOP_ACTIONS_MOD } from '../actions/noop-actions.js'; import type { ActionAccept, ActionClient } from '../actions/runtime/virtual/server.js'; import { createI18nMiddleware } from '../i18n/middleware.js'; import type { ComponentInstance } from '../types/astro.js'; -import type { MiddlewareHandler, RewritePayload } from '../types/public/common.js'; +import type { NamedMiddlewareHandler, RewritePayload } from '../types/public/common.js'; import type { RuntimeMode } from '../types/public/config.js'; import type { RouteData, @@ -17,7 +17,6 @@ import { ActionNotFoundError } from './errors/errors-data.js'; import { AstroError } from './errors/index.js'; import type { Logger } from './logger/core.js'; import { NOOP_MIDDLEWARE_FN } from './middleware/noop-middleware.js'; -import { sequence } from './middleware/sequence.js'; import { RouteCache } from './render/route-cache.js'; import { createDefaultRoutes } from './routing/default.js'; @@ -28,8 +27,8 @@ import { createDefaultRoutes } from './routing/default.js'; * Thus, a `Pipeline` is created once at process start and then used by every `RenderContext`. */ export abstract class Pipeline { - readonly internalMiddleware: MiddlewareHandler[]; - resolvedMiddleware: MiddlewareHandler | undefined = undefined; + readonly internalMiddlewares: NamedMiddlewareHandler[]; + resolvedMiddleware: NamedMiddlewareHandler[] | undefined = undefined; resolvedActions: SSRActions | undefined = undefined; constructor( @@ -68,12 +67,13 @@ export abstract class Pipeline { readonly actions = manifest.actions, ) { - this.internalMiddleware = []; + this.internalMiddlewares = []; // We do use our middleware only if the user isn't using the manual setup if (i18n?.strategy !== 'manual') { - this.internalMiddleware.push( + this.internalMiddlewares.push([ + 'i18', createI18nMiddleware(i18n, manifest.base, manifest.trailingSlash, manifest.buildFormat), - ); + ]); } } @@ -103,7 +103,7 @@ export abstract class Pipeline { * Resolves the middleware from the manifest, and returns the `onRequest` function. If `onRequest` isn't there, * it returns a no-op function */ - async getMiddleware(): Promise { + async getMiddleware(): Promise { if (this.resolvedMiddleware) { return this.resolvedMiddleware; } @@ -112,15 +112,15 @@ export abstract class Pipeline { else if (this.middleware) { const middlewareInstance = await this.middleware(); const onRequest = middlewareInstance.onRequest ?? NOOP_MIDDLEWARE_FN; - const internalMiddlewares = [onRequest]; + const internalMiddlewares: NamedMiddlewareHandler[] = [['onRequest', onRequest]]; if (this.manifest.checkOrigin) { // this middleware must be placed at the beginning because it needs to block incoming requests - internalMiddlewares.unshift(createOriginCheckMiddleware()); + internalMiddlewares.unshift(['checkMiddleware', createOriginCheckMiddleware()]); } - this.resolvedMiddleware = sequence(...internalMiddlewares); + this.resolvedMiddleware = internalMiddlewares; return this.resolvedMiddleware; } else { - this.resolvedMiddleware = NOOP_MIDDLEWARE_FN; + this.resolvedMiddleware = [['noop', NOOP_MIDDLEWARE_FN]]; return this.resolvedMiddleware; } } diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts index 511484bb17e7..d058f27fb25d 100644 --- a/packages/astro/src/core/build/generate.ts +++ b/packages/astro/src/core/build/generate.ts @@ -742,5 +742,6 @@ async function createBuildManifest( (settings.config.security?.checkOrigin && settings.buildOutput === 'server') ?? false, key, csp, + enableTracing: settings.config.experimental.enableTracing, }; } diff --git a/packages/astro/src/core/build/plugins/plugin-manifest.ts b/packages/astro/src/core/build/plugins/plugin-manifest.ts index 86d5aefd1702..d0cc4789719b 100644 --- a/packages/astro/src/core/build/plugins/plugin-manifest.ts +++ b/packages/astro/src/core/build/plugins/plugin-manifest.ts @@ -371,5 +371,6 @@ async function buildManifest( key: encodedKey, sessionConfig: settings.config.session, csp, + enableTracing: settings.config.experimental.enableTracing, }; } diff --git a/packages/astro/src/core/build/plugins/plugin-ssr.ts b/packages/astro/src/core/build/plugins/plugin-ssr.ts index c93e9df84528..2240a2b689ee 100644 --- a/packages/astro/src/core/build/plugins/plugin-ssr.ts +++ b/packages/astro/src/core/build/plugins/plugin-ssr.ts @@ -166,6 +166,7 @@ function generateSSRCode(adapter: AstroAdapter, middlewareId: string) { const edgeMiddleware = adapter?.adapterFeatures?.edgeMiddleware ?? false; const imports = [ + `import 'astro:initialize';`, `import { renderers } from '${RENDERERS_MODULE_ID}';`, `import * as serverEntrypointModule from '${ADAPTER_VIRTUAL_MODULE_ID}';`, `import { manifest as defaultManifest } from '${SSR_MANIFEST_VIRTUAL_MODULE_ID}';`, diff --git a/packages/astro/src/core/config/schemas/base.ts b/packages/astro/src/core/config/schemas/base.ts index 3b6d12f0d278..29305892b6ee 100644 --- a/packages/astro/src/core/config/schemas/base.ts +++ b/packages/astro/src/core/config/schemas/base.ts @@ -104,6 +104,7 @@ export const ASTRO_CONFIG_DEFAULTS = { csp: false, staticImportMetaEnv: false, chromeDevtoolsWorkspace: false, + enableTracing: false, }, } satisfies AstroUserConfig & { server: { open: boolean } }; @@ -510,6 +511,10 @@ export const AstroConfigSchema = z.object({ .boolean() .optional() .default(ASTRO_CONFIG_DEFAULTS.experimental.chromeDevtoolsWorkspace), + enableTracing: z + .boolean() + .optional() + .default(ASTRO_CONFIG_DEFAULTS.experimental.enableTracing), }) .strict( `Invalid or outdated experimental feature.\nCheck for incorrect spelling or outdated Astro version.\nSee https://docs.astro.build/en/reference/experimental-flags/ for a list of all current experiments.`, diff --git a/packages/astro/src/core/config/settings.ts b/packages/astro/src/core/config/settings.ts index 6e99c72a3931..1b8c1dd24d35 100644 --- a/packages/astro/src/core/config/settings.ts +++ b/packages/astro/src/core/config/settings.ts @@ -143,6 +143,7 @@ export function createBaseSettings(config: AstroConfig): AstroSettings { scripts: [], clientDirectives: getDefaultClientDirectives(), middlewares: { pre: [], post: [] }, + initializers: [], watchFiles: [], devToolbarApps: [], timer: new AstroTimer(), diff --git a/packages/astro/src/core/create-vite.ts b/packages/astro/src/core/create-vite.ts index 6a8bbdacd0d5..24d562a00589 100644 --- a/packages/astro/src/core/create-vite.ts +++ b/packages/astro/src/core/create-vite.ts @@ -35,6 +35,7 @@ import markdownVitePlugin from '../vite-plugin-markdown/index.js'; import astroScannerPlugin from '../vite-plugin-scanner/index.js'; import astroScriptsPlugin from '../vite-plugin-scripts/index.js'; import astroScriptsPageSSRPlugin from '../vite-plugin-scripts/page-ssr.js'; +import { vitePluginServerInitialize } from '../vite-plugin-server-initialize/index.js'; import { vitePluginSSRManifest } from '../vite-plugin-ssr-manifest/index.js'; import type { SSRManifest } from './app/types.js'; import type { Logger } from './logger/core.js'; @@ -179,6 +180,7 @@ export async function createVite( vitePluginServerIslands({ settings, logger }), astroContainer(), astroHmrReloadPlugin(), + vitePluginServerInitialize({ settings }), ], publicDir: fileURLToPath(settings.config.publicDir), root: fileURLToPath(settings.config.root), diff --git a/packages/astro/src/core/dev/container.ts b/packages/astro/src/core/dev/container.ts index e2da8d7c73fc..2ffe7819c0f3 100644 --- a/packages/astro/src/core/dev/container.ts +++ b/packages/astro/src/core/dev/container.ts @@ -165,5 +165,10 @@ export async function startContainer({ logger, }); + // Run initializers from the dev server + for (const initializer of settings.initializers) { + await viteServer.ssrLoadModule(initializer); + } + return devServerAddressInfo; } diff --git a/packages/astro/src/core/middleware/sequence.ts b/packages/astro/src/core/middleware/sequence.ts index 7c08136cdd5a..84b4a40e004a 100644 --- a/packages/astro/src/core/middleware/sequence.ts +++ b/packages/astro/src/core/middleware/sequence.ts @@ -1,4 +1,9 @@ -import type { MiddlewareHandler, RewritePayload } from '../../types/public/common.js'; +import { wrapWithTracing } from '../../runtime/server/tracing.js'; +import type { + MiddlewareHandler, + NamedMiddlewareHandler, + RewritePayload, +} from '../../types/public/common.js'; import type { APIContext } from '../../types/public/context.js'; import { ForbiddenRewrite } from '../errors/errors-data.js'; import { AstroError } from '../errors/index.js'; @@ -7,19 +12,39 @@ import { apiContextRoutesSymbol } from '../render-context.js'; import { setOriginPathname } from '../routing/rewrite.js'; import { defineMiddleware } from './index.js'; +type MiddlewareOrNamed = MiddlewareHandler | NamedMiddlewareHandler; + +function wrapMiddlewareWithTracing(name: string, handler: MiddlewareHandler): MiddlewareHandler { + return wrapWithTracing('middleware', handler, (context) => ({ + name, + pathname: context.url.pathname, + url: context.url, + request: context.request, + })); +} + // From SvelteKit: https://github.com/sveltejs/kit/blob/master/packages/kit/src/exports/hooks/sequence.js /** * * It accepts one or more middleware handlers and makes sure that they are run in sequence. */ -export function sequence(...handlers: MiddlewareHandler[]): MiddlewareHandler { - const filtered = handlers.filter((h) => !!h); +export function sequence(...handlers: MiddlewareOrNamed[]): MiddlewareHandler { + const filtered = handlers.filter((h) => !!h && (typeof h === 'function' || !!h[1])); const length = filtered.length; if (!length) { return defineMiddleware((_context, next) => { return next(); }); } + if (length === 1) { + const handler = filtered[0]; + return typeof handler === 'function' ? handler : handler[1]; + } + const tracedMiddlewares: MiddlewareHandler[] = filtered.map((h, index) => + typeof h === 'function' + ? wrapMiddlewareWithTracing(h.name || `sequence[${index}]`, h) + : wrapMiddlewareWithTracing(h[0] || `sequence[${index}]`, h[1]), + ); return defineMiddleware((context, next) => { /** * This variable is used to carry the rerouting payload across middleware functions. @@ -28,11 +53,9 @@ export function sequence(...handlers: MiddlewareHandler[]): MiddlewareHandler { return applyHandle(0, context); function applyHandle(i: number, handleContext: APIContext) { - const handle = filtered[i]; - // @ts-expect-error - // SAFETY: Usually `next` always returns something in user land, but in `sequence` we are actually - // doing a loop over all the `next` functions, and eventually we call the last `next` that returns the `Response`. - const result = handle(handleContext, async (payload?: RewritePayload) => { + const handle = tracedMiddlewares[i]; + + const result = handle(handleContext, async (payload?: RewritePayload): Promise => { if (i < length - 1) { if (payload) { let newRequest; @@ -86,6 +109,10 @@ export function sequence(...handlers: MiddlewareHandler[]): MiddlewareHandler { pipeline.manifest.buildFormat, ); } + + // @ts-expect-error + // SAFETY: Usually `next` always returns something in user land, but in `sequence` we are actually + // doing a loop over all the `next` functions, and eventually we call the last `next` that returns the `Response`. return applyHandle(i + 1, handleContext); } else { return next(payload ?? carriedPayload); diff --git a/packages/astro/src/core/middleware/vite-plugin.ts b/packages/astro/src/core/middleware/vite-plugin.ts index b24131a39dbf..fe184dfca436 100644 --- a/packages/astro/src/core/middleware/vite-plugin.ts +++ b/packages/astro/src/core/middleware/vite-plugin.ts @@ -53,6 +53,10 @@ export function vitePluginMiddleware({ settings }: { settings: AstroSettings }): const preMiddleware = createMiddlewareImports(settings.middlewares.pre, 'pre'); const postMiddleware = createMiddlewareImports(settings.middlewares.post, 'post'); + const userMiddlewareReference = userMiddlewareIsPresent + ? `['projectMiddleware', userOnRequest]${postMiddleware.sequenceCode ? ',' : ''}` + : ''; + const code = ` ${ userMiddlewareIsPresent @@ -64,7 +68,7 @@ ${preMiddleware.importsCode}${postMiddleware.importsCode} export const onRequest = sequence( ${preMiddleware.sequenceCode}${preMiddleware.sequenceCode ? ',' : ''} - ${userMiddlewareIsPresent ? `userOnRequest${postMiddleware.sequenceCode ? ',' : ''}` : ''} + ${userMiddlewareReference} ${postMiddleware.sequenceCode} ); `.trim(); @@ -76,7 +80,7 @@ export const onRequest = sequence( } function createMiddlewareImports( - entrypoints: string[], + entrypoints: { name: string; entrypoint: string }[], prefix: string, ): { importsCode: string; @@ -85,10 +89,11 @@ function createMiddlewareImports( let importsRaw = ''; let sequenceRaw = ''; let index = 0; - for (const entrypoint of entrypoints) { - const name = `_${prefix}_${index}`; - importsRaw += `import { onRequest as ${name} } from '${normalizePath(entrypoint)}';\n`; - sequenceRaw += `${index > 0 ? ',' : ''}${name}`; + for (const { name, entrypoint } of entrypoints) { + const ident = `_${prefix}_${index}`; + const traceName = `${prefix}:${name}`; + importsRaw += `import { onRequest as ${ident} } from '${normalizePath(entrypoint)}';\n`; + sequenceRaw += `${index > 0 ? ',' : ''}[${JSON.stringify(traceName)},${ident}]`; index++; } diff --git a/packages/astro/src/core/render-context.ts b/packages/astro/src/core/render-context.ts index b42c0fdbdf2b..90ed28e3514a 100644 --- a/packages/astro/src/core/render-context.ts +++ b/packages/astro/src/core/render-context.ts @@ -10,6 +10,7 @@ import { } from '../i18n/utils.js'; import { renderEndpoint } from '../runtime/server/endpoint.js'; import { renderPage } from '../runtime/server/index.js'; +import { wrapWithTracing } from '../runtime/server/tracing.js'; import type { ComponentInstance } from '../types/astro.js'; import type { MiddlewareHandler, Props, RewritePayload } from '../types/public/common.js'; import type { @@ -107,7 +108,7 @@ export class RenderContext { | 'shouldInjectCspMetaTags' > >): Promise { - const pipelineMiddleware = await pipeline.getMiddleware(); + const pipelineMiddlewares = middleware == null ? await pipeline.getMiddleware() : [middleware]; const pipelineActions = actions ?? (await pipeline.getActions()); setOriginPathname( request, @@ -118,7 +119,7 @@ export class RenderContext { return new RenderContext( pipeline, locals, - sequence(...pipeline.internalMiddleware, middleware ?? pipelineMiddleware), + sequence(...pipeline.internalMiddlewares, ...pipelineMiddlewares), pipelineActions, pathname, request, @@ -857,3 +858,19 @@ export class RenderContext { return (this.#preferredLocaleList ??= computePreferredLocaleList(request, i18n.locales)); } } + +RenderContext.prototype.render = wrapWithTracing( + 'routeRender', + RenderContext.prototype.render, + function (this: RenderContext, component: ComponentInstance) { + return { + rootModuleId: component.default?.moduleId, + request: this.request, + clientAddress: this.clientAddress, + pathname: this.pathname, + routeData: this.routeData, + url: this.url, + partial: this.partial, + }; + }, +); diff --git a/packages/astro/src/integrations/hooks.ts b/packages/astro/src/integrations/hooks.ts index 7e28a782d7d6..4df8cc9ffb70 100644 --- a/packages/astro/src/integrations/hooks.ts +++ b/packages/astro/src/integrations/hooks.ts @@ -285,9 +285,17 @@ export async function runHookConfigSetup({ order === 'pre' ? 'before' : 'after' } any application middleware you define.`, ); - updatedSettings.middlewares[order].push( - typeof entrypoint === 'string' ? entrypoint : fileURLToPath(entrypoint), - ); + updatedSettings.middlewares[order].push({ + name: integration.name, + entrypoint: typeof entrypoint === 'string' ? entrypoint : fileURLToPath(entrypoint), + }); + }, + experimental_addInitializer: (entrypoint) => { + if (typeof entrypoint === 'string') { + updatedSettings.initializers.push(entrypoint); + } else { + updatedSettings.initializers.push(fileURLToPath(entrypoint)); + } }, createCodegenDir: () => { const codegenDir = new URL(normalizeCodegenDir(integration.name), settings.dotAstroDir); diff --git a/packages/astro/src/manifest/virtual-module.ts b/packages/astro/src/manifest/virtual-module.ts index 7a44b822dfd4..3883cc72e5d2 100644 --- a/packages/astro/src/manifest/virtual-module.ts +++ b/packages/astro/src/manifest/virtual-module.ts @@ -99,6 +99,7 @@ function serializeServerConfig(manifest: SSRManifest): string { trailingSlash: manifest.trailingSlash, site: manifest.site, compressHTML: manifest.compressHTML, + enableTracing: manifest.enableTracing, }; const output = []; for (const [key, value] of Object.entries(serverConfig)) { diff --git a/packages/astro/src/runtime/server/astro-component.ts b/packages/astro/src/runtime/server/astro-component.ts index 20649b64dcb4..929404f7f633 100644 --- a/packages/astro/src/runtime/server/astro-component.ts +++ b/packages/astro/src/runtime/server/astro-component.ts @@ -1,6 +1,7 @@ import { AstroError, AstroErrorData } from '../../core/errors/index.js'; -import type { PropagationHint } from '../../types/public/internal.js'; +import type { PropagationHint, SSRResult } from '../../types/public/internal.js'; import type { AstroComponentFactory } from './render/index.js'; +import { wrapWithTracing } from './tracing.js'; function validateArgs(args: unknown[]): args is Parameters { if (args.length !== 3) return false; @@ -13,15 +14,26 @@ function baseCreateComponent( propagation?: PropagationHint, ): AstroComponentFactory { const name = moduleId?.split('/').pop()?.replace('.astro', '') ?? ''; - const fn = (...args: Parameters) => { - if (!validateArgs(args)) { - throw new AstroError({ - ...AstroErrorData.InvalidComponentArgs, - message: AstroErrorData.InvalidComponentArgs.message(name), - }); - } - return cb(...args); - }; + + const fn: AstroComponentFactory = wrapWithTracing( + 'componentFrontmatter', + (...args: Parameters) => { + if (!validateArgs(args)) { + throw new AstroError({ + ...AstroErrorData.InvalidComponentArgs, + message: AstroErrorData.InvalidComponentArgs.message(name), + }); + } + return cb(...args); + }, + (result: SSRResult) => ({ + name, + moduleId, + request: result.request, + response: result.response, + }), + ); + Object.defineProperty(fn, 'name', { value: name, writable: false }); // Add a flag to this callback to mark it as an Astro component fn.isAstroComponentFactory = true; diff --git a/packages/astro/src/runtime/server/render/astro/instance.ts b/packages/astro/src/runtime/server/render/astro/instance.ts index 9a9ff9266b1f..f528e7535365 100644 --- a/packages/astro/src/runtime/server/render/astro/instance.ts +++ b/packages/astro/src/runtime/server/render/astro/instance.ts @@ -1,4 +1,5 @@ import type { SSRResult } from '../../../../types/public/internal.js'; +import { wrapWithTracing } from '../../tracing.js'; import { isPromise } from '../../util.js'; import { renderChild } from '../any.js'; import type { RenderDestination } from '../common.js'; @@ -30,6 +31,12 @@ export class AstroComponentInstance { this.factory = factory; this.slotValues = {}; for (const name in slots) { + // add tracing to slots functions so each call is traced individually + slots[name] = wrapWithTracing('slotRender', slots[name], { + slotName: name, + componentModuleId: factory.moduleId, + componentName: factory.name, + }); // prerender the slots eagerly to make collection entries propagate styles and scripts let didRender = false; let value = slots[name](result); diff --git a/packages/astro/src/runtime/server/render/component.ts b/packages/astro/src/runtime/server/render/component.ts index 4c1078ce60a0..f5cc639854bf 100644 --- a/packages/astro/src/runtime/server/render/component.ts +++ b/packages/astro/src/runtime/server/render/component.ts @@ -10,6 +10,7 @@ import { markHTMLString } from '../escape.js'; import { extractDirectives, generateHydrateScript } from '../hydration.js'; import { serializeProps } from '../serialize.js'; import { shorthash } from '../shorthash.js'; +import { wrapWithTracing } from '../tracing.js'; import { isPromise } from '../util.js'; import { type AstroComponentFactory, isAstroComponentFactory } from './astro/factory.js'; import { renderTemplate } from './astro/index.js'; @@ -460,7 +461,7 @@ function renderAstroComponent( }; } -export function renderComponent( +function innerRenderComponent( result: SSRResult, displayName: string, Component: unknown, @@ -469,7 +470,7 @@ export function renderComponent( ): RenderInstance | Promise { if (isPromise(Component)) { return Component.catch(handleCancellation).then((x) => { - return renderComponent(result, displayName, x, props, slots); + return innerRenderComponent(result, displayName, x, props, slots); }); } @@ -502,6 +503,56 @@ export function renderComponent( } } +function traceableRenderComponent( + result: SSRResult, + displayName: string, + Component: unknown, + props: Record, + slots: any = {}, +): RenderInstance | Promise { + const renderInstance = innerRenderComponent(result, displayName, Component, props, slots); + + const moduleId = isAstroComponentFactory(Component) ? Component.moduleId : undefined; + const name = typeof Component === 'function' ? Component.name : displayName; + + const eventPayload = { + moduleId: moduleId, + componentName: name || displayName, + displayName: displayName, + request: result.request, + response: result.response, + }; + + if (isPromise(renderInstance)) { + return renderInstance.then((instance) => { + instance.render = wrapWithTracing('componentRender', instance.render, eventPayload); + + return instance; + }); + } + + renderInstance.render = wrapWithTracing('componentRender', renderInstance.render, eventPayload); + + return renderInstance; +} + +export const renderComponent = wrapWithTracing( + 'instantiateComponent', + traceableRenderComponent, + (result, displayName, Component) => { + const moduleId = isAstroComponentFactory(Component) ? Component.moduleId : undefined; + const name = typeof Component === 'function' ? Component.name : displayName; + + return { + moduleId: moduleId, + componentName: name || displayName, + displayName: displayName, + request: result.request, + response: result.response, + }; + }, +); + function normalizeProps(props: Record): Record { if (props['class:list'] !== undefined) { const value = props['class:list']; diff --git a/packages/astro/src/runtime/server/tracing.ts b/packages/astro/src/runtime/server/tracing.ts new file mode 100644 index 000000000000..d53872aebf15 --- /dev/null +++ b/packages/astro/src/runtime/server/tracing.ts @@ -0,0 +1,169 @@ +import type { ServerDeserializedManifest } from '../../types/public/index.js'; +import type { TraceEvent, TraceEventsPayloads, TraceListener } from '../../types/public/tracing.js'; + +export type { TraceEvent, TraceEventsPayloads, TraceListener }; + +// Use a global variable to store listeners to handle reloading when +// running the dev server. +const listeners: TraceListener[] = ((globalThis as any).__astro_tracing ??= []); + +/** + * Register a trace listener that will be called on every trace event. + * + * The listener can optionally be associated with an AbortSignal to + * automatically remove it when the signal is aborted. + * If the signal is already aborted or is aborting, the listener will not be registered. + * + * Listeners are called in the order they are registered. + * Each listener receives the trace event and a `next` callback. + * Calling the `next` callback will invoke the next listener in the chain, + * or the traced function if there are no more listeners. + * + * Not calling `next` means the next listener or the traced function will + * be called automatically after the current listener returns. + * Calling `next` multiple times will have no effect after the first call, + * the same value or error will be returned to the caller without invoking + * the next listener or the traced function again. + * + * Since trace events can describe both synchronous and asynchronous operations, + * listeners MUST invoke the `next` function synchronously if they ever do invoke it. + * A listener must not return a promise that can reject, such a promise rejection + * will not be handled and trigger an unhandled promise rejection error on the runtime. + * + * @param listener The listener function to register. + * @param signal An optional AbortSignal to remove the listener when aborted. + */ +export function onTraceEvent(listener: TraceListener, signal?: AbortSignal) { + if (signal) { + if (signal.aborted) { + // The signal is already aborted, the listener should never be called. + // Returning early avoids both possible scenarios: + // - The `abort` event is being processed and the listener would be removed depending on a race condition. + // - The `abort` signal was already processed and the listener will never be removed, triggering after the signal is aborted. + return; + } + signal.addEventListener('abort', () => { + listeners.splice(listeners.indexOf(listener), 1); + }); + } + + listeners.push(listener); +} + +/** + * Get the number of trace listeners currently registered. + * Primarily useful for tests to check how many listeners are active + * after some operation. + */ +export function getTraceListenersCount() { + return listeners.length; +} + +/** + * Clear all trace listeners. + * Primarily useful for tests to ensure no listeners are leaking between tests. + */ +export function clearTraceListeners() { + listeners.length = 0; +} + +/** + * A wrapper to call listeners in sequence, ensuring that each listener is + * called once and only once, even if some of them don't call the `next` callback + * or call it multiple times. + * + * This ensures that the presence of tracing listeners cannot interfere with + * other tracing listeners or the function being traced. + */ +function sequenceListeners(event: TraceEvent, fn: () => T, index = 0): T { + if (index >= listeners.length) { + return fn(); + } + + const listener = listeners[index]; + + let state: 'pending' | 'called' | 'failed' = 'pending'; + let resultValue: T; + let errorValue: unknown; + // Wrapper to ensure the callback is only called once + // but that always yields the same effect. + const next = () => { + switch (state) { + case 'pending': + try { + resultValue = sequenceListeners(event, fn, index + 1); + } catch (e) { + state = 'failed'; + errorValue = e; + throw e; + } + state = 'called'; + case 'called': + return resultValue!; + case 'failed': + throw errorValue; + } + }; + + try { + listener(event, () => { + const result = next(); + if (result instanceof Promise) { + // Return a promise that always resolve to void, but only once + // resultValue resolves. This allow tracing listeners to await + // the completion of the inner function without without having + // access to any internal values. + const hiddenResult = result.then(() => {}); + // Prevent unhandled promise rejections in case the inner promise fails. + hiddenResult.catch(() => { + /* ignore */ + }); + return hiddenResult; + } + }); + } catch { + // Ignore errors in listeners to avoid breaking the main flow. + } + + // Return the result of `fn`, calling next handles deduplication + // in case it was already called by the listener. + return next(); +} + +// TODO: Figure out why this module is being reported as unknown +const tracingEnabled = await import('astro:config/server' as any) + .then((m: ServerDeserializedManifest) => m.enableTracing) + // Tracing enabled in case of import errors to allow testing and + // dev environments outside of Vite. + // Once the feature is stabilized this flag wouldn't be needed since tracing + // always be enabled (disabling by not having listeners instead of a config flag). + .catch(() => true); + +export function wrapWithTracing< + This, + Args extends any[], + Return, + Event extends keyof TraceEventsPayloads, +>( + event: Event, + fn: (this: This, ...args: Args) => Return, + payload: TraceEventsPayloads[Event] | ((this: This, ...args: Args) => TraceEventsPayloads[Event]), +): (this: This, ...args: Args) => Return { + if (!tracingEnabled) { + return fn; + } + + return function (this: This, ...args: Args): Return { + if (listeners.length === 0) { + // Avoid constructing payloads and emitting events if no listeners are attached + return fn.apply(this, args); + } + + const eventArgs = { + event, + payload: typeof payload === 'function' ? payload.apply(this, args) : payload, + } as TraceEvent; + + return sequenceListeners(eventArgs, () => fn.apply(this, args)); + }; +} diff --git a/packages/astro/src/types/astro.ts b/packages/astro/src/types/astro.ts index a8eb60b6ea4a..bf7ceab0ffc0 100644 --- a/packages/astro/src/types/astro.ts +++ b/packages/astro/src/types/astro.ts @@ -29,6 +29,11 @@ export type SerializedRouteData = Omit< }; }; +type InjectedMiddleware = { + name: string; + entrypoint: string; +}; + type CspObject = Required>; export interface AstroSettings { @@ -50,7 +55,8 @@ export interface AstroSettings { */ clientDirectives: Map; devToolbarApps: (DevToolbarAppEntry | string)[]; - middlewares: { pre: string[]; post: string[] }; + middlewares: { pre: InjectedMiddleware[]; post: InjectedMiddleware[] }; + initializers: string[]; tsConfig: TSConfig | undefined; tsConfigPath: string | undefined; watchFiles: string[]; diff --git a/packages/astro/src/types/public/common.ts b/packages/astro/src/types/public/common.ts index ba85c3991359..0c17d139284d 100644 --- a/packages/astro/src/types/public/common.ts +++ b/packages/astro/src/types/public/common.ts @@ -111,6 +111,8 @@ export type MiddlewareHandler = ( next: MiddlewareNext, ) => Promise | Response | Promise | void; +export type NamedMiddlewareHandler = readonly [string, MiddlewareHandler]; + // NOTE: when updating this file with other functions, // remember to update `plugin-page.ts` too, to add that function as a no-op function. export type AstroMiddlewareInstance = { diff --git a/packages/astro/src/types/public/config.ts b/packages/astro/src/types/public/config.ts index 63ead016bf70..836a4068b35c 100644 --- a/packages/astro/src/types/public/config.ts +++ b/packages/astro/src/types/public/config.ts @@ -2483,6 +2483,22 @@ export interface ViteUserConfig extends OriginalViteUserConfig { * See the [experimental Chrome DevTools workspace feature documentation](https://docs.astro.build/en/reference/experimental-flags/chrome-devtools-workspace/) for more information. */ chromeDevtoolsWorkspace?: boolean; + + /** + * @name experimental.enableTracing + * @type {boolean} + * @default `false` + * @version 5.14 + * @description + * + * Enables tracing functionality for Astro internals. + * + * This allows users and integrations to subscribe to events describing internal + * Astro processes during rendering or build. + * + * Without this flag, no tracing events will be emitted even if subscribers are registered. + */ + enableTracing?: boolean; }; } diff --git a/packages/astro/src/types/public/integrations.ts b/packages/astro/src/types/public/integrations.ts index da08c0bd913f..2530e535afd0 100644 --- a/packages/astro/src/types/public/integrations.ts +++ b/packages/astro/src/types/public/integrations.ts @@ -188,6 +188,7 @@ export interface BaseIntegrationHooks { addClientDirective: (directive: ClientDirectiveConfig) => void; addDevToolbarApp: (entrypoint: DevToolbarAppEntry) => void; addMiddleware: (mid: AstroIntegrationMiddleware) => void; + experimental_addInitializer: (entrypoint: string | URL) => void; createCodegenDir: () => URL; logger: AstroIntegrationLogger; }) => void | Promise; diff --git a/packages/astro/src/types/public/manifest.ts b/packages/astro/src/types/public/manifest.ts index 83cbb6a09d81..fdecbe2e71f0 100644 --- a/packages/astro/src/types/public/manifest.ts +++ b/packages/astro/src/types/public/manifest.ts @@ -21,7 +21,7 @@ type DeserializedDirs = Extend; export type ServerDeserializedManifest = Pick< SSRManifest, - 'base' | 'trailingSlash' | 'compressHTML' | 'site' + 'base' | 'trailingSlash' | 'compressHTML' | 'site' | 'enableTracing' > & DeserializedDirs & { i18n: AstroConfig['i18n']; diff --git a/packages/astro/src/types/public/tracing.ts b/packages/astro/src/types/public/tracing.ts new file mode 100644 index 000000000000..dcc05a4535a6 --- /dev/null +++ b/packages/astro/src/types/public/tracing.ts @@ -0,0 +1,59 @@ +import type { AstroGlobal } from './context.js'; +import type { RouteData } from './internal.js'; + +export interface TraceEventsPayloads { + instantiateComponent: { + moduleId?: string; + componentName: string; + displayName: string; + request: AstroGlobal['request']; + response: AstroGlobal['response']; + }; + componentFrontmatter: { + moduleId?: string; + name: string; + request: AstroGlobal['request']; + response: AstroGlobal['response']; + }; + componentRender: { + moduleId?: string; + componentName: string; + displayName: string; + request: AstroGlobal['request']; + response: AstroGlobal['response']; + }; + slotRender: { + slotName: string; + componentModuleId?: string; + componentName: string; + }; + routeRender: { + rootModuleId?: string; + request: Request; + clientAddress?: string; + pathname: string; + routeData: RouteData; + url: URL; + partial?: boolean; + }; + middleware: { + name: string; + pathname: string; + url: URL; + request: Request; + }; + + // Allow for events to be added in a backwards-compatible way. + // Trace listeners must handle unknown events gracefully in order to be type-safe. + // TODO: Think of something that allows forward compatibility without losing type safety. + // [k: string]: Record; +} + +export type TraceEvent = { + [K in keyof TraceEventsPayloads]: { + event: K; + payload: TraceEventsPayloads[K]; + }; +}[keyof TraceEventsPayloads]; + +export type TraceListener = (event: TraceEvent, callback: () => void | Promise) => void; diff --git a/packages/astro/src/vite-plugin-astro-server/plugin.ts b/packages/astro/src/vite-plugin-astro-server/plugin.ts index 447e7369d916..766ec36a59e3 100644 --- a/packages/astro/src/vite-plugin-astro-server/plugin.ts +++ b/packages/astro/src/vite-plugin-astro-server/plugin.ts @@ -285,5 +285,6 @@ export function createDevelopmentManifest(settings: AstroSettings): SSRManifest }, sessionConfig: settings.config.session, csp, + enableTracing: settings.config.experimental.enableTracing ?? false, }; } diff --git a/packages/astro/src/vite-plugin-server-initialize/index.ts b/packages/astro/src/vite-plugin-server-initialize/index.ts new file mode 100644 index 000000000000..fcea206b405b --- /dev/null +++ b/packages/astro/src/vite-plugin-server-initialize/index.ts @@ -0,0 +1,23 @@ +import type { Plugin as VitePlugin } from 'vite'; +import type { AstroSettings } from '../types/astro.js'; + +const initializationVirtualModuleId = 'astro:initialize'; +const resolvedInitializationVirtualModuleId = '\0' + initializationVirtualModuleId; + +export function vitePluginServerInitialize({ settings }: { settings: AstroSettings }): VitePlugin { + return { + name: '@astrojs/vite-plugin-server-initialize', + resolveId(id) { + if (id === initializationVirtualModuleId) return resolvedInitializationVirtualModuleId; + }, + load(id) { + if (id !== resolvedInitializationVirtualModuleId) return; + + return settings.initializers.length === 0 + ? 'export {};' + : settings.initializers + .map((initializer) => `import ${JSON.stringify(initializer)};`) + .join('\n'); + }, + }; +} diff --git a/packages/astro/test/fixtures/tracing-integration/astro.config.mjs b/packages/astro/test/fixtures/tracing-integration/astro.config.mjs new file mode 100644 index 000000000000..9b823a138c25 --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/astro.config.mjs @@ -0,0 +1,15 @@ +import { defineConfig } from 'astro/config'; + +export default defineConfig({ + experimental: { + enableTracing: true, + }, + integrations: [{ + name: 'tracing-test', + hooks: { + 'astro:config:setup': ({ experimental_addInitializer }) => { + experimental_addInitializer('./src/tracing.ts'); + }, + }, + }], +}); diff --git a/packages/astro/test/fixtures/tracing-integration/package.json b/packages/astro/test/fixtures/tracing-integration/package.json new file mode 100644 index 000000000000..0668483cd118 --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/package.json @@ -0,0 +1,8 @@ +{ + "name": "@test/tracing-integration", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + } +} diff --git a/packages/astro/test/fixtures/tracing-integration/src/components/SlotWrapper.astro b/packages/astro/test/fixtures/tracing-integration/src/components/SlotWrapper.astro new file mode 100644 index 000000000000..2903ad59289e --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/src/components/SlotWrapper.astro @@ -0,0 +1,100 @@ +--- +export interface Props { + title: string; + className?: string; +} + +const { title, className = '' } = Astro.props; +--- + +
+
+

{title}

+ +
+ +
+ + +
+ +

Default main content

+
+
+
+ +
+ + + +
+
+ + diff --git a/packages/astro/test/fixtures/tracing-integration/src/components/TestComponent.astro b/packages/astro/test/fixtures/tracing-integration/src/components/TestComponent.astro new file mode 100644 index 000000000000..d4d820d77f0b --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/src/components/TestComponent.astro @@ -0,0 +1,89 @@ +--- +export interface Props { + title: string; + count?: number; + isActive?: boolean; +} + +const { title, count = 0, isActive = false } = Astro.props; + +// Some frontmatter logic to test frontmatter tracing +const computedValue = count * 2; +const statusText = isActive ? 'Active' : 'Inactive'; +const renderTime = new Date().toISOString(); +--- + +
+

{title}

+
+

Count: {count}

+

Computed Value: {computedValue}

+

Status: {statusText}

+

Rendered at: {renderTime}

+ + {count > 0 && ( +
+

This content is conditionally rendered

+
    + {Array.from({ length: Math.min(count, 5) }, (_, i) => ( +
  • Item {i + 1}
  • + ))} +
+
+ )} + + +

Default slot content

+
+
+
+ + diff --git a/packages/astro/test/fixtures/tracing-integration/src/pages/api/test.ts b/packages/astro/test/fixtures/tracing-integration/src/pages/api/test.ts new file mode 100644 index 000000000000..2f90af7f7570 --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/src/pages/api/test.ts @@ -0,0 +1,9 @@ +import type { APIRoute } from 'astro'; + +export const GET: APIRoute = async () => { + return Response.json({ message: 'GET request processed', }) +}; + +export const POST: APIRoute = async () => { + return Response.json({ message: 'POST request processed', }) +}; diff --git a/packages/astro/test/fixtures/tracing-integration/src/pages/component-test.astro b/packages/astro/test/fixtures/tracing-integration/src/pages/component-test.astro new file mode 100644 index 000000000000..cc6778d61e21 --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/src/pages/component-test.astro @@ -0,0 +1,55 @@ +--- +// Import a test component to trigger component tracing +import TestComponent from '../components/TestComponent.astro'; + +const props = { + title: "Component Test", + count: 42, + isActive: true +}; +--- + + + + + + + + Tracing Test - Component + + +
+

Component Tracing Test

+

This page tests component instantiation and rendering tracing.

+ +
+

Test Component

+ +
+ +
+

Multiple Components

+ + + +
+ +
+

Nested Components

+
+ + + +
+
+
+ + + + diff --git a/packages/astro/test/fixtures/tracing-integration/src/pages/index.astro b/packages/astro/test/fixtures/tracing-integration/src/pages/index.astro new file mode 100644 index 000000000000..7042c6602c6b --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/src/pages/index.astro @@ -0,0 +1,23 @@ + + + + + + + Tracing Test - Index + + +
+

Hello from Astro Tracing Test!

+ +
+ + diff --git a/packages/astro/test/fixtures/tracing-integration/src/pages/slots-test.astro b/packages/astro/test/fixtures/tracing-integration/src/pages/slots-test.astro new file mode 100644 index 000000000000..3e85b8b242b9 --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/src/pages/slots-test.astro @@ -0,0 +1,113 @@ +--- +import TestComponent from '../components/TestComponent.astro'; +import SlotWrapper from '../components/SlotWrapper.astro'; +--- + + + + + + + + Tracing Test - Slots + + +
+

Slots Tracing Test

+

This page tests slot rendering tracing.

+ +
+

Default Slot

+ +

This content goes into the default slot

+ +
+
+ +
+

Named Slots

+ + +

Header Slot Content

+

This is in the header slot

+
+ + +
    +
  • Sidebar Item 1
  • +
  • Sidebar Item 2
  • +
  • Sidebar Item 3
  • +
+
+ +

Main content goes here (default slot)

+ + + +

Footer slot content

+ Generated at: {new Date().toISOString()} +
+
+
+ +
+

Nested Slots

+ + + +

Nested Header

+
+ + +

Content inside nested component slot

+
+ + +

Nested Footer

+
+
+
+
+ +
+

Multiple Components with Slots

+
+ + + + + + + + + + + +
+
+
+ + + + diff --git a/packages/astro/test/fixtures/tracing-integration/src/tracing.ts b/packages/astro/test/fixtures/tracing-integration/src/tracing.ts new file mode 100644 index 000000000000..773b85d62151 --- /dev/null +++ b/packages/astro/test/fixtures/tracing-integration/src/tracing.ts @@ -0,0 +1,10 @@ +import { onTraceEvent } from 'astro/runtime/server/tracing.js'; + +onTraceEvent((event) => { + const events = globalThis[Symbol.for('astro.tracing.test')]; + if (Array.isArray(events)) { + events.push(event); + } else { + process.stderr.write('No global tracing array found'); + } +}); diff --git a/packages/astro/test/tracing-integration.test.js b/packages/astro/test/tracing-integration.test.js new file mode 100644 index 000000000000..d21df0d19692 --- /dev/null +++ b/packages/astro/test/tracing-integration.test.js @@ -0,0 +1,121 @@ +import assert from 'node:assert/strict'; +import { after, before, beforeEach, describe, it } from 'node:test'; +import { loadFixture } from './test-utils.js'; + +describe('Tracing Integration', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + + const events = (globalThis[Symbol.for('astro.tracing.test')] = []); + + beforeEach(() => { + events.length = 0; + }); + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/tracing-integration/', + }); + }); + + describe('Development mode tracing', () => { + let devServer; + before(async () => { + devServer = await fixture.startDevServer(); + }); + + after(async () => { + await devServer.stop(); + }); + + it('should trace route rendering', async () => { + const response = await fixture.fetch('/'); + assert.equal(response.status, 200); + + const eventCount = {}; + events.forEach((e) => { + eventCount[e.event] = (eventCount[e.event] || 0) + 1; + }); + + assert.deepStrictEqual(eventCount, { + routeRender: 1, + middleware: 2, + componentFrontmatter: 1, + }); + + const routeEvents = events.filter((e) => e.event === 'routeRender'); + assert.equal(routeEvents.length, 1, 'Should render a single route'); + + const routeEvent = routeEvents[0]; + assert.equal(routeEvent.payload.pathname, '/'); + assert.ok(routeEvent.payload.request); + assert.ok(routeEvent.payload.url); + assert.ok(routeEvent.payload.routeData); + }); + + it('should trace component instantiation and rendering', async () => { + const response = await fixture.fetch('/component-test'); + assert.equal(response.status, 200); + + const eventCount = {}; + events.forEach((e) => { + eventCount[e.event] = (eventCount[e.event] || 0) + 1; + }); + + assert.deepStrictEqual(eventCount, { + routeRender: 1, + middleware: 2, + componentFrontmatter: 7, + instantiateComponent: 6, + componentRender: 6, + slotRender: 1, + }); + }); + + it('should trace slot rendering', async () => { + const response = await fixture.fetch('/slots-test'); + assert.equal(response.status, 200); + + const eventCount = {}; + events.forEach((e) => { + eventCount[e.event] = (eventCount[e.event] || 0) + 1; + }); + + assert.deepStrictEqual(eventCount, { + routeRender: 1, + middleware: 2, + componentFrontmatter: 14, + instantiateComponent: 18, + componentRender: 18, + slotRender: 13, + }); + + const slotEvents = events + .filter((e) => e.event === 'slotRender') + .filter((e) => e.payload.slotName === 'default'); + + assert.ok(slotEvents.length > 0, 'Should have default slot events'); + }); + }); + + describe('Build mode tracing', () => { + it('should trace during static build', async () => { + await fixture.build(); + + const routeEvents = events.filter((e) => e.event === 'routeRender'); + assert.equal(routeEvents.length, 4, 'Should have one route render for each route'); + + routeEvents.forEach((event) => { + assert.ok(event.payload.request, 'Should have request object'); + assert.ok(event.payload.url, 'Should have URL object'); + assert.ok(event.payload.pathname, 'Should have pathname'); + assert.ok(event.payload.routeData, 'Should have route data'); + }); + + const componentEvents = events.filter( + (e) => e.event === 'instantiateComponent' || e.event === 'componentRender', + ); + assert.ok(componentEvents.length > 0, 'Should have component events during build'); + }); + }); +}); diff --git a/packages/astro/test/units/runtime/tracing-edge-cases.test.js b/packages/astro/test/units/runtime/tracing-edge-cases.test.js new file mode 100644 index 000000000000..554f5f1bbf33 --- /dev/null +++ b/packages/astro/test/units/runtime/tracing-edge-cases.test.js @@ -0,0 +1,243 @@ +import * as assert from 'node:assert/strict'; +import { afterEach, describe, it } from 'node:test'; +import { + clearTraceListeners, + onTraceEvent, + wrapWithTracing, +} from '../../../dist/runtime/server/tracing.js'; + +describe('Tracing Edge Cases', () => { + afterEach(() => { + clearTraceListeners(); + }); + + describe('Memory management', () => { + it('should properly clean up listeners with AbortSignal', () => { + const controllers = []; + let calls = []; + + // Register multiple listeners with different abort signals + for (let i = 0; i < 10; i++) { + const controller = new AbortController(); + controllers.push(controller); + const currentIndex = i; + + onTraceEvent(() => { + calls.push(currentIndex); + }, controller.signal); + } + + const wrappedFn = wrapWithTracing('componentRender', () => 'test', { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + // Execute once - should call all 10 listeners + wrappedFn(); + assert.deepEqual(calls, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); + + // Abort half the controllers + for (let i = 0; i < 5; i++) { + controllers[i].abort(); + } + + // Execute again - should only call remaining 5 listeners + calls = []; + wrappedFn(); + assert.deepEqual(calls, [5, 6, 7, 8, 9]); + + // Abort remaining controllers + for (let i = 5; i < 10; i++) { + controllers[i].abort(); + } + + // Execute again - should call no listeners + calls = []; + wrappedFn(); + assert.deepEqual(calls, []); + }); + + it('should handle immediately aborting after registration', () => { + const controllers = []; + let calls = []; + + // Immediately abort half of the listeners after registering + for (let i = 0; i < 30; i++) { + const currentIndex = i; + const controller = new AbortController(); + controllers.push(controller); + + onTraceEvent(() => { + calls.push(currentIndex); + }, controller.signal); + + // Abort every other listener immediately + if (i % 2 === 0) { + controller.abort(); + } + } + + const wrappedFn = wrapWithTracing('componentRender', () => 'test', { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + wrappedFn(); + + // Should only execute the non-aborted listeners (50) + assert.deepEqual(calls, [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]); + }); + }); + + describe('Error resilience', () => { + it('should handle listeners that throw errors', () => { + let workingCalled = false; + const workingListener = () => { + workingCalled = true; + }; + + const errorListener1 = () => { + throw new Error('Error in listener 1'); + }; + + const errorListener2 = () => { + throw new TypeError('Type error in listener 2'); + }; + + const errorListener3 = () => { + throw 'String error'; + }; + + onTraceEvent(errorListener1); + onTraceEvent(errorListener2); + onTraceEvent(workingListener); + onTraceEvent(errorListener3); + + const fn = () => 'result'; + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + // Should not throw despite multiple listener errors + const result = wrappedFn(); + assert.deepEqual(result, 'result'); + assert.ok(workingCalled, 'Working listener should have been called'); + }); + + it('should preserve original function errors even with listener errors', () => { + onTraceEvent(() => { + throw new Error('Listener error'); + }); + + const errorFn = () => { + throw new Error('Original function error'); + }; + + const wrappedFn = wrapWithTracing('componentRender', errorFn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + assert.throws(wrappedFn, { + message: 'Original function error', + }); + }); + }); + + describe('Listeners edge cases', () => { + it('should handle listener registration during execution', () => { + let calls = []; + + const staticListener = () => { + calls.push('static'); + + // Register another listener during execution + if (calls.length === 1) { + onTraceEvent(() => { + calls.push('dynamic'); + }); + } + }; + + onTraceEvent(staticListener); + + const fn = () => 'result'; + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + wrappedFn(); + assert.deepEqual(calls, ['static', 'dynamic']); + }); + + it('should handle listener registration during signal abort handling', () => { + const controller = new AbortController(); + + let calls = []; + + controller.signal.addEventListener('abort', () => { + onTraceEvent(() => { + calls.push('called'); + }, controller.signal); + }); + + const fn = () => 'result'; + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + wrappedFn(); + assert.deepEqual(calls, [], 'Listener with aborting signal should be ignored'); + }); + + it('should handle listeners calling next multiple times', () => { + let valuesFromNext = []; + + onTraceEvent((_event, next) => { + valuesFromNext.push(next()); + valuesFromNext.push(next()); + }); + + let internalCalls = 0; + const fn = () => { + internalCalls++; + return { message: 'result' }; + }; + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + wrappedFn(); + assert.equal(internalCalls, 1, 'Original function should be called only once'); + assert.ok( + Object.is(valuesFromNext[0], valuesFromNext[1]), + 'Both next() calls should return the same value', + ); + }); + }); +}); diff --git a/packages/astro/test/units/runtime/tracing.test.js b/packages/astro/test/units/runtime/tracing.test.js new file mode 100644 index 000000000000..924eb914a8c7 --- /dev/null +++ b/packages/astro/test/units/runtime/tracing.test.js @@ -0,0 +1,470 @@ +import * as assert from 'node:assert/strict'; +import { afterEach, beforeEach, describe, it } from 'node:test'; +import { + clearTraceListeners, + onTraceEvent, + wrapWithTracing, +} from '../../../dist/runtime/server/tracing.js'; + +describe('Tracing API', () => { + afterEach(() => { + clearTraceListeners(); + }); + + describe('onTraceEvent', () => { + it('should register a trace listener', () => { + let listenerCalled = false; + onTraceEvent(() => { + listenerCalled = true; + }); + + const wrappedFn = wrapWithTracing('componentRender', () => 'test', { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + const result = wrappedFn(); + assert.equal(result, 'test', 'Wrapped function should return correct result'); + assert.ok(listenerCalled, 'Listener should have been called'); + }); + + it('should support AbortSignal for listener cleanup', () => { + const controller = new AbortController(); + let listenerCalled = false; + + onTraceEvent(() => { + listenerCalled = true; + }, controller.signal); + + controller.abort(); + + const wrappedFn = wrapWithTracing('componentRender', () => 'test', { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + wrappedFn(); + + assert.ok(!listenerCalled, 'Listener should not have been called after abort'); + }); + + it('should not register listener if signal is already aborted', () => { + const abortedSignal = AbortSignal.abort(); + + let listenerCalled = false; + + onTraceEvent(() => { + listenerCalled = true; + }, abortedSignal); + + const wrappedFn = wrapWithTracing('componentRender', () => 'test', { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + wrappedFn(); + + assert.ok(!listenerCalled, 'Listener should not have been registered with aborted signal'); + }); + }); + + describe('wrapWithTracing', () => { + it('should execute function without listeners', () => { + const fn = () => 'test result'; + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + const result = wrappedFn(); + assert.equal(result, 'test result'); + }); + + it('should call listeners with correct event data', () => { + const events = []; + onTraceEvent((event) => { + events.push(event); + }); + + const payload = { + moduleId: 'test.astro', + componentName: 'TestComponent', + displayName: 'Test Component', + request: new Request('http://localhost/test'), + response: new Response(), + }; + + const fn = () => 'result'; + const wrappedFn = wrapWithTracing('componentRender', fn, payload); + + const result = wrappedFn(); + + assert.equal(result, 'result'); + assert.deepEqual(events, [{ event: 'componentRender', payload }]); + }); + + it('should support dynamic payload generation', () => { + const events = []; + onTraceEvent((event) => { + events.push(event); + }); + + const fn = function (arg1, arg2) { + return `${arg1}-${arg2}`; + }; + + const payloadFn = function (arg1, arg2) { + return { + moduleId: `module-${arg1}`, + componentName: arg2, + displayName: arg2, + request: new Request('http://localhost/'), + response: new Response(), + }; + }; + + const wrappedFn = wrapWithTracing('componentRender', fn, payloadFn); + + const result = wrappedFn('test', 'Component'); + + assert.equal(result, 'test-Component'); + assert.deepEqual(events, [ + { + event: 'componentRender', + payload: payloadFn('test', 'Component'), + }, + ]); + }); + + it('should preserve function context (this)', () => { + let listenerCalled = false; + onTraceEvent(() => { + listenerCalled = true; + }); + + const obj = { + value: 42, + method: wrapWithTracing( + 'componentRender', + function () { + return this.value; + }, + { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }, + ), + }; + + const result = obj.method(); + assert.equal(result, 42); + assert.ok(listenerCalled, 'Listener should have been called'); + }); + + it('should handle async functions', async () => { + let listenerCalled = false; + onTraceEvent(() => { + listenerCalled = true; + }); + + const asyncFn = async () => { + await new Promise((resolve) => setTimeout(resolve, 10)); + return 'async result'; + }; + + const wrappedFn = wrapWithTracing('componentRender', asyncFn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + const result = await wrappedFn(); + assert.equal(result, 'async result'); + assert.ok(listenerCalled, 'Listener should have been called'); + }); + + it('should handle function arguments correctly', () => { + let listenerCalled = false; + onTraceEvent(() => { + listenerCalled = true; + }); + + const fn = (a, b, c) => a + b + c; + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + const result = wrappedFn(1, 2, 3); + assert.equal(result, 6); + assert.ok(listenerCalled, 'Listener should have been called'); + }); + }); + + describe('Multiple listeners', () => { + it('should call all listeners in order', () => { + const callOrder = []; + + const listener1 = (_event, callback) => { + callOrder.push('listener1-start'); + const result = callback(); + callOrder.push('listener1-end'); + return result; + }; + + const listener2 = (_event, callback) => { + callOrder.push('listener2-start'); + const result = callback(); + callOrder.push('listener2-end'); + return result; + }; + + onTraceEvent(listener1); + onTraceEvent(listener2); + + const fn = () => { + callOrder.push('function-executed'); + return 'result'; + }; + + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + const result = wrappedFn(); + + assert.equal(result, 'result'); + assert.deepEqual(callOrder, [ + 'listener1-start', + 'listener2-start', + 'function-executed', + 'listener2-end', + 'listener1-end', + ]); + }); + }); + + describe('Event types', () => { + const events = []; + beforeEach(() => { + events.length = 0; + onTraceEvent((event) => { + events.push(event); + }); + }); + + it('should handle instantiateComponent events', () => { + const payload = { + moduleId: 'Component.astro', + componentName: 'Component', + displayName: 'Component', + request: new Request('http://localhost/'), + response: new Response(), + }; + + const wrappedFn = wrapWithTracing('instantiateComponent', () => 'result', payload); + wrappedFn(); + + assert.equal(events[0].event, 'instantiateComponent'); + assert.deepEqual(events[0].payload, payload); + }); + + it('should handle componentFrontmatter events', () => { + const payload = { + moduleId: 'Component.astro', + name: 'Component', + request: new Request('http://localhost/'), + response: new Response(), + }; + + const wrappedFn = wrapWithTracing('componentFrontmatter', () => 'result', payload); + wrappedFn(); + + assert.equal(events[0].event, 'componentFrontmatter'); + assert.deepEqual(events[0].payload, payload); + }); + + it('should handle slotRender events', () => { + const payload = { + slotName: 'default', + componentModuleId: 'Component.astro', + componentName: 'Component', + }; + + const wrappedFn = wrapWithTracing('slotRender', () => 'result', payload); + wrappedFn(); + + assert.equal(events[0].event, 'slotRender'); + assert.deepEqual(events[0].payload, payload); + }); + + it('should handle routeRender events', () => { + const payload = { + rootModuleId: 'page.astro', + request: new Request('http://localhost/test'), + clientAddress: '127.0.0.1', + pathname: '/test', + routeData: { route: '/test' }, + url: new URL('http://localhost/test'), + partial: false, + }; + + const wrappedFn = wrapWithTracing('routeRender', () => 'result', payload); + wrappedFn(); + + assert.equal(events[0].event, 'routeRender'); + assert.deepEqual(events[0].payload, payload); + }); + + it('should handle middleware events', () => { + const payload = { + name: 'auth', + pathname: '/protected', + url: new URL('http://localhost/protected'), + request: new Request('http://localhost/protected'), + }; + + const wrappedFn = wrapWithTracing('middleware', () => 'result', payload); + wrappedFn(); + + assert.equal(events[0].event, 'middleware'); + assert.deepEqual(events[0].payload, payload); + }); + + it('should skip event creation when no listeners are registered', () => { + clearTraceListeners(); // Ensure no listeners are present + let payloadFnCalled = false; + + const payloadFn = () => { + payloadFnCalled = true; + return { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }; + }; + + const fn = () => 'result'; + const wrappedFn = wrapWithTracing('componentRender', fn, payloadFn); + + const result = wrappedFn(); + + assert.equal(result, 'result'); + assert.equal(payloadFnCalled, false); // Payload function should not be called + }); + }); + + describe('Callback behavior', () => { + it('should handle async callbacks', async () => { + let callbackResult; + + const asyncListener = async (_event, callback) => { + callbackResult = await callback(); + }; + + onTraceEvent(asyncListener); + + const asyncFn = async () => { + await new Promise((resolve) => setTimeout(resolve, 10)); + return 'async result'; + }; + + const wrappedFn = wrapWithTracing('componentRender', asyncFn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + const result = await wrappedFn(); + assert.equal(result, 'async result'); + assert.strictEqual( + callbackResult, + void 0, + 'Wrapped function result should not be visible to listener', + ); + }); + + it('should handle callback called multiple times', () => { + let callCount = 0; + + const multiCallListener = (_event, callback) => { + // Call callback multiple times + callback(); + callback(); + const result = callback(); + callCount++; + return result; + }; + + onTraceEvent(multiCallListener); + + let fnCallCount = 0; + const fn = () => { + fnCallCount++; + return 'result'; + }; + + const wrappedFn = wrapWithTracing('componentRender', fn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + const result = wrappedFn(); + + assert.equal(result, 'result'); + assert.equal(callCount, 1); + assert.equal(fnCallCount, 1); // Function should only be called once + }); + + it('should preserve errors thrown by wrapped function', () => { + onTraceEvent(() => {}); + + const errorFn = () => { + throw new Error('Function error'); + }; + + const wrappedFn = wrapWithTracing('componentRender', errorFn, { + moduleId: 'test.astro', + componentName: 'Test', + displayName: 'Test', + request: new Request('http://localhost/'), + response: new Response(), + }); + + assert.throws(wrappedFn, { + message: 'Function error', + }); + }); + }); +}); diff --git a/packages/integrations/opentelemetry/README.md b/packages/integrations/opentelemetry/README.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/integrations/opentelemetry/env.d.ts b/packages/integrations/opentelemetry/env.d.ts new file mode 100644 index 000000000000..2870766d4e77 --- /dev/null +++ b/packages/integrations/opentelemetry/env.d.ts @@ -0,0 +1,25 @@ +/// + +declare module 'astro:otel-reexport:api' { + import * as api from '@opentelemetry/api'; + export = api; +} + +declare module 'astro:otel-reexport:semantic-conventions' { + import * as api from '@opentelemetry/semantic-conventions'; + export = api; +} + +declare module 'astro:otel-reexport:node' { + import { + HttpInstrumentation, + UndiciInstrumentation, + FetchInstrumentation, + } from './otel-reexport/node.js'; + export { HttpInstrumentation, UndiciInstrumentation, FetchInstrumentation }; +} + +declare module 'astro:otel-internal' { + import { Instrumentation } from '@opentelemetry/instrumentation'; + export const instrumentations: Instrumentation[]; +} diff --git a/packages/integrations/opentelemetry/index.d.ts b/packages/integrations/opentelemetry/index.d.ts new file mode 100644 index 000000000000..6ee9412007aa --- /dev/null +++ b/packages/integrations/opentelemetry/index.d.ts @@ -0,0 +1,4 @@ +import './virtual.js'; +import integration from './src/index.js'; + +export default integration; diff --git a/packages/integrations/opentelemetry/package.json b/packages/integrations/opentelemetry/package.json new file mode 100644 index 000000000000..45dcee61f6f2 --- /dev/null +++ b/packages/integrations/opentelemetry/package.json @@ -0,0 +1,75 @@ +{ + "name": "@astrojs/opentelemetry", + "description": "Integration to export telemetry from an Astro site to OpenTelemetry.", + "version": "0.0.1", + "type": "module", + "types": "./dist/index.d.ts", + "author": "withastro", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/withastro/astro.git", + "directory": "packages/integrations/opentelemetry" + }, + "keywords": [ + "astro-integration", + "astro-component", + "observability", + "opentelemetry", + "telemetry", + "metrics" + ], + "bugs": "https://github.com/withastro/astro/issues", + "homepage": "https://docs.astro.build/en/guides/integrations-guide/opentelemetry/", + "exports": { + ".": { + "types": "./index.d.ts", + "default": "./dist/index.js" + }, + "./otel-reexport/*": "./dist/otel-reexport/*.js", + "./package.json": "./package.json" + }, + "files": [ + "dist", + "virtual.d.ts", + "index.d.ts" + ], + "scripts": { + "build": "astro-scripts build \"src/**/*.ts\" && tsc", + "build:ci": "astro-scripts build \"src/**/*.ts\"", + "dev": "astro-scripts dev \"src/**/*.ts\"" + }, + "dependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api-logs": "^0.203.0", + "@opentelemetry/semantic-conventions": "^1.36.0", + "@opentelemetry/instrumentation": "^0.203.0", + "@opentelemetry/instrumentation-http": "^0.203.0", + "@opentelemetry/instrumentation-fetch": "^0.203.0", + "@opentelemetry/instrumentation-undici": "^0.14.0" + }, + "devDependencies": { + "@opentelemetry/sdk-node": "^0.203.0", + "astro": "workspace:*", + "astro-scripts": "workspace:*", + "vite": "^6.3.4" + }, + "peerDependencies": { + "astro": "*", + "@opentelemetry/sdk-node": "^0.203.0" + }, + "peerDependenciesMeta": { + "astro": { + "optional": false + }, + "@opentelemetry/sdk-node": { + "optional": true + } + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + }, + "publishConfig": { + "provenance": true + } +} diff --git a/packages/integrations/opentelemetry/src/index.ts b/packages/integrations/opentelemetry/src/index.ts new file mode 100644 index 000000000000..ef03f9fdf43b --- /dev/null +++ b/packages/integrations/opentelemetry/src/index.ts @@ -0,0 +1,122 @@ +import { fileURLToPath } from 'node:url'; +import type { AstroIntegration } from 'astro'; +import { AstroError } from 'astro/errors'; +import { z } from 'astro/zod'; +import { otelReexport } from './vite/otel-export.js'; +import { otelHelper } from './vite/otel-helper.js'; +import { otelInternalApis } from './vite/otel-internal.js'; + +const optionsSchema = z + .object({ + /** + * The OpenTelemetry API initialization module to use. + * This should be a path to a module that configures the global context, meter, tracer and logger providers. + * + * If not specified, the integration will try to determine the correct one based on the adapter. + * If set to `false`, no API initialization will be performed, only the instruments will be registered. + */ + apiInitialization: z.union([z.string(), z.literal(false)]).optional(), + + /** + * Module configuring OpenTelemetry instrumentation. + * + * This should be a path to a module that exports an array of `Instrumentation` instances from + * `@opentelemetry/instrumentation` as the default export. + * It will be loaded after the API initialization module (if any) and before the hook telemetry module. + * + * This can be used to configure library instrumentations with environment patching. + */ + instrumentationModule: z.string().optional(), + + /** + * The module specifier prefix to use for re-exporting OpenTelemetry APIs. + * + * This should be set by integrations that wrap this OpenTelemetry integration to ensure imports + * from virtual modules can resolve to transitive dependencies. + * + * Default: `@astrojs/opentelemetry/otel-reexport` + */ + reexportPrefix: z.string().optional().default('@astrojs/opentelemetry/otel-reexport'), + }) + .optional() + .default({}); + +const adapterModule: Record = { + '@astrojs/node': import.meta.resolve('./initialization/node.js'), +}; + +export default function openTelemetry(options?: z.input): AstroIntegration { + const parsedOptions = optionsSchema.parse(options); + + return { + name: '@astrojs/opentelemetry', + hooks: { + 'astro:config:setup': async (params) => { + const { command, config, updateConfig, experimental_addInitializer, logger } = params; + + if (command !== 'dev' && command !== 'build') { + // This integration is only relevant for dev and build commands + return; + } + + logger.debug('Setting up OpenTelemetry for Astro...'); + + updateConfig({ + vite: { + plugins: [ + otelHelper(), + otelReexport({ logger, reexportPrefix: parsedOptions.reexportPrefix }), + otelInternalApis({ + logger, + instrumentationModule: parsedOptions.instrumentationModule?.startsWith('.') + ? fileURLToPath(new URL(parsedOptions.instrumentationModule, config.root)) + : parsedOptions.instrumentationModule, + }), + ], + }, + }); + + if (command === 'dev') { + // Node module loading will deduplicate this initialization + // in case the dev server is restarted within the same process. + await import('./initialization/dev.js'); + } else if (parsedOptions.apiInitialization === false) { + logger.info( + 'OpenTelemetry API initialization is disabled. Only instrumentation will be registered.', + ); + } else { + const adapterName = config.adapter?.name; + + if (!adapterName) { + throw new AstroError( + 'OpenTelemetry integration requires an adapter to be configured.', + // TODO: Link to docs on hint + ); + } + + const adapterInitializer = adapterModule[adapterName]; + + if (parsedOptions.apiInitialization && adapterInitializer) { + logger.info( + `Overriding initialization for the "${adapterName}" adapter with "${parsedOptions.apiInitialization}".`, + ); + } + + const initializer = parsedOptions.apiInitialization || adapterInitializer; + + if (!initializer) { + throw new AstroError( + `OpenTelemetry integration doesn't provide automatic initialization for the "${adapterName}" adapter. You must provide a custom API initialization module or explicitly disable API initialization.`, + // TODO: Link to docs on hint + ); + } + + experimental_addInitializer(initializer); + } + + logger.info('Registering OpenTelemetry hook telemetry module.'); + experimental_addInitializer(import.meta.resolve('./initialization/hook-telemetry.js')); + }, + }, + }; +} diff --git a/packages/integrations/opentelemetry/src/initialization/dev.ts b/packages/integrations/opentelemetry/src/initialization/dev.ts new file mode 100644 index 000000000000..440361be2f12 --- /dev/null +++ b/packages/integrations/opentelemetry/src/initialization/dev.ts @@ -0,0 +1,25 @@ +import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch'; +import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici'; +import { NodeSDK, tracing } from '@opentelemetry/sdk-node'; + +process.env.OTEL_PROPAGATORS ??= 'tracecontext,baggage,b3'; +process.env.OTEL_TRACES_EXPORTER ??= 'otlp'; +process.env.OTEL_METRICS_EXPORTER ??= 'otlp,prometheus'; +process.env.OTEL_LOGS_EXPORTER ??= 'otlp,console'; + +const sdk = new NodeSDK({ + autoDetectResources: true, + serviceName: 'astro', + // Always trace requests if the server is running directly. + // It a proxy is running in front of the server and it has already + // made a decision to trace the request or not, follow that decision. + sampler: new tracing.ParentBasedSampler({ + root: new tracing.AlwaysOnSampler(), + }), + instrumentations: [ + new UndiciInstrumentation({ enabled: true }), + new FetchInstrumentation({ enabled: true }), + ], +}); + +sdk.start(); diff --git a/packages/integrations/opentelemetry/src/initialization/hook-telemetry.ts b/packages/integrations/opentelemetry/src/initialization/hook-telemetry.ts new file mode 100644 index 000000000000..6612942a89e6 --- /dev/null +++ b/packages/integrations/opentelemetry/src/initialization/hook-telemetry.ts @@ -0,0 +1,89 @@ +import * as api from 'astro:otel-reexport:api'; +import * as sc from 'astro:otel-reexport:semantic-conventions'; +import { onTraceEvent, type TraceEvent } from 'astro/runtime/server/tracing.js'; + +const PACKAGE_VERSION = process.env.PACKAGE_VERSION ?? 'development'; +const tracer = api.trace.getTracer('@astrojs/opentelemetry', PACKAGE_VERSION); + +function getEventAttributes(event: TraceEvent): api.Attributes { + switch (event.event) { + case 'instantiateComponent': + return { + 'astro.component.displayName': event.payload.displayName, + 'astro.component.name': event.payload.componentName, + 'astro.component.module': event.payload.moduleId, + }; + case 'componentFrontmatter': + return { + 'astro.component.name': event.payload.name, + 'astro.component.module': event.payload.moduleId, + }; + case 'componentRender': + return { + 'astro.component.displayName': event.payload.displayName, + 'astro.component.name': event.payload.componentName, + 'astro.component.module': event.payload.moduleId, + }; + case 'slotRender': + return { + 'astro.component.name': event.payload.componentName, + 'astro.component.module': event.payload.componentModuleId, + 'astro.slot.name': event.payload.slotName, + }; + case 'routeRender': + return { + 'astro.route.rootModuleId': event.payload.rootModuleId, + 'astro.route.type': event.payload.routeData.type, + 'astro.partial': event.payload.partial, + [sc.ATTR_CLIENT_ADDRESS]: event.payload.clientAddress, + [sc.ATTR_URL_FULL]: event.payload.url.toString(), + [sc.ATTR_URL_PATH]: event.payload.pathname, + [sc.ATTR_HTTP_ROUTE]: event.payload.routeData.route, + [sc.ATTR_HTTP_REQUEST_METHOD]: event.payload.request.method, + }; + case 'middleware': + return { 'astro.middleware.name': event.payload.name }; + default: + return {}; + } +} + +onTraceEvent((event: TraceEvent, cb: () => T): T => { + return tracer.startActiveSpan( + event.event, + { + attributes: getEventAttributes(event), + kind: api.SpanKind.SERVER, + }, + (span): T => { + try { + const res = cb(); + if (res instanceof Promise) { + return res.finally(() => { + span.end(); + }) as T; + } + + span.setStatus({ code: api.SpanStatusCode.OK }).end(); + return res; + } catch (error) { + if (error instanceof Error) { + span.recordException({ + name: error.name, + stack: error.stack, + message: error.message, + }); + } + + span + .setStatus({ + code: api.SpanStatusCode.ERROR, + message: error instanceof Error ? error.message : String(error), + }) + .end(); + + throw error; + } + }, + ); +}); diff --git a/packages/integrations/opentelemetry/src/initialization/node.ts b/packages/integrations/opentelemetry/src/initialization/node.ts new file mode 100644 index 000000000000..e1b925f834d6 --- /dev/null +++ b/packages/integrations/opentelemetry/src/initialization/node.ts @@ -0,0 +1,38 @@ +import { site } from 'astro:config/server'; +import { instrumentations } from 'astro:otel-internal'; +import { + FetchInstrumentation, + HttpInstrumentation, + UndiciInstrumentation, +} from 'astro:otel-reexport:node'; +import { NodeSDK, tracing } from '@opentelemetry/sdk-node'; + +process.env.OTEL_PROPAGATORS ??= 'tracecontext,baggage,b3'; +process.env.OTEL_TRACES_EXPORTER ??= 'otlp'; +process.env.OTEL_METRICS_EXPORTER ??= 'otlp'; +process.env.OTEL_LOGS_EXPORTER ??= 'otlp,console'; + +const sdk = new NodeSDK({ + autoDetectResources: true, + serviceName: site || 'astro', + // Always trace requests if the server is running directly. + // It a proxy is running in front of the server and it has already + // made a decision to trace the request or not, follow that decision. + sampler: new tracing.ParentBasedSampler({ + root: new tracing.AlwaysOnSampler(), + }), + instrumentations: [ + new HttpInstrumentation({ + enabled: true, + serverName: site || 'astro', + enableSyntheticSourceDetection: true, + requireParentforIncomingSpans: false, + requireParentforOutgoingSpans: true, + }), + new UndiciInstrumentation({ enabled: true }), + new FetchInstrumentation({ enabled: true }), + ...instrumentations, + ], +}); + +sdk.start(); diff --git a/packages/integrations/opentelemetry/src/otel-reexport/api-logs.ts b/packages/integrations/opentelemetry/src/otel-reexport/api-logs.ts new file mode 100644 index 000000000000..908d70eeb96d --- /dev/null +++ b/packages/integrations/opentelemetry/src/otel-reexport/api-logs.ts @@ -0,0 +1 @@ +export * from '@opentelemetry/api-logs'; diff --git a/packages/integrations/opentelemetry/src/otel-reexport/api.ts b/packages/integrations/opentelemetry/src/otel-reexport/api.ts new file mode 100644 index 000000000000..b4780dccd2a5 --- /dev/null +++ b/packages/integrations/opentelemetry/src/otel-reexport/api.ts @@ -0,0 +1 @@ +export * from '@opentelemetry/api'; diff --git a/packages/integrations/opentelemetry/src/otel-reexport/node.ts b/packages/integrations/opentelemetry/src/otel-reexport/node.ts new file mode 100644 index 000000000000..ee3693629fcf --- /dev/null +++ b/packages/integrations/opentelemetry/src/otel-reexport/node.ts @@ -0,0 +1,3 @@ +export { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch'; +export { HttpInstrumentation } from '@opentelemetry/instrumentation-http'; +export { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici'; diff --git a/packages/integrations/opentelemetry/src/otel-reexport/semantic-conventions.ts b/packages/integrations/opentelemetry/src/otel-reexport/semantic-conventions.ts new file mode 100644 index 000000000000..877a35668a9d --- /dev/null +++ b/packages/integrations/opentelemetry/src/otel-reexport/semantic-conventions.ts @@ -0,0 +1 @@ +export * from '@opentelemetry/semantic-conventions'; diff --git a/packages/integrations/opentelemetry/src/vite/otel-export.ts b/packages/integrations/opentelemetry/src/vite/otel-export.ts new file mode 100644 index 000000000000..1a4aa55465f5 --- /dev/null +++ b/packages/integrations/opentelemetry/src/vite/otel-export.ts @@ -0,0 +1,56 @@ +import type { AstroIntegrationLogger } from 'astro'; +import type { Plugin } from 'vite'; + +export function otelReexport({ + logger, + reexportPrefix, +}: { + logger: AstroIntegrationLogger; + reexportPrefix: string; +}): Plugin { + return { + // All OpenTelemetry dependencies have to be externalized due + // to how they handles internal state relying on global variables + // and singletons. Vite cannot handle this properly and breaks + // the OpenTelemetry tracking otherwise. + // This serves as a workaround for conflicting expectations and restrictions between + // strict dependency management, vite and OpenTelemetry. + name: '@astrojs/opentelemetry/otel-reexport', + enforce: 'pre', + config() { + return { + optimizeDeps: { + exclude: ['@opentelemetry/api', '@opentelemetry/api-logs'], + }, + }; + }, + async resolveId(id) { + if (id.startsWith(reexportPrefix) || id.startsWith('@opentelemetry/')) { + logger.debug(`Externalizing OpenTelemetry dependency: ${id}`); + const resolvedId = await this.resolve(id); + + return ( + resolvedId && { + ...resolvedId, + external: true, + } + ); + } + + if (id.startsWith('astro:otel-reexport:')) { + const reexportName = id.slice('astro:otel-reexport:'.length); + logger.debug(`Rewriting OpenTelemetry re-export: ${reexportName}`); + + const baseId = `${reexportPrefix}/${reexportName}`; + const resolvedId = await this.resolve(baseId); + + return ( + resolvedId && { + ...resolvedId, + external: true, + } + ); + } + }, + }; +} diff --git a/packages/integrations/opentelemetry/src/vite/otel-helper.ts b/packages/integrations/opentelemetry/src/vite/otel-helper.ts new file mode 100644 index 000000000000..14ee2cb8af84 --- /dev/null +++ b/packages/integrations/opentelemetry/src/vite/otel-helper.ts @@ -0,0 +1,62 @@ +import { URLSearchParams } from 'node:url'; +import type { Plugin } from 'vite'; + +const LOGGER_ID = 'astro:otel:logger'; +const TRACER_ID = 'astro:otel:tracer'; +const METER_ID = 'astro:otel:meter'; + +const LOGGER_RESOLVED_ID = '\0' + LOGGER_ID; +const TRACER_RESOLVED_ID = '\0' + TRACER_ID; +const METER_RESOLVED_ID = '\0' + METER_ID; + +const resolveMapping: Record = { + [LOGGER_ID]: LOGGER_RESOLVED_ID, + [TRACER_ID]: TRACER_RESOLVED_ID, + [METER_ID]: METER_RESOLVED_ID, +}; + +export function otelHelper(): Plugin { + return { + name: '@astrojs/opentelemetry/otel-helper', + enforce: 'pre', + async resolveId(id, importer) { + const resolved = resolveMapping[id]; + if (!resolved) return null; + + return `${resolved}?${new URLSearchParams({ importer: importer || '' })}`; + }, + load(id) { + if (!Object.values(resolveMapping).some((resolvedId) => id.startsWith(resolvedId))) { + return null; + } + + const [resolvedId, query] = id.split('?'); + const component = resolvedId.slice('\0astro:otel:'.length); + const params = new URLSearchParams(query); + const importer = params.get('importer') || 'unknown'; + + switch (component) { + case 'logger': + return ` +import { logs } from 'astro:otel-reexport:api-logs'; +const logger = logs.getLogger(${JSON.stringify(importer)}); +export default logger; + `.trim(); + case 'tracer': + return ` +import { trace } from 'astro:otel-reexport:api'; +const tracer = trace.getTracer(${JSON.stringify(importer)}); +export default tracer; + `.trim(); + case 'meter': + return ` +import { metrics } from 'astro:otel-reexport:api'; +const meter = metrics.getMeter(${JSON.stringify(importer)}); +export default meter; + `.trim(); + default: + return null; + } + }, + }; +} diff --git a/packages/integrations/opentelemetry/src/vite/otel-internal.ts b/packages/integrations/opentelemetry/src/vite/otel-internal.ts new file mode 100644 index 000000000000..a93d595c9d15 --- /dev/null +++ b/packages/integrations/opentelemetry/src/vite/otel-internal.ts @@ -0,0 +1,34 @@ +import type { AstroIntegrationLogger } from 'astro'; +import type { Plugin } from 'vite'; + +const MODULE_ID = 'astro:otel-internal'; +const RESOLVED_ID = '\0' + MODULE_ID; + +export function otelInternalApis({ + instrumentationModule, +}: { + instrumentationModule?: string; + logger: AstroIntegrationLogger; +}): Plugin { + return { + name: '@astrojs/opentelemetry/internal', + resolveId(id) { + if (id === MODULE_ID) return RESOLVED_ID; + }, + load(id) { + if (id !== RESOLVED_ID) return; + + const parts: string[] = []; + + if (instrumentationModule) { + parts.push( + `export const instrumentations = await import(${JSON.stringify(instrumentationModule)}).then(m => m.default);`, + ); + } else { + parts.push(`export const instrumentations = [];`); + } + + return parts.join('\n'); + }, + }; +} diff --git a/packages/integrations/opentelemetry/tsconfig.json b/packages/integrations/opentelemetry/tsconfig.json new file mode 100644 index 000000000000..c152f18f8f55 --- /dev/null +++ b/packages/integrations/opentelemetry/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../../tsconfig.base.json", + "include": ["src", "env.d.ts"], + "compilerOptions": { + "outDir": "./dist" + } +} diff --git a/packages/integrations/opentelemetry/virtual.d.ts b/packages/integrations/opentelemetry/virtual.d.ts new file mode 100644 index 000000000000..51fcf71042bb --- /dev/null +++ b/packages/integrations/opentelemetry/virtual.d.ts @@ -0,0 +1,17 @@ +declare module 'astro:otel:logger' { + import { Logger } from '@opentelemetry/api-logs'; + const logger: Logger; + export default logger; +} + +declare module 'astro:otel:tracer' { + import { Tracer } from '@opentelemetry/api'; + const tracer: Tracer; + export default tracer; +} + +declare module 'astro:otel:meter' { + import { Meter } from '@opentelemetry/api'; + const meter: Meter; + export default meter; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 65178e0a0b07..9ecb65c74dc4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,22 +27,22 @@ importers: version: 0.5.1 '@changesets/cli': specifier: ^2.29.6 - version: 2.29.6(@types/node@18.19.123) + version: 2.29.7(@types/node@18.19.120) '@types/node': specifier: ^18.19.115 - version: 18.19.123 + version: 18.19.120 esbuild: specifier: 0.25.5 version: 0.25.5 eslint: specifier: ^9.34.0 - version: 9.34.0(jiti@2.5.1) + version: 9.35.0(jiti@2.5.1) eslint-plugin-regexp: specifier: ^2.10.0 - version: 2.10.0(eslint@9.34.0(jiti@2.5.1)) + version: 2.10.0(eslint@9.35.0(jiti@2.5.1)) knip: specifier: 5.61.3 - version: 5.61.3(@types/node@18.19.123)(typescript@5.9.2) + version: 5.61.3(@types/node@18.19.120)(typescript@5.9.2) only-allow: specifier: ^1.2.1 version: 1.2.1 @@ -66,7 +66,7 @@ importers: version: 5.9.2 typescript-eslint: specifier: ^8.42.0 - version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) benchmark: dependencies: @@ -109,10 +109,10 @@ importers: devDependencies: '@codspeed/vitest-plugin': specifier: 4.0.1 - version: 4.0.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 4.0.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) benchmark/packages/adapter: dependencies: @@ -192,7 +192,7 @@ importers: version: 18.3.1(react@18.3.1) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) devDependencies: '@types/react': specifier: ^18.3.24 @@ -256,7 +256,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.21 version: 3.5.21(typescript@5.9.2) @@ -319,7 +319,7 @@ importers: version: link:../../packages/astro svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 examples/framework-vue: dependencies: @@ -373,7 +373,7 @@ importers: version: link:../../packages/astro svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 examples/starlog: dependencies: @@ -382,7 +382,7 @@ importers: version: link:../../packages/astro sass: specifier: ^1.92.0 - version: 1.92.0 + version: 1.92.1 sharp: specifier: ^0.34.3 version: 0.34.3 @@ -391,7 +391,7 @@ importers: devDependencies: '@types/node': specifier: ^18.17.8 - version: 18.19.123 + version: 18.19.120 astro: specifier: ^5.13.7 version: link:../../packages/astro @@ -445,7 +445,7 @@ importers: version: link:../../packages/integrations/mdx '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.12(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 4.1.13(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) '@types/canvas-confetti': specifier: ^1.9.0 version: 1.9.0 @@ -457,7 +457,31 @@ importers: version: 1.9.3 tailwindcss: specifier: ^4.1.12 - version: 4.1.12 + version: 4.1.13 + + examples/with-telemetry: + dependencies: + '@astrojs/node': + specifier: ^9.3.3 + version: link:../../packages/integrations/node + '@astrojs/opentelemetry': + specifier: 0.0.1 + version: link:../../packages/integrations/opentelemetry + '@astrojs/svelte': + specifier: ^7.1.0 + version: link:../../packages/integrations/svelte + '@opentelemetry/api': + specifier: ^1 + version: 1.9.0 + '@opentelemetry/sdk-node': + specifier: ^0.203.0 + version: 0.203.0(@opentelemetry/api@1.9.0) + astro: + specifier: ^5.12.8 + version: link:../../packages/astro + svelte: + specifier: ^5.25.7 + version: 5.38.8 examples/with-vitest: dependencies: @@ -466,7 +490,7 @@ importers: version: link:../../packages/astro vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) packages/astro: dependencies: @@ -490,7 +514,7 @@ importers: version: 1.1.0 '@rollup/pluginutils': specifier: ^5.2.0 - version: 5.2.0(rollup@4.50.0) + version: 5.3.0(rollup@4.50.1) acorn: specifier: ^8.15.0 version: 8.15.0 @@ -526,7 +550,7 @@ importers: version: 2.0.2 devalue: specifier: ^5.1.1 - version: 5.3.2 + version: 5.1.1 diff: specifier: ^5.2.0 version: 5.2.0 @@ -571,7 +595,7 @@ importers: version: 4.1.5 magic-string: specifier: ^0.30.18 - version: 0.30.18 + version: 0.30.19 magicast: specifier: ^0.3.5 version: 0.3.5 @@ -628,16 +652,16 @@ importers: version: 5.0.0 unstorage: specifier: ^1.17.0 - version: 1.17.0(@netlify/blobs@10.0.10)(@vercel/functions@2.2.13) + version: 1.17.1(@netlify/blobs@10.0.10)(@vercel/functions@2.2.13) vfile: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) vitefu: specifier: ^1.1.1 - version: 1.1.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 1.1.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) xxhash-wasm: specifier: ^1.1.0 version: 1.1.0 @@ -731,7 +755,7 @@ importers: version: 3.2.0 node-mocks-http: specifier: ^1.17.2 - version: 1.17.2(@types/node@22.18.0) + version: 1.17.2(@types/node@22.13.1) parse-srcset: specifier: ^1.0.2 version: 1.0.2 @@ -749,10 +773,10 @@ importers: version: 0.1.2 rollup: specifier: ^4.50.0 - version: 4.50.0 + version: 4.50.1 sass: specifier: ^1.91.0 - version: 1.92.0 + version: 1.92.1 typescript: specifier: ^5.9.2 version: 5.9.2 @@ -764,7 +788,7 @@ importers: version: 11.0.5 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) optionalDependencies: sharp: specifier: ^0.34.0 @@ -936,7 +960,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1042,7 +1066,7 @@ importers: version: link:../../.. sass: specifier: ^1.91.0 - version: 1.92.0 + version: 1.92.1 packages/astro/e2e/fixtures/errors: dependencies: @@ -1075,13 +1099,13 @@ importers: version: 18.3.1(react@18.3.1) sass: specifier: ^1.91.0 - version: 1.92.0 + version: 1.92.1 solid-js: specifier: ^1.9.9 version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1093,7 +1117,7 @@ importers: version: link:../../.. sass: specifier: ^1.91.0 - version: 1.92.0 + version: 1.92.1 packages/astro/e2e/fixtures/hydration-race: dependencies: @@ -1138,7 +1162,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1194,7 +1218,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1234,7 +1258,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1274,7 +1298,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1314,7 +1338,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1354,7 +1378,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1394,7 +1418,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1590,19 +1614,19 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/e2e/fixtures/tailwindcss: dependencies: '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.12(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 4.1.13(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) astro: specifier: workspace:* version: link:../../.. tailwindcss: specifier: ^4.1.12 - version: 4.1.12 + version: 4.1.13 packages/astro/e2e/fixtures/ts-resolution: dependencies: @@ -1650,7 +1674,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1794,7 +1818,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -1815,7 +1839,7 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/alias-tsconfig: dependencies: @@ -1830,7 +1854,7 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/alias-tsconfig-baseurl-only: dependencies: @@ -1842,7 +1866,7 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/alias-tsconfig-no-baseurl: dependencies: @@ -1973,7 +1997,7 @@ importers: version: 10.27.1 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -2006,7 +2030,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/astro-client-only/pkg: {} @@ -2098,7 +2122,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/astro-env: dependencies: @@ -2380,13 +2404,13 @@ importers: dependencies: '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.12(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 4.1.13(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) astro: specifier: workspace:* version: link:../../.. tailwindcss: specifier: ^4.1.12 - version: 4.1.12 + version: 4.1.13 packages/astro/test/fixtures/astro-sitemap-rss: dependencies: @@ -2446,7 +2470,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -2536,7 +2560,7 @@ importers: version: 18.3.1(react@18.3.1) svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/component-library-shared: dependencies: @@ -2896,7 +2920,7 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/css-import-as-inline: dependencies: @@ -3184,7 +3208,7 @@ importers: version: 10.27.1 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -3427,7 +3451,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -3545,13 +3569,13 @@ importers: dependencies: '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.12(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 4.1.13(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) astro: specifier: workspace:* version: link:../../.. tailwindcss: specifier: ^4.1.12 - version: 4.1.12 + version: 4.1.13 packages/astro/test/fixtures/middleware-virtual: dependencies: @@ -3645,7 +3669,7 @@ importers: version: 1.9.9 svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -3869,7 +3893,7 @@ importers: version: link:../../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/server-islands/ssr: dependencies: @@ -3884,7 +3908,7 @@ importers: version: link:../../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/sessions: dependencies: @@ -3959,7 +3983,7 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/slots-vue: dependencies: @@ -4305,7 +4329,7 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/astro/test/fixtures/svg-deduplication: dependencies: @@ -4320,13 +4344,13 @@ importers: version: link:../../../../integrations/mdx '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.12(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 4.1.13(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) astro: specifier: workspace:* version: link:../../.. tailwindcss: specifier: ^4.1.12 - version: 4.1.12 + version: 4.1.13 packages/astro/test/fixtures/third-party-astro: dependencies: @@ -4337,6 +4361,12 @@ importers: specifier: ^0.8.0 version: 0.8.0(astro@packages+astro) + packages/astro/test/fixtures/tracing-integration: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/type-imports: dependencies: astro: @@ -4389,7 +4419,7 @@ importers: version: link:../../.. vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) packages/astro/test/fixtures/vue-component: dependencies: @@ -4428,7 +4458,7 @@ importers: version: link:../../.. svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 vue: specifier: ^3.5.20 version: 3.5.21(typescript@5.9.2) @@ -4482,13 +4512,13 @@ importers: dependencies: '@libsql/client': specifier: ^0.15.14 - version: 0.15.14 + version: 0.15.15 deep-diff: specifier: ^1.0.2 version: 1.0.2 drizzle-orm: specifier: ^0.42.0 - version: 0.42.0(@cloudflare/workers-types@4.20250903.0)(@libsql/client@0.15.14) + version: 0.42.0(@cloudflare/workers-types@4.20250910.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0) kleur: specifier: ^4.1.5 version: 4.1.5 @@ -4531,7 +4561,7 @@ importers: version: 5.9.2 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) packages/db/test/fixtures/basics: dependencies: @@ -4687,7 +4717,7 @@ importers: version: link:../../../scripts vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -4744,16 +4774,16 @@ importers: version: link:../../underscore-redirects '@cloudflare/workers-types': specifier: ^4.20250903.0 - version: 4.20250903.0 + version: 4.20250910.0 tinyglobby: specifier: ^0.2.14 version: 0.2.14 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) wrangler: specifier: 4.14.1 - version: 4.14.1(@cloudflare/workers-types@4.20250903.0) + version: 4.14.1(@cloudflare/workers-types@4.20250910.0) devDependencies: astro: specifier: workspace:* @@ -4766,13 +4796,13 @@ importers: version: 1.1.2 devalue: specifier: ^5.1.1 - version: 5.3.2 + version: 5.1.1 execa: specifier: ^8.0.1 version: 8.0.1 rollup: specifier: ^4.50.0 - version: 4.50.0 + version: 4.50.1 packages/integrations/cloudflare/test/fixtures/astro-dev-platform: dependencies: @@ -4785,7 +4815,7 @@ importers: devDependencies: wrangler: specifier: 4.14.1 - version: 4.14.1(@cloudflare/workers-types@4.20250903.0) + version: 4.14.1(@cloudflare/workers-types@4.20250910.0) packages/integrations/cloudflare/test/fixtures/astro-env: dependencies: @@ -4798,7 +4828,7 @@ importers: devDependencies: wrangler: specifier: 4.14.1 - version: 4.14.1(@cloudflare/workers-types@4.20250903.0) + version: 4.14.1(@cloudflare/workers-types@4.20250910.0) packages/integrations/cloudflare/test/fixtures/compile-image-service: dependencies: @@ -4865,7 +4895,7 @@ importers: version: link:../../../../../astro wrangler: specifier: 4.14.1 - version: 4.14.1(@cloudflare/workers-types@4.20250903.0) + version: 4.14.1(@cloudflare/workers-types@4.20250910.0) packages/integrations/cloudflare/test/fixtures/with-base: dependencies: @@ -4904,7 +4934,7 @@ importers: version: link:../../../../../astro svelte: specifier: ^5.38.6 - version: 5.38.7 + version: 5.38.8 packages/integrations/cloudflare/test/fixtures/with-vue: dependencies: @@ -4965,13 +4995,13 @@ importers: version: link:../../../scripts devalue: specifier: ^5.1.1 - version: 5.3.2 + version: 5.1.1 linkedom: specifier: ^0.18.12 version: 0.18.12 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -5227,7 +5257,7 @@ importers: version: 11.0.5 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -5398,13 +5428,13 @@ importers: version: 10.0.10 '@netlify/functions': specifier: ^4.2.5 - version: 4.2.5(rollup@4.50.0) + version: 4.2.5(rollup@4.50.1) '@netlify/vite-plugin': specifier: ^2.5.8 - version: 2.5.8(@vercel/functions@2.2.13)(rollup@4.50.0)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 2.5.9(@vercel/functions@2.2.13)(rollup@4.50.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) '@vercel/nft': specifier: ^0.30.1 - version: 0.30.1(rollup@4.50.0) + version: 0.30.1(rollup@4.50.1) esbuild: specifier: ^0.25.0 version: 0.25.5 @@ -5413,11 +5443,11 @@ importers: version: 0.2.14 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) devDependencies: '@types/node': specifier: ^22.10.6 - version: 22.18.0 + version: 22.13.1 astro: specifier: workspace:* version: link:../../astro @@ -5429,7 +5459,7 @@ importers: version: 1.1.2 devalue: specifier: ^5.1.1 - version: 5.3.2 + version: 5.1.1 typescript: specifier: ^5.9.2 version: 5.9.2 @@ -5521,7 +5551,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.6 - version: 22.18.0 + version: 22.13.1 '@types/send': specifier: ^0.17.5 version: 0.17.5 @@ -5539,13 +5569,13 @@ importers: version: 1.1.2 devalue: specifier: ^5.1.1 - version: 5.3.2 + version: 5.1.1 express: specifier: ^4.21.2 version: 4.21.2 node-mocks-http: specifier: ^1.17.2 - version: 1.17.2(@types/node@22.18.0) + version: 1.17.2(@types/node@22.13.1) packages/integrations/node/test/fixtures/api-route: dependencies: @@ -5700,6 +5730,43 @@ importers: specifier: workspace:* version: link:../../../../../astro + packages/integrations/opentelemetry: + dependencies: + '@opentelemetry/api': + specifier: ^1.9.0 + version: 1.9.0 + '@opentelemetry/api-logs': + specifier: ^0.203.0 + version: 0.203.0 + '@opentelemetry/instrumentation': + specifier: ^0.203.0 + version: 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fetch': + specifier: ^0.203.0 + version: 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': + specifier: ^0.203.0 + version: 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': + specifier: ^0.14.0 + version: 0.14.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': + specifier: ^1.36.0 + version: 1.36.0 + devDependencies: + '@opentelemetry/sdk-node': + specifier: ^0.203.0 + version: 0.203.0(@opentelemetry/api@1.9.0) + astro: + specifier: workspace:* + version: link:../../astro + astro-scripts: + specifier: workspace:* + version: link:../../../scripts + vite: + specifier: ^6.3.4 + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) + packages/integrations/partytown: dependencies: '@qwik.dev/partytown': @@ -5720,7 +5787,7 @@ importers: dependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.2(@babel/core@7.28.3)(preact@10.27.1)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 2.10.2(@babel/core@7.28.0)(preact@10.27.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) '@preact/signals': specifier: ^2.3.1 version: 2.3.1(preact@10.27.1) @@ -5729,7 +5796,7 @@ importers: version: 6.6.1(preact@10.27.1) vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) devDependencies: astro: specifier: workspace:* @@ -5745,13 +5812,13 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.7.0 - version: 4.7.0(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 4.7.0(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) ultrahtml: specifier: ^1.6.0 version: 1.6.0 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) devDependencies: '@types/react': specifier: ^18.3.24 @@ -5861,10 +5928,10 @@ importers: dependencies: vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.8(solid-js@1.9.9)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 2.11.8(solid-js@1.9.9)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) devDependencies: astro: specifier: workspace:* @@ -5880,13 +5947,13 @@ importers: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.38.7)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + version: 5.1.1(svelte@5.38.8)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) svelte2tsx: specifier: ^0.7.42 - version: 0.7.42(svelte@5.38.7)(typescript@5.9.2) + version: 0.7.42(svelte@5.38.8)(typescript@5.9.2) vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) devDependencies: astro: specifier: workspace:* @@ -5896,7 +5963,7 @@ importers: version: link:../../../scripts svelte: specifier: ^5.38.7 - version: 5.38.7 + version: 5.38.8 packages/integrations/vercel: dependencies: @@ -5905,13 +5972,13 @@ importers: version: link:../../internal-helpers '@vercel/analytics': specifier: ^1.5.0 - version: 1.5.0(react@19.1.1)(svelte@5.38.7)(vue@3.5.21(typescript@5.9.2)) + version: 1.5.0(react@19.1.1)(svelte@5.38.8)(vue@3.5.21(typescript@5.9.2)) '@vercel/functions': specifier: ^2.2.13 version: 2.2.13 '@vercel/nft': specifier: ^0.30.1 - version: 0.30.1(rollup@4.50.0) + version: 0.30.1(rollup@4.50.1) '@vercel/routing-utils': specifier: ^5.1.1 version: 5.1.1 @@ -6119,19 +6186,19 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: 5.2.1 - version: 5.2.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + version: 5.2.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2)) '@vitejs/plugin-vue-jsx': specifier: ^4.2.0 - version: 4.2.0(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + version: 4.2.0(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2)) '@vue/compiler-sfc': specifier: ^3.5.21 version: 3.5.21 vite: specifier: ^6.3.6 - version: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + version: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) vite-plugin-vue-devtools: specifier: ^7.7.7 - version: 7.7.7(rollup@4.50.0)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + version: 7.7.7(rollup@4.50.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2)) devDependencies: astro: specifier: workspace:* @@ -6359,7 +6426,7 @@ importers: version: 1.1.5 '@types/node': specifier: ^18.17.8 - version: 18.19.123 + version: 18.19.120 '@types/which-pm-runs': specifier: ^1.0.2 version: 1.0.2 @@ -6431,8 +6498,8 @@ packages: '@assemblyscript/loader@0.19.23': resolution: {integrity: sha512-ulkCYfFbYj01ie1MDOyxv2F6SpRN1TOj7fQxbP07D6HmeR+gr2JLSmINKjga2emB+b1L2KGrFKBTc+e00p54nw==} - '@astro-community/astro-embed-baseline-status@0.1.2': - resolution: {integrity: sha512-u+3BwXCSjBIVW29MGTbdusRhRBhqcjHyE6dgBCsUK/nZ0BohP1Nfih8dB7YltTVZxgECakKWQWoSHabDbYteyA==} + '@astro-community/astro-embed-baseline-status@0.1.1': + resolution: {integrity: sha512-BiTQf4EP3SjMb/U5YN984BiGoGQNfc/lsJG0PosvNjUn5Q6+GjkSs77RjW3mQXOo64+sC3A0iOgdw2rlOmmjcQ==} peerDependencies: astro: ^4.0.0-beta || ^5.0.0-beta @@ -6444,8 +6511,8 @@ packages: '@astro-community/astro-embed-link-preview@0.2.2': resolution: {integrity: sha512-eZ/ORqtPCC3Z2cSH6UvOB1w9CBguEQUC4nFdyLmwHYIR3FhkutQgbaP7fgI1r+qUBDbXImpZjYxKS3RB4m/fOA==} - '@astro-community/astro-embed-twitter@0.5.8': - resolution: {integrity: sha512-O2ptQPw+DfipukK8czjJcTcyVgDsrs3OmrHbc3YmWRglaUTOpSTImzPo076POyNBSWjLaRKloul81DFiAMNjTA==} + '@astro-community/astro-embed-twitter@0.5.6': + resolution: {integrity: sha512-ywUjNhYbGW17vAQXj2tMus9JvLw8cwgzMshu6tVkzSRlyOoLFeWSNKwe44sU7REhUgmTCEQOUUfleN1j1Zwd4Q==} peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta @@ -6457,8 +6524,8 @@ packages: peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta - '@astro-community/astro-embed-youtube@0.5.6': - resolution: {integrity: sha512-/mRfCl/eTBUz0kmjD1psOy0qoDDBorVp0QumUacjFcIkBullYtbeFQ2ZGZ+3N/tA6cR/OIyzr2QA4dQXlY6USg==} + '@astro-community/astro-embed-youtube@0.5.5': + resolution: {integrity: sha512-pG9uYjyZB1kpW8Ljy/H1Klof2txVXLwQmyoG4XWblZyt9eqFlaa65MdzL7UKzzqdoOsn64TN+Q+zPbx0HJhP4Q==} peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta @@ -6475,8 +6542,8 @@ packages: '@astrojs/compiler@2.12.2': resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==} - '@astrojs/language-server@2.15.4': - resolution: {integrity: sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==} + '@astrojs/language-server@2.15.0': + resolution: {integrity: sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -6487,35 +6554,35 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/yaml2ts@0.2.2': - resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} + '@astrojs/yaml2ts@0.2.1': + resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.0': - resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} + '@babel/compat-data@7.27.2': + resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.3': - resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} + '@babel/core@7.28.0': + resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + '@babel/generator@7.28.0': + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + '@babel/helper-annotate-as-pure@7.27.1': + resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.27.2': resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.3': - resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + '@babel/helper-create-class-features-plugin@7.27.1': + resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -6536,8 +6603,8 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -6572,29 +6639,29 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.3': - resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-proposal-decorators@7.28.0': - resolution: {integrity: sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==} + '@babel/plugin-proposal-decorators@7.24.7': + resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.27.1': - resolution: {integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==} + '@babel/plugin-syntax-decorators@7.24.7': + resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + '@babel/plugin-syntax-import-attributes@7.25.6': + resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6604,8 +6671,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6616,8 +6683,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + '@babel/plugin-transform-react-jsx-development@7.25.9': + resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6634,36 +6701,36 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + '@babel/plugin-transform-react-jsx@7.25.9': + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.28.0': - resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} + '@babel/plugin-transform-typescript@7.27.1': + resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.3': - resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.3': - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} + '@babel/traverse@7.28.0': + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} '@babel/types@7.28.1': resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} '@biomejs/biome@2.1.2': @@ -6726,8 +6793,8 @@ packages: '@capsizecss/unpack@2.4.0': resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==} - '@changesets/apply-release-plan@7.0.12': - resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} + '@changesets/apply-release-plan@7.0.13': + resolution: {integrity: sha512-BIW7bofD2yAWoE8H4V40FikC+1nNFEKBisMECccS16W1rt6qqhNTBDmIw5HaqmMgtLNz9e7oiALiEUuKrQ4oHg==} '@changesets/assemble-release-plan@6.0.9': resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} @@ -6738,8 +6805,8 @@ packages: '@changesets/changelog-github@0.5.1': resolution: {integrity: sha512-BVuHtF+hrhUScSoHnJwTELB4/INQxVFc+P/Qdt20BLiBFIHFJDDUaGsZw+8fQeJTRP5hJZrzpt3oZWh0G19rAQ==} - '@changesets/cli@2.29.6': - resolution: {integrity: sha512-6qCcVsIG1KQLhpQ5zE8N0PckIx4+9QlHK3z6/lwKnw7Tir71Bjw8BeOZaxA/4Jt00pcgCnCSWZnyuZf5Il05QQ==} + '@changesets/cli@2.29.7': + resolution: {integrity: sha512-R7RqWoaksyyKXbKXBTbT4REdy22yH81mcFK6sWtqSanxUCbUi9Uf+6aqxZtDQouIqPdem2W56CdxXgsxdq7FLQ==} hasBin: true '@changesets/config@3.1.1': @@ -6787,8 +6854,8 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - '@clack/core@0.3.5': - resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} '@clack/prompts@0.7.0': resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} @@ -6838,8 +6905,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250903.0': - resolution: {integrity: sha512-F6G3MG7EZxsJ2Fgsy3eed+U2fU/XGfKqDlyY/vCL/zUqI8KuaNx8GVnxttqzktBY55HK3xe82Zpj8xujW6PfXw==} + '@cloudflare/workers-types@4.20250910.0': + resolution: {integrity: sha512-sxkeMWt8IA7OLSAAI0q4nyPdPIKkwheldnutNLESx35MSumXOvYE5HrwJgLRWtjV12k4UzaBy/zvPZ85fiAyAQ==} '@codspeed/core@4.0.1': resolution: {integrity: sha512-fJ53arfgtzCDZa8DuGJhpTZ3Ll9A1uW5nQ2jSJnfO4Hl5MRD2cP8P4vPvIUAGbdbjwCxR1jat6cW8OloMJkJXw==} @@ -7191,8 +7258,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.6': - resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==} + '@esbuild/aix-ppc64@0.25.9': + resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -7215,8 +7282,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.6': - resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} + '@esbuild/android-arm64@0.25.9': + resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -7239,8 +7306,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.6': - resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} + '@esbuild/android-arm@0.25.9': + resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -7263,8 +7330,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.6': - resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} + '@esbuild/android-x64@0.25.9': + resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -7287,8 +7354,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.6': - resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} + '@esbuild/darwin-arm64@0.25.9': + resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -7311,8 +7378,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.6': - resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} + '@esbuild/darwin-x64@0.25.9': + resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -7335,8 +7402,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.6': - resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} + '@esbuild/freebsd-arm64@0.25.9': + resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -7359,8 +7426,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.6': - resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} + '@esbuild/freebsd-x64@0.25.9': + resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -7383,8 +7450,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.6': - resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} + '@esbuild/linux-arm64@0.25.9': + resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -7407,8 +7474,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.6': - resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} + '@esbuild/linux-arm@0.25.9': + resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -7431,8 +7498,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.6': - resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} + '@esbuild/linux-ia32@0.25.9': + resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -7455,8 +7522,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.6': - resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} + '@esbuild/linux-loong64@0.25.9': + resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -7479,8 +7546,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.6': - resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} + '@esbuild/linux-mips64el@0.25.9': + resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -7503,8 +7570,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.6': - resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} + '@esbuild/linux-ppc64@0.25.9': + resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -7527,8 +7594,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.6': - resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} + '@esbuild/linux-riscv64@0.25.9': + resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -7551,8 +7618,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.6': - resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} + '@esbuild/linux-s390x@0.25.9': + resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -7575,8 +7642,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.6': - resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} + '@esbuild/linux-x64@0.25.9': + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -7599,8 +7666,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.6': - resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} + '@esbuild/netbsd-arm64@0.25.9': + resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -7623,8 +7690,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.6': - resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} + '@esbuild/netbsd-x64@0.25.9': + resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -7647,8 +7714,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.6': - resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} + '@esbuild/openbsd-arm64@0.25.9': + resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -7671,14 +7738,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.6': - resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} + '@esbuild/openbsd-x64@0.25.9': + resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.6': - resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} + '@esbuild/openharmony-arm64@0.25.9': + resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -7701,8 +7768,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.6': - resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} + '@esbuild/sunos-x64@0.25.9': + resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -7725,8 +7792,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.6': - resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} + '@esbuild/win32-arm64@0.25.9': + resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -7749,8 +7816,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.6': - resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} + '@esbuild/win32-ia32@0.25.9': + resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -7773,14 +7840,14 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.6': - resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} + '@esbuild/win32-x64@0.25.9': + resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -7805,8 +7872,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.34.0': - resolution: {integrity: sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==} + '@eslint/js@9.35.0': + resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -7820,8 +7887,8 @@ packages: '@fastify/accept-negotiator@2.0.1': resolution: {integrity: sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==} - '@fastify/busboy@3.2.0': - resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} + '@fastify/busboy@3.1.1': + resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==} '@fontsource/monofett@5.2.6': resolution: {integrity: sha512-IGJFXu+0h+RkYBa5AVbT1iBhrw8y7ANgFEAwTvrqjhvB9rgVWI0wh62ymVac/Dfg52WlSeCp73qjsX1WrObgJg==} @@ -7829,6 +7896,15 @@ packages: '@fontsource/montserrat@5.2.6': resolution: {integrity: sha512-AfFxq1q5tgkOsjQfMFsh95uMXh39VbGOuBLlHLFg16/txv93lqK7Sr6jev0neuJzZy1kqRG16SH6xpUYnk4cZg==} + '@grpc/grpc-js@1.13.4': + resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.15': + resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} + engines: {node: '>=6'} + hasBin: true + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -7849,8 +7925,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} '@iarna/toml@2.2.5': @@ -8103,8 +8179,8 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} '@jridgewell/remapping@2.3.5': resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} @@ -8116,21 +8192,24 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + '@jsdevtools/rehype-toc@3.0.2': resolution: {integrity: sha512-n5JEf16Wr4mdkRMZ8wMP/wN9/sHmTjRPbouXjJH371mZ2LEGDl72t8tEsMRNFerQN/QJtivOxqK1frdGa4QK5Q==} engines: {node: '>=10'} - '@libsql/client@0.15.14': - resolution: {integrity: sha512-oXeFYcSyAsYWvpWVmynrwNwb+NHNHtMfSIVdfQTF1B9RsgDXQE5YCDP3SS0i1FA8nuLWy2trFDVwP1b2LNdNPQ==} + '@libsql/client@0.15.15': + resolution: {integrity: sha512-twC0hQxPNHPKfeOv3sNT6u2pturQjLcI+CnpTM0SjRpocEGgfiZ7DWKXLNnsothjyJmDqEsBQJ5ztq9Wlu470w==} - '@libsql/core@0.15.14': - resolution: {integrity: sha512-b2eVQma78Ss+edIIFi7LnhhyUy5hAJjYvrSAD5RFdO/YKP2rEvNAT1pIn2Li7NrqcsMmoEQWlpUWH4fWMdXtpQ==} + '@libsql/core@0.15.15': + resolution: {integrity: sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA==} '@libsql/darwin-arm64@0.5.22': resolution: {integrity: sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA==} @@ -8226,14 +8305,14 @@ packages: nanostores: ^0.9.0 || ^0.10.0 || ^0.11.0 preact: '>=10.0.0' - '@napi-rs/wasm-runtime@1.0.3': - resolution: {integrity: sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==} + '@napi-rs/wasm-runtime@1.0.1': + resolution: {integrity: sha512-KVlQ/jgywZpixGCKMNwxStmmbYEMyokZpCf2YuIChhfJA2uqfAKNEM8INz7zzTo55iEXfBhIIs3VqYyqzDLj8g==} '@neon-rs/load@0.0.4': resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} - '@netlify/api@14.0.4': - resolution: {integrity: sha512-3Li2UKiVAu1xcPH1JffXyws3juAYTMnEpfUSdYUaQP+/z+3wXFqCVIuVG5LBwq8u8WHY0P0sqc23oCRGngKSlg==} + '@netlify/api@14.0.3': + resolution: {integrity: sha512-iFYqSYBnn34Fx3eVOH7sG52f/xcyB9or2yjn486d3ZqLk6OJGFZstxjY4LfTv8chCT1HeSVybIvnCqsHsvrzJQ==} engines: {node: '>=18.14.0'} '@netlify/binary-info@1.0.0': @@ -8243,8 +8322,8 @@ packages: resolution: {integrity: sha512-900jiduBT3b7GagpOGJKD3FQypkNbskGyx+Mvd9Ajy7pU3K0CNj4JBaji4aJZz7krrMxZZJacr0wCEsqWLQQmA==} engines: {node: ^14.16.0 || >=16.0.0} - '@netlify/cache@3.0.11': - resolution: {integrity: sha512-Dtm/UWv1X70gaj5dcJBV6zzVU89brcX/zpuVpuNUi7t7przGP1emuE+59A3razcamFP8hs98gbrfUpniLQMa0Q==} + '@netlify/cache@3.1.0': + resolution: {integrity: sha512-wOScL/qVfwJMyJZigydBM8nCM3K0XW/HGcjzmksLPD/pB3d1smczHFIvB2xMETkZWJ8SMUWVSQG05vvYDPOzDw==} engines: {node: '>=20.6.1'} '@netlify/config@23.2.0': @@ -8256,16 +8335,16 @@ packages: resolution: {integrity: sha512-Cc8XNyKNVPWmRJAMVD8VICdYvVxZ66uoVdDzSyhrctw0cT7hW3NAlXF/xoLFK7uOV1xejah/Qt+2MPCJn32mqg==} engines: {node: ^18.14.0 || >=20} - '@netlify/dev@4.5.8': - resolution: {integrity: sha512-TKfJ01m03Pv1w5yrcd7Z/V07ZotOXrixzJ3Bvo+gnOICiazrxuLA8m4GUMIK/ts6nxUoGwlX8dNgQxxbXkUAZA==} + '@netlify/dev@4.5.9': + resolution: {integrity: sha512-tWV2jfpXjAHOCLGy6kwGhOSql1VU3bRmHbHxpSdCp4sV2AsPXPSx5dIECLkQE+nC/7hyjbC2V+XU5USv6mVvLQ==} engines: {node: '>=20.6.1'} - '@netlify/edge-bundler@14.5.2': - resolution: {integrity: sha512-Op5OFeraZbNvZxjjo7LqUtA57O/JHrZJJ42Mcjk6eLmzgc2vLAItylBhV300X9FUFzTF/xbZo6NuiDkXSVBDVQ==} + '@netlify/edge-bundler@14.5.4': + resolution: {integrity: sha512-mGEQTOsC3VoUcio6y5zXj5s5Rs4ygFGWdHmweU2K7QH+Zy5co7GuzbpivoP0VCBws3VSBCdx1rvGPY9ylZaOHQ==} engines: {node: '>=18.14.0'} - '@netlify/edge-functions-bootstrap@2.16.2': - resolution: {integrity: sha512-C0oObD0QnCj9f2FqUNb/6NI+Y/TNNVThlA5qc0iFDN6F+NG6wtcfCuD4U6fOZylETxu6sXpNYiE+X6nb7mT2Sg==} + '@netlify/edge-functions-bootstrap@2.16.3': + resolution: {integrity: sha512-ae/bJpeAnHZK8ailEKfcV4smmkbCAORpVyU3WgYJwvKp94NOXzo+OWQZbCNIbcEMq2q7luRdmu1KeREh4D5Qgg==} '@netlify/edge-functions@2.17.4': resolution: {integrity: sha512-r8cmsTxlF7TUAmVCplS14H+HQewhfqKaCiVshAr4rlSdCfH1QqygMPWFAxgWNhLcgFQOVYH1+uT0fUZOTlVoiA==} @@ -8303,12 +8382,12 @@ packages: resolution: {integrity: sha512-z1h+wjB7IVYUsFZsuIYyNxiw5WWuylseY+eXaUDHBxNeLTlqziy+lz03QkR67CUR4Y790xGIhaHV00aOR2KAtw==} engines: {node: ^18.14.0 || >=20} - '@netlify/runtime@4.0.14': - resolution: {integrity: sha512-Wgao7AwtieF1K9O34nKuoxDMoXiKKRG5eK95dbd/rXnXvdv4viaCspykuFUanPnXw5Ry478R9UsSCIOrIe77Rw==} + '@netlify/runtime@4.0.15': + resolution: {integrity: sha512-NP8HsF/Aq+pmjrRpJyxaBwSl3vm43worqzJ7t7InE/eVS4w3koO/0pK0+lE6UXpai5CH/B9K4tif/k7PbA0pTA==} engines: {node: '>=20.6.1'} - '@netlify/serverless-functions-api@2.2.1': - resolution: {integrity: sha512-PAEyziX2pkENwQLCqWfS2Jw5CKATwAty/4mcnBcAEVWrfWE5vqKx82qta1nDrbeFOcBw6QD5ShYCfbXUnQ4MNA==} + '@netlify/serverless-functions-api@2.5.0': + resolution: {integrity: sha512-0Hl6POpkEs3aan8T+EQvPIj5/gNc+64nwNv93VY4JoxFSrLPKYWmUyXJhT9lG93VxwGfmbxrCOV8U4sq2eWgTw==} engines: {node: '>=18.0.0'} '@netlify/static@3.0.10': @@ -8319,14 +8398,14 @@ packages: resolution: {integrity: sha512-OcV8ivKTdsyANqVSQzbusOA7FVtE9s6zwxNCGR/aNnQaVxMUgm93UzKgfR7cZ1nnQNZHAbjd0dKJKaAUqrzbMw==} engines: {node: ^18.14.0 || >=20} - '@netlify/vite-plugin@2.5.8': - resolution: {integrity: sha512-Ka46zlTjILGwdOywxn98X5kRdrayMcAzgQBZvgLjGj5G8PXhqzIXJiKEeEGa3pHOrpM/a9kQ4UxYdISAHRQ0jQ==} + '@netlify/vite-plugin@2.5.9': + resolution: {integrity: sha512-bol5XjvCSNgVUxOSTPkjDIjJ75Ee8CDDgGhnOvtoS0V++Vq/YHM3VSUlrUo5UVRNgTRva4QkQEgR/T/9TdtGhw==} engines: {node: ^20.6.1 || >=22} peerDependencies: vite: ^5 || ^6 || ^7 - '@netlify/zip-it-and-ship-it@14.1.4': - resolution: {integrity: sha512-SLMDv+Wqw496YCar7GI8mhCXjZE5P3L5+W2y7+b8Fu529ocTLpCnSeDjJPgGZBZNM/NC9dOl9r8+hUx1a5CV1w==} + '@netlify/zip-it-and-ship-it@14.1.7': + resolution: {integrity: sha512-GuPYN/+oAmT5boiKVPsIk5sE25qmln8+bHaakMAr2S6vwy/yArEYcM/Oa7kLMIyN3aryYrdpqOSwU1ly20tkyw==} engines: {node: '>=18.14.0'} hasBin: true @@ -8342,160 +8421,340 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@opentelemetry/api-logs@0.203.0': + resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-logs-otlp-grpc@0.203.0': + resolution: {integrity: sha512-g/2Y2noc/l96zmM+g0LdeuyYKINyBwN6FJySoU15LHPLcMN/1a0wNk2SegwKcxrRdE7Xsm7fkIR5n6XFe3QpPw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-logs-otlp-http@0.203.0': + resolution: {integrity: sha512-s0hys1ljqlMTbXx2XiplmMJg9wG570Z5lH7wMvrZX6lcODI56sG4HL03jklF63tBeyNwK2RV1/ntXGo3HgG4Qw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-logs-otlp-proto@0.203.0': + resolution: {integrity: sha512-nl/7S91MXn5R1aIzoWtMKGvqxgJgepB/sH9qW0rZvZtabnsjbf8OQ1uSx3yogtvLr0GzwD596nQKz2fV7q2RBw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-grpc@0.203.0': + resolution: {integrity: sha512-FCCj9nVZpumPQSEI57jRAA89hQQgONuoC35Lt+rayWY/mzCAc6BQT7RFyFaZKJ2B7IQ8kYjOCPsF/HGFWjdQkQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-http@0.203.0': + resolution: {integrity: sha512-HFSW10y8lY6BTZecGNpV3GpoSy7eaO0Z6GATwZasnT4bEsILp8UJXNG5OmEsz4SdwCSYvyCbTJdNbZP3/8LGCQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-proto@0.203.0': + resolution: {integrity: sha512-OZnhyd9npU7QbyuHXFEPVm3LnjZYifuKpT3kTnF84mXeEQ84pJJZgyLBpU4FSkSwUkt/zbMyNAI7y5+jYTWGIg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-prometheus@0.203.0': + resolution: {integrity: sha512-2jLuNuw5m4sUj/SncDf/mFPabUxMZmmYetx5RKIMIQyPnl6G6ooFzfeE8aXNRf8YD1ZXNlCnRPcISxjveGJHNg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-grpc@0.203.0': + resolution: {integrity: sha512-322coOTf81bm6cAA8+ML6A+m4r2xTCdmAZzGNTboPXRzhwPt4JEmovsFAs+grpdarObd68msOJ9FfH3jxM6wqA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-http@0.203.0': + resolution: {integrity: sha512-ZDiaswNYo0yq/cy1bBLJFe691izEJ6IgNmkjm4C6kE9ub/OMQqDXORx2D2j8fzTBTxONyzusbaZlqtfmyqURPw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-proto@0.203.0': + resolution: {integrity: sha512-1xwNTJ86L0aJmWRwENCJlH4LULMG2sOXWIVw+Szta4fkqKVY50Eo4HoVKKq6U9QEytrWCr8+zjw0q/ZOeXpcAQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-zipkin@2.0.1': + resolution: {integrity: sha512-a9eeyHIipfdxzCfc2XPrE+/TI3wmrZUDFtG2RRXHSbZZULAny7SyybSvaDvS77a7iib5MPiAvluwVvbGTsHxsw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/instrumentation-fetch@0.203.0': + resolution: {integrity: sha512-Z+mls3rOP2BaVykDZLLZPvchjj9l2oj3dYG1GTnrc27Y8o3biE+5M1b0izblycbbQHXjMPHQCpmjHbLMQuWtBg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-http@0.203.0': + resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-undici@0.14.0': + resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.7.0 + + '@opentelemetry/instrumentation@0.203.0': + resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.203.0': + resolution: {integrity: sha512-Wbxf7k+87KyvxFr5D7uOiSq/vHXWommvdnNE7vECO3tAhsA2GfOlpWINCMWUEPdHZ7tCXxw6Epp3vgx3jU7llQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-grpc-exporter-base@0.203.0': + resolution: {integrity: sha512-te0Ze1ueJF+N/UOFl5jElJW4U0pZXQ8QklgSfJ2linHN0JJsuaHG8IabEUi2iqxY8ZBDlSiz1Trfv5JcjWWWwQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.203.0': + resolution: {integrity: sha512-Y8I6GgoCna0qDQ2W6GCRtaF24SnvqvA8OfeTi7fqigD23u8Jpb4R5KFv/pRvrlGagcCLICMIyh9wiejp4TXu/A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/propagator-b3@2.0.1': + resolution: {integrity: sha512-Hc09CaQ8Tf5AGLmf449H726uRoBNGPBL4bjr7AnnUpzWMvhdn61F78z9qb6IqB737TffBsokGAK1XykFEZ1igw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/propagator-jaeger@2.0.1': + resolution: {integrity: sha512-7PMdPBmGVH2eQNb/AtSJizQNgeNTfh6jQFqys6lfhd6P4r+m/nTh3gKPPpaCXVdRQ+z93vfKk+4UGty390283w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.203.0': + resolution: {integrity: sha512-vM2+rPq0Vi3nYA5akQD2f3QwossDnTDLvKbea6u/A2NZ3XDkPxMfo/PNrDoXhDUD/0pPo2CdH5ce/thn9K0kLw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.0.1': + resolution: {integrity: sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-node@0.203.0': + resolution: {integrity: sha512-zRMvrZGhGVMvAbbjiNQW3eKzW/073dlrSiAKPVWmkoQzah9wfynpVPeL55f9fVIm0GaBxTLcPeukWGy0/Wj7KQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.0.1': + resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace-web@2.0.1': + resolution: {integrity: sha512-R4/i0rISvAujG4Zwk3s6ySyrWG+Db3SerZVM4jZ2lEzjrNylF7nRAy1hVvWe8gTbwIxX+6w6ZvZwdtl2C7UQHQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.36.0': + resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} + engines: {node: '>=14'} + '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - '@oxc-resolver/binding-android-arm-eabi@11.6.2': - resolution: {integrity: sha512-b1h87/Nv5QPiT2xXg7RiSzJ0HsKSMf1U8vj6cUKdEDD1+KhDaXEH9xffB5QE54Df3SM4+wrYVy9NREil7/0C/Q==} + '@oxc-resolver/binding-android-arm-eabi@11.6.0': + resolution: {integrity: sha512-UJTf5uZs919qavt9Btvbzkr3eaUu4d+FXBri8AB2BtOezriaTTUvArab2K9fdACQ4yFggTD5ews1l19V/6SW2Q==} cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.6.2': - resolution: {integrity: sha512-iIFsbWOQ42VJqOH0PkNs2+IcIjkmO7T+Gr27XDVXmaIWz3dkVYzYRlCtqGJOMIrjyUD52BtVXjej5s51i9Lgmg==} + '@oxc-resolver/binding-android-arm64@11.6.0': + resolution: {integrity: sha512-v17j1WLEAIlyc+6JOWPXcky7dkU3fN8nHTP8KSK05zkkBO0t28R3Q0udmNBiJtVSnw4EFB/fy/3Mu2ItpG6bVQ==} cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.6.2': - resolution: {integrity: sha512-Lt/6pfDy2rtoxGmwFQOp4a9GxIW0CEUSQYofW1eQBpy/JpGM/AJgLTsg2nmgszODJpBOPO19GCIlzSZ7Et5cGg==} + '@oxc-resolver/binding-darwin-arm64@11.6.0': + resolution: {integrity: sha512-ZrU+qd5AKe8s7PZDLCHY23UpbGn1RAkcNd4JYjOTnX22XEjSqLvyC6pCMngTyfgGVJ4zXFubBkRzt/k3xOjNlQ==} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.6.2': - resolution: {integrity: sha512-UmGEeXk4/E3ubBWgoehVEQSBTEpl+UjZqY55sB+/5NHYFPMxY6PgG8y7dGZhyWPvwVW/pS/drnG3gptAjwF8cg==} + '@oxc-resolver/binding-darwin-x64@11.6.0': + resolution: {integrity: sha512-qBIlX0X0RSxQHcXQnFpBGKxrDVtj7OdpWFGmrcR3NcndVjZ/wJRPST5uTTM83NfsHyuUeOi/vRZjmDrthvhnSQ==} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.6.2': - resolution: {integrity: sha512-p0Aj5aQKmyVamAtRio7Ct0Woh/iElvMxhAlbSWqJ9J/GH7lPG8H4R/iHWjURz+2iYPywqJICR8Eu1GDSApnzfA==} + '@oxc-resolver/binding-freebsd-x64@11.6.0': + resolution: {integrity: sha512-tTyMlHHNhbkq/oEP/fM8hPZ6lqntHIz6EfOt577/lslrwxC5a/ii0lOOHjPuQtkurpyUBWYPs7Z17EgrZulc4Q==} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.6.2': - resolution: {integrity: sha512-hDAF4FAkGxZsJCvutoBQ21LKcpUrvq5qAj3FpBTIzBaeIpupe6z0kHF9oIeTF8DJiLj4uEejaZXXtOSfJY50+A==} + '@oxc-resolver/binding-linux-arm-gnueabihf@11.6.0': + resolution: {integrity: sha512-tYinHy5k9/rujo21mG2jZckJJD7fsceNDl5HOl/eh5NPjSt2vXQv181PVKeITw3+3i+gI1d666w5EtgpiCegRA==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.6.2': - resolution: {integrity: sha512-LTUs3PG9O3YjGPbguiM/fhaoWr19Yu/vqkBKXgvUo2Zpa7InHzZzurMQU9BAPr6A7gnIrKQ3W61h+RhQfSuUGQ==} + '@oxc-resolver/binding-linux-arm-musleabihf@11.6.0': + resolution: {integrity: sha512-aOlGlSiT9fBgSyiIWvSxbyzaBx3XrgCy6UJRrqBkIvMO9D7W90JmV0RsiLua4w43zJSSrfuQQWqmFCwgIib3Iw==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.6.2': - resolution: {integrity: sha512-VBZZ/5uYiFs+09h1royv78GAEPPy5Bsro53hPWMlJL/E9pPibaj3fCzZEAnrKSzVpvwf7+QSc5w7ZUrX3xAKpg==} + '@oxc-resolver/binding-linux-arm64-gnu@11.6.0': + resolution: {integrity: sha512-EZ/OuxZA9qQoAANBDb9V4krfYXU3MC+LZ9qY+cE0yMYMIxm7NT5AdR0OaRQqfa3tWIbina1VF7FaMR6rpKvmlA==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-arm64-musl@11.6.2': - resolution: {integrity: sha512-x+LooeNXy3hhvDT7q29jLjh914OYX9YnrQbGT3ogep5EY/LLbUiG3LV8XSrWRqXD5132gea9SOYxmcpF9i6xTQ==} + '@oxc-resolver/binding-linux-arm64-musl@11.6.0': + resolution: {integrity: sha512-NpF7sID4NnPetpqDk2eOu6TPUt381Qlpos8nGDcSkAluqSsSGFOPfETEB5VbJeqNVQbepEQX9mOxZygFpW0+nA==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-ppc64-gnu@11.6.2': - resolution: {integrity: sha512-+CluEbUpAaKvcNREZtUUiunqzo5o0/qp+6xoFkbDAwNhWIw1mtWCg1Di++Fa053Cah/Rx+dRMQteANoMBGCxxg==} + '@oxc-resolver/binding-linux-ppc64-gnu@11.6.0': + resolution: {integrity: sha512-Sqn9Ha4rxCCpjpfkFi9f9y9phsaBnseaKw+JqHgBQoNMToe+/20A1jwIu9OX+484UuLpduM+wLydgngjnoi7Dg==} cpu: [ppc64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-gnu@11.6.2': - resolution: {integrity: sha512-OKWK/QvC6gECaeCNjfhuj0yiqMIisS0ewCRAmgT2pyxDwkNWgSm2wli+Tj/gpLjua2HjFDnDEcg0/dOoO6+xQg==} + '@oxc-resolver/binding-linux-riscv64-gnu@11.6.0': + resolution: {integrity: sha512-eFoNcPhImp1FLAQf5U3Nlph4WNWEsdWohSThSTtKPrX+jhPZiVsj3iBC9gjaRwq2Ez4QhP1x7/PSL6mtKnS6rw==} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-musl@11.6.2': - resolution: {integrity: sha512-YtQ3hLvhVzan3boR44C0qu/jiTanaBAL9uTqs/S2tzOLfpO2PoTDbQDgADvOqYJDTJkOGiofJC2E1lJcRmpbXQ==} + '@oxc-resolver/binding-linux-riscv64-musl@11.6.0': + resolution: {integrity: sha512-WQw3CT10aJg7SIc/X1QPrh6lTx2wOLg5IaCu/+Mqlxf1nZBEW3+tV/+y3PzXG0MCRhq7FDTiHaW8MBVAwBineQ==} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-s390x-gnu@11.6.2': - resolution: {integrity: sha512-pcX/ih9QHrEWliiXJdZoX/bnfOlr5E0eOWSG2ew5U1HntGket/1AcdcA4UH3MQU/TrOLxxiKhGzeZv+fwewmmA==} + '@oxc-resolver/binding-linux-s390x-gnu@11.6.0': + resolution: {integrity: sha512-p5qcPr/EtGJ2PpeeArL3ifZU/YljWLypeu38+e19z2dyPv8Aoby8tjM+D1VTI8+suMwTkseyove/uu6zIUiqRw==} cpu: [s390x] os: [linux] - '@oxc-resolver/binding-linux-x64-gnu@11.6.2': - resolution: {integrity: sha512-LFYSgeYW11u4cQXzgIGthqCRAoLvl0IqbIMGeJLVt1tD7yrpTukfQynMzwP3vuTK5hmWgYc7NfK6G5+Zv/75hw==} + '@oxc-resolver/binding-linux-x64-gnu@11.6.0': + resolution: {integrity: sha512-/9M/ieoY5v54k3UjtF9Vw43WQ4bBfed+qRL1uIpFbZcO2qi5aXwVMYnjSd/BoaRtDs5JFV9iOjzHwpw0zdOYZA==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-linux-x64-musl@11.6.2': - resolution: {integrity: sha512-IE13zwhg+XX9FVQHADbIe6RB2MgQeqyKdGyH67meGPgqCbLqT41K9qAm0k2uDlSswjLK8nhNe5Z+hhopBKzRRg==} + '@oxc-resolver/binding-linux-x64-musl@11.6.0': + resolution: {integrity: sha512-HMtWWHTU7zbwceTFZPAPMMhhWR1nNO2OR60r6i55VprCMvttTWPQl7uLP0AUtAPoU9B/2GqP48rzOuaaKhHnYw==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-wasm32-wasi@11.6.2': - resolution: {integrity: sha512-6nNW/wOKrptS9Rebf83aHvIsIiNcXOEWwUmhMR/4MHrH07zbcptBoZQcWO6362B9Y2lMN7dIF9v7brQcNDs63A==} + '@oxc-resolver/binding-wasm32-wasi@11.6.0': + resolution: {integrity: sha512-rDAwr2oqmnG/6LSZJwvO3Bmt/RC3/Q6myyaUmg3P7GhZDyFPrWJONB7NFhPwU2Q4JIpA73ST4LBdhzmGxMTmrw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.6.2': - resolution: {integrity: sha512-YDR9UBOlKfFvWhVlyvNSlZjJ+B5kDpDn5K5s69JKW+Ke5ZYupVPTJPZ3GIMjbgj54fJQNFW+BiT4dL/EUGOHVQ==} + '@oxc-resolver/binding-win32-arm64-msvc@11.6.0': + resolution: {integrity: sha512-COzy8weljZo2lObWl6ZzW6ypDx1v1rtLdnt7JPjTUARikK1gMzlz9kouQhCtCegNFILx2L2oWw7714fnchqujw==} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-ia32-msvc@11.6.2': - resolution: {integrity: sha512-8MqToY82sKT4po6bfb71LTiWW4PYXy/WNnzFIpkO88O1TtZV8ZsZ1kSeSwFazbqhV8H8nnxyJemqXNIqhtqNfw==} + '@oxc-resolver/binding-win32-ia32-msvc@11.6.0': + resolution: {integrity: sha512-p2tMRdi91CovjLBApDPD/uEy1/5r7U6iVkfagLYDytgvj6nJ1EAxLUdXbhoe6//50IvDC/5I51nGCdxmOUiXlQ==} cpu: [ia32] os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@11.6.2': - resolution: {integrity: sha512-y/xXcOwP9kp+3zRC8PiG5E4VMJeW59gwwRyxzh6DyMrKlcfikMFnuEbC2ZV0+mOffg7pkOOMKlNRK2aJC8gzkA==} + '@oxc-resolver/binding-win32-x64-msvc@11.6.0': + resolution: {integrity: sha512-p6b9q5TACd/y39kDK2HENXqd4lThoVrTkxdvizqd5/VwyHcoSd0cDcIEhHpxvfjc83VsODCBgB/zcjp//TlaqA==} cpu: [x64] os: [win32] - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + '@parcel/watcher-android-arm64@2.4.1': + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + '@parcel/watcher-darwin-arm64@2.4.1': + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + '@parcel/watcher-darwin-x64@2.4.1': + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + '@parcel/watcher-freebsd-x64@2.4.1': + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + '@parcel/watcher-linux-arm-glibc@2.4.1': + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + '@parcel/watcher-linux-arm64-glibc@2.4.1': + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + '@parcel/watcher-linux-arm64-musl@2.4.1': + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + '@parcel/watcher-linux-x64-glibc@2.4.1': + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + '@parcel/watcher-linux-x64-musl@2.4.1': + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -8506,26 +8765,26 @@ packages: bundledDependencies: - napi-wasm - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + '@parcel/watcher-win32-arm64@2.4.1': + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + '@parcel/watcher-win32-ia32@2.4.1': + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + '@parcel/watcher-win32-x64@2.4.1': + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + '@parcel/watcher@2.4.1': + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} engines: {node: '>= 10.0.0'} '@pkgjs/parseargs@0.11.0': @@ -8542,8 +8801,8 @@ packages: engines: {node: '>=18'} hasBin: true - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} '@preact/preset-vite@2.10.2': resolution: {integrity: sha512-K9wHlJOtkE+cGqlyQ5v9kL3Ge0Ql4LlIZjkUTL+1zf3nNdF88F9UZN6VTV8jdzBX9Fl7WSzeNMSDG7qECPmSmg==} @@ -8559,23 +8818,53 @@ packages: peerDependencies: preact: '>= 10.25.0 || >=11.0.0-0' - '@prefresh/babel-plugin@0.5.2': - resolution: {integrity: sha512-AOl4HG6dAxWkJ5ndPHBgBa49oo/9bOiJuRDKHLSTyH+Fd9x00shTXpdiTj1W41l6oQIwUOAgJeHMn4QwIDpHkA==} + '@prefresh/babel-plugin@0.5.1': + resolution: {integrity: sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==} - '@prefresh/core@1.5.7': - resolution: {integrity: sha512-AsyeitiPwG7UkT0mqgKzIDuydmYSKtBlzXEb5ymzskvxewcmVGRjQkcHDy6PCNBT7soAyHpQ0mPgXX4IeyOlUg==} + '@prefresh/core@1.5.2': + resolution: {integrity: sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==} peerDependencies: - preact: ^10.0.0 || ^11.0.0-0 + preact: ^10.0.0 - '@prefresh/utils@1.2.1': - resolution: {integrity: sha512-vq/sIuN5nYfYzvyayXI4C2QkprfNaHUQ9ZX+3xLD8nL3rWyzpxOm1+K7RtMbhd+66QcaISViK7amjnheQ/4WZw==} + '@prefresh/utils@1.2.0': + resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==} - '@prefresh/vite@2.4.10': - resolution: {integrity: sha512-lt+ODASOtXRWaPplp7/DlrgAaInnQYNvcpCglQBMx2OeJPyZ4IqPRaxsK77w96mWshjYwkqTsRSHoAM7aAn0ow==} + '@prefresh/vite@2.4.5': + resolution: {integrity: sha512-iForDVJ2M8gQYnm5pHumvTEJjGGc7YNYC0GVKnHFL+GvFfKHfH9Rpq67nUAzNbjuLEpqEOUuQVQajMazWu2ZNQ==} peerDependencies: - preact: ^10.4.0 || ^11.0.0-0 + preact: ^10.4.0 vite: '>=2.0.0' + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@publint/pack@0.1.2': resolution: {integrity: sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw==} engines: {node: '>=18'} @@ -8588,15 +8877,12 @@ packages: '@rolldown/pluginutils@1.0.0-beta.27': resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} - '@rolldown/pluginutils@1.0.0-beta.34': - resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==} - '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - '@rollup/pluginutils@5.2.0': - resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -8604,108 +8890,108 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.50.0': - resolution: {integrity: sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==} + '@rollup/rollup-android-arm-eabi@4.50.1': + resolution: {integrity: sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.50.0': - resolution: {integrity: sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==} + '@rollup/rollup-android-arm64@4.50.1': + resolution: {integrity: sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.50.0': - resolution: {integrity: sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==} + '@rollup/rollup-darwin-arm64@4.50.1': + resolution: {integrity: sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.50.0': - resolution: {integrity: sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==} + '@rollup/rollup-darwin-x64@4.50.1': + resolution: {integrity: sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.50.0': - resolution: {integrity: sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==} + '@rollup/rollup-freebsd-arm64@4.50.1': + resolution: {integrity: sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.50.0': - resolution: {integrity: sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==} + '@rollup/rollup-freebsd-x64@4.50.1': + resolution: {integrity: sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.50.0': - resolution: {integrity: sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==} + '@rollup/rollup-linux-arm-gnueabihf@4.50.1': + resolution: {integrity: sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.50.0': - resolution: {integrity: sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==} + '@rollup/rollup-linux-arm-musleabihf@4.50.1': + resolution: {integrity: sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.50.0': - resolution: {integrity: sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==} + '@rollup/rollup-linux-arm64-gnu@4.50.1': + resolution: {integrity: sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.50.0': - resolution: {integrity: sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==} + '@rollup/rollup-linux-arm64-musl@4.50.1': + resolution: {integrity: sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.50.0': - resolution: {integrity: sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==} + '@rollup/rollup-linux-loongarch64-gnu@4.50.1': + resolution: {integrity: sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.50.0': - resolution: {integrity: sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==} + '@rollup/rollup-linux-ppc64-gnu@4.50.1': + resolution: {integrity: sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.50.0': - resolution: {integrity: sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==} + '@rollup/rollup-linux-riscv64-gnu@4.50.1': + resolution: {integrity: sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.50.0': - resolution: {integrity: sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==} + '@rollup/rollup-linux-riscv64-musl@4.50.1': + resolution: {integrity: sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.50.0': - resolution: {integrity: sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==} + '@rollup/rollup-linux-s390x-gnu@4.50.1': + resolution: {integrity: sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.50.0': - resolution: {integrity: sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==} + '@rollup/rollup-linux-x64-gnu@4.50.1': + resolution: {integrity: sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.50.0': - resolution: {integrity: sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==} + '@rollup/rollup-linux-x64-musl@4.50.1': + resolution: {integrity: sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.50.0': - resolution: {integrity: sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==} + '@rollup/rollup-openharmony-arm64@4.50.1': + resolution: {integrity: sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.50.0': - resolution: {integrity: sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==} + '@rollup/rollup-win32-arm64-msvc@4.50.1': + resolution: {integrity: sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.50.0': - resolution: {integrity: sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==} + '@rollup/rollup-win32-ia32-msvc@4.50.1': + resolution: {integrity: sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.50.0': - resolution: {integrity: sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==} + '@rollup/rollup-win32-x64-msvc@4.50.1': + resolution: {integrity: sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==} cpu: [x64] os: [win32] @@ -8765,65 +9051,65 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@tailwindcss/node@4.1.12': - resolution: {integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==} + '@tailwindcss/node@4.1.13': + resolution: {integrity: sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==} - '@tailwindcss/oxide-android-arm64@4.1.12': - resolution: {integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==} + '@tailwindcss/oxide-android-arm64@4.1.13': + resolution: {integrity: sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.12': - resolution: {integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==} + '@tailwindcss/oxide-darwin-arm64@4.1.13': + resolution: {integrity: sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.12': - resolution: {integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==} + '@tailwindcss/oxide-darwin-x64@4.1.13': + resolution: {integrity: sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.12': - resolution: {integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==} + '@tailwindcss/oxide-freebsd-x64@4.1.13': + resolution: {integrity: sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': - resolution: {integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': + resolution: {integrity: sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': - resolution: {integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': + resolution: {integrity: sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.12': - resolution: {integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.13': + resolution: {integrity: sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.12': - resolution: {integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.13': + resolution: {integrity: sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.12': - resolution: {integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==} + '@tailwindcss/oxide-linux-x64-musl@4.1.13': + resolution: {integrity: sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.12': - resolution: {integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==} + '@tailwindcss/oxide-wasm32-wasi@4.1.13': + resolution: {integrity: sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -8834,24 +9120,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': - resolution: {integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': + resolution: {integrity: sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.12': - resolution: {integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.13': + resolution: {integrity: sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.12': - resolution: {integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==} + '@tailwindcss/oxide@4.1.13': + resolution: {integrity: sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==} engines: {node: '>= 10'} - '@tailwindcss/vite@4.1.12': - resolution: {integrity: sha512-4pt0AMFDx7gzIrAOIYgYP0KCBuKWqyW8ayrdiLEjoJTT4pKTjrzG/e4uzWtTLDziC+66R9wbUqZBccJalSE5vQ==} + '@tailwindcss/vite@4.1.13': + resolution: {integrity: sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 @@ -8862,6 +9148,9 @@ packages: '@tybys/wasm-util@0.10.0': resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + '@types/alpinejs@3.13.11': resolution: {integrity: sha512-3KhGkDixCPiLdL3Z/ok1GxHwLxEWqQOKJccgaQL01wc0EVM2tCTaqlC3NIedmxAXkVzt/V6VTM8qPgnOHKJ1MA==} @@ -8871,14 +9160,14 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} '@types/canvas-confetti@1.9.0': resolution: {integrity: sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg==} @@ -8973,11 +9262,11 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@18.19.123': - resolution: {integrity: sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg==} + '@types/node@18.19.120': + resolution: {integrity: sha512-WtCGHFXnVI8WHLxDAt5TbnCM4eSE+nI0QN2NJtwzcgMhht2eNz6V9evJrk+lwC8bCY8OWV5Ym8Jz7ZEyGnKnMA==} - '@types/node@22.18.0': - resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==} + '@types/node@22.13.1': + resolution: {integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -8991,8 +9280,8 @@ packages: '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} '@types/react-dom@18.3.7': resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} @@ -9035,8 +9324,8 @@ packages: '@types/which-pm-runs@1.0.2': resolution: {integrity: sha512-M0ZefeDApctHbjqtATOiixiwafG7pXD3exxnjku4XmX9+2DmONGghv5Z8Pnm0lNLBZKvDQyuG+4pLkH2UkP5gg==} - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} @@ -9047,63 +9336,63 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.42.0': - resolution: {integrity: sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==} + '@typescript-eslint/eslint-plugin@8.43.0': + resolution: {integrity: sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.42.0 + '@typescript-eslint/parser': ^8.43.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.42.0': - resolution: {integrity: sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==} + '@typescript-eslint/parser@8.43.0': + resolution: {integrity: sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.42.0': - resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==} + '@typescript-eslint/project-service@8.43.0': + resolution: {integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.42.0': - resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==} + '@typescript-eslint/scope-manager@8.43.0': + resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.42.0': - resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==} + '@typescript-eslint/tsconfig-utils@8.43.0': + resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.42.0': - resolution: {integrity: sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==} + '@typescript-eslint/type-utils@8.43.0': + resolution: {integrity: sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.42.0': - resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==} + '@typescript-eslint/types@8.43.0': + resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.42.0': - resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==} + '@typescript-eslint/typescript-estree@8.43.0': + resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.42.0': - resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==} + '@typescript-eslint/utils@8.43.0': + resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.42.0': - resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==} + '@typescript-eslint/visitor-keys@8.43.0': + resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/twoslash@3.1.0': @@ -9115,8 +9404,8 @@ packages: '@typescript/vfs@1.3.5': resolution: {integrity: sha512-pI8Saqjupf9MfLw7w2+og+fmb0fZS0J6vsKXXrp4/PDXEFvntgzXmChCXC/KefZZS0YGS6AT8e0hGAJcTsdJlg==} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} '@vercel/analytics@1.5.0': resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==} @@ -9219,45 +9508,45 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@volar/kit@2.4.23': - resolution: {integrity: sha512-YuUIzo9zwC2IkN7FStIcVl1YS9w5vkSFEZfPvnu0IbIMaR9WHhc9ZxvlT+91vrcSoRY469H2jwbrGqpG7m1KaQ==} + '@volar/kit@2.4.6': + resolution: {integrity: sha512-OaMtpmLns6IYD1nOSd0NdG/F5KzJ7Jr4B7TLeb4byPzu+ExuuRVeO56Dn1C7Frnw6bGudUQd90cpQAmxdB+RlQ==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.23': - resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} + '@volar/language-core@2.4.6': + resolution: {integrity: sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==} - '@volar/language-server@2.4.23': - resolution: {integrity: sha512-k0iO+tybMGMMyrNdWOxgFkP0XJTdbH0w+WZlM54RzJU3WZSjHEupwL30klpM7ep4FO6qyQa03h+VcGHD4Q8gEg==} + '@volar/language-server@2.4.6': + resolution: {integrity: sha512-ARIbMXapEUPj9UFbZqWqw/iZ+ZuxUcY+vY212+2uutZVo/jrdzhLPu2TfZd9oB9akX8XXuslinT3051DyHLLRA==} - '@volar/language-service@2.4.23': - resolution: {integrity: sha512-h5mU9DZ/6u3LCB9xomJtorNG6awBNnk9VuCioGsp6UtFiM8amvS5FcsaC3dabdL9zO0z+Gq9vIEMb/5u9K6jGQ==} + '@volar/language-service@2.4.6': + resolution: {integrity: sha512-wNeEVBgBKgpP1MfMYPrgTf1K8nhOGEh3ac0+9n6ECyk2N03+j0pWCpQ2i99mRWT/POvo1PgizDmYFH8S67bZOA==} - '@volar/source-map@2.4.23': - resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} + '@volar/source-map@2.4.6': + resolution: {integrity: sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==} - '@volar/typescript@2.4.23': - resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==} + '@volar/typescript@2.4.6': + resolution: {integrity: sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==} - '@vscode/emmet-helper@2.11.0': - resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - '@vue/babel-helper-vue-transform-on@1.5.0': - resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} + '@vue/babel-helper-vue-transform-on@1.4.0': + resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==} - '@vue/babel-plugin-jsx@1.5.0': - resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} + '@vue/babel-plugin-jsx@1.4.0': + resolution: {integrity: sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==} peerDependencies: '@babel/core': ^7.0.0-0 peerDependenciesMeta: '@babel/core': optional: true - '@vue/babel-plugin-resolve-type@1.5.0': - resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} + '@vue/babel-plugin-resolve-type@1.4.0': + resolution: {integrity: sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -9314,28 +9603,24 @@ packages: resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.10.10': - resolution: {integrity: sha512-watz4i/Vv4HpoJ+GranJ7HH75Pf+OkPQ63NoVmru6Srgc8VezTArB00i/oQlnn0KWh14gM42F22Qcc9SU9mo/w==} + '@whatwg-node/fetch@0.10.8': + resolution: {integrity: sha512-Rw9z3ctmeEj8QIB9MavkNJqekiu9usBCSMZa+uuAvM0lF3v70oQVCXNppMIqaV6OTZbdaHF1M2HLow58DEw+wg==} engines: {node: '>=18.0.0'} - '@whatwg-node/node-fetch@0.7.25': - resolution: {integrity: sha512-szCTESNJV+Xd56zU6ShOi/JWROxE9IwCic8o5D9z5QECZloas6Ez5tUuKqXTAdu6fHFx1t6C+5gwj8smzOLjtg==} + '@whatwg-node/node-fetch@0.7.21': + resolution: {integrity: sha512-QC16IdsEyIW7kZd77aodrMO7zAoDyyqRCTLg+qG4wqtP4JV9AA+p7/lgqMdD29XyiYdVvIdFrfI9yh7B1QvRvw==} engines: {node: '>=18.0.0'} '@whatwg-node/promise-helpers@1.3.2': resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} engines: {node: '>=16.0.0'} - '@whatwg-node/server@0.10.12': - resolution: {integrity: sha512-MQIvvQyPvKGna586MzXhgwnEbGtbm7QtOgJ/KPd/tC70M/jbhd1xHdIQQbh3okBw+MrDF/EvaC2vB5oRC7QdlQ==} + '@whatwg-node/server@0.10.10': + resolution: {integrity: sha512-GwpdMgUmwIp0jGjP535YtViP/nnmETAyHpGPWPZKdX++Qht/tSLbGXgFUMSsQvEACmZAR1lAPNu2CnYL1HpBgg==} engines: {node: '>=18.0.0'} - '@xmldom/xmldom@0.9.8': - resolution: {integrity: sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==} - engines: {node: '>=14.6'} - - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + abbrev@3.0.0: + resolution: {integrity: sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==} engines: {node: ^18.17.0 || >=20.5.0} abort-controller@3.0.0: @@ -9370,8 +9655,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} ajv-errors@3.0.0: @@ -9411,8 +9696,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.0: - resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@4.3.0: @@ -9477,11 +9762,11 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro-auto-import@0.4.4: - resolution: {integrity: sha512-tiYe1hp+VusdiyaD3INgZgbvXEPamDFiURnQR5Niz+E9fWa6IHYjJ99TwGlHh/evfaXE/U/86jp9MRKWTuJU1A==} + astro-auto-import@0.4.2: + resolution: {integrity: sha512-ZgWZQ58+EhbEym1+aoUnNyECOy0wsG5uRUs+rVp/7BzHtj1V76J2qkhjaTWLplgNb+8WrzhvTQNxytmXRCW+Ow==} engines: {node: '>=16.0.0'} peerDependencies: - astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta + astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta astro-embed@0.8.0: resolution: {integrity: sha512-zG7SjRKo2TT4LsZLQfttf+Yb9OJ2oty+/qj7SZ9RPPAo0olfbWgoXkAdrDHBJyvVMss9GCgCunIp/kqQ32t9ZA==} @@ -9512,8 +9797,8 @@ packages: peerDependencies: postcss: ^8.1.0 - axios@1.11.0: - resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -9522,8 +9807,8 @@ packages: b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - babel-plugin-jsx-dom-expressions@0.40.1: - resolution: {integrity: sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA==} + babel-plugin-jsx-dom-expressions@0.38.5: + resolution: {integrity: sha512-JfjHYKOKGwoiOYQ56Oo8gbZPb9wNMpPuEEUhSCjMpnuHM9K21HFIUBm83TZPB40Av4caCIW4Tfjzpkp/MtFpMw==} peerDependencies: '@babel/core': ^7.20.12 @@ -9532,14 +9817,10 @@ packages: peerDependencies: '@babel/core': ^7.12.10 - babel-preset-solid@1.9.9: - resolution: {integrity: sha512-pCnxWrciluXCeli/dj5PIEHgbNzim3evtTn12snjqqg8QZWJNMjH1AWIp4iG/tbVjqQ72aBEymMSagvmgxubXw==} + babel-preset-solid@1.8.22: + resolution: {integrity: sha512-nKwisb//lZsiRF2NErlRP64zVTJqa1OSZiDnSl0YbcTiCZoMt52CY2Pg+9fsYAPtjYMT7RHBmzU41pxK6hFOcg==} peerDependencies: '@babel/core': ^7.0.0 - solid-js: ^1.9.8 - peerDependenciesMeta: - solid-js: - optional: true bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -9547,8 +9828,8 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.6.1: - resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} + bare-events@2.5.4: + resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -9572,8 +9853,8 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - birpc@2.5.0: - resolution: {integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==} + birpc@2.3.0: + resolution: {integrity: sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==} blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} @@ -9592,11 +9873,11 @@ packages: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -9605,8 +9886,8 @@ packages: brotli@1.3.3: resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} - browserslist@4.25.3: - resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} + browserslist@4.25.4: + resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -9641,12 +9922,12 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} callsite@1.0.0: @@ -9664,8 +9945,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001737: - resolution: {integrity: sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==} + caniuse-lite@1.0.30001741: + resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} canvas-confetti@1.9.3: resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} @@ -9673,16 +9954,16 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.3.3: - resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} - engines: {node: '>=18'} + chai@5.2.0: + resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} + engines: {node: '>=12'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.0: - resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} char-spinner@1.0.1: @@ -9733,6 +10014,9 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -9816,10 +10100,6 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} - commander@13.1.0: - resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} - engines: {node: '>=18'} - commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -9831,6 +10111,10 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + commander@9.2.0: + resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==} + engines: {node: ^12.20.0 || >=14} + comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} @@ -9884,8 +10168,8 @@ packages: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} - copy-file@11.1.0: - resolution: {integrity: sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==} + copy-file@11.0.0: + resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==} engines: {node: '>=18'} core-util-is@1.0.3: @@ -9940,14 +10224,14 @@ packages: peerDependencies: postcss: ^8.4 - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} css-selector-parser@1.4.1: resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} - css-selector-parser@3.1.3: - resolution: {integrity: sha512-gJMigczVZqYAk0hPVzx/M4Hm1D9QOtqkdQk9005TNzDIUGzo5cnHEDiKUT7jGPximL/oYb+LIitcHFQ4aKupxg==} + css-selector-parser@3.0.5: + resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -9961,8 +10245,8 @@ packages: resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} cssdb@8.4.0: @@ -10020,8 +10304,8 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} @@ -10145,8 +10429,8 @@ packages: dettle@1.0.5: resolution: {integrity: sha512-ZVyjhAJ7sCe1PNXEGveObOH9AC8QvMga3HJIghHawtG7mE4K5pW9nz/vDGAr/U7a3LWgdOzEE7ac9MURnyfaTA==} - devalue@5.3.2: - resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -10186,8 +10470,8 @@ packages: resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} engines: {node: '>=18'} - dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} dotenv@8.6.0: @@ -10300,11 +10584,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.209: - resolution: {integrity: sha512-Xoz0uMrim9ZETCQt8UgM5FxQF9+imA7PBpokoGcZloA1uw2LeHzTlip5cb5KOAsXZLjh/moN2vReN3ZjJmjI9A==} + electron-to-chromium@1.5.215: + resolution: {integrity: sha512-TIvGp57UpeNetj/wV/xpFNpWGb0b/ROw372lHPx5Aafx02gjTBtWnEEcaSX3W2dLM3OSdGGyHX/cHl01JQsLaQ==} - emmet@2.4.11: - resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + emmet@2.4.7: + resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -10333,8 +10617,8 @@ packages: encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} enhanced-resolve@5.18.3: resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} @@ -10348,8 +10632,8 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + entities@6.0.0: + resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} engines: {node: '>=0.12'} env-paths@3.0.0: @@ -10381,10 +10665,6 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -10406,8 +10686,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.25.6: - resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==} + esbuild@0.25.9: + resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} engines: {node: '>=18'} hasBin: true @@ -10449,8 +10729,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.34.0: - resolution: {integrity: sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==} + eslint@9.35.0: + resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -10459,8 +10739,8 @@ packages: jiti: optional: true - esm-env@1.2.2: - resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + esm-env@1.2.1: + resolution: {integrity: sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==} esm@3.2.25: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} @@ -10537,8 +10817,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.6.0: - resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} + execa@9.5.2: + resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} engines: {node: ^18.19.0 || >=20.5.0} exit-hook@2.2.1: @@ -10553,8 +10833,8 @@ packages: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} - exsolve@1.0.7: - resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + exsolve@1.0.4: + resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -10586,15 +10866,15 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} fast-xml-parser@5.2.5: resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} hasBin: true - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fd-package-json@2.0.0: resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} @@ -10602,9 +10882,8 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -10669,8 +10948,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} @@ -10679,8 +10958,8 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -10694,12 +10973,12 @@ packages: fontkit@2.0.4: resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} formatly@0.2.4: @@ -10711,6 +10990,9 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + forwarded-parse@2.1.2: + resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -10726,8 +11008,8 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} - fs-extra@11.3.1: - resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} fs-extra@7.0.1: @@ -10767,16 +11049,16 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.3.0: - resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} - get-port-please@3.2.0: - resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} get-port@7.1.0: resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} @@ -10860,10 +11142,6 @@ packages: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -10871,8 +11149,8 @@ packages: hast-util-from-html@2.0.3: resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - hast-util-from-parse5@8.0.3: - resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} hast-util-has-property@3.0.0: resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} @@ -10886,26 +11164,26 @@ packages: hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-raw@9.1.0: - resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} hast-util-select@6.0.4: resolution: {integrity: sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==} - hast-util-to-estree@3.1.3: - resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} hast-util-to-html@9.0.5: resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} hast-util-to-text@4.0.2: resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} @@ -10913,11 +11191,14 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - hdr-histogram-js@3.0.1: - resolution: {integrity: sha512-l3GSdZL1Jr1C0kyb461tUjEdrRPZr8Qry7jByltf5JGrA0xvqOSrxRBfcrJqqV/AMEtqqhHhC6w8HW0gn76tRQ==} + hdr-histogram-js@3.0.0: + resolution: {integrity: sha512-/EpvQI2/Z98mNFYEnlqJ8Ogful8OpArLG/6Tf2bPnkutBVLIeMVNHjk1ZDfshF2BUweipzbk+dB1hgSB7SIakw==} engines: {node: '>=14'} hdr-histogram-percentiles-obj@3.0.0: @@ -10956,8 +11237,8 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-parser-js@0.5.10: - resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} http-shutdown@1.2.2: resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} @@ -10975,8 +11256,8 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - human-signals@8.0.1: - resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} engines: {node: '>=18.18.0'} hyperid@3.3.0: @@ -11009,13 +11290,16 @@ packages: engines: {node: '>=16.x'} hasBin: true - immutable@5.1.3: - resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} + import-in-the-middle@1.14.2: + resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} + import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} @@ -11034,6 +11318,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -11179,8 +11466,8 @@ packages: jpeg-js@0.4.4: resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} - js-base64@3.7.8: - resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} js-image-generator@1.0.4: resolution: {integrity: sha512-ckb7kyVojGAnArouVR+5lBIuwU1fcrn7E/YYSd0FK7oIngAkMmRvHASLro9Zt5SQdWToaI66NybG+OGxPw/HlQ==} @@ -11199,12 +11486,12 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdoc-type-pratt-parser@4.8.0: - resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} hasBin: true @@ -11234,8 +11521,8 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} @@ -11262,8 +11549,8 @@ packages: resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} engines: {node: '>=18'} - katex@0.16.22: - resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} + katex@0.16.11: + resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} hasBin: true keyv@4.5.4: @@ -11419,6 +11706,12 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.chunk@4.2.0: resolution: {integrity: sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==} @@ -11466,6 +11759,9 @@ packages: resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} engines: {node: '>= 12.0.0'} + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -11485,16 +11781,16 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - luxon@3.7.1: - resolution: {integrity: sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==} + luxon@3.6.1: + resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} engines: {node: '>=12'} lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.18: - resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -11513,15 +11809,15 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - marked-footnote@1.4.0: - resolution: {integrity: sha512-fZTxAhI1TcLEs5UOjCfYfTHpyKGaWQevbxaGTEA68B51l7i87SctPFtHETYqPkEN0ka5opvy4Dy1l/yXVC+hmg==} + marked-footnote@1.2.4: + resolution: {integrity: sha512-DB2Kl+wFh6YwZd70qABMY6WUkG1UuyqoNTFoDfGyG79Pz24neYtLBkB+45a7o72V7gkfvbC3CGzIYFobxfMT1Q==} peerDependencies: marked: '>=7.0.0' - marked-smartypants@1.1.10: - resolution: {integrity: sha512-XGK59M2nhy3Jpa0kdWSXQuKn908VkKbqK1IqF8Rk5QV619OWBs2/rkcg/PVhpKkADlRKJSYe6XqDMZMkZywT4g==} + marked-smartypants@1.1.8: + resolution: {integrity: sha512-2n8oSjL2gSkH6M0dSdRIyLgqqky03iKQkdmoaylmIzwIhYTW204S7ry6zP2iqwSl0zSlJH2xmWgxlZ/4XB1CdQ==} peerDependencies: - marked: '>=4 <17' + marked: '>=4 <15' marked@12.0.2: resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} @@ -11538,17 +11834,17 @@ packages: mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} @@ -11559,8 +11855,8 @@ packages: mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} mdast-util-math@3.0.0: resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} @@ -11583,8 +11879,8 @@ packages: mdast-util-to-hast@13.2.0: resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -11630,8 +11926,11 @@ packages: mhchemparser@4.2.1: resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + micro-api-client@3.3.0: + resolution: {integrity: sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==} + + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} micromark-extension-gfm-autolink-literal@2.1.0: resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} @@ -11642,8 +11941,8 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} @@ -11657,11 +11956,11 @@ packages: micromark-extension-math@3.1.0: resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - micromark-extension-mdx-expression@3.0.1: - resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - micromark-extension-mdx-jsx@3.0.2: - resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} micromark-extension-mdx-md@2.0.0: resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} @@ -11672,71 +11971,71 @@ packages: micromark-extension-mdxjs@3.0.0: resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - micromark-factory-mdx-expression@2.0.3: - resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - micromark-util-events-to-acorn@2.0.3: - resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} @@ -11799,8 +12098,8 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@3.0.2: - resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} engines: {node: '>= 18'} mitt@3.0.1: @@ -11814,14 +12113,17 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.8.0: - resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} module-definition@6.0.1: resolution: {integrity: sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g==} engines: {node: '>=18'} hasBin: true + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -11857,8 +12159,8 @@ packages: resolution: {integrity: sha512-k1oiVNN4hDK8NcNERSZLQiMfRzEGtfnvZvdBvey3SQbgn8Dcrk0h1I6vpxApjb10PFUflZrgJ2WEZyJQ+5v7YQ==} engines: {node: ^18.0.0 || >=20.0.0} - napi-postinstall@0.3.3: - resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} + napi-postinstall@0.3.2: + resolution: {integrity: sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true @@ -11910,15 +12212,15 @@ packages: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true node-html-parser@6.1.13: resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} - node-mock-http@1.0.2: - resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==} + node-mock-http@1.0.3: + resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} node-mocks-http@1.17.2: resolution: {integrity: sha512-HVxSnjNzE9NzoWMx9T9z4MLqwMpLwVvA0oVZ+L+gXskYXEJ6tFn3Kx4LargoB6ie7ZlCLplv7QbWO6N+MysWGA==} @@ -12023,8 +12325,8 @@ packages: open-props@1.7.16: resolution: {integrity: sha512-9dGv6wtah34stwweJytNEcCB0NG9HeV9wVsyr7Bs8RkKgrx2v0qIRi+9LQa5569nPbOpCOFF5nOxCPdKw30RAA==} - open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} optionator@0.9.4: @@ -12034,8 +12336,8 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - oxc-resolver@11.6.2: - resolution: {integrity: sha512-9lXwNQUzgPs5UgjKig5+EINESHYJCFsRQLzPyjWLc7sshl6ZXvXPiQfEGqUIs2fsd9SdV/jYmL7IuaK43cL0SA==} + oxc-resolver@11.6.0: + resolution: {integrity: sha512-Yj3Wy+zLljtFL8ByKOljaPhiXjJWVe875p5MHaT5VAHoEmzeg1BuswM8s/E7ErpJ3s0fsXJfUYJE4v1bl7N65g==} p-event@6.0.1: resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==} @@ -12089,8 +12391,8 @@ packages: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} - p-timeout@6.1.4: - resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} engines: {node: '>=14.16'} p-try@2.2.0: @@ -12101,8 +12403,8 @@ packages: resolution: {integrity: sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==} engines: {node: '>=12'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} @@ -12120,8 +12422,8 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} parse-gitignore@2.0.0: resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} @@ -12213,8 +12515,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.1: - resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} pend@1.2.0: @@ -12234,9 +12536,6 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - picoquery@2.5.0: - resolution: {integrity: sha512-j1kgOFxtaCyoFCkpoYG2Oj3OdGakadO7HZ7o5CqyRazlmBekKhbDoUnNnXASE07xSY4nDImWZkrZv7toSxMi/g==} - pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -12420,8 +12719,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -12513,8 +12812,12 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + property-information@7.0.0: + resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + + protobufjs@7.5.3: + resolution: {integrity: sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==} + engines: {node: '>=12.0.0'} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -12528,8 +12831,8 @@ packages: engines: {node: '>=18'} hasBin: true - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -12539,8 +12842,8 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + quansync@0.2.8: + resolution: {integrity: sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==} queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -12607,9 +12910,9 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} + readdirp@4.0.1: + resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==} + engines: {node: '>= 14.16.0'} reading-time@1.5.0: resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} @@ -12617,10 +12920,8 @@ packages: recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} - recma-jsx@1.0.1: - resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} recma-parse@1.0.0: resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} @@ -12635,6 +12936,9 @@ packages: regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} @@ -12654,8 +12958,8 @@ packages: rehype-mathjax@7.1.0: resolution: {integrity: sha512-mJHNpoqCC5UZ24OKx0wNjlzV18qeJz/Q/LtEjxXzt8vqrZ1Z3GxQnVrHcF5/PogcXUK8cWwJ4U/LWOQWEiABHw==} - rehype-parse@9.0.1: - resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + rehype-parse@9.0.0: + resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} rehype-pretty-code@0.14.1: resolution: {integrity: sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==} @@ -12694,8 +12998,8 @@ packages: remark-math@6.0.0: resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} - remark-mdx@3.1.0: - resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} @@ -12735,6 +13039,10 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-in-the-middle@7.5.2: + resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} + engines: {node: '>=8.6.0'} + require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} @@ -12749,6 +13057,11 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true @@ -12763,8 +13076,8 @@ packages: retext-latin@4.0.0: resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} - retext-smartypants@6.2.0: - resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + retext-smartypants@6.1.1: + resolution: {integrity: sha512-onsHf34i/GzgElJgtT1K2V+31yEhWs7NJboKNxXJcmVMMPxLpgxZ9iADoMdydd6j/bHic5F/aNq0CGqElEtu2g==} retext-stringify@4.0.0: resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} @@ -12779,15 +13092,19 @@ packages: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.50.0: - resolution: {integrity: sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==} + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + rollup@4.50.1: + resolution: {integrity: sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -12821,8 +13138,8 @@ packages: sass-formatter@0.7.9: resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sass@1.92.0: - resolution: {integrity: sha512-KDNI0BxgIRDAfJgzNm5wuy+4yOCIZyrUbjSpiU/JItfih+KGXAVefKL53MTml054MmBA3DDKIBMSI/7XLxZJ3A==} + sass@1.92.1: + resolution: {integrity: sha512-ffmsdbwqb3XeyR8jJR6KelIXARM9bFQe8A6Q3W4Klmwy5Ckd5gz7jgUNHo4UOqutU5Sk1DtKLbpDP0nLCg1xqQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -12856,14 +13173,14 @@ packages: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} - seroval-plugins@1.3.2: - resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==} + seroval-plugins@1.3.1: + resolution: {integrity: sha512-dOlUoiI3fgZbQIcj6By+l865pzeWdP3XCSLdI3xlKnjCk5983yLWPsXytFOUI0BUZKG9qwqbj78n9yVcVwUqaQ==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.3.2: - resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} + seroval@1.3.1: + resolution: {integrity: sha512-F+T9EQPdLzgdewgxnBh4mSc+vde+EOkU6dC9BDuu/bfGb+UyUlqM6t8znFCTPQSuai/ZcfFg0gu79h+bVW2O0w==} engines: {node: '>=10'} serve-static@1.16.2: @@ -13014,15 +13331,15 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.22: - resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} - speech-rule-engine@4.1.2: - resolution: {integrity: sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==} + speech-rule-engine@4.0.7: + resolution: {integrity: sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==} hasBin: true sprintf-js@1.0.3: @@ -13045,10 +13362,6 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} @@ -13129,11 +13442,11 @@ packages: strnum@2.1.1: resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} - style-to-js@1.1.17: - resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - style-to-object@1.0.9: - resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} subarg@1.0.0: resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} @@ -13163,8 +13476,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.38.7: - resolution: {integrity: sha512-1ld9TPZSdUS3EtYGQzisU2nhwXoIzNQcZ71IOU9fEmltaUofQnVfW5CQuhgM/zFsZ43arZXS1BRKi0MYgUV91w==} + svelte@5.38.8: + resolution: {integrity: sha512-UDpTbM/iuZ4MaMnn4ODB3rf5JKDyPOi5oJcopP0j7YHQ9BuJtsAqsR71r2N6AnJf7ygbalTJU5y8eSWGAQZjlQ==} engines: {node: '>=18'} svgo@3.3.2: @@ -13181,11 +13494,11 @@ packages: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} - tailwindcss@4.1.12: - resolution: {integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==} + tailwindcss@4.1.13: + resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==} - tapable@2.2.3: - resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} tar-stream@3.1.7: @@ -13244,8 +13557,8 @@ packages: tmp-promise@3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} - tmp@0.2.5: - resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} to-regex-range@5.0.1: @@ -13360,11 +13673,11 @@ packages: typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - typescript-auto-import-cache@0.3.6: - resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@8.42.0: - resolution: {integrity: sha512-ozR/rQn+aQXQxh1YgbCzQWDFrsi9mcg+1PM3l/z5o1+20P7suOIaNg515bpr/OYt6FObz/NHcBstydDLHWeEKg==} + typescript-eslint@8.43.0: + resolution: {integrity: sha512-FyRGJKUGvcFekRRcBKFBlAhnp4Ng8rhe8tuvvkR9OiU0gfd4vyvTRQHEckO6VDlH57jbeUQem2IpqPq9kLJH+w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -13394,8 +13707,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} undici@6.21.3: resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} @@ -13491,8 +13804,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unstorage@1.17.0: - resolution: {integrity: sha512-l9Z7lBiwtNp8ZmcoZ/dmPkFXFdtEdZtTZafCSnEIj3YvtkXeGAtL2rN8MQFy/0cs4eOLpuRJMp9ivdug7TCvww==} + unstorage@1.17.1: + resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} peerDependencies: '@azure/app-configuration': ^1.8.0 '@azure/cosmos': ^4.2.0 @@ -13506,7 +13819,7 @@ packages: '@planetscale/database': ^1.19.0 '@upstash/redis': ^1.34.3 '@vercel/blob': '>=0.27.1' - '@vercel/functions': ^2.2.12 + '@vercel/functions': ^2.2.12 || ^3.0.0 '@vercel/kv': ^1.0.1 aws4fetch: ^1.0.20 db0: '>=0.2.1' @@ -13569,8 +13882,8 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - urlpattern-polyfill@10.1.0: - resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} + urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} @@ -13593,8 +13906,8 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - validate-html-nesting@1.2.3: - resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==} + validate-html-nesting@1.2.2: + resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -13610,16 +13923,16 @@ packages: vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-hot-client@2.1.0: - resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==} + vite-hot-client@2.0.4: + resolution: {integrity: sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==} peerDependencies: - vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 vite-node@3.2.4: resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} @@ -13652,15 +13965,13 @@ packages: peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 - vite-plugin-vue-inspector@5.3.2: - resolution: {integrity: sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q==} + vite-plugin-vue-inspector@5.3.1: + resolution: {integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==} peerDependencies: - vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 - vite-prerender-plugin@0.5.11: - resolution: {integrity: sha512-xWOhb8Ef2zoJIiinYVunIf3omRfUbEXcPEvrkQcrDpJ2yjDokxhvQ26eSJbkthRhymntWx6816jpATrJphh+ug==} - peerDependencies: - vite: 5.x || 6.x || 7.x + vite-prerender-plugin@0.5.6: + resolution: {integrity: sha512-ELG0pflVXWNVGaHme8g0rZB7xFnytf1U6fYLep3NUC4knGmOHtEc2R7DIlnCKeYGUGkzfMcvJOasK4C0dulKbQ==} vite-svg-loader@5.1.0: resolution: {integrity: sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==} @@ -13743,32 +14054,32 @@ packages: jsdom: optional: true - volar-service-css@0.0.62: - resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==} + volar-service-css@0.0.61: + resolution: {integrity: sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.62: - resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==} + volar-service-emmet@0.0.61: + resolution: {integrity: sha512-iiYqBxjjcekqrRruw4COQHZME6EZYWVbkHjHDbULpml3g8HGJHzpAMkj9tXNCPxf36A+f1oUYjsvZt36qPg4cg==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.62: - resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==} + volar-service-html@0.0.61: + resolution: {integrity: sha512-yFE+YmmgqIL5HI4ORqP++IYb1QaGcv+xBboI0WkCxJJ/M35HZj7f5rbT3eQ24ECLXFbFCFanckwyWJVz5KmN3Q==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-prettier@0.0.62: - resolution: {integrity: sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==} + volar-service-prettier@0.0.61: + resolution: {integrity: sha512-F612nql5I0IS8HxXemCGvOR2Uxd4XooIwqYVUvk7WSBxP/+xu1jYvE3QJ7EVpl8Ty3S4SxPXYiYTsG3bi+gzIQ==} peerDependencies: '@volar/language-service': ~2.4.0 prettier: ^2.2 || ^3.0 @@ -13778,35 +14089,35 @@ packages: prettier: optional: true - volar-service-typescript-twoslash-queries@0.0.62: - resolution: {integrity: sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==} + volar-service-typescript-twoslash-queries@0.0.61: + resolution: {integrity: sha512-99FICGrEF0r1E2tV+SvprHPw9Knyg7BdW2fUch0tf59kG+KG+Tj4tL6tUg+cy8f23O/VXlmsWFMIE+bx1dXPnQ==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.62: - resolution: {integrity: sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==} + volar-service-typescript@0.0.61: + resolution: {integrity: sha512-4kRHxVbW7wFBHZWRU6yWxTgiKETBDIJNwmJUAWeP0mHaKpnDGj/astdRFKqGFRYVeEYl45lcUPhdJyrzanjsdQ==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-yaml@0.0.62: - resolution: {integrity: sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==} + volar-service-yaml@0.0.61: + resolution: {integrity: sha512-L+gbDiLDQQ1rZUbJ3mf3doDsoQUa8OZM/xdpk/unMg1Vz24Zmi2Ign8GrZyBD7bRoIQDwOH9gdktGDKzRPpUNw==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - vscode-css-languageservice@6.3.7: - resolution: {integrity: sha512-5TmXHKllPzfkPhW4UE9sODV3E0bIOJPOk+EERKllf2SmAczjfTmYeq5txco+N3jpF8KIZ6loj/JptpHBQuVQRA==} + vscode-css-languageservice@6.3.1: + resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} - vscode-html-languageservice@5.5.1: - resolution: {integrity: sha512-/ZdEtsZ3OiFSyL00kmmu7crFV9KwWR+MgpzjsxO60DQH7sIfHZM892C/E4iDd11EKocr+NYuvOA4Y7uc3QzLEA==} + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} vscode-json-languageservice@4.1.8: resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} @@ -13852,8 +14163,11 @@ packages: vscode-textmate@5.2.0: resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} vue@3.5.21: resolution: {integrity: sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==} @@ -13974,22 +14288,6 @@ packages: utf-8-validate: optional: true - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} - engines: {node: '>=18'} - xml2js@0.6.2: resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} engines: {node: '>=4.0.0'} @@ -13998,6 +14296,10 @@ packages: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} + xmldom-sre@0.1.31: + resolution: {integrity: sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==} + engines: {node: '>=0.1'} + xss@1.0.15: resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} engines: {node: '>= 0.10.0'} @@ -14028,8 +14330,8 @@ packages: resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} engines: {node: '>= 14'} - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} engines: {node: '>= 14.6'} hasBin: true @@ -14056,16 +14358,16 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} yocto-spinner@0.2.3: resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} engines: {node: '>=18.19'} - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} youch@3.3.4: @@ -14089,11 +14391,11 @@ packages: typescript: ^4.9.4 || ^5.0.2 zod: ^3 - zod-validation-error@3.5.3: - resolution: {integrity: sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw==} + zod-validation-error@3.4.0: + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} engines: {node: '>=18.0.0'} peerDependencies: - zod: ^3.25.0 || ^4.0.0 + zod: ^3.18.0 zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} @@ -14108,14 +14410,14 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 '@antfu/utils@0.7.10': {} '@assemblyscript/loader@0.19.23': {} - '@astro-community/astro-embed-baseline-status@0.1.2(astro@packages+astro)': + '@astro-community/astro-embed-baseline-status@0.1.1(astro@packages+astro)': dependencies: '@astro-community/astro-embed-utils': 0.1.3 astro: link:packages/astro @@ -14123,19 +14425,19 @@ snapshots: '@astro-community/astro-embed-integration@0.7.2(astro@packages+astro)': dependencies: '@astro-community/astro-embed-link-preview': 0.2.2 - '@astro-community/astro-embed-twitter': 0.5.8(astro@packages+astro) + '@astro-community/astro-embed-twitter': 0.5.6(astro@packages+astro) '@astro-community/astro-embed-vimeo': 0.3.10(astro@packages+astro) - '@astro-community/astro-embed-youtube': 0.5.6(astro@packages+astro) + '@astro-community/astro-embed-youtube': 0.5.5(astro@packages+astro) '@types/unist': 2.0.11 astro: link:packages/astro - astro-auto-import: 0.4.4(astro@packages+astro) + astro-auto-import: 0.4.2(astro@packages+astro) unist-util-select: 4.0.3 '@astro-community/astro-embed-link-preview@0.2.2': dependencies: '@astro-community/astro-embed-utils': 0.1.3 - '@astro-community/astro-embed-twitter@0.5.8(astro@packages+astro)': + '@astro-community/astro-embed-twitter@0.5.6(astro@packages+astro)': dependencies: '@astro-community/astro-embed-utils': 0.1.3 astro: link:packages/astro @@ -14149,14 +14451,14 @@ snapshots: '@astro-community/astro-embed-utils': 0.1.3 astro: link:packages/astro - '@astro-community/astro-embed-youtube@0.5.6(astro@packages+astro)': + '@astro-community/astro-embed-youtube@0.5.5(astro@packages+astro)': dependencies: astro: link:packages/astro lite-youtube-embed: 0.3.3 '@astrojs/check@0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2)': dependencies: - '@astrojs/language-server': 2.15.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2) + '@astrojs/language-server': 2.15.0(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2) chokidar: 4.0.3 kleur: 4.1.5 typescript: 5.9.2 @@ -14167,41 +14469,41 @@ snapshots: '@astrojs/cli-kit@0.4.1': dependencies: - chalk: 5.6.0 + chalk: 5.4.1 log-update: 5.0.1 sisteransi: 1.0.5 '@astrojs/compiler@2.12.2': {} - '@astrojs/language-server@2.15.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2)': + '@astrojs/language-server@2.15.0(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2)': dependencies: '@astrojs/compiler': 2.12.2 - '@astrojs/yaml2ts': 0.2.2 + '@astrojs/yaml2ts': 0.2.1 '@jridgewell/sourcemap-codec': 1.5.5 - '@volar/kit': 2.4.23(typescript@5.9.2) - '@volar/language-core': 2.4.23 - '@volar/language-server': 2.4.23 - '@volar/language-service': 2.4.23 + '@volar/kit': 2.4.6(typescript@5.9.2) + '@volar/language-core': 2.4.6 + '@volar/language-server': 2.4.6 + '@volar/language-service': 2.4.6 fast-glob: 3.3.3 muggle-string: 0.4.1 - volar-service-css: 0.0.62(@volar/language-service@2.4.23) - volar-service-emmet: 0.0.62(@volar/language-service@2.4.23) - volar-service-html: 0.0.62(@volar/language-service@2.4.23) - volar-service-prettier: 0.0.62(@volar/language-service@2.4.23)(prettier@3.6.2) - volar-service-typescript: 0.0.62(@volar/language-service@2.4.23) - volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.23) - volar-service-yaml: 0.0.62(@volar/language-service@2.4.23) - vscode-html-languageservice: 5.5.1 - vscode-uri: 3.1.0 + volar-service-css: 0.0.61(@volar/language-service@2.4.6) + volar-service-emmet: 0.0.61(@volar/language-service@2.4.6) + volar-service-html: 0.0.61(@volar/language-service@2.4.6) + volar-service-prettier: 0.0.61(@volar/language-service@2.4.6)(prettier@3.6.2) + volar-service-typescript: 0.0.61(@volar/language-service@2.4.6) + volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.6) + volar-service-yaml: 0.0.61(@volar/language-service@2.4.6) + vscode-html-languageservice: 5.3.1 + vscode-uri: 3.0.8 optionalDependencies: prettier: 3.6.2 prettier-plugin-astro: 0.14.1 transitivePeerDependencies: - typescript - '@astrojs/yaml2ts@0.2.2': + '@astrojs/yaml2ts@0.2.1': dependencies: - yaml: 2.8.1 + yaml: 2.8.0 '@babel/code-frame@7.27.1': dependencies: @@ -14209,20 +14511,20 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.28.0': {} + '@babel/compat-data@7.27.2': {} - '@babel/core@7.28.3': + '@babel/core@7.28.0': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) - '@babel/helpers': 7.28.3 - '@babel/parser': 7.28.3 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helpers': 7.27.6 + '@babel/parser': 7.28.4 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.4 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -14231,35 +14533,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.28.3': + '@babel/generator@7.28.0': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 - jsesc: 3.1.0 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.27.3': + '@babel/helper-annotate-as-pure@7.27.1': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.28.0 + '@babel/compat-data': 7.27.2 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.3 + browserslist: 4.25.4 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.3)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -14268,50 +14570,50 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.3)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color @@ -14321,104 +14623,106 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.28.3': + '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 - '@babel/parser@7.28.3': + '@babel/parser@7.28.4': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 - '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.3)': + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.3)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.3) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) - '@babel/types': 7.28.2 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.28.0) + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.3)': + '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.3 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/runtime@7.28.3': {} + '@babel/runtime@7.25.6': + dependencies: + regenerator-runtime: 0.14.1 '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@babel/traverse@7.28.3': + '@babel/traverse@7.28.0': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.0 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@babel/template': 7.27.2 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -14428,7 +14732,7 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.2': + '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -14480,7 +14784,7 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/apply-release-plan@7.0.12': + '@changesets/apply-release-plan@7.0.13': dependencies: '@changesets/config': 3.1.1 '@changesets/get-version-range-type': 0.4.0 @@ -14517,9 +14821,9 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.29.6(@types/node@18.19.123)': + '@changesets/cli@2.29.7(@types/node@18.19.120)': dependencies: - '@changesets/apply-release-plan': 7.0.12 + '@changesets/apply-release-plan': 7.0.13 '@changesets/assemble-release-plan': 6.0.9 '@changesets/changelog-git': 0.2.1 '@changesets/config': 3.1.1 @@ -14533,7 +14837,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.1(@types/node@18.19.123) + '@inquirer/external-editor': 1.0.1(@types/node@18.19.120) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -14639,14 +14943,14 @@ snapshots: human-id: 4.1.1 prettier: 2.8.8 - '@clack/core@0.3.5': + '@clack/core@0.3.4': dependencies: picocolors: 1.1.1 sisteransi: 1.0.5 '@clack/prompts@0.7.0': dependencies: - '@clack/core': 0.3.5 + '@clack/core': 0.3.4 picocolors: 1.1.1 sisteransi: 1.0.5 @@ -14675,22 +14979,22 @@ snapshots: '@cloudflare/workerd-windows-64@1.20250428.0': optional: true - '@cloudflare/workers-types@4.20250903.0': {} + '@cloudflare/workers-types@4.20250910.0': {} '@codspeed/core@4.0.1': dependencies: - axios: 1.11.0 + axios: 1.7.7 find-up: 6.3.0 - form-data: 4.0.4 - node-gyp-build: 4.8.4 + form-data: 4.0.0 + node-gyp-build: 4.8.2 transitivePeerDependencies: - debug - '@codspeed/vitest-plugin@4.0.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@codspeed/vitest-plugin@4.0.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: '@codspeed/core': 4.0.1 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - debug @@ -14744,9 +15048,9 @@ snapshots: '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 '@csstools/postcss-color-function-display-p3-linear@1.0.0(postcss@8.5.6)': dependencies: @@ -14843,9 +15147,9 @@ snapshots: '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 '@csstools/postcss-light-dark-function@2.0.10(postcss@8.5.6)': dependencies: @@ -14937,7 +15241,7 @@ snapshots: '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.6)': dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.6)': dependencies: @@ -14970,13 +15274,13 @@ snapshots: dependencies: postcss: 8.5.6 - '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.0.0)': dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.0.0)': dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 '@csstools/utilities@2.0.0(postcss@8.5.6)': dependencies: @@ -15046,7 +15350,7 @@ snapshots: '@esbuild/aix-ppc64@0.25.5': optional: true - '@esbuild/aix-ppc64@0.25.6': + '@esbuild/aix-ppc64@0.25.9': optional: true '@esbuild/android-arm64@0.24.2': @@ -15058,7 +15362,7 @@ snapshots: '@esbuild/android-arm64@0.25.5': optional: true - '@esbuild/android-arm64@0.25.6': + '@esbuild/android-arm64@0.25.9': optional: true '@esbuild/android-arm@0.24.2': @@ -15070,7 +15374,7 @@ snapshots: '@esbuild/android-arm@0.25.5': optional: true - '@esbuild/android-arm@0.25.6': + '@esbuild/android-arm@0.25.9': optional: true '@esbuild/android-x64@0.24.2': @@ -15082,7 +15386,7 @@ snapshots: '@esbuild/android-x64@0.25.5': optional: true - '@esbuild/android-x64@0.25.6': + '@esbuild/android-x64@0.25.9': optional: true '@esbuild/darwin-arm64@0.24.2': @@ -15094,7 +15398,7 @@ snapshots: '@esbuild/darwin-arm64@0.25.5': optional: true - '@esbuild/darwin-arm64@0.25.6': + '@esbuild/darwin-arm64@0.25.9': optional: true '@esbuild/darwin-x64@0.24.2': @@ -15106,7 +15410,7 @@ snapshots: '@esbuild/darwin-x64@0.25.5': optional: true - '@esbuild/darwin-x64@0.25.6': + '@esbuild/darwin-x64@0.25.9': optional: true '@esbuild/freebsd-arm64@0.24.2': @@ -15118,7 +15422,7 @@ snapshots: '@esbuild/freebsd-arm64@0.25.5': optional: true - '@esbuild/freebsd-arm64@0.25.6': + '@esbuild/freebsd-arm64@0.25.9': optional: true '@esbuild/freebsd-x64@0.24.2': @@ -15130,7 +15434,7 @@ snapshots: '@esbuild/freebsd-x64@0.25.5': optional: true - '@esbuild/freebsd-x64@0.25.6': + '@esbuild/freebsd-x64@0.25.9': optional: true '@esbuild/linux-arm64@0.24.2': @@ -15142,7 +15446,7 @@ snapshots: '@esbuild/linux-arm64@0.25.5': optional: true - '@esbuild/linux-arm64@0.25.6': + '@esbuild/linux-arm64@0.25.9': optional: true '@esbuild/linux-arm@0.24.2': @@ -15154,7 +15458,7 @@ snapshots: '@esbuild/linux-arm@0.25.5': optional: true - '@esbuild/linux-arm@0.25.6': + '@esbuild/linux-arm@0.25.9': optional: true '@esbuild/linux-ia32@0.24.2': @@ -15166,7 +15470,7 @@ snapshots: '@esbuild/linux-ia32@0.25.5': optional: true - '@esbuild/linux-ia32@0.25.6': + '@esbuild/linux-ia32@0.25.9': optional: true '@esbuild/linux-loong64@0.24.2': @@ -15178,7 +15482,7 @@ snapshots: '@esbuild/linux-loong64@0.25.5': optional: true - '@esbuild/linux-loong64@0.25.6': + '@esbuild/linux-loong64@0.25.9': optional: true '@esbuild/linux-mips64el@0.24.2': @@ -15190,7 +15494,7 @@ snapshots: '@esbuild/linux-mips64el@0.25.5': optional: true - '@esbuild/linux-mips64el@0.25.6': + '@esbuild/linux-mips64el@0.25.9': optional: true '@esbuild/linux-ppc64@0.24.2': @@ -15202,7 +15506,7 @@ snapshots: '@esbuild/linux-ppc64@0.25.5': optional: true - '@esbuild/linux-ppc64@0.25.6': + '@esbuild/linux-ppc64@0.25.9': optional: true '@esbuild/linux-riscv64@0.24.2': @@ -15214,7 +15518,7 @@ snapshots: '@esbuild/linux-riscv64@0.25.5': optional: true - '@esbuild/linux-riscv64@0.25.6': + '@esbuild/linux-riscv64@0.25.9': optional: true '@esbuild/linux-s390x@0.24.2': @@ -15226,7 +15530,7 @@ snapshots: '@esbuild/linux-s390x@0.25.5': optional: true - '@esbuild/linux-s390x@0.25.6': + '@esbuild/linux-s390x@0.25.9': optional: true '@esbuild/linux-x64@0.24.2': @@ -15238,7 +15542,7 @@ snapshots: '@esbuild/linux-x64@0.25.5': optional: true - '@esbuild/linux-x64@0.25.6': + '@esbuild/linux-x64@0.25.9': optional: true '@esbuild/netbsd-arm64@0.24.2': @@ -15250,7 +15554,7 @@ snapshots: '@esbuild/netbsd-arm64@0.25.5': optional: true - '@esbuild/netbsd-arm64@0.25.6': + '@esbuild/netbsd-arm64@0.25.9': optional: true '@esbuild/netbsd-x64@0.24.2': @@ -15262,7 +15566,7 @@ snapshots: '@esbuild/netbsd-x64@0.25.5': optional: true - '@esbuild/netbsd-x64@0.25.6': + '@esbuild/netbsd-x64@0.25.9': optional: true '@esbuild/openbsd-arm64@0.24.2': @@ -15274,7 +15578,7 @@ snapshots: '@esbuild/openbsd-arm64@0.25.5': optional: true - '@esbuild/openbsd-arm64@0.25.6': + '@esbuild/openbsd-arm64@0.25.9': optional: true '@esbuild/openbsd-x64@0.24.2': @@ -15286,10 +15590,10 @@ snapshots: '@esbuild/openbsd-x64@0.25.5': optional: true - '@esbuild/openbsd-x64@0.25.6': + '@esbuild/openbsd-x64@0.25.9': optional: true - '@esbuild/openharmony-arm64@0.25.6': + '@esbuild/openharmony-arm64@0.25.9': optional: true '@esbuild/sunos-x64@0.24.2': @@ -15301,7 +15605,7 @@ snapshots: '@esbuild/sunos-x64@0.25.5': optional: true - '@esbuild/sunos-x64@0.25.6': + '@esbuild/sunos-x64@0.25.9': optional: true '@esbuild/win32-arm64@0.24.2': @@ -15313,7 +15617,7 @@ snapshots: '@esbuild/win32-arm64@0.25.5': optional: true - '@esbuild/win32-arm64@0.25.6': + '@esbuild/win32-arm64@0.25.9': optional: true '@esbuild/win32-ia32@0.24.2': @@ -15325,7 +15629,7 @@ snapshots: '@esbuild/win32-ia32@0.25.5': optional: true - '@esbuild/win32-ia32@0.25.6': + '@esbuild/win32-ia32@0.25.9': optional: true '@esbuild/win32-x64@0.24.2': @@ -15337,12 +15641,12 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@esbuild/win32-x64@0.25.6': + '@esbuild/win32-x64@0.25.9': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.34.0(jiti@2.5.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@2.5.1))': dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -15368,14 +15672,14 @@ snapshots: espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.34.0': {} + '@eslint/js@9.35.0': {} '@eslint/object-schema@2.1.6': {} @@ -15386,12 +15690,24 @@ snapshots: '@fastify/accept-negotiator@2.0.1': {} - '@fastify/busboy@3.2.0': {} + '@fastify/busboy@3.1.1': {} '@fontsource/monofett@5.2.6': {} '@fontsource/montserrat@5.2.6': {} + '@grpc/grpc-js@1.13.4': + dependencies: + '@grpc/proto-loader': 0.7.15 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.15': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.3.2 + protobufjs: 7.5.3 + yargs: 17.7.2 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -15405,7 +15721,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} + '@humanwhocodes/retry@0.4.2': {} '@iarna/toml@2.2.5': {} @@ -15572,12 +15888,12 @@ snapshots: '@import-maps/resolve@2.0.0': {} - '@inquirer/external-editor@1.0.1(@types/node@18.19.123)': + '@inquirer/external-editor@1.0.1(@types/node@18.19.120)': dependencies: chardet: 2.1.0 iconv-lite: 0.6.3 optionalDependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 '@isaacs/cliui@8.0.2': dependencies: @@ -15592,21 +15908,21 @@ snapshots: dependencies: minipass: 7.1.2 - '@jridgewell/gen-mapping@0.3.13': + '@jridgewell/gen-mapping@0.3.12': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.29 '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.30': + '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -15616,22 +15932,24 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@js-sdsl/ordered-map@4.4.2': {} + '@jsdevtools/rehype-toc@3.0.2': {} - '@libsql/client@0.15.14': + '@libsql/client@0.15.15': dependencies: - '@libsql/core': 0.15.14 + '@libsql/core': 0.15.15 '@libsql/hrana-client': 0.7.0 - js-base64: 3.7.8 + js-base64: 3.7.7 libsql: 0.5.22 promise-limit: 2.7.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@libsql/core@0.15.14': + '@libsql/core@0.15.15': dependencies: - js-base64: 3.7.8 + js-base64: 3.7.7 '@libsql/darwin-arm64@0.5.22': optional: true @@ -15643,7 +15961,7 @@ snapshots: dependencies: '@libsql/isomorphic-fetch': 0.3.1 '@libsql/isomorphic-ws': 0.1.5 - js-base64: 3.7.8 + js-base64: 3.7.7 node-fetch: 3.3.2 transitivePeerDependencies: - bufferutil @@ -15653,8 +15971,8 @@ snapshots: '@libsql/isomorphic-ws@0.1.5': dependencies: - '@types/ws': 8.18.1 - ws: 8.18.3 + '@types/ws': 8.5.12 + ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -15688,14 +16006,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.25.6 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.25.6 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -15734,13 +16052,13 @@ snapshots: estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 + hast-util-to-jsx-runtime: 2.3.0 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.1(acorn@8.15.0) + recma-jsx: 1.0.0(acorn@8.15.0) recma-stringify: 1.0.0 rehype-recma: 1.0.0 - remark-mdx: 3.1.0 + remark-mdx: 3.0.1 remark-parse: 11.0.0 remark-rehype: 11.1.2 source-map: 0.7.6 @@ -15757,7 +16075,7 @@ snapshots: nanostores: 0.11.4 preact: 10.27.1 - '@napi-rs/wasm-runtime@1.0.3': + '@napi-rs/wasm-runtime@1.0.1': dependencies: '@emnapi/core': 1.4.5 '@emnapi/runtime': 1.4.5 @@ -15766,12 +16084,14 @@ snapshots: '@neon-rs/load@0.0.4': {} - '@netlify/api@14.0.4': + '@netlify/api@14.0.3': dependencies: '@netlify/open-api': 2.37.0 + lodash-es: 4.17.21 + micro-api-client: 3.3.0 node-fetch: 3.3.2 p-wait-for: 5.0.2 - picoquery: 2.5.0 + qs: 6.13.0 '@netlify/binary-info@1.0.0': {} @@ -15780,17 +16100,17 @@ snapshots: '@netlify/dev-utils': 4.1.3 '@netlify/runtime-utils': 2.1.0 - '@netlify/cache@3.0.11': + '@netlify/cache@3.1.0': dependencies: '@netlify/runtime-utils': 2.1.0 '@netlify/config@23.2.0': dependencies: '@iarna/toml': 2.2.5 - '@netlify/api': 14.0.4 + '@netlify/api': 14.0.3 '@netlify/headers-parser': 9.0.2 '@netlify/redirect-parser': 15.0.3 - chalk: 5.6.0 + chalk: 5.4.1 cron-parser: 4.9.0 deepmerge: 4.3.1 dot-prop: 9.0.0 @@ -15808,12 +16128,12 @@ snapshots: read-package-up: 11.0.0 tomlify-j0.4: 3.0.0 validate-npm-package-name: 5.0.1 - yaml: 2.8.1 + yaml: 2.8.0 yargs: 17.7.2 '@netlify/dev-utils@4.1.3': dependencies: - '@whatwg-node/server': 0.10.12 + '@whatwg-node/server': 0.10.10 ansis: 4.1.0 chokidar: 4.0.3 decache: 4.6.2 @@ -15829,17 +16149,17 @@ snapshots: uuid: 11.1.0 write-file-atomic: 5.0.1 - '@netlify/dev@4.5.8(@vercel/functions@2.2.13)(rollup@4.50.0)': + '@netlify/dev@4.5.9(@vercel/functions@2.2.13)(rollup@4.50.1)': dependencies: '@netlify/blobs': 10.0.10 '@netlify/config': 23.2.0 '@netlify/dev-utils': 4.1.3 '@netlify/edge-functions': 2.17.4 - '@netlify/functions': 4.2.5(rollup@4.50.0) + '@netlify/functions': 4.2.5(rollup@4.50.1) '@netlify/headers': 2.0.11 '@netlify/images': 1.2.7(@netlify/blobs@10.0.10)(@vercel/functions@2.2.13) '@netlify/redirects': 3.0.12 - '@netlify/runtime': 4.0.14 + '@netlify/runtime': 4.0.15 '@netlify/static': 3.0.10 ulid: 3.0.1 transitivePeerDependencies: @@ -15865,7 +16185,7 @@ snapshots: - supports-color - uploadthing - '@netlify/edge-bundler@14.5.2': + '@netlify/edge-bundler@14.5.4': dependencies: '@import-maps/resolve': 2.0.0 ajv: 8.17.1 @@ -15873,7 +16193,7 @@ snapshots: better-ajv-errors: 1.2.0(ajv@8.17.1) common-path-prefix: 3.0.0 env-paths: 3.0.0 - esbuild: 0.25.6 + esbuild: 0.25.9 execa: 8.0.1 find-up: 7.0.0 get-port: 7.1.0 @@ -15888,23 +16208,23 @@ snapshots: urlpattern-polyfill: 8.0.2 uuid: 11.1.0 - '@netlify/edge-functions-bootstrap@2.16.2': {} + '@netlify/edge-functions-bootstrap@2.16.3': {} '@netlify/edge-functions@2.17.4': dependencies: '@netlify/dev-utils': 4.1.3 - '@netlify/edge-bundler': 14.5.2 - '@netlify/edge-functions-bootstrap': 2.16.2 + '@netlify/edge-bundler': 14.5.4 + '@netlify/edge-functions-bootstrap': 2.16.3 '@netlify/runtime-utils': 2.1.0 '@netlify/types': 2.0.3 get-port: 7.1.0 - '@netlify/functions@4.2.5(rollup@4.50.0)': + '@netlify/functions@4.2.5(rollup@4.50.1)': dependencies: '@netlify/blobs': 10.0.10 '@netlify/dev-utils': 4.1.3 '@netlify/types': 2.0.3 - '@netlify/zip-it-and-ship-it': 14.1.4(rollup@4.50.0) + '@netlify/zip-it-and-ship-it': 14.1.7(rollup@4.50.1) cron-parser: 4.9.0 decache: 4.6.2 extract-zip: 2.0.1 @@ -15974,14 +16294,14 @@ snapshots: '@netlify/runtime-utils@2.1.0': {} - '@netlify/runtime@4.0.14': + '@netlify/runtime@4.0.15': dependencies: '@netlify/blobs': 10.0.10 - '@netlify/cache': 3.0.11 + '@netlify/cache': 3.1.0 '@netlify/runtime-utils': 2.1.0 '@netlify/types': 2.0.3 - '@netlify/serverless-functions-api@2.2.1': {} + '@netlify/serverless-functions-api@2.5.0': {} '@netlify/static@3.0.10': dependencies: @@ -15989,11 +16309,11 @@ snapshots: '@netlify/types@2.0.3': {} - '@netlify/vite-plugin@2.5.8(@vercel/functions@2.2.13)(rollup@4.50.0)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@netlify/vite-plugin@2.5.9(@vercel/functions@2.2.13)(rollup@4.50.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: - '@netlify/dev': 4.5.8(@vercel/functions@2.2.13)(rollup@4.50.0) + '@netlify/dev': 4.5.9(@vercel/functions@2.2.13)(rollup@4.50.1) '@netlify/dev-utils': 4.1.3 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -16017,18 +16337,18 @@ snapshots: - supports-color - uploadthing - '@netlify/zip-it-and-ship-it@14.1.4(rollup@4.50.0)': + '@netlify/zip-it-and-ship-it@14.1.7(rollup@4.50.1)': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@babel/types': 7.28.1 '@netlify/binary-info': 1.0.0 - '@netlify/serverless-functions-api': 2.2.1 - '@vercel/nft': 0.29.4(rollup@4.50.0) + '@netlify/serverless-functions-api': 2.5.0 + '@vercel/nft': 0.29.4(rollup@4.50.1) archiver: 7.0.1 common-path-prefix: 3.0.0 - copy-file: 11.1.0 + copy-file: 11.0.0 es-module-lexer: 1.7.0 - esbuild: 0.25.6 + esbuild: 0.25.9 execa: 8.0.1 fast-glob: 3.3.3 filter-obj: 6.1.0 @@ -16066,97 +16386,355 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.17.1 + + '@opentelemetry/api-logs@0.203.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.36.0 + + '@opentelemetry/exporter-logs-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-logs-otlp-http@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-logs-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-http@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-prometheus@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-trace-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-trace-otlp-http@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-zipkin@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + + '@opentelemetry/instrumentation-fetch@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-web': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-http@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + forwarded-parse: 2.1.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-undici@0.14.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 7.5.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/otlp-exporter-base@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-grpc-exporter-base@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-transformer@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + protobufjs: 7.5.3 + + '@opentelemetry/propagator-b3@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/propagator-jaeger@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + + '@opentelemetry/sdk-logs@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-node@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-prometheus': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-zipkin': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + + '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-trace-web@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/semantic-conventions@1.36.0': {} '@oslojs/encoding@1.1.0': {} - '@oxc-resolver/binding-android-arm-eabi@11.6.2': + '@oxc-resolver/binding-android-arm-eabi@11.6.0': optional: true - '@oxc-resolver/binding-android-arm64@11.6.2': + '@oxc-resolver/binding-android-arm64@11.6.0': optional: true - '@oxc-resolver/binding-darwin-arm64@11.6.2': + '@oxc-resolver/binding-darwin-arm64@11.6.0': optional: true - '@oxc-resolver/binding-darwin-x64@11.6.2': + '@oxc-resolver/binding-darwin-x64@11.6.0': optional: true - '@oxc-resolver/binding-freebsd-x64@11.6.2': + '@oxc-resolver/binding-freebsd-x64@11.6.0': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.6.2': + '@oxc-resolver/binding-linux-arm-gnueabihf@11.6.0': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.6.2': + '@oxc-resolver/binding-linux-arm-musleabihf@11.6.0': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.6.2': + '@oxc-resolver/binding-linux-arm64-gnu@11.6.0': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.6.2': + '@oxc-resolver/binding-linux-arm64-musl@11.6.0': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.6.2': + '@oxc-resolver/binding-linux-ppc64-gnu@11.6.0': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.6.2': + '@oxc-resolver/binding-linux-riscv64-gnu@11.6.0': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.6.2': + '@oxc-resolver/binding-linux-riscv64-musl@11.6.0': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.6.2': + '@oxc-resolver/binding-linux-s390x-gnu@11.6.0': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.6.2': + '@oxc-resolver/binding-linux-x64-gnu@11.6.0': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.6.2': + '@oxc-resolver/binding-linux-x64-musl@11.6.0': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.6.2': + '@oxc-resolver/binding-wasm32-wasi@11.6.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.3 + '@napi-rs/wasm-runtime': 1.0.1 optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.6.2': + '@oxc-resolver/binding-win32-arm64-msvc@11.6.0': optional: true - '@oxc-resolver/binding-win32-ia32-msvc@11.6.2': + '@oxc-resolver/binding-win32-ia32-msvc@11.6.0': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.6.2': + '@oxc-resolver/binding-win32-x64-msvc@11.6.0': optional: true - '@parcel/watcher-android-arm64@2.5.1': + '@parcel/watcher-android-arm64@2.4.1': optional: true - '@parcel/watcher-darwin-arm64@2.5.1': + '@parcel/watcher-darwin-arm64@2.4.1': optional: true - '@parcel/watcher-darwin-x64@2.5.1': + '@parcel/watcher-darwin-x64@2.4.1': optional: true - '@parcel/watcher-freebsd-x64@2.5.1': + '@parcel/watcher-freebsd-x64@2.4.1': optional: true - '@parcel/watcher-linux-arm-glibc@2.5.1': + '@parcel/watcher-linux-arm-glibc@2.4.1': optional: true - '@parcel/watcher-linux-arm-musl@2.5.1': + '@parcel/watcher-linux-arm64-glibc@2.4.1': optional: true - '@parcel/watcher-linux-arm64-glibc@2.5.1': + '@parcel/watcher-linux-arm64-musl@2.4.1': optional: true - '@parcel/watcher-linux-arm64-musl@2.5.1': + '@parcel/watcher-linux-x64-glibc@2.4.1': optional: true - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': + '@parcel/watcher-linux-x64-musl@2.4.1': optional: true '@parcel/watcher-wasm@2.5.1': @@ -16164,35 +16742,34 @@ snapshots: is-glob: 4.0.3 micromatch: 4.0.8 - '@parcel/watcher-win32-arm64@2.5.1': + '@parcel/watcher-win32-arm64@2.4.1': optional: true - '@parcel/watcher-win32-ia32@2.5.1': + '@parcel/watcher-win32-ia32@2.4.1': optional: true - '@parcel/watcher-win32-x64@2.5.1': + '@parcel/watcher-win32-x64@2.4.1': optional: true - '@parcel/watcher@2.5.1': + '@parcel/watcher@2.4.1': dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 micromatch: 4.0.8 node-addon-api: 7.1.1 optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 '@pkgjs/parseargs@0.11.0': optional: true @@ -16205,20 +16782,20 @@ snapshots: dependencies: playwright: 1.55.0 - '@polka/url@1.0.0-next.29': {} + '@polka/url@1.0.0-next.25': {} - '@preact/preset-vite@2.10.2(@babel/core@7.28.3)(preact@10.27.1)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.27.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.3) - '@prefresh/vite': 2.4.10(preact@10.27.1)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.28.0) + '@prefresh/vite': 2.4.5(preact@10.27.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) '@rollup/pluginutils': 4.2.1 - babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.3) + babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.0) debug: 4.4.1 picocolors: 1.1.1 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) - vite-prerender-plugin: 0.5.11(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) + vite-prerender-plugin: 0.5.6 transitivePeerDependencies: - preact - supports-color @@ -16230,110 +16807,131 @@ snapshots: '@preact/signals-core': 1.12.1 preact: 10.27.1 - '@prefresh/babel-plugin@0.5.2': {} + '@prefresh/babel-plugin@0.5.1': {} - '@prefresh/core@1.5.7(preact@10.27.1)': + '@prefresh/core@1.5.2(preact@10.27.1)': dependencies: preact: 10.27.1 - '@prefresh/utils@1.2.1': {} + '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.10(preact@10.27.1)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@prefresh/vite@2.4.5(preact@10.27.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: - '@babel/core': 7.28.3 - '@prefresh/babel-plugin': 0.5.2 - '@prefresh/core': 1.5.7(preact@10.27.1) - '@prefresh/utils': 1.2.1 + '@babel/core': 7.28.0 + '@prefresh/babel-plugin': 0.5.1 + '@prefresh/core': 1.5.2(preact@10.27.1) + '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.27.1 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + '@publint/pack@0.1.2': {} '@qwik.dev/partytown@0.11.2': dependencies: - dotenv: 16.6.1 + dotenv: 16.4.7 '@rolldown/pluginutils@1.0.0-beta.27': {} - '@rolldown/pluginutils@1.0.0-beta.34': {} - '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.2.0(rollup@4.50.0)': + '@rollup/pluginutils@5.3.0(rollup@4.50.1)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.50.0 + rollup: 4.50.1 - '@rollup/rollup-android-arm-eabi@4.50.0': + '@rollup/rollup-android-arm-eabi@4.50.1': optional: true - '@rollup/rollup-android-arm64@4.50.0': + '@rollup/rollup-android-arm64@4.50.1': optional: true - '@rollup/rollup-darwin-arm64@4.50.0': + '@rollup/rollup-darwin-arm64@4.50.1': optional: true - '@rollup/rollup-darwin-x64@4.50.0': + '@rollup/rollup-darwin-x64@4.50.1': optional: true - '@rollup/rollup-freebsd-arm64@4.50.0': + '@rollup/rollup-freebsd-arm64@4.50.1': optional: true - '@rollup/rollup-freebsd-x64@4.50.0': + '@rollup/rollup-freebsd-x64@4.50.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.50.0': + '@rollup/rollup-linux-arm-gnueabihf@4.50.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.50.0': + '@rollup/rollup-linux-arm-musleabihf@4.50.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.50.0': + '@rollup/rollup-linux-arm64-gnu@4.50.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.50.0': + '@rollup/rollup-linux-arm64-musl@4.50.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.50.0': + '@rollup/rollup-linux-loongarch64-gnu@4.50.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.50.0': + '@rollup/rollup-linux-ppc64-gnu@4.50.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.50.0': + '@rollup/rollup-linux-riscv64-gnu@4.50.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.50.0': + '@rollup/rollup-linux-riscv64-musl@4.50.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.50.0': + '@rollup/rollup-linux-s390x-gnu@4.50.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.50.0': + '@rollup/rollup-linux-x64-gnu@4.50.1': optional: true - '@rollup/rollup-linux-x64-musl@4.50.0': + '@rollup/rollup-linux-x64-musl@4.50.1': optional: true - '@rollup/rollup-openharmony-arm64@4.50.0': + '@rollup/rollup-openharmony-arm64@4.50.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.50.0': + '@rollup/rollup-win32-arm64-msvc@4.50.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.50.0': + '@rollup/rollup-win32-ia32-msvc@4.50.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.50.0': + '@rollup/rollup-win32-x64-msvc@4.50.1': optional: true '@sec-ant/readable-stream@0.4.1': {} @@ -16381,25 +16979,25 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.7)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)))(svelte@5.38.7)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.8)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)))(svelte@5.38.8)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.38.7)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.38.8)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) debug: 4.4.1 - svelte: 5.38.7 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + svelte: 5.38.8 + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.7)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.8)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.7)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)))(svelte@5.38.7)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.8)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)))(svelte@5.38.8)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) debug: 4.4.1 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.18 - svelte: 5.38.7 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) - vitefu: 1.1.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + magic-string: 0.30.19 + svelte: 5.38.8 + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) + vitefu: 1.1.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) transitivePeerDependencies: - supports-color @@ -16407,76 +17005,76 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.1.12': + '@tailwindcss/node@4.1.13': dependencies: '@jridgewell/remapping': 2.3.5 enhanced-resolve: 5.18.3 jiti: 2.5.1 lightningcss: 1.30.1 - magic-string: 0.30.18 + magic-string: 0.30.19 source-map-js: 1.2.1 - tailwindcss: 4.1.12 + tailwindcss: 4.1.13 - '@tailwindcss/oxide-android-arm64@4.1.12': + '@tailwindcss/oxide-android-arm64@4.1.13': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.12': + '@tailwindcss/oxide-darwin-arm64@4.1.13': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.12': + '@tailwindcss/oxide-darwin-x64@4.1.13': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.12': + '@tailwindcss/oxide-freebsd-x64@4.1.13': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.12': + '@tailwindcss/oxide-linux-arm64-musl@4.1.13': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.12': + '@tailwindcss/oxide-linux-x64-gnu@4.1.13': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.12': + '@tailwindcss/oxide-linux-x64-musl@4.1.13': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.12': + '@tailwindcss/oxide-wasm32-wasi@4.1.13': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.12': + '@tailwindcss/oxide-win32-x64-msvc@4.1.13': optional: true - '@tailwindcss/oxide@4.1.12': + '@tailwindcss/oxide@4.1.13': dependencies: detect-libc: 2.0.4 tar: 7.4.3 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.12 - '@tailwindcss/oxide-darwin-arm64': 4.1.12 - '@tailwindcss/oxide-darwin-x64': 4.1.12 - '@tailwindcss/oxide-freebsd-x64': 4.1.12 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.12 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.12 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.12 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.12 - '@tailwindcss/oxide-linux-x64-musl': 4.1.12 - '@tailwindcss/oxide-wasm32-wasi': 4.1.12 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.12 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.12 - - '@tailwindcss/vite@4.1.12(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': - dependencies: - '@tailwindcss/node': 4.1.12 - '@tailwindcss/oxide': 4.1.12 - tailwindcss: 4.1.12 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + '@tailwindcss/oxide-android-arm64': 4.1.13 + '@tailwindcss/oxide-darwin-arm64': 4.1.13 + '@tailwindcss/oxide-darwin-x64': 4.1.13 + '@tailwindcss/oxide-freebsd-x64': 4.1.13 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.13 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.13 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.13 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.13 + '@tailwindcss/oxide-linux-x64-musl': 4.1.13 + '@tailwindcss/oxide-wasm32-wasi': 4.1.13 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.13 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.13 + + '@tailwindcss/vite@4.1.13(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': + dependencies: + '@tailwindcss/node': 4.1.13 + '@tailwindcss/oxide': 4.1.13 + tailwindcss: 4.1.13 + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) '@trysound/sax@0.2.0': {} @@ -16485,30 +17083,34 @@ snapshots: tslib: 2.8.1 optional: true + '@types/acorn@4.0.6': + dependencies: + '@types/estree': 1.0.8 + '@types/alpinejs@3.13.11': {} '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 - '@types/babel__generator': 7.27.0 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.28.0 + '@types/babel__traverse': 7.20.6 - '@types/babel__generator@7.27.0': + '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@types/babel__traverse@7.28.0': + '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/canvas-confetti@1.9.0': {} @@ -16540,7 +17142,7 @@ snapshots: '@types/fontkit@2.0.8': dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 '@types/hast@3.0.4': dependencies: @@ -16594,13 +17196,13 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@18.19.123': + '@types/node@18.19.120': dependencies: undici-types: 5.26.5 - '@types/node@22.18.0': + '@types/node@22.13.1': dependencies: - undici-types: 6.21.0 + undici-types: 6.20.0 '@types/normalize-package-data@2.4.4': {} @@ -16610,10 +17212,10 @@ snapshots: '@types/prompts@2.4.9': dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 kleur: 3.0.3 - '@types/prop-types@15.7.15': {} + '@types/prop-types@15.7.12': {} '@types/react-dom@18.3.7(@types/react@18.3.24)': dependencies: @@ -16621,25 +17223,25 @@ snapshots: '@types/react@18.3.24': dependencies: - '@types/prop-types': 15.7.15 + '@types/prop-types': 15.7.12 csstype: 3.1.3 '@types/retry@0.12.2': {} '@types/sax@1.2.7': dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 '@types/semver@7.7.0': {} '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.123 + '@types/node': 18.19.120 '@types/server-destroy@1.0.4': dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 '@types/triple-beam@1.3.5': {} @@ -16653,30 +17255,30 @@ snapshots: '@types/which-pm-runs@1.0.2': {} - '@types/ws@8.18.1': + '@types/ws@8.5.12': dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 '@types/xml2js@0.4.14': dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 '@types/yargs-parser@21.0.3': {} '@types/yauzl@2.10.3': dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 optional: true - '@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/type-utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.42.0 - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.43.0 + '@typescript-eslint/type-utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.43.0 + eslint: 9.35.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -16685,56 +17287,56 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.42.0 + '@typescript-eslint/scope-manager': 8.43.0 + '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.43.0 debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.43.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2) + '@typescript-eslint/types': 8.43.0 debug: 4.4.1 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.42.0': + '@typescript-eslint/scope-manager@8.43.0': dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/visitor-keys': 8.42.0 + '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/visitor-keys': 8.43.0 - '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.42.0': {} + '@typescript-eslint/types@8.43.0': {} - '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.43.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/visitor-keys': 8.42.0 + '@typescript-eslint/project-service': 8.43.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2) + '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/visitor-keys': 8.43.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -16745,20 +17347,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.43.0 + '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.42.0': + '@typescript-eslint/visitor-keys@8.43.0': dependencies: - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/types': 8.43.0 eslint-visitor-keys: 4.2.1 '@typescript/twoslash@3.1.0': @@ -16781,22 +17383,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@ungap/structured-clone@1.3.0': {} + '@ungap/structured-clone@1.2.0': {} - '@vercel/analytics@1.5.0(react@19.1.1)(svelte@5.38.7)(vue@3.5.21(typescript@5.9.2))': + '@vercel/analytics@1.5.0(react@19.1.1)(svelte@5.38.8)(vue@3.5.21(typescript@5.9.2))': optionalDependencies: react: 19.1.1 - svelte: 5.38.7 + svelte: 5.38.8 vue: 3.5.21(typescript@5.9.2) '@vercel/functions@2.2.13': dependencies: '@vercel/oidc': 2.0.2 - '@vercel/nft@0.29.4(rollup@4.50.0)': + '@vercel/nft@0.29.4(rollup@4.50.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.2.0(rollup@4.50.0) + '@rollup/pluginutils': 5.3.0(rollup@4.50.1) acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) async-sema: 3.1.1 @@ -16804,7 +17406,7 @@ snapshots: estree-walker: 2.0.2 glob: 10.4.5 graceful-fs: 4.2.11 - node-gyp-build: 4.8.4 + node-gyp-build: 4.8.2 picomatch: 4.0.3 resolve-from: 5.0.0 transitivePeerDependencies: @@ -16812,10 +17414,10 @@ snapshots: - rollup - supports-color - '@vercel/nft@0.30.1(rollup@4.50.0)': + '@vercel/nft@0.30.1(rollup@4.50.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.2.0(rollup@4.50.0) + '@rollup/pluginutils': 5.3.0(rollup@4.50.1) acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) async-sema: 3.1.1 @@ -16823,7 +17425,7 @@ snapshots: estree-walker: 2.0.2 glob: 10.4.5 graceful-fs: 4.2.11 - node-gyp-build: 4.8.4 + node-gyp-build: 4.8.2 picomatch: 4.0.3 resolve-from: 5.0.0 transitivePeerDependencies: @@ -16843,32 +17445,32 @@ snapshots: optionalDependencies: ajv: 6.12.6 - '@vitejs/plugin-react@4.7.0(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@vitejs/plugin-react@4.7.0(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.3) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2))': dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3) - '@rolldown/pluginutils': 1.0.0-beta.34 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3) - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + '@babel/core': 7.28.0 + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.28.0) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.28.0) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) vue: 3.5.21(typescript@5.9.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + '@vitejs/plugin-vue@5.2.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2))': dependencies: - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) vue: 3.5.21(typescript@5.9.2) '@vitest/expect@3.2.4': @@ -16876,16 +17478,16 @@ snapshots: '@types/chai': 5.2.2 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.3.3 + chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.18 + magic-string: 0.30.19 optionalDependencies: - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -16900,7 +17502,7 @@ snapshots: '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 '@vitest/spy@3.2.4': @@ -16913,88 +17515,88 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@volar/kit@2.4.23(typescript@5.9.2)': + '@volar/kit@2.4.6(typescript@5.9.2)': dependencies: - '@volar/language-service': 2.4.23 - '@volar/typescript': 2.4.23 + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 typesafe-path: 0.2.2 typescript: 5.9.2 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 - '@volar/language-core@2.4.23': + '@volar/language-core@2.4.6': dependencies: - '@volar/source-map': 2.4.23 + '@volar/source-map': 2.4.6 - '@volar/language-server@2.4.23': + '@volar/language-server@2.4.6': dependencies: - '@volar/language-core': 2.4.23 - '@volar/language-service': 2.4.23 - '@volar/typescript': 2.4.23 + '@volar/language-core': 2.4.6 + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 - '@volar/language-service@2.4.23': + '@volar/language-service@2.4.6': dependencies: - '@volar/language-core': 2.4.23 + '@volar/language-core': 2.4.6 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 - '@volar/source-map@2.4.23': {} + '@volar/source-map@2.4.6': {} - '@volar/typescript@2.4.23': + '@volar/typescript@2.4.6': dependencies: - '@volar/language-core': 2.4.23 + '@volar/language-core': 2.4.6 path-browserify: 1.0.1 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 - '@vscode/emmet-helper@2.11.0': + '@vscode/emmet-helper@2.9.3': dependencies: - emmet: 2.4.11 + emmet: 2.4.7 jsonc-parser: 2.3.1 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 + vscode-uri: 2.1.2 '@vscode/l10n@0.0.18': {} - '@vue/babel-helper-vue-transform-on@1.5.0': {} + '@vue/babel-helper-vue-transform-on@1.4.0': {} - '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.3)': + '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.28.0)': dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.28.0) '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 - '@vue/babel-helper-vue-transform-on': 1.5.0 - '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.3) + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.4 + '@vue/babel-helper-vue-transform-on': 1.4.0 + '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.28.0) '@vue/shared': 3.5.21 optionalDependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.3)': + '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.28.0)': dependencies: '@babel/code-frame': 7.27.1 - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@vue/compiler-sfc': 3.5.21 transitivePeerDependencies: - supports-color '@vue/compiler-core@3.5.21': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@vue/shared': 3.5.21 entities: 4.5.0 estree-walker: 2.0.2 @@ -17007,13 +17609,13 @@ snapshots: '@vue/compiler-sfc@3.5.21': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@vue/compiler-core': 3.5.21 '@vue/compiler-dom': 3.5.21 '@vue/compiler-ssr': 3.5.21 '@vue/shared': 3.5.21 estree-walker: 2.0.2 - magic-string: 0.30.18 + magic-string: 0.30.19 postcss: 8.5.6 source-map-js: 1.2.1 @@ -17022,14 +17624,14 @@ snapshots: '@vue/compiler-dom': 3.5.21 '@vue/shared': 3.5.21 - '@vue/devtools-core@7.7.7(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + '@vue/devtools-core@7.7.7(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 mitt: 3.0.1 nanoid: 5.1.5 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + vite-hot-client: 2.0.4(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) vue: 3.5.21(typescript@5.9.2) transitivePeerDependencies: - vite @@ -17037,7 +17639,7 @@ snapshots: '@vue/devtools-kit@7.7.7': dependencies: '@vue/devtools-shared': 7.7.7 - birpc: 2.5.0 + birpc: 2.3.0 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 @@ -17085,14 +17687,14 @@ snapshots: '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@whatwg-node/fetch@0.10.10': + '@whatwg-node/fetch@0.10.8': dependencies: - '@whatwg-node/node-fetch': 0.7.25 - urlpattern-polyfill: 10.1.0 + '@whatwg-node/node-fetch': 0.7.21 + urlpattern-polyfill: 10.0.0 - '@whatwg-node/node-fetch@0.7.25': + '@whatwg-node/node-fetch@0.7.21': dependencies: - '@fastify/busboy': 3.2.0 + '@fastify/busboy': 3.1.1 '@whatwg-node/disposablestack': 0.0.6 '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 @@ -17101,17 +17703,15 @@ snapshots: dependencies: tslib: 2.8.1 - '@whatwg-node/server@0.10.12': + '@whatwg-node/server@0.10.10': dependencies: '@envelop/instrumentation': 1.0.0 '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/fetch': 0.10.10 + '@whatwg-node/fetch': 0.10.8 '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@xmldom/xmldom@0.9.8': {} - - abbrev@3.0.1: {} + abbrev@3.0.0: {} abort-controller@3.0.0: dependencies: @@ -17136,7 +17736,7 @@ snapshots: acorn@8.15.0: {} - agent-base@7.1.4: {} + agent-base@7.1.3: {} ajv-errors@3.0.0(ajv@8.17.1): dependencies: @@ -17152,7 +17752,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 + fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -17178,7 +17778,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.2.0: {} + ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: @@ -17239,28 +17839,28 @@ snapshots: astring@1.9.0: {} - astro-auto-import@0.4.4(astro@packages+astro): + astro-auto-import@0.4.2(astro@packages+astro): dependencies: - '@types/node': 18.19.123 + '@types/node': 18.19.120 acorn: 8.15.0 astro: link:packages/astro astro-embed@0.8.0(astro@packages+astro): dependencies: - '@astro-community/astro-embed-baseline-status': 0.1.2(astro@packages+astro) + '@astro-community/astro-embed-baseline-status': 0.1.1(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.8(astro@packages+astro) + '@astro-community/astro-embed-twitter': 0.5.6(astro@packages+astro) '@astro-community/astro-embed-vimeo': 0.3.10(astro@packages+astro) - '@astro-community/astro-embed-youtube': 0.5.6(astro@packages+astro) + '@astro-community/astro-embed-youtube': 0.5.5(astro@packages+astro) astro: link:packages/astro astro-remote@0.3.4: dependencies: entities: 4.5.0 marked: 12.0.2 - marked-footnote: 1.4.0(marked@12.0.2) - marked-smartypants: 1.1.10(marked@12.0.2) + marked-footnote: 1.2.4(marked@12.0.2) + marked-smartypants: 1.1.8(marked@12.0.2) ultrahtml: 1.6.0 async-sema@3.1.1: {} @@ -17276,11 +17876,11 @@ snapshots: cli-table3: 0.6.5 color-support: 1.1.3 cross-argv: 2.0.0 - form-data: 4.0.4 + form-data: 4.0.0 has-async-hooks: 1.0.0 - hdr-histogram-js: 3.0.1 + hdr-histogram-js: 3.0.0 hdr-histogram-percentiles-obj: 3.0.0 - http-parser-js: 0.5.10 + http-parser-js: 0.5.8 hyperid: 3.3.0 lodash.chunk: 4.2.0 lodash.clonedeep: 4.5.0 @@ -17297,18 +17897,18 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.3 - caniuse-lite: 1.0.30001737 + browserslist: 4.25.4 + caniuse-lite: 1.0.30001741 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 - axios@1.11.0: + axios@1.7.7: dependencies: - follow-redirects: 1.15.11 - form-data: 4.0.4 + follow-redirects: 1.15.9 + form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -17317,32 +17917,29 @@ snapshots: b4a@1.6.7: {} - babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.3): + babel-plugin-jsx-dom-expressions@0.38.5(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) - '@babel/types': 7.28.2 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.28.0) + '@babel/types': 7.28.4 html-entities: 2.3.3 - parse5: 7.3.0 - validate-html-nesting: 1.2.3 + validate-html-nesting: 1.2.2 - babel-plugin-transform-hook-names@1.0.2(@babel/core@7.28.3): + babel-plugin-transform-hook-names@1.0.2(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 - babel-preset-solid@1.9.9(@babel/core@7.28.3)(solid-js@1.9.9): + babel-preset-solid@1.8.22(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.3 - babel-plugin-jsx-dom-expressions: 0.40.1(@babel/core@7.28.3) - optionalDependencies: - solid-js: 1.9.9 + '@babel/core': 7.28.0 + babel-plugin-jsx-dom-expressions: 0.38.5(@babel/core@7.28.0) bail@2.0.2: {} balanced-match@1.0.2: {} - bare-events@2.6.1: + bare-events@2.5.4: optional: true base-64@1.0.0: {} @@ -17368,7 +17965,7 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - birpc@2.5.0: {} + birpc@2.3.0: {} blake3-wasm@2.1.5: {} @@ -17397,19 +17994,19 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 8.0.0 - chalk: 5.6.0 + chalk: 5.4.1 cli-boxes: 3.0.0 string-width: 7.2.0 type-fest: 4.41.0 widest-line: 5.0.0 wrap-ansi: 9.0.0 - brace-expansion@1.1.12: + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 @@ -17421,12 +18018,12 @@ snapshots: dependencies: base64-js: 1.5.1 - browserslist@4.25.3: + browserslist@4.25.4: dependencies: - caniuse-lite: 1.0.30001737 - electron-to-chromium: 1.5.209 + caniuse-lite: 1.0.30001741 + electron-to-chromium: 1.5.215 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.3) + update-browserslist-db: 1.1.3(browserslist@4.25.4) buffer-crc32@0.2.13: {} @@ -17454,15 +18051,15 @@ snapshots: cac@6.7.14: {} - call-bind-apply-helpers@1.0.2: + call-bind-apply-helpers@1.0.1: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bound@1.0.4: + call-bound@1.0.3: dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 callsite@1.0.0: {} @@ -17472,26 +18069,26 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001737: {} + caniuse-lite@1.0.30001741: {} canvas-confetti@1.9.3: {} ccount@2.0.1: {} - chai@5.3.3: + chai@5.2.0: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 loupe: 3.2.1 - pathval: 2.0.1 + pathval: 2.0.0 chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.0: {} + chalk@5.4.1: {} char-spinner@1.0.1: {} @@ -17510,8 +18107,8 @@ snapshots: cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 - css-select: 5.2.2 - css-what: 6.2.2 + css-select: 5.1.0 + css-what: 6.1.0 domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.2.2 @@ -17532,7 +18129,7 @@ snapshots: chokidar@4.0.3: dependencies: - readdirp: 4.1.2 + readdirp: 4.0.1 chownr@3.0.0: {} @@ -17544,6 +18141,8 @@ snapshots: dependencies: consola: 3.4.2 + cjs-module-lexer@1.4.3: {} + cli-boxes@3.0.0: {} cli-cursor@4.0.0: @@ -17626,14 +18225,14 @@ snapshots: commander@12.1.0: {} - commander@13.1.0: {} - commander@2.20.3: {} commander@7.2.0: {} commander@8.3.0: {} + commander@9.2.0: {} + comment-parser@1.4.1: {} common-ancestor-path@1.0.1: {} @@ -17674,7 +18273,7 @@ snapshots: dependencies: is-what: 4.1.16 - copy-file@11.1.0: + copy-file@11.0.0: dependencies: graceful-fs: 4.2.11 p-event: 6.0.1 @@ -17697,7 +18296,7 @@ snapshots: cron-parser@4.9.0: dependencies: - luxon: 3.7.1 + luxon: 3.6.1 cross-argv@2.0.0: {} @@ -17720,30 +18319,30 @@ snapshots: css-blank-pseudo@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 css-has-pseudo@7.0.3(postcss@8.5.6): dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 css-prefers-color-scheme@10.0.0(postcss@8.5.6): dependencies: postcss: 8.5.6 - css-select@5.2.2: + css-select@5.1.0: dependencies: boolbase: 1.0.0 - css-what: 6.2.2 + css-what: 6.1.0 domhandler: 5.0.3 domutils: 3.2.2 nth-check: 2.1.1 css-selector-parser@1.4.1: {} - css-selector-parser@3.1.3: {} + css-selector-parser@3.0.5: {} css-tree@2.2.1: dependencies: @@ -17760,7 +18359,7 @@ snapshots: mdn-data: 2.12.2 source-map-js: 1.2.1 - css-what@6.2.2: {} + css-what@6.1.0: {} cssdb@8.4.0: {} @@ -17796,7 +18395,7 @@ snapshots: decamelize@1.2.0: {} - decode-named-character-reference@1.2.0: + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -17877,7 +18476,7 @@ snapshots: detective-typescript@14.0.0(typescript@5.9.2): dependencies: - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) ast-module-types: 6.0.1 node-source-walk: 7.0.1 typescript: 5.9.2 @@ -17903,7 +18502,7 @@ snapshots: dettle@1.0.5: {} - devalue@5.3.2: {} + devalue@5.1.1: {} devlop@1.1.0: dependencies: @@ -17943,20 +18542,21 @@ snapshots: dependencies: type-fest: 4.41.0 - dotenv@16.6.1: {} + dotenv@16.4.7: {} dotenv@8.6.0: {} - drizzle-orm@0.42.0(@cloudflare/workers-types@4.20250903.0)(@libsql/client@0.15.14): + drizzle-orm@0.42.0(@cloudflare/workers-types@4.20250910.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0): optionalDependencies: - '@cloudflare/workers-types': 4.20250903.0 - '@libsql/client': 0.15.14 + '@cloudflare/workers-types': 4.20250910.0 + '@libsql/client': 0.15.15 + '@opentelemetry/api': 1.9.0 dset@3.1.4: {} dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.2 + call-bind-apply-helpers: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 @@ -17968,9 +18568,9 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.209: {} + electron-to-chromium@1.5.215: {} - emmet@2.4.11: + emmet@2.4.7: dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 @@ -17994,14 +18594,14 @@ snapshots: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 - end-of-stream@1.4.5: + end-of-stream@1.4.4: dependencies: once: 1.4.0 enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.3 + tapable: 2.2.1 enquirer@2.4.1: dependencies: @@ -18010,7 +18610,7 @@ snapshots: entities@4.5.0: {} - entities@6.0.1: {} + entities@6.0.0: {} env-paths@3.0.0: {} @@ -18030,13 +18630,6 @@ snapshots: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -18049,7 +18642,7 @@ snapshots: '@types/estree-jsx': 1.0.5 acorn: 8.15.0 esast-util-from-estree: 2.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.2 esbuild@0.24.2: optionalDependencies: @@ -18135,34 +18728,34 @@ snapshots: '@esbuild/win32-ia32': 0.25.5 '@esbuild/win32-x64': 0.25.5 - esbuild@0.25.6: + esbuild@0.25.9: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.6 - '@esbuild/android-arm': 0.25.6 - '@esbuild/android-arm64': 0.25.6 - '@esbuild/android-x64': 0.25.6 - '@esbuild/darwin-arm64': 0.25.6 - '@esbuild/darwin-x64': 0.25.6 - '@esbuild/freebsd-arm64': 0.25.6 - '@esbuild/freebsd-x64': 0.25.6 - '@esbuild/linux-arm': 0.25.6 - '@esbuild/linux-arm64': 0.25.6 - '@esbuild/linux-ia32': 0.25.6 - '@esbuild/linux-loong64': 0.25.6 - '@esbuild/linux-mips64el': 0.25.6 - '@esbuild/linux-ppc64': 0.25.6 - '@esbuild/linux-riscv64': 0.25.6 - '@esbuild/linux-s390x': 0.25.6 - '@esbuild/linux-x64': 0.25.6 - '@esbuild/netbsd-arm64': 0.25.6 - '@esbuild/netbsd-x64': 0.25.6 - '@esbuild/openbsd-arm64': 0.25.6 - '@esbuild/openbsd-x64': 0.25.6 - '@esbuild/openharmony-arm64': 0.25.6 - '@esbuild/sunos-x64': 0.25.6 - '@esbuild/win32-arm64': 0.25.6 - '@esbuild/win32-ia32': 0.25.6 - '@esbuild/win32-x64': 0.25.6 + '@esbuild/aix-ppc64': 0.25.9 + '@esbuild/android-arm': 0.25.9 + '@esbuild/android-arm64': 0.25.9 + '@esbuild/android-x64': 0.25.9 + '@esbuild/darwin-arm64': 0.25.9 + '@esbuild/darwin-x64': 0.25.9 + '@esbuild/freebsd-arm64': 0.25.9 + '@esbuild/freebsd-x64': 0.25.9 + '@esbuild/linux-arm': 0.25.9 + '@esbuild/linux-arm64': 0.25.9 + '@esbuild/linux-ia32': 0.25.9 + '@esbuild/linux-loong64': 0.25.9 + '@esbuild/linux-mips64el': 0.25.9 + '@esbuild/linux-ppc64': 0.25.9 + '@esbuild/linux-riscv64': 0.25.9 + '@esbuild/linux-s390x': 0.25.9 + '@esbuild/linux-x64': 0.25.9 + '@esbuild/netbsd-arm64': 0.25.9 + '@esbuild/netbsd-x64': 0.25.9 + '@esbuild/openbsd-arm64': 0.25.9 + '@esbuild/openbsd-x64': 0.25.9 + '@esbuild/openharmony-arm64': 0.25.9 + '@esbuild/sunos-x64': 0.25.9 + '@esbuild/win32-arm64': 0.25.9 + '@esbuild/win32-ia32': 0.25.9 + '@esbuild/win32-x64': 0.25.9 escalade@3.2.0: {} @@ -18180,13 +18773,13 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-plugin-regexp@2.10.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-regexp@2.10.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 9.34.0(jiti@2.5.1) - jsdoc-type-pratt-parser: 4.8.0 + eslint: 9.35.0(jiti@2.5.1) + jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 @@ -18200,19 +18793,19 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.34.0(jiti@2.5.1): + eslint@9.35.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.1 '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.34.0 + '@eslint/js': 9.35.0 '@eslint/plugin-kit': 0.3.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 + '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -18242,7 +18835,7 @@ snapshots: transitivePeerDependencies: - supports-color - esm-env@1.2.2: {} + esm-env@1.2.1: {} esm@3.2.25: {} @@ -18325,20 +18918,20 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.6.0: + execa@9.5.2: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 - human-signals: 8.0.1 + human-signals: 8.0.0 is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 6.0.0 pretty-ms: 9.2.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 - yoctocolors: 2.1.2 + yoctocolors: 2.1.1 exit-hook@2.2.1: {} @@ -18380,7 +18973,7 @@ snapshots: transitivePeerDependencies: - supports-color - exsolve@1.0.7: {} + exsolve@1.0.4: {} extend@3.0.2: {} @@ -18414,15 +19007,15 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.1.0: {} + fast-uri@3.0.1: {} fast-xml-parser@5.2.5: dependencies: strnum: 2.1.1 - fastq@1.19.1: + fastq@1.17.1: dependencies: - reusify: 1.1.0 + reusify: 1.0.4 fd-package-json@2.0.0: dependencies: @@ -18432,7 +19025,7 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.5.0(picomatch@4.0.3): + fdir@6.4.4(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -18498,16 +19091,16 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.3.1 keyv: 4.5.4 - flatted@3.3.3: {} + flatted@3.3.1: {} flattie@1.1.1: {} fn.name@1.1.0: {} - follow-redirects@1.15.11: {} + follow-redirects@1.15.9: {} fontace@0.3.0: dependencies: @@ -18526,17 +19119,15 @@ snapshots: unicode-properties: 1.4.1 unicode-trie: 2.0.0 - foreground-child@3.3.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.4: + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 mime-types: 2.1.35 formatly@0.2.4: @@ -18547,6 +19138,8 @@ snapshots: dependencies: fetch-blob: 3.2.0 + forwarded-parse@2.1.2: {} + forwarded@0.2.0: {} fraction.js@4.3.7: {} @@ -18555,10 +19148,10 @@ snapshots: fresh@2.0.0: {} - fs-extra@11.3.1: + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.2.0 + jsonfile: 6.1.0 universalify: 2.0.1 fs-extra@7.0.1: @@ -18592,11 +19185,11 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.3.0: {} + get-east-asian-width@1.2.0: {} - get-intrinsic@1.3.0: + get-intrinsic@1.2.7: dependencies: - call-bind-apply-helpers: 1.0.2 + call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 @@ -18607,7 +19200,7 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 - get-port-please@3.2.0: {} + get-port-please@3.1.2: {} get-port@7.1.0: {} @@ -18625,7 +19218,7 @@ snapshots: get-stream@5.2.0: dependencies: - pump: 3.0.3 + pump: 3.0.2 get-stream@8.0.1: {} @@ -18648,11 +19241,11 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.1 + foreground-child: 3.3.0 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.1 + package-json-from-dist: 1.0.0 path-scurry: 1.11.1 globals@14.0.0: {} @@ -18683,7 +19276,7 @@ snapshots: defu: 6.1.4 destr: 2.0.5 iron-webcrypto: 1.2.1 - node-mock-http: 1.0.2 + node-mock-http: 1.0.3 radix3: 1.1.2 ufo: 1.6.1 uncrypto: 0.1.3 @@ -18694,10 +19287,6 @@ snapshots: has-symbols@1.1.0: {} - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -18706,18 +19295,18 @@ snapshots: dependencies: '@types/hast': 3.0.4 devlop: 1.1.0 - hast-util-from-parse5: 8.0.3 + hast-util-from-parse5: 8.0.1 parse5: 7.3.0 vfile: 6.0.3 - vfile-message: 4.0.3 + vfile-message: 4.0.2 - hast-util-from-parse5@8.0.3: + hast-util-from-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 devlop: 1.1.0 - hastscript: 9.0.1 - property-information: 7.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 @@ -18738,12 +19327,12 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-raw@9.1.0: + hast-util-raw@9.0.4: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.0 - hast-util-from-parse5: 8.0.3 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 @@ -18760,19 +19349,19 @@ snapshots: '@types/unist': 3.0.3 bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 - css-selector-parser: 3.1.3 + css-selector-parser: 3.0.5 devlop: 1.1.0 direction: 2.0.1 hast-util-has-property: 3.0.0 - hast-util-to-string: 3.0.1 + hast-util-to-string: 3.0.0 hast-util-whitespace: 3.0.0 nth-check: 2.1.1 - property-information: 7.1.0 + property-information: 7.0.0 space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 zwitch: 2.0.4 - hast-util-to-estree@3.1.3: + hast-util-to-estree@3.1.0: dependencies: '@types/estree': 1.0.8 '@types/estree-jsx': 1.0.5 @@ -18785,9 +19374,9 @@ snapshots: mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 + property-information: 6.5.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-object: 0.4.4 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: @@ -18802,12 +19391,12 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - property-information: 7.1.0 + property-information: 7.0.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: + hast-util-to-jsx-runtime@2.3.0: dependencies: '@types/estree': 1.0.8 '@types/hast': 3.0.4 @@ -18819,11 +19408,11 @@ snapshots: mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 + property-information: 6.5.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-object: 1.0.8 unist-util-position: 5.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.2 transitivePeerDependencies: - supports-color @@ -18837,7 +19426,7 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-string@3.0.1: + hast-util-to-string@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -18852,15 +19441,23 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + hastscript@9.0.1: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 + property-information: 7.0.0 space-separated-tokens: 2.0.2 - hdr-histogram-js@3.0.1: + hdr-histogram-js@3.0.0: dependencies: '@assemblyscript/loader': 0.19.23 base64-js: 1.5.1 @@ -18887,7 +19484,7 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.2.2 - entities: 6.0.1 + entities: 6.0.0 htmlparser2@8.0.2: dependencies: @@ -18906,13 +19503,13 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-parser-js@0.5.10: {} + http-parser-js@0.5.8: {} http-shutdown@1.2.2: {} https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.4 + agent-base: 7.1.3 debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -18921,7 +19518,7 @@ snapshots: human-signals@5.0.0: {} - human-signals@8.0.1: {} + human-signals@8.0.0: {} hyperid@3.3.0: dependencies: @@ -18947,13 +19544,20 @@ snapshots: image-size@2.0.2: {} - immutable@5.1.3: {} + immutable@5.0.3: {} - import-fresh@3.3.1: + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + import-in-the-middle@1.14.2: + dependencies: + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) + cjs-module-lexer: 1.4.3 + module-details-from-path: 1.0.4 + import-meta-resolve@4.2.0: {} imurmurhash@0.1.4: {} @@ -18964,6 +19568,8 @@ snapshots: inherits@2.0.4: {} + inline-style-parser@0.1.1: {} + inline-style-parser@0.2.4: {} ipaddr.js@1.9.1: {} @@ -18984,7 +19590,7 @@ snapshots: sharp: 0.34.3 svgo: 4.0.0 ufo: 1.6.1 - unstorage: 1.17.0(@netlify/blobs@10.0.10)(@vercel/functions@2.2.13) + unstorage: 1.17.1(@netlify/blobs@10.0.10)(@vercel/functions@2.2.13) xss: 1.0.15 transitivePeerDependencies: - '@azure/app-configuration' @@ -19100,7 +19706,7 @@ snapshots: jpeg-js@0.4.4: {} - js-base64@3.7.8: {} + js-base64@3.7.7: {} js-image-generator@1.0.4: dependencies: @@ -19119,9 +19725,9 @@ snapshots: dependencies: argparse: 2.0.1 - jsdoc-type-pratt-parser@4.8.0: {} + jsdoc-type-pratt-parser@4.1.0: {} - jsesc@3.1.0: {} + jsesc@3.0.2: {} json-buffer@3.0.1: {} @@ -19141,7 +19747,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.2.0: + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: @@ -19179,7 +19785,7 @@ snapshots: jwt-decode@4.0.0: {} - katex@0.16.22: + katex@0.16.11: dependencies: commander: 8.3.0 @@ -19191,23 +19797,23 @@ snapshots: kleur@4.1.5: {} - knip@5.61.3(@types/node@18.19.123)(typescript@5.9.2): + knip@5.61.3(@types/node@18.19.120)(typescript@5.9.2): dependencies: '@nodelib/fs.walk': 1.2.8 - '@types/node': 18.19.123 + '@types/node': 18.19.120 fast-glob: 3.3.3 formatly: 0.2.4 jiti: 2.5.1 js-yaml: 4.1.0 minimist: 1.2.8 - oxc-resolver: 11.6.2 + oxc-resolver: 11.6.0 picocolors: 1.1.1 picomatch: 4.0.3 smol-toml: 1.4.2 strip-json-comments: 5.0.2 typescript: 5.9.2 zod: 3.25.76 - zod-validation-error: 3.5.3(zod@3.25.76) + zod-validation-error: 3.4.0(zod@3.25.76) kolorist@1.8.0: {} @@ -19216,7 +19822,7 @@ snapshots: lambda-local@2.2.0: dependencies: commander: 10.0.1 - dotenv: 16.6.1 + dotenv: 16.4.7 winston: 3.17.0 lazystream@1.0.1: @@ -19292,7 +19898,7 @@ snapshots: linkedom@0.14.26: dependencies: - css-select: 5.2.2 + css-select: 5.1.0 cssom: 0.5.0 html-escaper: 3.0.3 htmlparser2: 8.0.2 @@ -19300,7 +19906,7 @@ snapshots: linkedom@0.18.12: dependencies: - css-select: 5.2.2 + css-select: 5.1.0 cssom: 0.5.0 html-escaper: 3.0.3 htmlparser2: 10.0.0 @@ -19308,18 +19914,18 @@ snapshots: listhen@1.9.0: dependencies: - '@parcel/watcher': 2.5.1 + '@parcel/watcher': 2.4.1 '@parcel/watcher-wasm': 2.5.1 citty: 0.1.6 clipboardy: 4.0.0 consola: 3.4.2 crossws: 0.3.5 defu: 6.1.4 - get-port-please: 3.2.0 + get-port-please: 3.1.2 h3: 1.15.4 http-shutdown: 1.2.2 jiti: 2.5.1 - mlly: 1.8.0 + mlly: 1.7.4 node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.9.0 @@ -19359,6 +19965,10 @@ snapshots: dependencies: p-locate: 6.0.0 + lodash-es@4.17.21: {} + + lodash.camelcase@4.3.0: {} + lodash.chunk@4.2.0: {} lodash.clonedeep@4.5.0: {} @@ -19402,6 +20012,8 @@ snapshots: safe-stable-stringify: 2.5.0 triple-beam: 1.4.1 + long@5.3.2: {} + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -19420,18 +20032,18 @@ snapshots: dependencies: yallist: 3.1.1 - luxon@3.7.1: {} + luxon@3.6.1: {} lz-string@1.5.0: {} - magic-string@0.30.18: + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 magicast@0.3.5: dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 source-map-js: 1.2.1 manage-path@2.0.0: {} @@ -19442,11 +20054,11 @@ snapshots: markdown-table@3.0.4: {} - marked-footnote@1.4.0(marked@12.0.2): + marked-footnote@1.2.4(marked@12.0.2): dependencies: marked: 12.0.2 - marked-smartypants@1.1.10(marked@12.0.2): + marked-smartypants@1.1.8(marked@12.0.2): dependencies: marked: 12.0.2 smartypants: 0.2.2 @@ -19460,7 +20072,7 @@ snapshots: esm: 3.2.25 mhchemparser: 4.2.1 mj-context-menu: 0.6.1 - speech-rule-engine: 4.1.2 + speech-rule-engine: 4.0.7 mdast-util-definitions@6.0.0: dependencies: @@ -19468,26 +20080,26 @@ snapshots: '@types/unist': 3.0.3 unist-util-visit: 5.0.0 - mdast-util-find-and-replace@3.0.2: + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - mdast-util-from-markdown@2.0.2: + mdast-util-from-markdown@2.0.1: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color @@ -19497,24 +20109,24 @@ snapshots: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.2 - micromark-util-character: 2.1.1 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 - mdast-util-gfm-footnote@2.1.0: + mdast-util-gfm-footnote@2.0.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-util-normalize-identifier: 2.0.1 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -19523,8 +20135,8 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -19532,20 +20144,20 @@ snapshots: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - mdast-util-gfm@3.1.0: + mdast-util-gfm@3.0.0: dependencies: - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.1 mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.2 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -19555,8 +20167,8 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 longest-streak: 3.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 unist-util-remove-position: 5.0.0 transitivePeerDependencies: - supports-color @@ -19567,8 +20179,8 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -19580,22 +20192,22 @@ snapshots: '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.2 transitivePeerDependencies: - supports-color mdast-util-mdx@3.0.0: dependencies: - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.1 mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - mdast-util-to-markdown: 2.1.2 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -19605,8 +20217,8 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -19619,23 +20231,22 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.1 + micromark-util-sanitize-uri: 2.0.0 trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 vfile: 6.0.3 - mdast-util-to-markdown@2.1.2: + mdast-util-to-markdown@2.1.0: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 + micromark-util-decode-string: 2.0.0 unist-util-visit: 5.0.0 zwitch: 2.0.4 @@ -19647,7 +20258,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/ungap__structured-clone': 1.2.0 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 github-slugger: 2.0.0 mdast-util-to-string: 4.0.0 unist-util-is: 6.0.0 @@ -19679,277 +20290,281 @@ snapshots: mhchemparser@4.2.1: {} - micromark-core-commonmark@2.0.3: + micro-api-client@3.3.0: {} + + micromark-core-commonmark@2.0.1: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 micromark-extension-gfm-autolink-literal@2.1.0: dependencies: - micromark-util-character: 2.1.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 micromark-extension-gfm-footnote@2.1.0: dependencies: devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 micromark-extension-gfm-strikethrough@2.1.0: dependencies: devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm-table@2.1.1: + micromark-extension-gfm-table@2.1.0: dependencies: devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.0 micromark-extension-gfm-task-list-item@2.1.0: dependencies: devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-table: 2.1.0 micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 micromark-extension-math@3.1.0: dependencies: '@types/katex': 0.16.7 devlop: 1.1.0 - katex: 0.16.22 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + katex: 0.16.11 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-mdx-expression@3.0.1: + micromark-extension-mdx-expression@3.0.0: dependencies: '@types/estree': 1.0.8 devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-mdx-jsx@3.0.2: + micromark-extension-mdx-jsx@3.0.1: dependencies: + '@types/acorn': 4.0.6 '@types/estree': 1.0.8 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - vfile-message: 4.0.3 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 micromark-extension-mdx-md@2.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.0 micromark-extension-mdxjs-esm@3.0.0: dependencies: '@types/estree': 1.0.8 devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-core-commonmark: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.2 micromark-extension-mdxjs@3.0.0: dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) - micromark-extension-mdx-expression: 3.0.1 - micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 micromark-extension-mdx-md: 2.0.0 micromark-extension-mdxjs-esm: 3.0.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 - micromark-factory-destination@2.0.1: + micromark-factory-destination@2.0.0: dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-factory-label@2.0.1: + micromark-factory-label@2.0.0: dependencies: devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-factory-mdx-expression@2.0.3: + micromark-factory-mdx-expression@2.0.2: dependencies: '@types/estree': 1.0.8 devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.2 - micromark-factory-space@2.0.1: + micromark-factory-space@2.0.0: dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 - micromark-factory-title@2.0.1: + micromark-factory-title@2.0.0: dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-factory-whitespace@2.0.1: + micromark-factory-whitespace@2.0.0: dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-util-character@2.1.1: + micromark-util-character@2.1.0: dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-util-chunked@2.0.1: + micromark-util-chunked@2.0.0: dependencies: - micromark-util-symbol: 2.0.1 + micromark-util-symbol: 2.0.0 - micromark-util-classify-character@2.0.1: + micromark-util-classify-character@2.0.0: dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-util-combine-extensions@2.0.1: + micromark-util-combine-extensions@2.0.0: dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 - micromark-util-decode-numeric-character-reference@2.0.2: + micromark-util-decode-numeric-character-reference@2.0.1: dependencies: - micromark-util-symbol: 2.0.1 + micromark-util-symbol: 2.0.0 - micromark-util-decode-string@2.0.1: + micromark-util-decode-string@2.0.0: dependencies: - decode-named-character-reference: 1.2.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 - micromark-util-encode@2.0.1: {} + micromark-util-encode@2.0.0: {} - micromark-util-events-to-acorn@2.0.3: + micromark-util-events-to-acorn@2.0.2: dependencies: + '@types/acorn': 4.0.6 '@types/estree': 1.0.8 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - vfile-message: 4.0.3 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 - micromark-util-html-tag-name@2.0.1: {} + micromark-util-html-tag-name@2.0.0: {} - micromark-util-normalize-identifier@2.0.1: + micromark-util-normalize-identifier@2.0.0: dependencies: - micromark-util-symbol: 2.0.1 + micromark-util-symbol: 2.0.0 - micromark-util-resolve-all@2.0.1: + micromark-util-resolve-all@2.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.0 - micromark-util-sanitize-uri@2.0.1: + micromark-util-sanitize-uri@2.0.0: dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 - micromark-util-subtokenize@2.1.0: + micromark-util-subtokenize@2.0.1: dependencies: devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-util-symbol@2.0.1: {} + micromark-util-symbol@2.0.0: {} - micromark-util-types@2.0.2: {} + micromark-util-types@2.0.0: {} - micromark@4.0.2: + micromark@4.0.0: dependencies: '@types/debug': 4.1.12 debug: 4.4.1 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 transitivePeerDependencies: - supports-color @@ -19997,23 +20612,24 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.11 minimatch@5.1.6: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.1 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.1 minimist@1.2.8: {} minipass@7.1.2: {} - minizlib@3.0.2: + minizlib@3.0.1: dependencies: minipass: 7.1.2 + rimraf: 5.0.10 mitt@3.0.1: {} @@ -20021,7 +20637,7 @@ snapshots: mkdirp@3.0.1: {} - mlly@1.8.0: + mlly@1.7.4: dependencies: acorn: 8.15.0 pathe: 2.0.3 @@ -20033,6 +20649,8 @@ snapshots: ast-module-types: 6.0.1 node-source-walk: 7.0.1 + module-details-from-path@1.0.4: {} + mri@1.2.0: {} mrmime@2.0.1: {} @@ -20051,7 +20669,7 @@ snapshots: nanostores@0.11.4: {} - napi-postinstall@0.3.3: {} + napi-postinstall@0.3.2: {} natural-compare@1.4.0: {} @@ -20088,16 +20706,16 @@ snapshots: node-forge@1.3.1: {} - node-gyp-build@4.8.4: {} + node-gyp-build@4.8.2: {} node-html-parser@6.1.13: dependencies: - css-select: 5.2.2 + css-select: 5.1.0 he: 1.2.0 - node-mock-http@1.0.2: {} + node-mock-http@1.0.3: {} - node-mocks-http@1.17.2(@types/node@22.18.0): + node-mocks-http@1.17.2(@types/node@22.13.1): dependencies: accepts: 1.3.8 content-disposition: 0.5.4 @@ -20110,19 +20728,19 @@ snapshots: range-parser: 1.2.1 type-is: 1.6.18 optionalDependencies: - '@types/node': 22.18.0 + '@types/node': 22.13.1 node-releases@2.0.19: {} node-source-walk@7.0.1: dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 node-stream-zip@1.15.0: {} nopt@8.1.0: dependencies: - abbrev: 3.0.1 + abbrev: 3.0.0 normalize-package-data@6.0.2: dependencies: @@ -20199,12 +20817,12 @@ snapshots: open-props@1.7.16: {} - open@10.2.0: + open@10.1.0: dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 - wsl-utils: 0.1.0 + is-wsl: 3.1.0 optionator@0.9.4: dependencies: @@ -20217,33 +20835,33 @@ snapshots: outdent@0.5.0: {} - oxc-resolver@11.6.2: + oxc-resolver@11.6.0: dependencies: - napi-postinstall: 0.3.3 + napi-postinstall: 0.3.2 optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.6.2 - '@oxc-resolver/binding-android-arm64': 11.6.2 - '@oxc-resolver/binding-darwin-arm64': 11.6.2 - '@oxc-resolver/binding-darwin-x64': 11.6.2 - '@oxc-resolver/binding-freebsd-x64': 11.6.2 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.6.2 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.6.2 - '@oxc-resolver/binding-linux-arm64-gnu': 11.6.2 - '@oxc-resolver/binding-linux-arm64-musl': 11.6.2 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.6.2 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.6.2 - '@oxc-resolver/binding-linux-riscv64-musl': 11.6.2 - '@oxc-resolver/binding-linux-s390x-gnu': 11.6.2 - '@oxc-resolver/binding-linux-x64-gnu': 11.6.2 - '@oxc-resolver/binding-linux-x64-musl': 11.6.2 - '@oxc-resolver/binding-wasm32-wasi': 11.6.2 - '@oxc-resolver/binding-win32-arm64-msvc': 11.6.2 - '@oxc-resolver/binding-win32-ia32-msvc': 11.6.2 - '@oxc-resolver/binding-win32-x64-msvc': 11.6.2 + '@oxc-resolver/binding-android-arm-eabi': 11.6.0 + '@oxc-resolver/binding-android-arm64': 11.6.0 + '@oxc-resolver/binding-darwin-arm64': 11.6.0 + '@oxc-resolver/binding-darwin-x64': 11.6.0 + '@oxc-resolver/binding-freebsd-x64': 11.6.0 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.6.0 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.6.0 + '@oxc-resolver/binding-linux-arm64-gnu': 11.6.0 + '@oxc-resolver/binding-linux-arm64-musl': 11.6.0 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.6.0 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.6.0 + '@oxc-resolver/binding-linux-riscv64-musl': 11.6.0 + '@oxc-resolver/binding-linux-s390x-gnu': 11.6.0 + '@oxc-resolver/binding-linux-x64-gnu': 11.6.0 + '@oxc-resolver/binding-linux-x64-musl': 11.6.0 + '@oxc-resolver/binding-wasm32-wasi': 11.6.0 + '@oxc-resolver/binding-win32-arm64-msvc': 11.6.0 + '@oxc-resolver/binding-win32-ia32-msvc': 11.6.0 + '@oxc-resolver/binding-win32-x64-msvc': 11.6.0 p-event@6.0.1: dependencies: - p-timeout: 6.1.4 + p-timeout: 6.1.2 p-filter@2.1.0: dependencies: @@ -20259,11 +20877,11 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.2.1 + yocto-queue: 1.1.1 p-limit@6.2.0: dependencies: - yocto-queue: 1.2.1 + yocto-queue: 1.1.1 p-locate@4.1.0: dependencies: @@ -20284,7 +20902,7 @@ snapshots: p-queue@8.1.0: dependencies: eventemitter3: 5.0.1 - p-timeout: 6.1.4 + p-timeout: 6.1.2 p-retry@6.2.1: dependencies: @@ -20292,19 +20910,19 @@ snapshots: is-network-error: 1.1.0 retry: 0.13.1 - p-timeout@6.1.4: {} + p-timeout@6.1.2: {} p-try@2.2.0: {} p-wait-for@5.0.2: dependencies: - p-timeout: 6.1.4 + p-timeout: 6.1.2 - package-json-from-dist@1.0.1: {} + package-json-from-dist@1.0.0: {} package-manager-detector@0.2.11: dependencies: - quansync: 0.2.11 + quansync: 0.2.8 package-manager-detector@1.3.0: {} @@ -20316,12 +20934,13 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@4.0.2: + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.11 + character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 @@ -20365,7 +20984,7 @@ snapshots: parse5@7.3.0: dependencies: - entities: 6.0.1 + entities: 6.0.0 parseurl@1.3.3: {} @@ -20405,7 +21024,7 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.1: {} + pathval@2.0.0: {} pend@1.2.0: {} @@ -20417,14 +21036,12 @@ snapshots: picomatch@4.0.3: {} - picoquery@2.5.0: {} - pify@4.0.1: {} pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.8.0 + mlly: 1.7.4 pathe: 2.0.3 playwright-core@1.51.1: {} @@ -20448,7 +21065,7 @@ snapshots: postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-clamp@4.1.0(postcss@8.5.6): dependencies: @@ -20499,12 +21116,12 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-double-position-gradients@6.0.3(postcss@8.5.6): dependencies: @@ -20516,12 +21133,12 @@ snapshots: postcss-focus-visible@10.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-focus-within@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-font-variant@5.0.0(postcss@8.5.6): dependencies: @@ -20553,10 +21170,10 @@ snapshots: postcss-nesting@13.0.2(postcss@8.5.6): dependencies: - '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.0.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-opacity-percentage@3.0.0(postcss@8.5.6): dependencies: @@ -20614,7 +21231,7 @@ snapshots: '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) autoprefixer: 10.4.21(postcss@8.5.6) - browserslist: 4.25.3 + browserslist: 4.25.4 css-blank-pseudo: 7.0.1(postcss@8.5.6) css-has-pseudo: 7.0.3(postcss@8.5.6) css-prefers-color-scheme: 10.0.0(postcss@8.5.6) @@ -20649,7 +21266,7 @@ snapshots: postcss-pseudo-class-any-link@10.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): dependencies: @@ -20658,9 +21275,9 @@ snapshots: postcss-selector-not@8.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 - postcss-selector-parser@7.1.0: + postcss-selector-parser@7.0.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -20748,7 +21365,22 @@ snapshots: property-information@6.5.0: {} - property-information@7.1.0: {} + property-information@7.0.0: {} + + protobufjs@7.5.3: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 18.19.120 + long: 5.3.2 proxy-addr@2.0.7: dependencies: @@ -20764,9 +21396,9 @@ snapshots: picocolors: 1.1.1 sade: 1.8.1 - pump@3.0.3: + pump@3.0.2: dependencies: - end-of-stream: 1.4.5 + end-of-stream: 1.4.4 once: 1.4.0 punycode@2.3.1: {} @@ -20775,7 +21407,7 @@ snapshots: dependencies: side-channel: 1.1.0 - quansync@0.2.11: {} + quansync@0.2.8: {} queue-microtask@1.2.3: {} @@ -20860,7 +21492,7 @@ snapshots: dependencies: minimatch: 5.1.6 - readdirp@4.1.2: {} + readdirp@4.0.1: {} reading-time@1.5.0: {} @@ -20870,14 +21502,15 @@ snapshots: estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.1(acorn@8.15.0): + recma-jsx@1.0.0(acorn@8.15.0): dependencies: - acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 unified: 11.0.5 + transitivePeerDependencies: + - acorn recma-parse@1.0.0: dependencies: @@ -20899,6 +21532,8 @@ snapshots: regenerator-runtime@0.13.11: {} + regenerator-runtime@0.14.1: {} + regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 @@ -20917,7 +21552,7 @@ snapshots: rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 @@ -20934,7 +21569,7 @@ snapshots: unist-util-visit-parents: 6.0.1 vfile: 6.0.3 - rehype-parse@9.0.1: + rehype-parse@9.0.0: dependencies: '@types/hast': 3.0.4 hast-util-from-html: 2.0.3 @@ -20943,9 +21578,9 @@ snapshots: rehype-pretty-code@0.14.1(shiki@3.12.2): dependencies: '@types/hast': 3.0.4 - hast-util-to-string: 3.0.1 + hast-util-to-string: 3.0.0 parse-numeric-range: 1.3.0 - rehype-parse: 9.0.1 + rehype-parse: 9.0.0 shiki: 3.12.2 unified: 11.0.5 unist-util-visit: 5.0.0 @@ -20953,14 +21588,14 @@ snapshots: rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-raw: 9.1.0 + hast-util-raw: 9.0.4 vfile: 6.0.3 rehype-recma@1.0.0: dependencies: '@types/estree': 1.0.8 '@types/hast': 3.0.4 - hast-util-to-estree: 3.1.3 + hast-util-to-estree: 3.1.0 transitivePeerDependencies: - supports-color @@ -20969,7 +21604,7 @@ snapshots: '@types/hast': 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.1 + hast-util-to-string: 3.0.0 unist-util-visit: 5.0.0 rehype-stringify@10.0.1: @@ -20985,7 +21620,7 @@ snapshots: rehype@13.0.2: dependencies: '@types/hast': 3.0.4 - rehype-parse: 9.0.1 + rehype-parse: 9.0.0 rehype-stringify: 10.0.1 unified: 11.0.5 @@ -20998,7 +21633,7 @@ snapshots: remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.0.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -21015,7 +21650,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-mdx@3.1.0: + remark-mdx@3.0.1: dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 @@ -21025,8 +21660,8 @@ snapshots: remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color @@ -21057,14 +21692,14 @@ snapshots: remark-smartypants@3.0.2: dependencies: retext: 9.0.0 - retext-smartypants: 6.2.0 + retext-smartypants: 6.1.1 unified: 11.0.5 unist-util-visit: 5.0.0 remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.2 + mdast-util-to-markdown: 2.1.0 unified: 11.0.5 remark-toc@9.0.0: @@ -21082,6 +21717,14 @@ snapshots: require-from-string@2.0.2: {} + require-in-the-middle@7.5.2: + dependencies: + debug: 4.4.1 + module-details-from-path: 1.0.4 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + require-main-filename@2.0.0: {} require-package-name@2.0.1: {} @@ -21090,6 +21733,12 @@ snapshots: resolve-from@5.0.0: {} + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@2.0.0-next.5: dependencies: is-core-module: 2.16.1 @@ -21109,7 +21758,7 @@ snapshots: parse-latin: 7.0.0 unified: 11.0.5 - retext-smartypants@6.2.0: + retext-smartypants@6.1.1: dependencies: '@types/nlcst': 2.0.3 nlcst-to-string: 4.0.0 @@ -21132,35 +21781,39 @@ snapshots: retry@0.13.1: {} - reusify@1.1.0: {} + reusify@1.0.4: {} rfdc@1.4.1: {} - rollup@4.50.0: + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + rollup@4.50.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.50.0 - '@rollup/rollup-android-arm64': 4.50.0 - '@rollup/rollup-darwin-arm64': 4.50.0 - '@rollup/rollup-darwin-x64': 4.50.0 - '@rollup/rollup-freebsd-arm64': 4.50.0 - '@rollup/rollup-freebsd-x64': 4.50.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.50.0 - '@rollup/rollup-linux-arm-musleabihf': 4.50.0 - '@rollup/rollup-linux-arm64-gnu': 4.50.0 - '@rollup/rollup-linux-arm64-musl': 4.50.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.50.0 - '@rollup/rollup-linux-ppc64-gnu': 4.50.0 - '@rollup/rollup-linux-riscv64-gnu': 4.50.0 - '@rollup/rollup-linux-riscv64-musl': 4.50.0 - '@rollup/rollup-linux-s390x-gnu': 4.50.0 - '@rollup/rollup-linux-x64-gnu': 4.50.0 - '@rollup/rollup-linux-x64-musl': 4.50.0 - '@rollup/rollup-openharmony-arm64': 4.50.0 - '@rollup/rollup-win32-arm64-msvc': 4.50.0 - '@rollup/rollup-win32-ia32-msvc': 4.50.0 - '@rollup/rollup-win32-x64-msvc': 4.50.0 + '@rollup/rollup-android-arm-eabi': 4.50.1 + '@rollup/rollup-android-arm64': 4.50.1 + '@rollup/rollup-darwin-arm64': 4.50.1 + '@rollup/rollup-darwin-x64': 4.50.1 + '@rollup/rollup-freebsd-arm64': 4.50.1 + '@rollup/rollup-freebsd-x64': 4.50.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.50.1 + '@rollup/rollup-linux-arm-musleabihf': 4.50.1 + '@rollup/rollup-linux-arm64-gnu': 4.50.1 + '@rollup/rollup-linux-arm64-musl': 4.50.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.50.1 + '@rollup/rollup-linux-ppc64-gnu': 4.50.1 + '@rollup/rollup-linux-riscv64-gnu': 4.50.1 + '@rollup/rollup-linux-riscv64-musl': 4.50.1 + '@rollup/rollup-linux-s390x-gnu': 4.50.1 + '@rollup/rollup-linux-x64-gnu': 4.50.1 + '@rollup/rollup-linux-x64-musl': 4.50.1 + '@rollup/rollup-openharmony-arm64': 4.50.1 + '@rollup/rollup-win32-arm64-msvc': 4.50.1 + '@rollup/rollup-win32-ia32-msvc': 4.50.1 + '@rollup/rollup-win32-x64-msvc': 4.50.1 fsevents: 2.3.3 run-applescript@7.0.0: {} @@ -21187,13 +21840,13 @@ snapshots: dependencies: suf-log: 2.5.3 - sass@1.92.0: + sass@1.92.1: dependencies: chokidar: 4.0.3 - immutable: 5.1.3 + immutable: 5.0.3 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.1 + '@parcel/watcher': 2.4.1 sax@1.4.1: {} @@ -21243,15 +21896,15 @@ snapshots: ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.2 + statuses: 2.0.1 transitivePeerDependencies: - supports-color - seroval-plugins@1.3.2(seroval@1.3.2): + seroval-plugins@1.3.1(seroval@1.3.1): dependencies: - seroval: 1.3.2 + seroval: 1.3.1 - seroval@1.3.2: {} + seroval@1.3.1: {} serve-static@1.16.2: dependencies: @@ -21364,16 +22017,16 @@ snapshots: side-channel-map@1.0.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-inspect: 1.13.4 side-channel-map: 1.0.1 @@ -21399,7 +22052,7 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 astro: link:packages/astro - fs-extra: 11.3.1 + fs-extra: 11.2.0 just-map-values: 3.2.0 kleur: 4.1.5 zod: 3.25.76 @@ -21410,7 +22063,7 @@ snapshots: sirv@3.0.1: dependencies: - '@polka/url': 1.0.0-next.29 + '@polka/url': 1.0.0-next.25 mrmime: 2.0.1 totalist: 3.0.1 @@ -21439,14 +22092,14 @@ snapshots: solid-js@1.9.9: dependencies: csstype: 3.1.3 - seroval: 1.3.2 - seroval-plugins: 1.3.2(seroval@1.3.2) + seroval: 1.3.1 + seroval-plugins: 1.3.1(seroval@1.3.1) solid-refresh@0.6.3(solid-js@1.9.9): dependencies: - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.0 '@babel/helper-module-imports': 7.27.1 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 solid-js: 1.9.9 transitivePeerDependencies: - supports-color @@ -21472,24 +22125,24 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.21 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.21 - spdx-license-ids@3.0.22: {} + spdx-license-ids@3.0.21: {} speakingurl@14.0.1: {} - speech-rule-engine@4.1.2: + speech-rule-engine@4.0.7: dependencies: - '@xmldom/xmldom': 0.9.8 - commander: 13.1.0 + commander: 9.2.0 wicked-good-xpath: 1.3.0 + xmldom-sre: 0.1.31 sprintf-js@1.0.3: {} @@ -21506,8 +22159,6 @@ snapshots: statuses@2.0.1: {} - statuses@2.0.2: {} - std-env@3.9.0: {} stoppable@1.1.0: {} @@ -21519,7 +22170,7 @@ snapshots: fast-fifo: 1.3.2 text-decoder: 1.2.3 optionalDependencies: - bare-events: 2.6.1 + bare-events: 2.5.4 string-width@2.1.1: dependencies: @@ -21541,7 +22192,7 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.4.0 - get-east-asian-width: 1.3.0 + get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 string_decoder@1.1.1: @@ -21567,7 +22218,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.2.0 + ansi-regex: 6.1.0 strip-bom@3.0.0: {} @@ -21587,11 +22238,11 @@ snapshots: strnum@2.1.1: {} - style-to-js@1.1.17: + style-to-object@0.4.4: dependencies: - style-to-object: 1.0.9 + inline-style-parser: 0.1.1 - style-to-object@1.0.9: + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 @@ -21618,14 +22269,14 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte2tsx@0.7.42(svelte@5.38.7)(typescript@5.9.2): + svelte2tsx@0.7.42(svelte@5.38.8)(typescript@5.9.2): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.38.7 + svelte: 5.38.8 typescript: 5.9.2 - svelte@5.38.7: + svelte@5.38.8: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -21635,38 +22286,38 @@ snapshots: aria-query: 5.3.2 axobject-query: 4.1.0 clsx: 2.1.1 - esm-env: 1.2.2 + esm-env: 1.2.1 esrap: 2.1.0 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.18 + magic-string: 0.30.19 zimmerframe: 1.1.2 svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 - css-select: 5.2.2 + css-select: 5.1.0 css-tree: 2.3.1 - css-what: 6.2.2 + css-what: 6.1.0 csso: 5.0.5 picocolors: 1.1.1 svgo@4.0.0: dependencies: commander: 11.1.0 - css-select: 5.2.2 + css-select: 5.1.0 css-tree: 3.1.0 - css-what: 6.2.2 + css-what: 6.1.0 csso: 5.0.5 picocolors: 1.1.1 sax: 1.4.1 system-architecture@0.1.0: {} - tailwindcss@4.1.12: {} + tailwindcss@4.1.13: {} - tapable@2.2.3: {} + tapable@2.2.1: {} tar-stream@3.1.7: dependencies: @@ -21679,7 +22330,7 @@ snapshots: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 minipass: 7.1.2 - minizlib: 3.0.2 + minizlib: 3.0.1 mkdirp: 3.0.1 yallist: 5.0.0 @@ -21708,7 +22359,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.4.4(picomatch@4.0.3) picomatch: 4.0.3 tinypool@1.1.1: {} @@ -21719,9 +22370,9 @@ snapshots: tmp-promise@3.0.3: dependencies: - tmp: 0.2.5 + tmp: 0.2.3 - tmp@0.2.5: {} + tmp@0.2.3: {} to-regex-range@5.0.1: dependencies: @@ -21805,17 +22456,17 @@ snapshots: typesafe-path@0.2.2: {} - typescript-auto-import-cache@0.3.6: + typescript-auto-import-cache@0.3.3: dependencies: semver: 7.7.2 - typescript-eslint@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + typescript-eslint@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/eslint-plugin': 8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -21834,14 +22485,14 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.21.0: {} + undici-types@6.20.0: {} undici@6.21.3: {} unenv@2.0.0-rc.15: dependencies: defu: 6.1.4 - exsolve: 1.0.7 + exsolve: 1.0.4 ohash: 2.0.11 pathe: 2.0.3 ufo: 1.6.1 @@ -21962,7 +22613,7 @@ snapshots: unpipe@1.0.0: {} - unstorage@1.17.0(@netlify/blobs@10.0.10)(@vercel/functions@2.2.13): + unstorage@1.17.1(@netlify/blobs@10.0.10)(@vercel/functions@2.2.13): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -21982,9 +22633,9 @@ snapshots: consola: 3.4.2 pathe: 1.1.2 - update-browserslist-db@1.1.3(browserslist@4.25.3): + update-browserslist-db@1.1.3(browserslist@4.25.4): dependencies: - browserslist: 4.25.3 + browserslist: 4.25.4 escalade: 3.2.0 picocolors: 1.1.1 @@ -21994,7 +22645,7 @@ snapshots: dependencies: punycode: 2.3.1 - urlpattern-polyfill@10.1.0: {} + urlpattern-polyfill@10.0.0: {} urlpattern-polyfill@8.0.2: {} @@ -22008,7 +22659,7 @@ snapshots: uuid@8.3.2: {} - validate-html-nesting@1.2.3: {} + validate-html-nesting@1.2.2: {} validate-npm-package-license@3.0.4: dependencies: @@ -22024,7 +22675,7 @@ snapshots: '@types/unist': 3.0.3 vfile: 6.0.3 - vfile-message@4.0.3: + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -22032,19 +22683,19 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.3 + vfile-message: 4.0.2 - vite-hot-client@2.1.0(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)): + vite-hot-client@2.0.4(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)): dependencies: - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) - vite-node@3.2.4(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1): + vite-node@3.2.4(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -22059,115 +22710,113 @@ snapshots: - tsx - yaml - vite-plugin-inspect@0.8.9(rollup@4.50.0)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)): + vite-plugin-inspect@0.8.9(rollup@4.50.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.2.0(rollup@4.50.0) + '@rollup/pluginutils': 5.3.0(rollup@4.50.1) debug: 4.4.1 error-stack-parser-es: 0.1.5 - fs-extra: 11.3.1 - open: 10.2.0 + fs-extra: 11.2.0 + open: 10.1.0 perfect-debounce: 1.0.0 picocolors: 1.1.1 sirv: 3.0.1 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)): + vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)): dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.9(@babel/core@7.28.3)(solid-js@1.9.9) + babel-preset-solid: 1.8.22(@babel/core@7.28.0) merge-anything: 5.1.7 solid-js: 1.9.9 solid-refresh: 0.6.3(solid-js@1.9.9) - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) - vitefu: 1.1.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) + vitefu: 1.1.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.7.7(rollup@4.50.0)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)): + vite-plugin-vue-devtools@7.7.7(rollup@4.50.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2)): dependencies: - '@vue/devtools-core': 7.7.7(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + '@vue/devtools-core': 7.7.7(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0))(vue@3.5.21(typescript@5.9.2)) '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 - execa: 9.6.0 + execa: 9.5.2 sirv: 3.0.1 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) - vite-plugin-inspect: 0.8.9(rollup@4.50.0)(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) - vite-plugin-vue-inspector: 5.3.2(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) + vite-plugin-inspect: 0.8.9(rollup@4.50.1)(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) + vite-plugin-vue-inspector: 5.3.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.3.2(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)): + vite-plugin-vue-inspector@5.3.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)): dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.3) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3) - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3) + '@babel/core': 7.28.0 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.28.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.28.0) + '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.28.0) '@vue/compiler-dom': 3.5.21 kolorist: 1.8.0 - magic-string: 0.30.18 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + magic-string: 0.30.19 + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.11(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)): + vite-prerender-plugin@0.5.6: dependencies: - kolorist: 1.8.0 - magic-string: 0.30.18 + magic-string: 0.30.19 node-html-parser: 6.1.13 simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) vite-svg-loader@5.1.0(vue@3.5.21(typescript@5.9.2)): dependencies: svgo: 3.3.2 vue: 3.5.21(typescript@5.9.2) - vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1): + vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0): dependencies: esbuild: 0.25.5 - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.4.4(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.50.0 + rollup: 4.50.1 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.18.0 + '@types/node': 22.13.1 fsevents: 2.3.3 jiti: 2.5.1 lightningcss: 1.30.1 - sass: 1.92.0 - yaml: 2.8.1 + sass: 1.92.1 + yaml: 2.8.0 - vitefu@1.1.1(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)): + vitefu@1.1.1(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)): optionalDependencies: - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.3.3 + chai: 5.2.0 debug: 4.4.1 expect-type: 1.2.2 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 @@ -22176,12 +22825,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.6(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.13.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.18.0 + '@types/node': 22.13.1 transitivePeerDependencies: - jiti - less @@ -22196,75 +22845,75 @@ snapshots: - tsx - yaml - volar-service-css@0.0.62(@volar/language-service@2.4.23): + volar-service-css@0.0.61(@volar/language-service@2.4.6): dependencies: - vscode-css-languageservice: 6.3.7 + vscode-css-languageservice: 6.3.1 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.23 + '@volar/language-service': 2.4.6 - volar-service-emmet@0.0.62(@volar/language-service@2.4.23): + volar-service-emmet@0.0.61(@volar/language-service@2.4.6): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 - '@vscode/emmet-helper': 2.11.0 - vscode-uri: 3.1.0 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.23 + '@volar/language-service': 2.4.6 - volar-service-html@0.0.62(@volar/language-service@2.4.23): + volar-service-html@0.0.61(@volar/language-service@2.4.6): dependencies: - vscode-html-languageservice: 5.5.1 + vscode-html-languageservice: 5.3.1 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.23 + '@volar/language-service': 2.4.6 - volar-service-prettier@0.0.62(@volar/language-service@2.4.23)(prettier@3.6.2): + volar-service-prettier@0.0.61(@volar/language-service@2.4.6)(prettier@3.6.2): dependencies: - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.23 + '@volar/language-service': 2.4.6 prettier: 3.6.2 - volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.23): + volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.6): dependencies: - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.23 + '@volar/language-service': 2.4.6 - volar-service-typescript@0.0.62(@volar/language-service@2.4.23): + volar-service-typescript@0.0.61(@volar/language-service@2.4.6): dependencies: path-browserify: 1.0.1 semver: 7.7.2 - typescript-auto-import-cache: 0.3.6 + typescript-auto-import-cache: 0.3.3 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.23 + '@volar/language-service': 2.4.6 - volar-service-yaml@0.0.62(@volar/language-service@2.4.23): + volar-service-yaml@0.0.61(@volar/language-service@2.4.6): dependencies: - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 yaml-language-server: 1.15.0 optionalDependencies: - '@volar/language-service': 2.4.23 + '@volar/language-service': 2.4.6 - vscode-css-languageservice@6.3.7: + vscode-css-languageservice@6.3.1: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 - vscode-html-languageservice@5.5.1: + vscode-html-languageservice@5.3.1: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 vscode-json-languageservice@4.1.8: dependencies: @@ -22272,7 +22921,7 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-nls: 5.2.0 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 vscode-jsonrpc@6.0.0: {} @@ -22308,7 +22957,9 @@ snapshots: vscode-textmate@5.2.0: {} - vscode-uri@3.1.0: {} + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} vue@3.5.21(typescript@5.9.2): dependencies: @@ -22388,7 +23039,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20250428.0 '@cloudflare/workerd-windows-64': 1.20250428.0 - wrangler@4.14.1(@cloudflare/workers-types@4.20250903.0): + wrangler@4.14.1(@cloudflare/workers-types@4.20250910.0): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250428.0) @@ -22399,7 +23050,7 @@ snapshots: unenv: 2.0.0-rc.15 workerd: 1.20250428.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250903.0 + '@cloudflare/workers-types': 4.20250910.0 fsevents: 2.3.3 sharp: 0.33.5 transitivePeerDependencies: @@ -22439,12 +23090,6 @@ snapshots: ws@8.18.0: {} - ws@8.18.3: {} - - wsl-utils@0.1.0: - dependencies: - is-wsl: 3.1.0 - xml2js@0.6.2: dependencies: sax: 1.4.1 @@ -22452,6 +23097,8 @@ snapshots: xmlbuilder@11.0.1: {} + xmldom-sre@0.1.31: {} + xss@1.0.15: dependencies: commander: 2.20.3 @@ -22477,14 +23124,14 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-nls: 5.2.0 - vscode-uri: 3.1.0 + vscode-uri: 3.0.8 yaml: 2.2.2 optionalDependencies: prettier: 2.8.7 yaml@2.2.2: {} - yaml@2.8.1: {} + yaml@2.8.0: {} yargs-parser@18.1.3: dependencies: @@ -22524,13 +23171,13 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.2.1: {} + yocto-queue@1.1.1: {} yocto-spinner@0.2.3: dependencies: - yoctocolors: 2.1.2 + yoctocolors: 2.1.1 - yoctocolors@2.1.2: {} + yoctocolors@2.1.1: {} youch@3.3.4: dependencies: @@ -22555,7 +23202,7 @@ snapshots: typescript: 5.9.2 zod: 3.25.76 - zod-validation-error@3.5.3(zod@3.25.76): + zod-validation-error@3.4.0(zod@3.25.76): dependencies: zod: 3.25.76